From 8c5c55c118ba029c50da0b8c79c229d6019f576b Mon Sep 17 00:00:00 2001 From: skosito Date: Fri, 2 Aug 2024 12:41:57 +0100 Subject: [PATCH] refactor: v1 v2 split (#268) --- ...ted-files.yaml => generated-files_v1.yaml} | 15 +- .github/workflows/generated-files_v2.yaml | 65 + .github/workflows/{lint.yaml => lint_v1.yaml} | 15 +- .../workflows/{build.yaml => lint_v2.yaml} | 26 +- .../{publish-npm.yaml => publish-npm_v1.yaml} | 11 +- .../{slither.yaml => slither_v2.yaml} | 18 +- .github/workflows/{test.yaml => test_v1.yaml} | 20 +- .../workflows/{coverage.yaml => test_v2.yaml} | 25 +- .gitignore | 1 + .gitmodules | 13 +- README.md | 13 + foundry.toml | 15 - lib/forge-std | 1 - .../erc20custodynew.sol/erc20custodynew.go | 792 - .../ierc20custodynewerrors.go | 181 - .../ierc20custodynewevents.go | 645 - .../zetaconnectornative.go | 817 - .../zetaconnectornewbase.go | 795 - .../zetaconnectornonnative.go | 1003 - .../zevm/gatewayzevm.sol/gatewayzevm.go | 1704 -- pkg/contracts/zevm/zrc20new.sol/zrc20new.go | 1831 -- .../ownableupgradeable.go | 541 - .../ierc1967upgradeable.go | 604 - .../ibeaconupgradeable.go | 212 - .../erc1967upgradeupgradeable.go | 738 - .../addressupgradeable.go | 203 - .../storageslotupgradeable.go | 203 - remappings.txt | 3 - scripts/readme.md | 16 - scripts/worker.ts | 223 - slither.config.json | 4 - tasks/localnet.ts | 109 - test/prototypes/GatewayEVMUniswap.spec.ts | 104 - typechain-types/contracts/index.ts | 9 - .../contracts/prototypes/ERC20Custody.ts | 245 - .../contracts/prototypes/ERC20CustodyNew.ts | 245 - .../contracts/prototypes/Gateway.ts | 704 - .../prototypes/GatewayUpgradeTest.ts | 559 - .../prototypes/GatewayV2.sol/Gateway.ts | 559 - .../prototypes/GatewayV2.sol/GatewayV2.ts | 559 - .../prototypes/GatewayV2.sol/index.ts | 5 - .../contracts/prototypes/GatewayV2.ts | 559 - .../contracts/prototypes/Receiver.ts | 336 - .../contracts/prototypes/TestERC20.ts | 501 - typechain-types/contracts/prototypes/WETH9.ts | 480 - .../prototypes/evm/ERC20CustodyNew.ts | 349 - .../evm/ERC20CustodyNewEchidnaTest.ts | 331 - .../contracts/prototypes/evm/Gateway.ts | 704 - .../evm/GatewayEVM.sol/GatewayEVM.ts | 1075 - .../evm/GatewayEVM.sol/Revertable.ts | 102 - .../prototypes/evm/GatewayEVM.sol/index.ts | 5 - .../evm/GatewayEVM.t.sol/GatewayEVMTest.ts | 1023 - .../contracts/prototypes/evm/GatewayEVM.ts | 1075 - .../prototypes/evm/GatewayEVMEchidnaTest.ts | 935 - .../prototypes/evm/GatewayEVMUpgradeTest.ts | 1100 -- .../prototypes/evm/GatewayUpgradeTest.ts | 704 - .../IERC20CustodyNewErrors.ts | 56 - .../IERC20CustodyNewEvents.ts | 140 - .../evm/IERC20CustodyNew.sol/index.ts | 5 - .../evm/IGatewayEVM.sol/IGatewayEVM.ts | 219 - .../evm/IGatewayEVM.sol/IGatewayEVMErrors.ts | 56 - .../evm/IGatewayEVM.sol/IGatewayEVMEvents.ts | 219 - .../evm/IGatewayEVM.sol/Revertable.ts | 102 - .../IReceiverEVM.sol/IReceiverEVMEvents.ts | 181 - .../IZetaConnectorEvents.ts | 131 - .../prototypes/evm/IZetaNonEthNew.ts | 425 - .../contracts/prototypes/evm/Receiver.ts | 360 - .../contracts/prototypes/evm/ReceiverEVM.ts | 460 - .../contracts/prototypes/evm/TestERC20.ts | 501 - .../prototypes/evm/ZetaConnectorNative.ts | 389 - .../prototypes/evm/ZetaConnectorNew.ts | 237 - .../prototypes/evm/ZetaConnectorNewBase.ts | 389 - .../prototypes/evm/ZetaConnectorNonNative.ts | 454 - .../contracts/prototypes/evm/index.ts | 20 - .../prototypes/evm/interfaces.sol/IGateway.ts | 250 - .../evm/interfaces.sol/IGatewayEVM.ts | 219 - .../evm/interfaces.sol/IGatewayEVMErrors.ts | 56 - .../evm/interfaces.sol/IGatewayEVMEvents.ts | 219 - .../evm/interfaces.sol/IReceiverEVMEvents.ts | 162 - .../prototypes/evm/interfaces.sol/index.ts | 7 - .../prototypes/interfaces.sol/IGateway.ts | 165 - .../GatewayEVM.t.sol/GatewayEVMInboundTest.ts | 1257 -- .../test/GatewayEVM.t.sol/GatewayEVMTest.ts | 1195 -- .../prototypes/test/GatewayEVM.t.sol/index.ts | 5 - .../GatewayEVMZEVMTest.ts | 1197 -- .../GatewayIntegrationTest.ts | 1078 - .../GatewayZEVMInboundTest.ts | 918 - .../GatewayZEVMOutboundTest.ts | 955 - .../test/GatewayZEVM.t.sol/index.ts | 5 - .../contracts/prototypes/test/index.ts | 9 - .../contracts/prototypes/zevm/GatewayZEVM.ts | 1051 - .../zevm/IGatewayZEVM.sol/IGatewayZEVM.ts | 389 - .../IGatewayZEVM.sol/IGatewayZEVMErrors.ts | 56 - .../IGatewayZEVM.sol/IGatewayZEVMEvents.ts | 117 - .../contracts/prototypes/zevm/Sender.ts | 210 - .../contracts/prototypes/zevm/SenderZEVM.ts | 210 - .../prototypes/zevm/TestZContract.ts | 272 - .../zevm/ZRC20New.sol/ZRC20Errors.ts | 56 - .../prototypes/zevm/ZRC20New.sol/ZRC20New.ts | 854 - .../contracts/prototypes/zevm/index.ts | 8 - .../zevm/interfaces.sol/IGatewayZEVM.ts | 389 - .../zevm/interfaces.sol/IGatewayZEVMErrors.ts | 56 - .../zevm/interfaces.sol/IGatewayZEVMEvents.ts | 117 - .../prototypes/zevm/interfaces.sol/index.ts | 6 - .../zevm/ZRC20New.sol/ZRC20Errors.ts | 56 - .../contracts/zevm/ZRC20New.sol/ZRC20New.ts | 854 - .../contracts/zevm/ZRC20New.sol/index.ts | 5 - .../factories/@openzeppelin/index.ts | 5 - typechain-types/factories/contracts/index.ts | 6 - .../prototypes/ERC20CustodyNew__factory.ts | 196 - .../prototypes/ERC20Custody__factory.ts | 196 - .../prototypes/GatewayUpgradeTest__factory.ts | 374 - .../GatewayV2.sol/GatewayV2__factory.ts | 374 - .../GatewayV2.sol/Gateway__factory.ts | 374 - .../prototypes/GatewayV2.sol/index.ts | 5 - .../prototypes/GatewayV2__factory.ts | 374 - .../contracts/prototypes/Gateway__factory.ts | 560 - .../contracts/prototypes/Receiver__factory.ts | 251 - .../prototypes/TestERC20__factory.ts | 371 - .../contracts/prototypes/WETH9__factory.ts | 340 - .../ERC20CustodyNewEchidnaTest__factory.ts | 246 - .../evm/ERC20CustodyNew__factory.ts | 289 - .../evm/GatewayEVM.sol/GatewayEVM__factory.ts | 731 - .../prototypes/evm/GatewayEVM.sol/index.ts | 5 - .../GatewayEVMTest__factory.ts | 910 - .../prototypes/evm/GatewayEVM.t.sol/index.ts | 4 - .../evm/GatewayEVMEchidnaTest__factory.ts | 638 - .../evm/GatewayEVMUpgradeTest__factory.ts | 759 - .../prototypes/evm/GatewayEVM__factory.ts | 730 - .../evm/GatewayUpgradeTest__factory.ts | 488 - .../prototypes/evm/Gateway__factory.ts | 488 - .../IERC20CustodyNewErrors__factory.ts | 40 - .../evm/IERC20CustodyNew.sol/index.ts | 5 - .../IGatewayEVMErrors__factory.ts | 66 - .../IGatewayEVM.sol/Revertable__factory.ts | 39 - .../prototypes/evm/ReceiverEVM__factory.ts | 319 - .../prototypes/evm/Receiver__factory.ts | 251 - .../prototypes/evm/TestERC20__factory.ts | 371 - .../evm/ZetaConnectorNative__factory.ts | 310 - .../evm/ZetaConnectorNewEth__factory.ts | 226 - .../evm/ZetaConnectorNewNonEth__factory.ts | 230 - .../evm/ZetaConnectorNew__factory.ts | 203 - .../evm/ZetaConnectorNonNative__factory.ts | 358 - .../contracts/prototypes/evm/index.ts | 16 - .../interfaces.sol/IGatewayEVM__factory.ts | 112 - .../evm/interfaces.sol/IGateway__factory.ts | 125 - .../IReceiverEVMEvents__factory.ts | 138 - .../prototypes/evm/interfaces.sol/index.ts | 7 - .../interfaces.sol/IGateway__factory.ts | 84 - .../GatewayEVMInboundTest__factory.ts | 970 - .../GatewayEVMTest__factory.ts | 994 - .../prototypes/test/GatewayEVM.t.sol/index.ts | 5 - .../GatewayEVMZEVMTest__factory.ts | 1106 -- .../test/GatewayEVMZEVM.t.sol/index.ts | 4 - .../GatewayIntegrationTest__factory.ts | 982 - .../test/GatewayIntegration.t.sol/index.ts | 4 - .../GatewayZEVMInboundTest__factory.ts | 766 - .../GatewayZEVMOutboundTest__factory.ts | 803 - .../test/GatewayZEVM.t.sol/index.ts | 5 - .../contracts/prototypes/test/index.ts | 6 - .../prototypes/zevm/GatewayZEVM__factory.ts | 757 - .../prototypes/zevm/SenderZEVM__factory.ts | 160 - .../prototypes/zevm/Sender__factory.ts | 157 - .../prototypes/zevm/TestZContract__factory.ts | 235 - .../zevm/ZRC20New.sol/ZRC20New__factory.ts | 730 - .../contracts/prototypes/zevm/index.ts | 7 - .../IGatewayZEVMErrors__factory.ts | 71 - .../IGatewayZEVMEvents__factory.ts | 100 - .../interfaces.sol/IGatewayZEVM__factory.ts | 218 - .../prototypes/zevm/interfaces.sol/index.ts | 6 - .../StdError.sol/StdError__factory.ts | 180 - typechain-types/factories/forge-std/index.ts | 11 - .../factories/forge-std/interfaces/index.ts | 7 - .../forge-std/mocks/MockERC20__factory.ts | 383 - .../forge-std/mocks/MockERC721__factory.ts | 411 - .../factories/forge-std/mocks/index.ts | 5 - typechain-types/forge-std/StdAssertions.ts | 457 - .../forge-std/StdError.sol/StdError.ts | 249 - typechain-types/forge-std/StdInvariant.ts | 357 - .../StdStorage.sol/StdStorageSafe.ts | 109 - typechain-types/forge-std/Test.ts | 760 - typechain-types/forge-std/Vm.sol/Vm.ts | 16207 ---------------- typechain-types/forge-std/Vm.sol/VmSafe.ts | 13288 ------------- typechain-types/forge-std/index.ts | 16 - .../forge-std/interfaces/IERC165.ts | 103 - .../forge-std/interfaces/IERC20.ts | 384 - .../interfaces/IERC721.sol/IERC721.ts | 560 - .../IERC721.sol/IERC721Enumerable.ts | 655 - .../interfaces/IERC721.sol/IERC721Metadata.ts | 620 - .../IERC721.sol/IERC721TokenReceiver.ts | 126 - .../forge-std/interfaces/IMulticall3.ts | 598 - typechain-types/forge-std/interfaces/index.ts | 8 - typechain-types/forge-std/mocks/MockERC20.ts | 552 - typechain-types/forge-std/mocks/MockERC721.ts | 657 - typechain-types/forge-std/mocks/index.ts | 5 - .env.example => v1/.env.example | 0 .eslintignore => v1/.eslintignore | 0 .eslintrc.js => v1/.eslintrc.js | 0 .solhint.json => v1/.solhint.json | 0 Dockerfile => v1/Dockerfile | 0 .../contracts}/evm/ERC20Custody.sol | 0 {contracts => v1/contracts}/evm/Zeta.eth.sol | 0 .../contracts}/evm/Zeta.non-eth.sol | 2 +- .../contracts}/evm/ZetaConnector.base.sol | 0 .../contracts}/evm/ZetaConnector.eth.sol | 0 .../contracts}/evm/ZetaConnector.non-eth.sol | 0 .../evm/interfaces/ConnectorErrors.sol | 0 .../contracts}/evm/interfaces/ZetaErrors.sol | 2 +- .../evm/interfaces/ZetaInteractorErrors.sol | 0 .../evm/interfaces/ZetaInterfaces.sol | 2 +- .../evm/interfaces/ZetaNonEthInterface.sol | 2 +- .../evm/testing/AttackerContract.sol | 0 .../contracts}/evm/testing/ERC20Mock.sol | 0 .../evm/testing/TestUniswapV3Contracts.sol | 0 .../evm/testing/ZetaInteractorMock.sol | 0 .../evm/testing/ZetaReceiverMock.sol | 0 .../evm/tools/ImmutableCreate2Factory.sol | 0 .../contracts}/evm/tools/ZetaInteractor.sol | 0 .../ZetaTokenConsumerPancakeV3.strategy.sol | 0 .../ZetaTokenConsumerTrident.strategy.sol | 0 .../tools/ZetaTokenConsumerUniV2.strategy.sol | 0 .../tools/ZetaTokenConsumerUniV3.strategy.sol | 0 .../tools/ZetaTokenConsumerZEVM.strategy.sol | 0 ...ridentConcentratedLiquidityPoolFactory.sol | 0 .../tools/interfaces/TridentIPoolRouter.sol | 0 .../contracts}/zevm/SystemContract.sol | 0 {contracts => v1/contracts}/zevm/Uniswap.sol | 0 .../contracts}/zevm/UniswapPeriphery.sol | 0 {contracts => v1/contracts}/zevm/WZETA.sol | 0 {contracts => v1/contracts}/zevm/ZRC20.sol | 0 .../contracts}/zevm/ZetaConnectorZEVM.sol | 0 .../contracts}/zevm/interfaces/ISystem.sol | 0 .../zevm/interfaces/IUniswapV2Router01.sol | 0 .../zevm/interfaces/IUniswapV2Router02.sol | 0 .../contracts}/zevm/interfaces/IWZETA.sol | 0 .../contracts}/zevm/interfaces/IZRC20.sol | 0 .../contracts}/zevm/interfaces/zContract.sol | 0 .../zevm/testing/SystemContractMock.sol | 0 {data => v1/data}/addresses.json | 0 {data => v1/data}/addresses.mainnet.json | 0 {data => v1/data}/addresses.testnet.json | 0 {data => v1/data}/readme.md | 0 {docs => v1/docs}/.gitignore | 0 {docs => v1/docs}/book.css | 0 {docs => v1/docs}/book.toml | 0 {docs => v1/docs}/solidity.min.js | 0 {docs => v1/docs}/src/README.md | 0 {docs => v1/docs}/src/SUMMARY.md | 0 {docs => v1/docs}/src/contracts/README.md | 0 .../ERC20Custody.sol/contract.ERC20Custody.md | 0 {docs => v1/docs}/src/contracts/evm/README.md | 0 .../evm/Zeta.eth.sol/contract.ZetaEth.md | 0 .../Zeta.non-eth.sol/contract.ZetaNonEth.md | 0 .../contract.ZetaConnectorBase.md | 0 .../contract.ZetaConnectorEth.md | 0 .../contract.ZetaConnectorNonEth.md | 0 .../interface.ConnectorErrors.md | 0 .../src/contracts/evm/interfaces/README.md | 0 .../ZetaErrors.sol/interface.ZetaErrors.md | 0 .../interface.ZetaInteractorErrors.md | 0 .../interface.ZetaCommonErrors.md | 0 .../interface.ZetaConnector.md | 0 .../interface.ZetaInterfaces.md | 0 .../interface.ZetaReceiver.md | 0 .../interface.ZetaTokenConsumer.md | 0 .../interface.ZetaNonEthInterface.md | 0 .../contract.AttackerContract.md | 0 .../AttackerContract.sol/interface.Victim.md | 0 .../ERC20Mock.sol/contract.ERC20Mock.md | 0 .../docs}/src/contracts/evm/testing/README.md | 0 .../interface.INonfungiblePositionManager.md | 0 .../interface.IPoolInitializer.md | 0 .../contract.ZetaInteractorMock.md | 0 .../contract.ZetaReceiverMock.md | 0 .../contract.ImmutableCreate2Factory.md | 0 .../interface.Ownable.md | 0 .../docs}/src/contracts/evm/tools/README.md | 0 .../abstract.ZetaInteractor.md | 0 .../contract.ZetaTokenConsumerPancakeV3.md | 0 .../interface.ISwapRouterPancake.md | 0 .../interface.WETH9.md | 0 .../interface.ZetaTokenConsumerUniV3Errors.md | 0 .../contract.ZetaTokenConsumerTrident.md | 0 .../interface.WETH9.md | 0 ...nterface.ZetaTokenConsumerTridentErrors.md | 0 .../contract.ZetaTokenConsumerUniV2.md | 0 .../interface.ZetaTokenConsumerUniV2Errors.md | 0 .../contract.ZetaTokenConsumerUniV3.md | 0 .../interface.WETH9.md | 0 .../interface.ZetaTokenConsumerUniV3Errors.md | 0 .../contract.ZetaTokenConsumerZEVM.md | 0 .../interface.ZetaTokenConsumerZEVMErrors.md | 0 .../contracts/evm/tools/interfaces/README.md | 0 ...erface.ConcentratedLiquidityPoolFactory.md | 0 .../interface.IPoolRouter.md | 0 .../zevm/Interfaces.sol/enum.CoinType.md | 0 .../zevm/Interfaces.sol/interface.ISystem.md | 0 .../zevm/Interfaces.sol/interface.IZRC20.md | 0 .../interface.IZRC20Metadata.md | 0 .../docs}/src/contracts/zevm/README.md | 0 .../contract.SystemContract.md | 0 .../interface.SystemContractErrors.md | 0 .../Uniswap.sol/contract.UniswapImports.md | 0 .../contract.UniswapImports.md | 0 .../zevm/WZETA.sol/contract.WETH9.md | 0 .../zevm/ZRC20.sol/contract.ZRC20.md | 0 .../zevm/ZRC20.sol/interface.ZRC20Errors.md | 0 .../contract.ZetaConnectorZEVM.md | 0 .../interface.ZetaInterfaces.md | 0 .../interface.ZetaReceiver.md | 0 .../interface.IUniswapV2Router01.md | 0 .../interface.IUniswapV2Router02.md | 0 .../interfaces/IWZETA.sol/interface.IWETH9.md | 0 .../interfaces/IZRC20.sol/interface.IZRC20.md | 0 .../src/contracts/zevm/interfaces/README.md | 0 .../zContract.sol/interface.zContract.md | 0 .../zContract.sol/struct.zContext.md | 0 .../src/contracts/zevm/testing/README.md | 0 .../contract.SystemContractMock.md | 0 .../interface.SystemContractErrors.md | 0 go.mod => v1/go.mod | 0 go.sum => v1/go.sum | 0 hardhat.config.ts => v1/hardhat.config.ts | 2 - .../ImmutableCreate2Factory.helpers.ts | 0 {lib => v1/lib}/address.helpers.ts | 0 {lib => v1/lib}/address.tools.ts | 0 {lib => v1/lib}/addresses.ts | 0 {lib => v1/lib}/contracts.constants.ts | 0 {lib => v1/lib}/contracts.helpers.ts | 0 .../lib}/deterministic-deploy.helpers.ts | 0 {lib => v1/lib}/index.ts | 0 {lib => v1/lib}/types.ts | 0 package.json => v1/package.json | 9 +- .../evm/erc20custody.sol/erc20custody.go | 0 .../connectorerrors.sol/connectorerrors.go | 0 .../interfaces/zetaerrors.sol/zetaerrors.go | 0 .../zetainteractorerrors.go | 0 .../zetainterfaces.sol/zetacommonerrors.go | 0 .../zetainterfaces.sol/zetaconnector.go | 0 .../zetainterfaces.sol/zetainterfaces.go | 0 .../zetainterfaces.sol/zetareceiver.go | 0 .../zetainterfaces.sol/zetatokenconsumer.go | 0 .../zetanonethinterface.go | 0 .../attackercontract.sol/attackercontract.go | 0 .../testing/attackercontract.sol/victim.go | 0 .../evm/testing/erc20mock.sol/erc20mock.go | 0 .../inonfungiblepositionmanager.go | 0 .../ipoolinitializer.go | 0 .../zetainteractormock.go | 2 +- .../zetareceivermock.sol/zetareceivermock.go | 2 +- .../immutablecreate2factory.go | 0 .../immutablecreate2factory.sol/ownable.go | 0 .../concentratedliquiditypoolfactory.go | 0 .../tridentipoolrouter.sol/ipoolrouter.go | 0 .../zetainteractor.sol/zetainteractor.go | 0 .../iswaprouterpancake.go | 0 .../weth9.go | 0 .../zetatokenconsumerpancakev3.go | 2 +- .../zetatokenconsumeruniv3errors.go | 0 .../weth9.go | 0 .../zetatokenconsumertrident.go | 2 +- .../zetatokenconsumertridenterrors.go | 0 .../zetatokenconsumeruniv2.go | 2 +- .../zetatokenconsumeruniv2errors.go | 0 .../weth9.go | 0 .../zetatokenconsumeruniv3.go | 2 +- .../zetatokenconsumeruniv3errors.go | 0 .../zetatokenconsumerzevm.go | 2 +- .../zetatokenconsumerzevmerrors.go | 0 .../contracts/evm/zeta.eth.sol/zetaeth.go | 0 .../evm/zeta.non-eth.sol/zetanoneth.go | 2 +- .../zetaconnectorbase.go | 2 +- .../zetaconnector.eth.sol/zetaconnectoreth.go | 2 +- .../zetaconnectornoneth.go | 2 +- .../zevm/interfaces/isystem.sol/isystem.go | 0 .../iuniswapv2router01.go | 0 .../iuniswapv2router02.go | 0 .../zevm/interfaces/iwzeta.sol/iweth9.go | 0 .../zevm/interfaces/izrc20.sol/izrc20.go | 0 .../interfaces/izrc20.sol/izrc20metadata.go | 0 .../zevm/interfaces/izrc20.sol/zrc20events.go | 0 .../zcontract.sol/universalcontract.go | 0 .../interfaces/zcontract.sol/zcontract.go | 0 .../zevm/systemcontract.sol/systemcontract.go | 0 .../systemcontracterrors.go | 0 .../systemcontracterrors.go | 0 .../systemcontractmock.go | 0 .../zevm/uniswap.sol/uniswapimports.go | 0 .../uniswapperiphery.sol/uniswapimports.go | 0 .../pkg}/contracts/zevm/wzeta.sol/weth9.go | 0 .../zetaconnectorzevm.go | 0 .../zetaconnectorzevm.sol/zetainterfaces.go | 0 .../zetaconnectorzevm.sol/zetareceiver.go | 0 .../pkg}/contracts/zevm/zrc20.sol/zrc20.go | 0 .../contracts/zevm/zrc20.sol/zrc20errors.go | 0 .../contracts/access/ownable.sol/ownable.go | 0 .../access/ownable2step.sol/ownable2step.go | 0 .../security/pausable.sol/pausable.go | 0 .../reentrancyguard.sol/reentrancyguard.go | 0 .../contracts/token/erc20/erc20.sol/erc20.go | 0 .../erc20burnable.sol/erc20burnable.go | 0 .../ierc20metadata.sol/ierc20metadata.go | 0 .../token/erc20/ierc20.sol/ierc20.go | 0 .../erc20/utils/safeerc20.sol/safeerc20.go | 0 .../contracts/utils/address.sol/address.go | 0 .../contracts/utils/context.sol/context.go | 0 .../transferhelper.sol/transferhelper.go | 0 .../contracts/interfaces/ierc20.sol/ierc20.go | 0 .../iuniswapv2callee.sol/iuniswapv2callee.go | 0 .../iuniswapv2erc20.sol/iuniswapv2erc20.go | 0 .../iuniswapv2factory.go | 0 .../iuniswapv2pair.sol/iuniswapv2pair.go | 0 .../contracts/libraries/math.sol/math.go | 0 .../libraries/safemath.sol/safemath.go | 0 .../libraries/uq112x112.sol/uq112x112.go | 0 .../uniswapv2erc20.sol/uniswapv2erc20.go | 0 .../uniswapv2factory.sol/uniswapv2factory.go | 0 .../uniswapv2pair.sol/uniswapv2pair.go | 0 .../contracts/interfaces/ierc20.sol/ierc20.go | 0 .../iuniswapv2router01.go | 0 .../iuniswapv2router02.go | 0 .../contracts/interfaces/iweth.sol/iweth.go | 0 .../libraries/safemath.sol/safemath.go | 0 .../uniswapv2library.sol/uniswapv2library.go | 0 .../uniswapv2router02.go | 0 .../iuniswapv3swapcallback.go | 0 .../iuniswapv3factory.go | 0 .../iuniswapv3pool.sol/iuniswapv3pool.go | 0 .../iuniswapv3poolactions.go | 0 .../iuniswapv3poolderivedstate.go | 0 .../iuniswapv3poolevents.go | 0 .../iuniswapv3poolimmutables.go | 0 .../iuniswapv3poolowneractions.go | 0 .../iuniswapv3poolstate.go | 0 .../interfaces/iquoter.sol/iquoter.go | 0 .../interfaces/iswaprouter.sol/iswaprouter.go | 0 readme.md => v1/readme.md | 6 - .../deployments/core/deploy-deterministic.ts | 2 +- .../deployments/core/deploy-erc20-custody.ts | 0 .../core/deploy-immutable-create2-factory.ts | 0 .../deployments/core/deploy-zeta-connector.ts | 0 .../deployments/core/deploy-zeta-token.ts | 0 .../scripts}/deployments/core/deploy.ts | 0 .../deterministic-deploy-erc20-custody.ts | 4 +- .../deterministic-deploy-zeta-connector.ts | 6 +- .../core/deterministic-deploy-zeta-token.ts | 6 +- ...ministic-deploy-zeta-consumer-pancakev3.ts | 0 .../deterministic-deploy-zeta-consumer-v2.ts | 0 .../deterministic-deploy-zeta-consumer-v3.ts | 0 .../deterministic-get-salt-erc20-custody.ts | 0 .../deterministic-get-salt-zeta-connector.ts | 0 .../deterministic-get-salt-zeta-token.ts | 0 {scripts => v1/scripts}/generate_addresses.sh | 0 .../scripts}/generate_addresses_types.ts | 0 {scripts => v1/scripts}/generate_go.sh | 0 .../bytecode-checker/bytecode.constants.ts | 0 .../bytecode-checker/bytecode.helpers.ts | 0 .../tools/bytecode-checker/bytecode.ts | 0 {scripts => v1/scripts}/tools/send-tss-gas.ts | 0 .../tools/set-zeta-token-addresses.ts | 0 .../scripts}/tools/test-zeta-send.ts | 0 .../scripts}/tools/token-approval.ts | 0 .../scripts}/tools/update-tss-address.ts | 0 .../scripts}/tools/update-zeta-connector.ts | 0 {tasks => v1/tasks}/addresses.mainnet.json | 0 {tasks => v1/tasks}/addresses.testnet.json | 0 {tasks => v1/tasks}/addresses.ts | 0 {tasks => v1/tasks}/readme.md | 0 {test => v1/test}/ConnectorZEVM.spec.ts | 0 {test => v1/test}/ERC20Custody.spec.ts | 0 .../test}/ImmutableCreate2Factory.spec.ts | 0 {test => v1/test}/ZRC20.spec.ts | 0 {test => v1/test}/Zeta.non-eth.spec.ts | 0 {test => v1/test}/ZetaConnector.spec.ts | 0 {test => v1/test}/ZetaInteractor.spec.ts | 0 {test => v1/test}/ZetaTokenConsumer.spec.ts | 0 .../test}/ZetaTokenConsumerZEVM.spec.ts | 0 {test => v1/test}/test.helpers.ts | 0 tsconfig.json => v1/tsconfig.json | 0 .../access/OwnableUpgradeable.ts | 0 .../contracts-upgradeable/access/index.ts | 0 .../contracts-upgradeable/index.ts | 0 .../interfaces/IERC1967Upgradeable.ts | 0 .../IERC1822ProxiableUpgradeable.ts | 0 .../draft-IERC1822Upgradeable.sol/index.ts | 0 .../contracts-upgradeable/interfaces/index.ts | 0 .../ERC1967/ERC1967UpgradeUpgradeable.ts | 0 .../proxy/ERC1967/index.ts | 0 .../proxy/beacon/IBeaconUpgradeable.ts | 0 .../proxy/beacon/index.ts | 0 .../contracts-upgradeable/proxy/index.ts | 0 .../proxy/utils/Initializable.ts | 0 .../proxy/utils/UUPSUpgradeable.ts | 0 .../proxy/utils/index.ts | 0 .../security/ReentrancyGuardUpgradeable.ts | 0 .../contracts-upgradeable/security/index.ts | 0 .../utils/ContextUpgradeable.ts | 0 .../contracts-upgradeable/utils/index.ts | 0 .../@openzeppelin/contracts/access/Ownable.ts | 0 .../contracts/access/Ownable2Step.ts | 0 .../@openzeppelin/contracts/access/index.ts | 0 .../@openzeppelin/contracts/index.ts | 0 .../contracts/security/Pausable.ts | 0 .../@openzeppelin/contracts/security/index.ts | 0 .../contracts/token/ERC20/ERC20.ts | 0 .../contracts/token/ERC20/IERC20.ts | 0 .../token/ERC20/extensions/ERC20Burnable.ts | 0 .../token/ERC20/extensions/IERC20Metadata.ts | 0 .../draft-IERC20Permit.sol/IERC20Permit.ts | 0 .../draft-IERC20Permit.sol/index.ts | 0 .../contracts/token/ERC20/extensions/index.ts | 0 .../contracts/token/ERC20/index.ts | 0 .../@openzeppelin/contracts/token/index.ts | 0 .../typechain-types/@openzeppelin}/index.ts | 0 .../typechain-types}/@uniswap/index.ts | 0 .../v2-core/contracts/UniswapV2ERC20.ts | 0 .../v2-core/contracts/UniswapV2Factory.ts | 0 .../v2-core/contracts/UniswapV2Pair.ts | 0 .../@uniswap/v2-core/contracts/index.ts | 0 .../v2-core/contracts/interfaces/IERC20.ts | 0 .../contracts/interfaces/IUniswapV2Callee.ts | 0 .../contracts/interfaces/IUniswapV2ERC20.ts | 0 .../contracts/interfaces/IUniswapV2Factory.ts | 0 .../contracts/interfaces/IUniswapV2Pair.ts | 0 .../v2-core/contracts/interfaces/index.ts | 0 .../@uniswap/v2-core}/index.ts | 0 .../contracts/UniswapV2Router02.ts | 0 .../@uniswap/v2-periphery/contracts/index.ts | 0 .../contracts/interfaces/IERC20.ts | 0 .../interfaces/IUniswapV2Router01.ts | 0 .../interfaces/IUniswapV2Router02.ts | 0 .../contracts/interfaces/IWETH.ts | 0 .../contracts/interfaces/index.ts | 0 .../@uniswap/v2-periphery}/index.ts | 0 .../@uniswap/v3-core/contracts/index.ts | 0 .../contracts/interfaces/IUniswapV3Factory.ts | 0 .../contracts/interfaces/IUniswapV3Pool.ts | 0 .../callback/IUniswapV3SwapCallback.ts | 0 .../contracts/interfaces/callback/index.ts | 0 .../v3-core/contracts/interfaces/index.ts | 0 .../interfaces/pool/IUniswapV3PoolActions.ts | 0 .../pool/IUniswapV3PoolDerivedState.ts | 0 .../interfaces/pool/IUniswapV3PoolEvents.ts | 0 .../pool/IUniswapV3PoolImmutables.ts | 0 .../pool/IUniswapV3PoolOwnerActions.ts | 0 .../interfaces/pool/IUniswapV3PoolState.ts | 0 .../contracts/interfaces/pool/index.ts | 0 .../@uniswap/v3-core}/index.ts | 0 .../@uniswap/v3-periphery/contracts/index.ts | 0 .../contracts/interfaces/IQuoter.ts | 0 .../contracts/interfaces/ISwapRouter.ts | 0 .../contracts/interfaces/index.ts | 0 .../@uniswap/v3-periphery}/index.ts | 2 - .../typechain-types}/common.ts | 0 .../contracts/evm/ERC20Custody.ts | 0 .../contracts/evm/Zeta.eth.sol/ZetaEth.ts | 0 .../contracts/evm/Zeta.eth.sol/index.ts | 0 .../evm/Zeta.non-eth.sol/ZetaNonEth.ts | 0 .../contracts/evm/Zeta.non-eth.sol/index.ts | 0 .../ZetaConnectorBase.ts | 0 .../evm/ZetaConnector.base.sol/index.ts | 0 .../ZetaConnector.eth.sol/ZetaConnectorEth.ts | 0 .../evm/ZetaConnector.eth.sol/index.ts | 0 .../ZetaConnectorNonEth.ts | 0 .../evm/ZetaConnector.non-eth.sol/index.ts | 0 .../typechain-types}/contracts/evm/index.ts | 0 .../evm/interfaces/ConnectorErrors.ts | 0 .../contracts/evm/interfaces/ZetaErrors.ts | 0 .../evm/interfaces/ZetaInteractorErrors.ts | 0 .../ZetaInterfaces.sol/ZetaCommonErrors.ts | 0 .../ZetaInterfaces.sol/ZetaConnector.ts | 0 .../ZetaInterfaces.sol/ZetaReceiver.ts | 0 .../ZetaInterfaces.sol/ZetaTokenConsumer.ts | 0 .../interfaces/ZetaInterfaces.sol/index.ts | 0 .../evm/interfaces/ZetaNonEthInterface.ts | 0 .../contracts/evm/interfaces/index.ts | 0 .../AttackerContract.sol/AttackerContract.ts | 0 .../testing/AttackerContract.sol/Victim.ts | 0 .../evm/testing/AttackerContract.sol/index.ts | 0 .../contracts/evm/testing/ERC20Mock.ts | 0 .../INonfungiblePositionManager.ts | 0 .../IPoolInitializer.ts | 0 .../TestUniswapV3Contracts.sol/index.ts | 0 .../evm/testing/ZetaInteractorMock.ts | 0 .../contracts/evm/testing/ZetaReceiverMock.ts | 0 .../contracts/evm/testing/index.ts | 0 .../ImmutableCreate2Factory.ts | 0 .../ImmutableCreate2Factory.sol/Ownable.ts | 0 .../ImmutableCreate2Factory.sol/index.ts | 0 .../contracts/evm/tools/ZetaInteractor.ts | 0 .../ISwapRouterPancake.ts | 0 .../WETH9.ts | 0 .../ZetaTokenConsumerPancakeV3.ts | 0 .../ZetaTokenConsumerUniV3Errors.ts | 0 .../index.ts | 0 .../WETH9.ts | 0 .../ZetaTokenConsumerTrident.ts | 0 .../ZetaTokenConsumerTridentErrors.ts | 0 .../index.ts | 0 .../ZetaTokenConsumerUniV2.ts | 0 .../ZetaTokenConsumerUniV2Errors.ts | 0 .../index.ts | 0 .../WETH9.ts | 0 .../ZetaTokenConsumerUniV3.ts | 0 .../ZetaTokenConsumerUniV3Errors.ts | 0 .../index.ts | 0 .../ZetaTokenConsumerZEVM.ts | 0 .../ZetaTokenConsumerZEVMErrors.ts | 0 .../index.ts | 0 .../contracts/evm/tools/index.ts | 0 .../ConcentratedLiquidityPoolFactory.ts | 0 .../index.ts | 0 .../TridentIPoolRouter.sol/IPoolRouter.ts | 0 .../TridentIPoolRouter.sol/index.ts | 0 .../contracts/evm/tools/interfaces/index.ts | 0 .../typechain-types/contracts}/index.ts | 0 .../contracts/zevm/Interfaces.sol/ISystem.ts | 0 .../contracts/zevm/Interfaces.sol/IZRC20.ts | 0 .../zevm/Interfaces.sol/IZRC20Metadata.ts | 0 .../contracts/zevm/Interfaces.sol/index.ts | 0 .../zevm/SystemContract.sol/SystemContract.ts | 0 .../SystemContractErrors.ts | 0 .../zevm/SystemContract.sol/index.ts | 0 .../contracts/zevm/WZETA.sol/WETH9.ts | 0 .../contracts/zevm/WZETA.sol/index.ts | 0 .../contracts/zevm/ZRC20.sol/ZRC20.ts | 0 .../contracts/zevm/ZRC20.sol/ZRC20Errors.ts | 0 .../contracts/zevm/ZRC20.sol/index.ts | 0 .../zevm/ZetaConnectorZEVM.sol/WZETA.ts | 0 .../ZetaConnectorZEVM.ts | 0 .../ZetaConnectorZEVM.sol/ZetaReceiver.ts | 0 .../zevm/ZetaConnectorZEVM.sol/index.ts | 0 .../contracts/zevm/ZetaConnectorZEVM.ts | 0 .../typechain-types}/contracts/zevm/index.ts | 2 - .../contracts/zevm/interfaces/ISystem.ts | 0 .../zevm/interfaces/IUniswapV2Router01.ts | 0 .../zevm/interfaces/IUniswapV2Router02.ts | 0 .../zevm/interfaces/IWZETA.sol/IWETH9.ts | 0 .../zevm/interfaces/IWZETA.sol/index.ts | 0 .../zevm/interfaces/IZRC20.sol/ISystem.ts | 0 .../zevm/interfaces/IZRC20.sol/IZRC20.ts | 0 .../interfaces/IZRC20.sol/IZRC20Metadata.ts | 0 .../zevm/interfaces/IZRC20.sol/ZRC20Events.ts | 0 .../zevm/interfaces/IZRC20.sol/index.ts | 0 .../contracts/zevm/interfaces/IZRC20.ts | 0 .../contracts/zevm/interfaces/ZContract.ts | 0 .../contracts/zevm/interfaces/index.ts | 0 .../zContract.sol/UniversalContract.ts | 0 .../interfaces/zContract.sol/ZContract.ts | 0 .../zevm/interfaces/zContract.sol/index.ts | 0 .../SystemContractErrors.ts | 0 .../SystemContractMock.ts | 0 .../testing/SystemContractMock.sol/index.ts | 0 .../contracts/zevm/testing/index.ts | 0 .../access/OwnableUpgradeable__factory.ts | 0 .../contracts-upgradeable/access/index.ts | 0 .../contracts-upgradeable/index.ts | 0 .../IERC1967Upgradeable__factory.ts | 0 .../IERC1822ProxiableUpgradeable__factory.ts | 0 .../draft-IERC1822Upgradeable.sol/index.ts | 0 .../contracts-upgradeable/interfaces/index.ts | 0 .../ERC1967UpgradeUpgradeable__factory.ts | 0 .../proxy/ERC1967/index.ts | 0 .../beacon/IBeaconUpgradeable__factory.ts | 0 .../proxy/beacon/index.ts | 0 .../contracts-upgradeable/proxy/index.ts | 0 .../proxy/utils/Initializable__factory.ts | 0 .../proxy/utils/UUPSUpgradeable__factory.ts | 0 .../proxy/utils/index.ts | 0 .../ReentrancyGuardUpgradeable__factory.ts | 0 .../contracts-upgradeable/security/index.ts | 0 .../utils/ContextUpgradeable__factory.ts | 0 .../contracts-upgradeable/utils/index.ts | 0 .../contracts/access/Ownable2Step__factory.ts | 0 .../contracts/access/Ownable__factory.ts | 0 .../@openzeppelin/contracts/access/index.ts | 0 .../@openzeppelin/contracts/index.ts | 0 .../contracts/security/Pausable__factory.ts | 0 .../@openzeppelin/contracts/security/index.ts | 0 .../contracts/token/ERC20/ERC20__factory.ts | 0 .../contracts/token/ERC20/IERC20__factory.ts | 0 .../extensions/ERC20Burnable__factory.ts | 0 .../extensions/IERC20Metadata__factory.ts | 0 .../IERC20Permit__factory.ts | 0 .../draft-IERC20Permit.sol/index.ts | 0 .../contracts/token/ERC20/extensions/index.ts | 0 .../contracts/token/ERC20/index.ts | 0 .../@openzeppelin/contracts/token/index.ts | 0 .../factories/@openzeppelin}/index.ts | 0 .../factories/@uniswap/index.ts | 0 .../contracts/UniswapV2ERC20__factory.ts | 0 .../contracts/UniswapV2Factory__factory.ts | 0 .../contracts/UniswapV2Pair__factory.ts | 0 .../@uniswap/v2-core/contracts/index.ts | 0 .../contracts/interfaces/IERC20__factory.ts | 0 .../interfaces/IUniswapV2Callee__factory.ts | 0 .../interfaces/IUniswapV2ERC20__factory.ts | 0 .../interfaces/IUniswapV2Factory__factory.ts | 0 .../interfaces/IUniswapV2Pair__factory.ts | 0 .../v2-core/contracts/interfaces/index.ts | 0 .../factories/@uniswap/v2-core}/index.ts | 0 .../contracts/UniswapV2Router02__factory.ts | 0 .../@uniswap/v2-periphery/contracts/index.ts | 0 .../contracts/interfaces/IERC20__factory.ts | 0 .../interfaces/IUniswapV2Router01__factory.ts | 0 .../interfaces/IUniswapV2Router02__factory.ts | 0 .../contracts/interfaces/IWETH__factory.ts | 0 .../contracts/interfaces/index.ts | 0 .../factories/@uniswap/v2-periphery}/index.ts | 0 .../@uniswap/v3-core/contracts/index.ts | 0 .../interfaces/IUniswapV3Factory__factory.ts | 0 .../interfaces/IUniswapV3Pool__factory.ts | 0 .../IUniswapV3SwapCallback__factory.ts | 0 .../contracts/interfaces/callback/index.ts | 0 .../v3-core/contracts/interfaces/index.ts | 0 .../pool/IUniswapV3PoolActions__factory.ts | 0 .../IUniswapV3PoolDerivedState__factory.ts | 0 .../pool/IUniswapV3PoolEvents__factory.ts | 0 .../pool/IUniswapV3PoolImmutables__factory.ts | 0 .../IUniswapV3PoolOwnerActions__factory.ts | 0 .../pool/IUniswapV3PoolState__factory.ts | 0 .../contracts/interfaces/pool/index.ts | 0 .../factories/@uniswap/v3-core}/index.ts | 0 .../@uniswap/v3-periphery/contracts/index.ts | 0 .../contracts/interfaces/IQuoter__factory.ts | 0 .../interfaces/ISwapRouter__factory.ts | 0 .../contracts/interfaces/index.ts | 0 .../factories/@uniswap/v3-periphery}/index.ts | 2 +- .../contracts/evm/ERC20Custody__factory.ts | 0 .../evm/Zeta.eth.sol/ZetaEth__factory.ts | 0 .../contracts/evm/Zeta.eth.sol/index.ts | 0 .../Zeta.non-eth.sol/ZetaNonEth__factory.ts | 2 +- .../contracts/evm/Zeta.non-eth.sol/index.ts | 0 .../ZetaConnectorBase__factory.ts | 2 +- .../evm/ZetaConnector.base.sol/index.ts | 0 .../ZetaConnectorEth__factory.ts | 2 +- .../evm/ZetaConnector.eth.sol/index.ts | 0 .../ZetaConnectorNonEth__factory.ts | 2 +- .../evm/ZetaConnector.non-eth.sol/index.ts | 0 .../factories/contracts/evm/index.ts | 0 .../interfaces/ConnectorErrors__factory.ts | 0 .../evm/interfaces/ZetaErrors__factory.ts | 0 .../ZetaInteractorErrors__factory.ts | 0 .../ZetaCommonErrors__factory.ts | 0 .../ZetaConnector__factory.ts | 0 .../ZetaReceiver__factory.ts | 0 .../ZetaTokenConsumer__factory.ts | 0 .../interfaces/ZetaInterfaces.sol/index.ts | 0 .../ZetaNonEthInterface__factory.ts | 0 .../contracts/evm/interfaces/index.ts | 0 .../AttackerContract__factory.ts | 0 .../AttackerContract.sol/Victim__factory.ts | 0 .../evm/testing/AttackerContract.sol/index.ts | 0 .../evm/testing/ERC20Mock__factory.ts | 0 .../INonfungiblePositionManager__factory.ts | 0 .../IPoolInitializer__factory.ts | 0 .../TestUniswapV3Contracts.sol/index.ts | 0 .../testing/ZetaInteractorMock__factory.ts | 2 +- .../evm/testing/ZetaReceiverMock__factory.ts | 2 +- .../factories/contracts/evm/testing/index.ts | 0 .../ImmutableCreate2Factory__factory.ts | 0 .../Ownable__factory.ts | 0 .../ImmutableCreate2Factory.sol/index.ts | 0 .../evm/tools/ZetaInteractor__factory.ts | 0 .../ISwapRouterPancake__factory.ts | 0 .../WETH9__factory.ts | 0 .../ZetaTokenConsumerPancakeV3__factory.ts | 2 +- .../ZetaTokenConsumerUniV3Errors__factory.ts | 0 .../index.ts | 0 .../WETH9__factory.ts | 0 ...ZetaTokenConsumerTridentErrors__factory.ts | 0 .../ZetaTokenConsumerTrident__factory.ts | 2 +- .../index.ts | 0 .../ZetaTokenConsumerUniV2Errors__factory.ts | 0 .../ZetaTokenConsumerUniV2__factory.ts | 2 +- .../index.ts | 0 .../WETH9__factory.ts | 0 .../ZetaTokenConsumerUniV3Errors__factory.ts | 0 .../ZetaTokenConsumerUniV3__factory.ts | 2 +- .../index.ts | 0 .../ZetaTokenConsumerZEVMErrors__factory.ts | 0 .../ZetaTokenConsumerZEVM__factory.ts | 2 +- .../index.ts | 0 .../factories/contracts/evm/tools/index.ts | 0 ...ncentratedLiquidityPoolFactory__factory.ts | 0 .../index.ts | 0 .../IPoolRouter__factory.ts | 0 .../TridentIPoolRouter.sol/index.ts | 0 .../contracts/evm/tools/interfaces/index.ts | 0 .../factories/contracts}/index.ts | 0 .../zevm/Interfaces.sol/ISystem__factory.ts | 0 .../Interfaces.sol/IZRC20Metadata__factory.ts | 0 .../zevm/Interfaces.sol/IZRC20__factory.ts | 0 .../contracts/zevm/Interfaces.sol/index.ts | 0 .../SystemContractErrors__factory.ts | 0 .../SystemContract__factory.ts | 0 .../zevm/SystemContract.sol/index.ts | 0 .../zevm/WZETA.sol/WETH9__factory.ts | 0 .../contracts/zevm/WZETA.sol/index.ts | 0 .../zevm/ZRC20.sol/ZRC20Errors__factory.ts | 0 .../zevm/ZRC20.sol/ZRC20__factory.ts | 0 .../contracts/zevm/ZRC20.sol/index.ts | 0 .../zevm/ZRC20New.sol/ZRC20Errors__factory.ts | 0 .../zevm/ZRC20New.sol/ZRC20New__factory.ts | 0 .../contracts}/zevm/ZRC20New.sol/index.ts | 0 .../ZetaConnectorZEVM.sol/WZETA__factory.ts | 0 .../ZetaConnectorZEVM__factory.ts | 0 .../ZetaReceiver__factory.ts | 0 .../zevm/ZetaConnectorZEVM.sol/index.ts | 0 .../zevm/ZetaConnectorZEVM__factory.ts | 0 .../factories/contracts/zevm/index.ts | 1 - .../zevm/interfaces/ISystem__factory.ts | 0 .../interfaces/IUniswapV2Router01__factory.ts | 0 .../interfaces/IUniswapV2Router02__factory.ts | 0 .../interfaces/IWZETA.sol/IWETH9__factory.ts | 0 .../zevm/interfaces/IWZETA.sol/index.ts | 0 .../interfaces/IZRC20.sol/ISystem__factory.ts | 0 .../IZRC20.sol/IZRC20Metadata__factory.ts | 0 .../interfaces/IZRC20.sol/IZRC20__factory.ts | 0 .../IZRC20.sol/ZRC20Events__factory.ts | 0 .../zevm/interfaces/IZRC20.sol/index.ts | 0 .../zevm/interfaces/IZRC20__factory.ts | 0 .../zevm/interfaces/ZContract__factory.ts | 0 .../contracts/zevm/interfaces/index.ts | 0 .../UniversalContract__factory.ts | 0 .../zContract.sol/ZContract__factory.ts | 0 .../zevm/interfaces/zContract.sol/index.ts | 0 .../SystemContractErrors__factory.ts | 0 .../SystemContractMock__factory.ts | 0 .../testing/SystemContractMock.sol/index.ts | 0 .../factories/contracts/zevm/testing/index.ts | 0 .../typechain-types}/factories/index.ts | 0 .../typechain-types}/hardhat.d.ts | 306 - .../typechain-types}/index.ts | 66 - yarn.lock => v1/yarn.lock | 7 - v2/.eslintignore | 9 + v2/README.md | 55 + echidna.yaml => v2/echidna.yaml | 0 v2/eslint.config.mjs | 10 + v2/foundry.toml | 36 + v2/lib/forge-std | 1 + v2/lib/openzeppelin-contracts-upgradeable | 1 + {lib => v2/lib}/openzeppelin-foundry-upgrades | 0 v2/package.json | 34 + v2/pkg/accesscontrol.sol/accesscontrol.go | 854 + .../accesscontrolupgradeable.go | 988 + 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 | 16 +- v2/pkg/core.sol/core.go | 203 + v2/pkg/defender.sol/defender.go | 203 + v2/pkg/defenderdeploy.sol/defenderdeploy.go | 203 + v2/pkg/erc165.sol/erc165.go | 212 + .../erc165upgradeable.go | 346 + 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/erc20custody.sol/erc20custody.go | 1868 ++ .../erc20custodyechidnatest.go | 1951 ++ .../pkg}/gatewayevm.sol/gatewayevm.go | 1472 +- .../gatewayevm.t.sol/gatewayevminboundtest.go | 5357 +++++ v2/pkg/gatewayevm.t.sol/gatewayevmtest.go | 6197 ++++++ .../gatewayevmechidnatest.go | 3042 +++ .../gatewayevmuupsupgradetest.go | 5335 +++++ .../gatewayevmupgradetest.go | 1546 +- .../gatewayevmzevmtest.go | 5566 ++++++ v2/pkg/gatewayzevm.sol/gatewayzevm.go | 2272 +++ .../gatewayzevminboundtest.go | 4078 ++++ .../gatewayzevmoutboundtest.go | 4637 +++++ v2/pkg/iaccesscontrol.sol/iaccesscontrol.go | 792 + 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 + .../ierc20custody.sol/ierc20custodyerrors.go | 181 + .../ierc20custody.sol/ierc20custodyevents.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 + .../pkg}/igatewayevm.sol/igatewayevm.go | 2 +- .../pkg}/igatewayevm.sol/igatewayevmerrors.go | 2 +- .../pkg}/igatewayevm.sol/igatewayevmevents.go | 2 +- .../pkg}/igatewayevm.sol/revertable.go | 2 +- .../pkg}/igatewayzevm.sol/igatewayzevm.go | 68 +- .../igatewayzevm.sol/igatewayzevmerrors.go | 2 +- .../igatewayzevm.sol/igatewayzevmevents.go | 76 +- v2/pkg/imulticall3.sol/imulticall3.go | 644 + .../pkg}/initializable.sol/initializable.go | 16 +- v2/pkg/introspection/ierc165.sol/ierc165.go | 212 + v2/pkg/iproxyadmin.sol/iproxyadmin.go | 223 + .../ireceiverevm.sol/ireceiverevmevents.go | 2 +- v2/pkg/isystem.sol/isystem.go | 367 + .../iupgradeablebeacon.go | 202 + .../iupgradeableproxy.go | 223 + v2/pkg/iwzeta.sol/iweth9.go | 977 + .../izetaconnectorevents.go | 2 +- .../pkg}/izetanonethnew.sol/izetanonethnew.go | 56 +- 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 + v2/pkg/pausable.sol/pausable.go | 480 + .../pausableupgradeable.go | 614 + v2/pkg/proxy.sol/proxy.go | 202 + v2/pkg/proxyadmin.sol/proxyadmin.go | 481 + .../pkg}/receiverevm.sol/receiverevm.go | 4 +- v2/pkg/reentrancyguard.sol/reentrancyguard.go | 181 + .../reentrancyguardupgradeable.go | 16 +- v2/pkg/safeconsole.sol/safeconsole.go | 203 + v2/pkg/safeerc20.sol/safeerc20.go | 203 + .../pkg}/senderzevm.sol/senderzevm.go | 28 +- 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 ++++ .../evm => v2/pkg}/testerc20.sol/testerc20.go | 100 +- .../pkg}/testzcontract.sol/testzcontract.go | 4 +- .../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 + .../uupsupgradeable.sol/uupsupgradeable.go | 347 +- 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 + .../zetaconnectorbase.go | 1871 ++ .../zetaconnectornative.go | 1893 ++ .../zetaconnectornativetest.go | 5804 ++++++ .../zetaconnectornonnative.go | 2079 ++ .../zetaconnectornonnativetest.go | 5804 ++++++ v2/pkg/zrc20.sol/zrc20.go | 1831 ++ .../pkg/zrc20.sol}/zrc20errors.go | 4 +- v2/scripts/generate_go.sh | 83 + v2/scripts/localnet/EvmCall.s.sol | 36 + v2/scripts/localnet/EvmDepositAndCall.s.sol | 48 + v2/scripts/localnet/ZevmCall.s.sol | 46 + v2/scripts/localnet/ZevmWithdrawAndCall.s.sol | 53 + .../scripts/localnet/v2_localnet.md | 25 +- v2/scripts/localnet/worker.ts | 300 + v2/slither.config.json | 4 + .../src/evm/ERC20Custody.sol | 84 +- .../prototypes => v2/src}/evm/GatewayEVM.sol | 167 +- .../src/evm/ZetaConnectorBase.sol | 63 +- .../src}/evm/ZetaConnectorNative.sol | 59 +- .../src}/evm/ZetaConnectorNonNative.sol | 65 +- .../src/evm/interfaces/IERC20Custody.sol | 15 +- .../src/evm/interfaces}/IGatewayEVM.sol | 19 +- .../src/evm/interfaces}/IZetaConnector.sol | 2 +- .../src/evm/interfaces}/IZetaNonEthNew.sol | 4 +- .../src}/zevm/GatewayZEVM.sol | 135 +- .../src/zevm/interfaces}/IGatewayZEVM.sol | 50 +- v2/src/zevm/interfaces/ISystem.sol | 19 + v2/src/zevm/interfaces/IWZETA.sol | 27 + v2/src/zevm/interfaces/IZRC20.sol | 57 + v2/src/zevm/interfaces/zContract.sol | 38 + {testFoundry => v2/test}/GatewayEVM.t.sol | 210 +- .../test}/GatewayEVMUpgrade.t.sol | 60 +- {testFoundry => v2/test}/GatewayEVMZEVM.t.sol | 130 +- {testFoundry => v2/test}/GatewayZEVM.t.sol | 288 +- .../test}/ZetaConnectorNative.t.sol | 98 +- .../test}/ZetaConnectorNonNative.t.sol | 117 +- .../test/fuzz/ERC20CustodyEchidnaTest.sol | 24 +- .../test}/fuzz/GatewayEVMEchidnaTest.sol | 12 +- {test => v2/test}/fuzz/readme.md | 4 +- .../test/utils}/GatewayEVMUpgradeTest.sol | 150 +- .../evm => v2/test/utils}/IReceiverEVM.sol | 2 +- .../evm => v2/test/utils}/ReceiverEVM.sol | 10 +- .../zevm => v2/test/utils}/SenderZEVM.sol | 22 +- v2/test/utils/SystemContract.sol | 176 + v2/test/utils/SystemContractMock.sol | 85 + .../evm => v2/test/utils}/TestERC20.sol | 4 +- .../zevm => v2/test/utils}/TestZContract.sol | 18 +- v2/test/utils/WZETA.sol | 62 + .../ZRC20New.sol => v2/test/utils/ZRC20.sol | 22 +- v2/test/utils/Zeta.non-eth.sol | 112 + v2/tsconfig.json | 22 + v2/typechain-types/AccessControl.ts | 324 + .../AccessControlUpgradeable.ts | 359 + v2/typechain-types/Address.ts | 69 + v2/typechain-types/BeaconProxy.ts | 105 + v2/typechain-types/ContextUpgradeable.ts | 105 + v2/typechain-types/ERC165.ts | 94 + v2/typechain-types/ERC165Upgradeable.ts | 130 + 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 + .../typechain-types/ERC20}/index.ts | 2 +- v2/typechain-types/ERC20Burnable.ts | 313 + v2/typechain-types/ERC20Custody.ts | 669 + v2/typechain-types/ERC20CustodyEchidnaTest.ts | 713 + v2/typechain-types/GatewayEVM.ts | 1119 ++ v2/typechain-types/GatewayEVMEchidnaTest.ts | 1163 ++ v2/typechain-types/GatewayEVMUpgradeTest.ts | 1156 ++ v2/typechain-types/GatewayZEVM.ts | 1018 + v2/typechain-types/IAccessControl.ts | 292 + v2/typechain-types/IBeacon.ts | 90 + v2/typechain-types/IERC165.ts | 94 + v2/typechain-types/IERC1967.ts | 168 + v2/typechain-types/IERC20.ts | 286 + .../IERC20Custody.sol/IERC20CustodyErrors.ts | 69 + .../IERC20Custody.sol/IERC20CustodyEvents.ts | 201 + v2/typechain-types/IERC20Custody.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 + .../typechain-types}/IERC721.sol/index.ts | 0 .../IGatewayEVM.sol/IGatewayEVM.ts | 161 + .../IGatewayEVM.sol/IGatewayEVMErrors.ts | 69 + .../IGatewayEVM.sol/IGatewayEVMEvents.ts | 325 + .../IGatewayEVM.sol/Revertable.ts | 84 + .../typechain-types}/IGatewayEVM.sol/index.ts | 0 .../IGatewayZEVM.sol/IGatewayZEVM.ts | 294 + .../IGatewayZEVM.sol/IGatewayZEVMErrors.ts | 69 + .../IGatewayZEVM.sol/IGatewayZEVMEvents.ts | 175 + .../IGatewayZEVM.sol/index.ts | 0 v2/typechain-types/IMulticall3.ts | 416 + v2/typechain-types/IProxyAdmin.ts | 117 + .../IReceiverEVM.sol/IReceiverEVMEvents.ts | 277 + .../IReceiverEVM.sol/index.ts | 0 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 + .../typechain-types/IWZETA.sol}/index.ts | 2 +- 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 | 0 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/Pausable.ts | 150 + v2/typechain-types/PausableUpgradeable.ts | 183 + 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 | 163 + v2/typechain-types/StdAssertions.ts | 762 + v2/typechain-types/StdError.sol/StdError.ts | 199 + .../typechain-types}/StdError.sol/index.ts | 0 v2/typechain-types/StdInvariant.ts | 273 + .../StdStorage.sol/StdStorageSafe.ts | 153 + .../typechain-types}/StdStorage.sol/index.ts | 0 .../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 +++++++ .../typechain-types}/Vm.sol/index.ts | 0 v2/typechain-types/WZETA.sol/WETH9.ts | 369 + .../typechain-types/WZETA.sol}/index.ts | 2 +- v2/typechain-types/ZRC20.sol/ZRC20.ts | 661 + v2/typechain-types/ZRC20.sol/ZRC20Errors.ts | 69 + .../typechain-types/ZRC20.sol}/index.ts | 2 +- .../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/ZetaConnectorBase.ts | 676 + v2/typechain-types/ZetaConnectorNative.ts | 676 + v2/typechain-types/ZetaConnectorNonNative.ts | 733 + 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 + .../AccessControlUpgradeable__factory.ts | 277 + .../factories/AccessControl__factory.ts | 247 + .../factories/Address__factory.ts | 88 + .../factories/BeaconProxy__factory.ts | 149 + .../factories/ContextUpgradeable__factory.ts | 48 + .../factories/ERC165Upgradeable__factory.ts | 67 + .../factories/ERC165__factory.ts | 38 + .../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 + .../ERC20CustodyEchidnaTest__factory.ts | 681 + .../factories/ERC20Custody__factory.ts | 662 + .../factories/ERC20__factory.ts | 327 + .../GatewayEVMEchidnaTest__factory.ts | 1117 ++ .../GatewayEVMUpgradeTest__factory.ts | 1093 ++ .../factories/GatewayEVM__factory.ts | 1056 + .../factories/GatewayZEVM__factory.ts | 1067 + .../factories/IAccessControl__factory.ts | 218 + .../factories/IBeacon__factory.ts | 32 + .../factories}/IERC165__factory.ts | 25 +- .../factories/IERC1967__factory.ts | 64 + .../IERC20CustodyErrors__factory.ts | 34 + .../IERC20CustodyEvents__factory.ts | 85 +- .../factories/IERC20Custody.sol/index.ts | 5 + .../factories/IERC20Metadata__factory.ts | 247 + .../factories/IERC20Permit__factory.ts | 97 + .../factories}/IERC20__factory.ts | 186 +- .../IERC721.sol/IERC721Enumerable__factory.ts | 271 +- .../IERC721.sol/IERC721Metadata__factory.ts | 267 +- .../IERC721TokenReceiver__factory.ts | 27 +- .../IERC721.sol/IERC721__factory.ts | 253 +- .../factories}/IERC721.sol/index.ts | 0 .../IGatewayEVMErrors__factory.ts | 39 +- .../IGatewayEVMEvents__factory.ts | 135 +- .../IGatewayEVM.sol/IGatewayEVM__factory.ts | 48 +- .../IGatewayEVM.sol}/Revertable__factory.ts | 20 +- .../factories}/IGatewayEVM.sol/index.ts | 0 .../IGatewayZEVMErrors__factory.ts | 47 +- .../IGatewayZEVMEvents__factory.ts | 77 +- .../IGatewayZEVM.sol/IGatewayZEVM__factory.ts | 141 +- .../factories}/IGatewayZEVM.sol/index.ts | 0 .../factories}/IMulticall3__factory.ts | 237 +- .../factories/IProxyAdmin__factory.ts | 60 + .../IReceiverEVMEvents__factory.ts | 105 +- .../factories}/IReceiverEVM.sol/index.ts | 0 .../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 | 185 +- .../factories/IZRC20.sol/index.ts | 6 + .../IZetaConnectorEvents__factory.ts | 63 +- .../factories}/IZetaConnector.sol/index.ts | 0 .../factories}/IZetaNonEthNew__factory.ts | 189 +- .../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/PausableUpgradeable__factory.ts | 101 + .../factories/Pausable__factory.ts | 68 + .../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 | 170 + .../factories}/StdAssertions__factory.ts | 312 +- .../StdError.sol/StdError__factory.ts | 178 + .../factories}/StdError.sol/index.ts | 0 .../factories}/StdInvariant__factory.ts | 106 +- .../StdStorage.sol/StdStorageSafe__factory.ts | 78 +- .../factories}/StdStorage.sol/index.ts | 0 .../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 + .../factories}/Test__factory.ts | 713 +- .../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 | 3435 ++-- .../factories}/Vm.sol/Vm__factory.ts | 4126 ++-- .../factories}/Vm.sol/index.ts | 0 .../factories/WZETA.sol/WETH9__factory.ts | 345 + .../factories/WZETA.sol/index.ts | 4 + .../ZRC20.sol}/ZRC20Errors__factory.ts | 46 +- .../factories/ZRC20.sol/ZRC20__factory.ts | 729 + .../factories/ZRC20.sol}/index.ts | 2 +- .../Zeta.non-eth.sol/ZetaErrors__factory.ts | 76 + .../ZetaNonEthInterface__factory.ts | 249 +- .../Zeta.non-eth.sol/ZetaNonEth__factory.ts | 680 + .../factories/Zeta.non-eth.sol/index.ts | 6 + .../factories/ZetaConnectorBase__factory.ts | 549 + .../factories/ZetaConnectorNative__factory.ts | 688 + .../ZetaConnectorNonNative__factory.ts | 694 + .../IERC1822Proxiable__factory.ts | 38 + .../factories/draft-IERC1822.sol}/index.ts | 2 +- .../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 | 80 + .../interfaces/IWZeta.sol/IWETH9__factory.ts | 263 + .../factories/interfaces/IWZeta.sol/index.ts | 4 + .../factories/interfaces/index.ts | 4 + .../introspection/IERC165__factory.ts | 38 + .../factories/introspection/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 | 241 + .../interfaces/IWZeta.sol/IWETH9.ts | 345 + .../interfaces/IWZeta.sol/index.ts | 4 + v2/typechain-types/interfaces/index.ts | 5 + v2/typechain-types/introspection/IERC165.ts | 94 + v2/typechain-types/introspection/index.ts | 4 + 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 | 1549 ++ 1271 files changed, 200893 insertions(+), 104140 deletions(-) rename .github/workflows/{generated-files.yaml => generated-files_v1.yaml} (90%) create mode 100644 .github/workflows/generated-files_v2.yaml rename .github/workflows/{lint.yaml => lint_v1.yaml} (82%) rename .github/workflows/{build.yaml => lint_v2.yaml} (50%) rename .github/workflows/{publish-npm.yaml => publish-npm_v1.yaml} (87%) rename .github/workflows/{slither.yaml => slither_v2.yaml} (79%) rename .github/workflows/{test.yaml => test_v1.yaml} (75%) rename .github/workflows/{coverage.yaml => test_v2.yaml} (67%) create mode 100644 README.md delete mode 100644 foundry.toml delete mode 160000 lib/forge-std delete mode 100644 pkg/contracts/prototypes/evm/erc20custodynew.sol/erc20custodynew.go delete mode 100644 pkg/contracts/prototypes/evm/ierc20custodynew.sol/ierc20custodynewerrors.go delete mode 100644 pkg/contracts/prototypes/evm/ierc20custodynew.sol/ierc20custodynewevents.go delete mode 100644 pkg/contracts/prototypes/evm/zetaconnectornative.sol/zetaconnectornative.go delete mode 100644 pkg/contracts/prototypes/evm/zetaconnectornewbase.sol/zetaconnectornewbase.go delete mode 100644 pkg/contracts/prototypes/evm/zetaconnectornonnative.sol/zetaconnectornonnative.go delete mode 100644 pkg/contracts/prototypes/zevm/gatewayzevm.sol/gatewayzevm.go delete mode 100644 pkg/contracts/zevm/zrc20new.sol/zrc20new.go delete mode 100644 pkg/openzeppelin/contracts-upgradeable/access/ownableupgradeable.sol/ownableupgradeable.go delete mode 100644 pkg/openzeppelin/contracts-upgradeable/interfaces/ierc1967upgradeable.sol/ierc1967upgradeable.go delete mode 100644 pkg/openzeppelin/contracts-upgradeable/proxy/beacon/ibeaconupgradeable.sol/ibeaconupgradeable.go delete mode 100644 pkg/openzeppelin/contracts-upgradeable/proxy/erc1967/erc1967upgradeupgradeable.sol/erc1967upgradeupgradeable.go delete mode 100644 pkg/openzeppelin/contracts-upgradeable/utils/addressupgradeable.sol/addressupgradeable.go delete mode 100644 pkg/openzeppelin/contracts-upgradeable/utils/storageslotupgradeable.sol/storageslotupgradeable.go delete mode 100644 remappings.txt delete mode 100644 scripts/readme.md delete mode 100644 scripts/worker.ts delete mode 100644 slither.config.json delete mode 100644 tasks/localnet.ts delete mode 100644 test/prototypes/GatewayEVMUniswap.spec.ts delete mode 100644 typechain-types/contracts/index.ts delete mode 100644 typechain-types/contracts/prototypes/ERC20Custody.ts delete mode 100644 typechain-types/contracts/prototypes/ERC20CustodyNew.ts delete mode 100644 typechain-types/contracts/prototypes/Gateway.ts delete mode 100644 typechain-types/contracts/prototypes/GatewayUpgradeTest.ts delete mode 100644 typechain-types/contracts/prototypes/GatewayV2.sol/Gateway.ts delete mode 100644 typechain-types/contracts/prototypes/GatewayV2.sol/GatewayV2.ts delete mode 100644 typechain-types/contracts/prototypes/GatewayV2.sol/index.ts delete mode 100644 typechain-types/contracts/prototypes/GatewayV2.ts delete mode 100644 typechain-types/contracts/prototypes/Receiver.ts delete mode 100644 typechain-types/contracts/prototypes/TestERC20.ts delete mode 100644 typechain-types/contracts/prototypes/WETH9.ts delete mode 100644 typechain-types/contracts/prototypes/evm/ERC20CustodyNew.ts delete mode 100644 typechain-types/contracts/prototypes/evm/ERC20CustodyNewEchidnaTest.ts delete mode 100644 typechain-types/contracts/prototypes/evm/Gateway.ts delete mode 100644 typechain-types/contracts/prototypes/evm/GatewayEVM.sol/GatewayEVM.ts delete mode 100644 typechain-types/contracts/prototypes/evm/GatewayEVM.sol/Revertable.ts delete mode 100644 typechain-types/contracts/prototypes/evm/GatewayEVM.sol/index.ts delete mode 100644 typechain-types/contracts/prototypes/evm/GatewayEVM.t.sol/GatewayEVMTest.ts delete mode 100644 typechain-types/contracts/prototypes/evm/GatewayEVM.ts delete mode 100644 typechain-types/contracts/prototypes/evm/GatewayEVMEchidnaTest.ts delete mode 100644 typechain-types/contracts/prototypes/evm/GatewayEVMUpgradeTest.ts delete mode 100644 typechain-types/contracts/prototypes/evm/GatewayUpgradeTest.ts delete mode 100644 typechain-types/contracts/prototypes/evm/IERC20CustodyNew.sol/IERC20CustodyNewErrors.ts delete mode 100644 typechain-types/contracts/prototypes/evm/IERC20CustodyNew.sol/IERC20CustodyNewEvents.ts delete mode 100644 typechain-types/contracts/prototypes/evm/IERC20CustodyNew.sol/index.ts delete mode 100644 typechain-types/contracts/prototypes/evm/IGatewayEVM.sol/IGatewayEVM.ts delete mode 100644 typechain-types/contracts/prototypes/evm/IGatewayEVM.sol/IGatewayEVMErrors.ts delete mode 100644 typechain-types/contracts/prototypes/evm/IGatewayEVM.sol/IGatewayEVMEvents.ts delete mode 100644 typechain-types/contracts/prototypes/evm/IGatewayEVM.sol/Revertable.ts delete mode 100644 typechain-types/contracts/prototypes/evm/IReceiverEVM.sol/IReceiverEVMEvents.ts delete mode 100644 typechain-types/contracts/prototypes/evm/IZetaConnector.sol/IZetaConnectorEvents.ts delete mode 100644 typechain-types/contracts/prototypes/evm/IZetaNonEthNew.ts delete mode 100644 typechain-types/contracts/prototypes/evm/Receiver.ts delete mode 100644 typechain-types/contracts/prototypes/evm/ReceiverEVM.ts delete mode 100644 typechain-types/contracts/prototypes/evm/TestERC20.ts delete mode 100644 typechain-types/contracts/prototypes/evm/ZetaConnectorNative.ts delete mode 100644 typechain-types/contracts/prototypes/evm/ZetaConnectorNew.ts delete mode 100644 typechain-types/contracts/prototypes/evm/ZetaConnectorNewBase.ts delete mode 100644 typechain-types/contracts/prototypes/evm/ZetaConnectorNonNative.ts delete mode 100644 typechain-types/contracts/prototypes/evm/index.ts delete mode 100644 typechain-types/contracts/prototypes/evm/interfaces.sol/IGateway.ts delete mode 100644 typechain-types/contracts/prototypes/evm/interfaces.sol/IGatewayEVM.ts delete mode 100644 typechain-types/contracts/prototypes/evm/interfaces.sol/IGatewayEVMErrors.ts delete mode 100644 typechain-types/contracts/prototypes/evm/interfaces.sol/IGatewayEVMEvents.ts delete mode 100644 typechain-types/contracts/prototypes/evm/interfaces.sol/IReceiverEVMEvents.ts delete mode 100644 typechain-types/contracts/prototypes/evm/interfaces.sol/index.ts delete mode 100644 typechain-types/contracts/prototypes/interfaces.sol/IGateway.ts delete mode 100644 typechain-types/contracts/prototypes/test/GatewayEVM.t.sol/GatewayEVMInboundTest.ts delete mode 100644 typechain-types/contracts/prototypes/test/GatewayEVM.t.sol/GatewayEVMTest.ts delete mode 100644 typechain-types/contracts/prototypes/test/GatewayEVM.t.sol/index.ts delete mode 100644 typechain-types/contracts/prototypes/test/GatewayEVMZEVM.t.sol/GatewayEVMZEVMTest.ts delete mode 100644 typechain-types/contracts/prototypes/test/GatewayIntegration.t.sol/GatewayIntegrationTest.ts delete mode 100644 typechain-types/contracts/prototypes/test/GatewayZEVM.t.sol/GatewayZEVMInboundTest.ts delete mode 100644 typechain-types/contracts/prototypes/test/GatewayZEVM.t.sol/GatewayZEVMOutboundTest.ts delete mode 100644 typechain-types/contracts/prototypes/test/GatewayZEVM.t.sol/index.ts delete mode 100644 typechain-types/contracts/prototypes/test/index.ts delete mode 100644 typechain-types/contracts/prototypes/zevm/GatewayZEVM.ts delete mode 100644 typechain-types/contracts/prototypes/zevm/IGatewayZEVM.sol/IGatewayZEVM.ts delete mode 100644 typechain-types/contracts/prototypes/zevm/IGatewayZEVM.sol/IGatewayZEVMErrors.ts delete mode 100644 typechain-types/contracts/prototypes/zevm/IGatewayZEVM.sol/IGatewayZEVMEvents.ts delete mode 100644 typechain-types/contracts/prototypes/zevm/Sender.ts delete mode 100644 typechain-types/contracts/prototypes/zevm/SenderZEVM.ts delete mode 100644 typechain-types/contracts/prototypes/zevm/TestZContract.ts delete mode 100644 typechain-types/contracts/prototypes/zevm/ZRC20New.sol/ZRC20Errors.ts delete mode 100644 typechain-types/contracts/prototypes/zevm/ZRC20New.sol/ZRC20New.ts delete mode 100644 typechain-types/contracts/prototypes/zevm/index.ts delete mode 100644 typechain-types/contracts/prototypes/zevm/interfaces.sol/IGatewayZEVM.ts delete mode 100644 typechain-types/contracts/prototypes/zevm/interfaces.sol/IGatewayZEVMErrors.ts delete mode 100644 typechain-types/contracts/prototypes/zevm/interfaces.sol/IGatewayZEVMEvents.ts delete mode 100644 typechain-types/contracts/prototypes/zevm/interfaces.sol/index.ts delete mode 100644 typechain-types/contracts/zevm/ZRC20New.sol/ZRC20Errors.ts delete mode 100644 typechain-types/contracts/zevm/ZRC20New.sol/ZRC20New.ts delete mode 100644 typechain-types/contracts/zevm/ZRC20New.sol/index.ts delete mode 100644 typechain-types/factories/@openzeppelin/index.ts delete mode 100644 typechain-types/factories/contracts/index.ts delete mode 100644 typechain-types/factories/contracts/prototypes/ERC20CustodyNew__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/ERC20Custody__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/GatewayUpgradeTest__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/GatewayV2.sol/GatewayV2__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/GatewayV2.sol/Gateway__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/GatewayV2.sol/index.ts delete mode 100644 typechain-types/factories/contracts/prototypes/GatewayV2__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/Gateway__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/Receiver__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/TestERC20__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/WETH9__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/evm/ERC20CustodyNewEchidnaTest__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/evm/ERC20CustodyNew__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/evm/GatewayEVM.sol/GatewayEVM__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/evm/GatewayEVM.sol/index.ts delete mode 100644 typechain-types/factories/contracts/prototypes/evm/GatewayEVM.t.sol/GatewayEVMTest__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/evm/GatewayEVM.t.sol/index.ts delete mode 100644 typechain-types/factories/contracts/prototypes/evm/GatewayEVMEchidnaTest__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/evm/GatewayEVMUpgradeTest__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/evm/GatewayEVM__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/evm/GatewayUpgradeTest__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/evm/Gateway__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/evm/IERC20CustodyNew.sol/IERC20CustodyNewErrors__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/evm/IERC20CustodyNew.sol/index.ts delete mode 100644 typechain-types/factories/contracts/prototypes/evm/IGatewayEVM.sol/IGatewayEVMErrors__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/evm/IGatewayEVM.sol/Revertable__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/evm/ReceiverEVM__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/evm/Receiver__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/evm/TestERC20__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/evm/ZetaConnectorNative__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/evm/ZetaConnectorNewEth__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/evm/ZetaConnectorNewNonEth__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/evm/ZetaConnectorNew__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/evm/ZetaConnectorNonNative__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/evm/index.ts delete mode 100644 typechain-types/factories/contracts/prototypes/evm/interfaces.sol/IGatewayEVM__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/evm/interfaces.sol/IGateway__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/evm/interfaces.sol/IReceiverEVMEvents__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/evm/interfaces.sol/index.ts delete mode 100644 typechain-types/factories/contracts/prototypes/interfaces.sol/IGateway__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/test/GatewayEVM.t.sol/GatewayEVMInboundTest__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/test/GatewayEVM.t.sol/GatewayEVMTest__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/test/GatewayEVM.t.sol/index.ts delete mode 100644 typechain-types/factories/contracts/prototypes/test/GatewayEVMZEVM.t.sol/GatewayEVMZEVMTest__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/test/GatewayEVMZEVM.t.sol/index.ts delete mode 100644 typechain-types/factories/contracts/prototypes/test/GatewayIntegration.t.sol/GatewayIntegrationTest__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/test/GatewayIntegration.t.sol/index.ts delete mode 100644 typechain-types/factories/contracts/prototypes/test/GatewayZEVM.t.sol/GatewayZEVMInboundTest__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/test/GatewayZEVM.t.sol/GatewayZEVMOutboundTest__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/test/GatewayZEVM.t.sol/index.ts delete mode 100644 typechain-types/factories/contracts/prototypes/test/index.ts delete mode 100644 typechain-types/factories/contracts/prototypes/zevm/GatewayZEVM__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/zevm/SenderZEVM__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/zevm/Sender__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/zevm/TestZContract__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/zevm/ZRC20New.sol/ZRC20New__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/zevm/index.ts delete mode 100644 typechain-types/factories/contracts/prototypes/zevm/interfaces.sol/IGatewayZEVMErrors__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/zevm/interfaces.sol/IGatewayZEVMEvents__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/zevm/interfaces.sol/IGatewayZEVM__factory.ts delete mode 100644 typechain-types/factories/contracts/prototypes/zevm/interfaces.sol/index.ts delete mode 100644 typechain-types/factories/forge-std/StdError.sol/StdError__factory.ts delete mode 100644 typechain-types/factories/forge-std/index.ts delete mode 100644 typechain-types/factories/forge-std/interfaces/index.ts delete mode 100644 typechain-types/factories/forge-std/mocks/MockERC20__factory.ts delete mode 100644 typechain-types/factories/forge-std/mocks/MockERC721__factory.ts delete mode 100644 typechain-types/factories/forge-std/mocks/index.ts delete mode 100644 typechain-types/forge-std/StdAssertions.ts delete mode 100644 typechain-types/forge-std/StdError.sol/StdError.ts delete mode 100644 typechain-types/forge-std/StdInvariant.ts delete mode 100644 typechain-types/forge-std/StdStorage.sol/StdStorageSafe.ts delete mode 100644 typechain-types/forge-std/Test.ts delete mode 100644 typechain-types/forge-std/Vm.sol/Vm.ts delete mode 100644 typechain-types/forge-std/Vm.sol/VmSafe.ts delete mode 100644 typechain-types/forge-std/index.ts delete mode 100644 typechain-types/forge-std/interfaces/IERC165.ts delete mode 100644 typechain-types/forge-std/interfaces/IERC20.ts delete mode 100644 typechain-types/forge-std/interfaces/IERC721.sol/IERC721.ts delete mode 100644 typechain-types/forge-std/interfaces/IERC721.sol/IERC721Enumerable.ts delete mode 100644 typechain-types/forge-std/interfaces/IERC721.sol/IERC721Metadata.ts delete mode 100644 typechain-types/forge-std/interfaces/IERC721.sol/IERC721TokenReceiver.ts delete mode 100644 typechain-types/forge-std/interfaces/IMulticall3.ts delete mode 100644 typechain-types/forge-std/interfaces/index.ts delete mode 100644 typechain-types/forge-std/mocks/MockERC20.ts delete mode 100644 typechain-types/forge-std/mocks/MockERC721.ts delete mode 100644 typechain-types/forge-std/mocks/index.ts rename .env.example => v1/.env.example (100%) rename .eslintignore => v1/.eslintignore (100%) rename .eslintrc.js => v1/.eslintrc.js (100%) rename .solhint.json => v1/.solhint.json (100%) rename Dockerfile => v1/Dockerfile (100%) rename {contracts => v1/contracts}/evm/ERC20Custody.sol (100%) rename {contracts => v1/contracts}/evm/Zeta.eth.sol (100%) rename {contracts => v1/contracts}/evm/Zeta.non-eth.sol (96%) rename {contracts => v1/contracts}/evm/ZetaConnector.base.sol (100%) rename {contracts => v1/contracts}/evm/ZetaConnector.eth.sol (100%) rename {contracts => v1/contracts}/evm/ZetaConnector.non-eth.sol (100%) rename {contracts => v1/contracts}/evm/interfaces/ConnectorErrors.sol (100%) rename {contracts => v1/contracts}/evm/interfaces/ZetaErrors.sol (97%) rename {contracts => v1/contracts}/evm/interfaces/ZetaInteractorErrors.sol (100%) rename {contracts => v1/contracts}/evm/interfaces/ZetaInterfaces.sol (99%) rename {contracts => v1/contracts}/evm/interfaces/ZetaNonEthInterface.sol (93%) rename {contracts => v1/contracts}/evm/testing/AttackerContract.sol (100%) rename {contracts => v1/contracts}/evm/testing/ERC20Mock.sol (100%) rename {contracts => v1/contracts}/evm/testing/TestUniswapV3Contracts.sol (100%) rename {contracts => v1/contracts}/evm/testing/ZetaInteractorMock.sol (100%) rename {contracts => v1/contracts}/evm/testing/ZetaReceiverMock.sol (100%) rename {contracts => v1/contracts}/evm/tools/ImmutableCreate2Factory.sol (100%) rename {contracts => v1/contracts}/evm/tools/ZetaInteractor.sol (100%) rename {contracts => v1/contracts}/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol (100%) rename {contracts => v1/contracts}/evm/tools/ZetaTokenConsumerTrident.strategy.sol (100%) rename {contracts => v1/contracts}/evm/tools/ZetaTokenConsumerUniV2.strategy.sol (100%) rename {contracts => v1/contracts}/evm/tools/ZetaTokenConsumerUniV3.strategy.sol (100%) rename {contracts => v1/contracts}/evm/tools/ZetaTokenConsumerZEVM.strategy.sol (100%) rename {contracts => v1/contracts}/evm/tools/interfaces/TridentConcentratedLiquidityPoolFactory.sol (100%) rename {contracts => v1/contracts}/evm/tools/interfaces/TridentIPoolRouter.sol (100%) rename {contracts => v1/contracts}/zevm/SystemContract.sol (100%) rename {contracts => v1/contracts}/zevm/Uniswap.sol (100%) rename {contracts => v1/contracts}/zevm/UniswapPeriphery.sol (100%) rename {contracts => v1/contracts}/zevm/WZETA.sol (100%) rename {contracts => v1/contracts}/zevm/ZRC20.sol (100%) rename {contracts => v1/contracts}/zevm/ZetaConnectorZEVM.sol (100%) rename {contracts => v1/contracts}/zevm/interfaces/ISystem.sol (100%) rename {contracts => v1/contracts}/zevm/interfaces/IUniswapV2Router01.sol (100%) rename {contracts => v1/contracts}/zevm/interfaces/IUniswapV2Router02.sol (100%) rename {contracts => v1/contracts}/zevm/interfaces/IWZETA.sol (100%) rename {contracts => v1/contracts}/zevm/interfaces/IZRC20.sol (100%) rename {contracts => v1/contracts}/zevm/interfaces/zContract.sol (100%) rename {contracts => v1/contracts}/zevm/testing/SystemContractMock.sol (100%) rename {data => v1/data}/addresses.json (100%) rename {data => v1/data}/addresses.mainnet.json (100%) rename {data => v1/data}/addresses.testnet.json (100%) rename {data => v1/data}/readme.md (100%) rename {docs => v1/docs}/.gitignore (100%) rename {docs => v1/docs}/book.css (100%) rename {docs => v1/docs}/book.toml (100%) rename {docs => v1/docs}/solidity.min.js (100%) rename {docs => v1/docs}/src/README.md (100%) rename {docs => v1/docs}/src/SUMMARY.md (100%) rename {docs => v1/docs}/src/contracts/README.md (100%) rename {docs => v1/docs}/src/contracts/evm/ERC20Custody.sol/contract.ERC20Custody.md (100%) rename {docs => v1/docs}/src/contracts/evm/README.md (100%) rename {docs => v1/docs}/src/contracts/evm/Zeta.eth.sol/contract.ZetaEth.md (100%) rename {docs => v1/docs}/src/contracts/evm/Zeta.non-eth.sol/contract.ZetaNonEth.md (100%) rename {docs => v1/docs}/src/contracts/evm/ZetaConnector.base.sol/contract.ZetaConnectorBase.md (100%) rename {docs => v1/docs}/src/contracts/evm/ZetaConnector.eth.sol/contract.ZetaConnectorEth.md (100%) rename {docs => v1/docs}/src/contracts/evm/ZetaConnector.non-eth.sol/contract.ZetaConnectorNonEth.md (100%) rename {docs => v1/docs}/src/contracts/evm/interfaces/ConnectorErrors.sol/interface.ConnectorErrors.md (100%) rename {docs => v1/docs}/src/contracts/evm/interfaces/README.md (100%) rename {docs => v1/docs}/src/contracts/evm/interfaces/ZetaErrors.sol/interface.ZetaErrors.md (100%) rename {docs => v1/docs}/src/contracts/evm/interfaces/ZetaInteractorErrors.sol/interface.ZetaInteractorErrors.md (100%) rename {docs => v1/docs}/src/contracts/evm/interfaces/ZetaInterfaces.sol/interface.ZetaCommonErrors.md (100%) rename {docs => v1/docs}/src/contracts/evm/interfaces/ZetaInterfaces.sol/interface.ZetaConnector.md (100%) rename {docs => v1/docs}/src/contracts/evm/interfaces/ZetaInterfaces.sol/interface.ZetaInterfaces.md (100%) rename {docs => v1/docs}/src/contracts/evm/interfaces/ZetaInterfaces.sol/interface.ZetaReceiver.md (100%) rename {docs => v1/docs}/src/contracts/evm/interfaces/ZetaInterfaces.sol/interface.ZetaTokenConsumer.md (100%) rename {docs => v1/docs}/src/contracts/evm/interfaces/ZetaNonEthInterface.sol/interface.ZetaNonEthInterface.md (100%) rename {docs => v1/docs}/src/contracts/evm/testing/AttackerContract.sol/contract.AttackerContract.md (100%) rename {docs => v1/docs}/src/contracts/evm/testing/AttackerContract.sol/interface.Victim.md (100%) rename {docs => v1/docs}/src/contracts/evm/testing/ERC20Mock.sol/contract.ERC20Mock.md (100%) rename {docs => v1/docs}/src/contracts/evm/testing/README.md (100%) rename {docs => v1/docs}/src/contracts/evm/testing/TestUniswapV3Contracts.sol/interface.INonfungiblePositionManager.md (100%) rename {docs => v1/docs}/src/contracts/evm/testing/TestUniswapV3Contracts.sol/interface.IPoolInitializer.md (100%) rename {docs => v1/docs}/src/contracts/evm/testing/ZetaInteractorMock.sol/contract.ZetaInteractorMock.md (100%) rename {docs => v1/docs}/src/contracts/evm/testing/ZetaReceiverMock.sol/contract.ZetaReceiverMock.md (100%) rename {docs => v1/docs}/src/contracts/evm/tools/ImmutableCreate2Factory.sol/contract.ImmutableCreate2Factory.md (100%) rename {docs => v1/docs}/src/contracts/evm/tools/ImmutableCreate2Factory.sol/interface.Ownable.md (100%) rename {docs => v1/docs}/src/contracts/evm/tools/README.md (100%) rename {docs => v1/docs}/src/contracts/evm/tools/ZetaInteractor.sol/abstract.ZetaInteractor.md (100%) rename {docs => v1/docs}/src/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/contract.ZetaTokenConsumerPancakeV3.md (100%) rename {docs => v1/docs}/src/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/interface.ISwapRouterPancake.md (100%) rename {docs => v1/docs}/src/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/interface.WETH9.md (100%) rename {docs => v1/docs}/src/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/interface.ZetaTokenConsumerUniV3Errors.md (100%) rename {docs => v1/docs}/src/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/contract.ZetaTokenConsumerTrident.md (100%) rename {docs => v1/docs}/src/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/interface.WETH9.md (100%) rename {docs => v1/docs}/src/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/interface.ZetaTokenConsumerTridentErrors.md (100%) rename {docs => v1/docs}/src/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/contract.ZetaTokenConsumerUniV2.md (100%) rename {docs => v1/docs}/src/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/interface.ZetaTokenConsumerUniV2Errors.md (100%) rename {docs => v1/docs}/src/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/contract.ZetaTokenConsumerUniV3.md (100%) rename {docs => v1/docs}/src/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/interface.WETH9.md (100%) rename {docs => v1/docs}/src/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/interface.ZetaTokenConsumerUniV3Errors.md (100%) rename {docs => v1/docs}/src/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/contract.ZetaTokenConsumerZEVM.md (100%) rename {docs => v1/docs}/src/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/interface.ZetaTokenConsumerZEVMErrors.md (100%) rename {docs => v1/docs}/src/contracts/evm/tools/interfaces/README.md (100%) rename {docs => v1/docs}/src/contracts/evm/tools/interfaces/TridentConcentratedLiquidityPoolFactory.sol/interface.ConcentratedLiquidityPoolFactory.md (100%) rename {docs => v1/docs}/src/contracts/evm/tools/interfaces/TridentIPoolRouter.sol/interface.IPoolRouter.md (100%) rename {docs => v1/docs}/src/contracts/zevm/Interfaces.sol/enum.CoinType.md (100%) rename {docs => v1/docs}/src/contracts/zevm/Interfaces.sol/interface.ISystem.md (100%) rename {docs => v1/docs}/src/contracts/zevm/Interfaces.sol/interface.IZRC20.md (100%) rename {docs => v1/docs}/src/contracts/zevm/Interfaces.sol/interface.IZRC20Metadata.md (100%) rename {docs => v1/docs}/src/contracts/zevm/README.md (100%) rename {docs => v1/docs}/src/contracts/zevm/SystemContract.sol/contract.SystemContract.md (100%) rename {docs => v1/docs}/src/contracts/zevm/SystemContract.sol/interface.SystemContractErrors.md (100%) rename {docs => v1/docs}/src/contracts/zevm/Uniswap.sol/contract.UniswapImports.md (100%) rename {docs => v1/docs}/src/contracts/zevm/UniswapPeriphery.sol/contract.UniswapImports.md (100%) rename {docs => v1/docs}/src/contracts/zevm/WZETA.sol/contract.WETH9.md (100%) rename {docs => v1/docs}/src/contracts/zevm/ZRC20.sol/contract.ZRC20.md (100%) rename {docs => v1/docs}/src/contracts/zevm/ZRC20.sol/interface.ZRC20Errors.md (100%) rename {docs => v1/docs}/src/contracts/zevm/ZetaConnectorZEVM.sol/contract.ZetaConnectorZEVM.md (100%) rename {docs => v1/docs}/src/contracts/zevm/ZetaConnectorZEVM.sol/interface.ZetaInterfaces.md (100%) rename {docs => v1/docs}/src/contracts/zevm/ZetaConnectorZEVM.sol/interface.ZetaReceiver.md (100%) rename {docs => v1/docs}/src/contracts/zevm/interfaces/IUniswapV2Router01.sol/interface.IUniswapV2Router01.md (100%) rename {docs => v1/docs}/src/contracts/zevm/interfaces/IUniswapV2Router02.sol/interface.IUniswapV2Router02.md (100%) rename {docs => v1/docs}/src/contracts/zevm/interfaces/IWZETA.sol/interface.IWETH9.md (100%) rename {docs => v1/docs}/src/contracts/zevm/interfaces/IZRC20.sol/interface.IZRC20.md (100%) rename {docs => v1/docs}/src/contracts/zevm/interfaces/README.md (100%) rename {docs => v1/docs}/src/contracts/zevm/interfaces/zContract.sol/interface.zContract.md (100%) rename {docs => v1/docs}/src/contracts/zevm/interfaces/zContract.sol/struct.zContext.md (100%) rename {docs => v1/docs}/src/contracts/zevm/testing/README.md (100%) rename {docs => v1/docs}/src/contracts/zevm/testing/SystemContractMock.sol/contract.SystemContractMock.md (100%) rename {docs => v1/docs}/src/contracts/zevm/testing/SystemContractMock.sol/interface.SystemContractErrors.md (100%) rename go.mod => v1/go.mod (100%) rename go.sum => v1/go.sum (100%) rename hardhat.config.ts => v1/hardhat.config.ts (96%) rename {lib => v1/lib}/ImmutableCreate2Factory/ImmutableCreate2Factory.helpers.ts (100%) rename {lib => v1/lib}/address.helpers.ts (100%) rename {lib => v1/lib}/address.tools.ts (100%) rename {lib => v1/lib}/addresses.ts (100%) rename {lib => v1/lib}/contracts.constants.ts (100%) rename {lib => v1/lib}/contracts.helpers.ts (100%) rename {lib => v1/lib}/deterministic-deploy.helpers.ts (100%) rename {lib => v1/lib}/index.ts (100%) rename {lib => v1/lib}/types.ts (100%) rename package.json => v1/package.json (85%) rename {pkg => v1/pkg}/contracts/evm/erc20custody.sol/erc20custody.go (100%) rename {pkg => v1/pkg}/contracts/evm/interfaces/connectorerrors.sol/connectorerrors.go (100%) rename {pkg => v1/pkg}/contracts/evm/interfaces/zetaerrors.sol/zetaerrors.go (100%) rename {pkg => v1/pkg}/contracts/evm/interfaces/zetainteractorerrors.sol/zetainteractorerrors.go (100%) rename {pkg => v1/pkg}/contracts/evm/interfaces/zetainterfaces.sol/zetacommonerrors.go (100%) rename {pkg => v1/pkg}/contracts/evm/interfaces/zetainterfaces.sol/zetaconnector.go (100%) rename {pkg => v1/pkg}/contracts/evm/interfaces/zetainterfaces.sol/zetainterfaces.go (100%) rename {pkg => v1/pkg}/contracts/evm/interfaces/zetainterfaces.sol/zetareceiver.go (100%) rename {pkg => v1/pkg}/contracts/evm/interfaces/zetainterfaces.sol/zetatokenconsumer.go (100%) rename {pkg => v1/pkg}/contracts/evm/interfaces/zetanonethinterface.sol/zetanonethinterface.go (100%) rename {pkg => v1/pkg}/contracts/evm/testing/attackercontract.sol/attackercontract.go (100%) rename {pkg => v1/pkg}/contracts/evm/testing/attackercontract.sol/victim.go (100%) rename {pkg => v1/pkg}/contracts/evm/testing/erc20mock.sol/erc20mock.go (100%) rename {pkg => v1/pkg}/contracts/evm/testing/testuniswapv3contracts.sol/inonfungiblepositionmanager.go (100%) rename {pkg => v1/pkg}/contracts/evm/testing/testuniswapv3contracts.sol/ipoolinitializer.go (100%) rename {pkg => v1/pkg}/contracts/evm/testing/zetainteractormock.sol/zetainteractormock.go (99%) rename {pkg => v1/pkg}/contracts/evm/testing/zetareceivermock.sol/zetareceivermock.go (99%) rename {pkg => v1/pkg}/contracts/evm/tools/immutablecreate2factory.sol/immutablecreate2factory.go (100%) rename {pkg => v1/pkg}/contracts/evm/tools/immutablecreate2factory.sol/ownable.go (100%) rename {pkg => v1/pkg}/contracts/evm/tools/interfaces/tridentconcentratedliquiditypoolfactory.sol/concentratedliquiditypoolfactory.go (100%) rename {pkg => v1/pkg}/contracts/evm/tools/interfaces/tridentipoolrouter.sol/ipoolrouter.go (100%) rename {pkg => v1/pkg}/contracts/evm/tools/zetainteractor.sol/zetainteractor.go (100%) rename {pkg => v1/pkg}/contracts/evm/tools/zetatokenconsumerpancakev3.strategy.sol/iswaprouterpancake.go (100%) rename {pkg => v1/pkg}/contracts/evm/tools/zetatokenconsumerpancakev3.strategy.sol/weth9.go (100%) rename {pkg => v1/pkg}/contracts/evm/tools/zetatokenconsumerpancakev3.strategy.sol/zetatokenconsumerpancakev3.go (99%) rename {pkg => v1/pkg}/contracts/evm/tools/zetatokenconsumerpancakev3.strategy.sol/zetatokenconsumeruniv3errors.go (100%) rename {pkg => v1/pkg}/contracts/evm/tools/zetatokenconsumertrident.strategy.sol/weth9.go (100%) rename {pkg => v1/pkg}/contracts/evm/tools/zetatokenconsumertrident.strategy.sol/zetatokenconsumertrident.go (99%) rename {pkg => v1/pkg}/contracts/evm/tools/zetatokenconsumertrident.strategy.sol/zetatokenconsumertridenterrors.go (100%) rename {pkg => v1/pkg}/contracts/evm/tools/zetatokenconsumeruniv2.strategy.sol/zetatokenconsumeruniv2.go (99%) rename {pkg => v1/pkg}/contracts/evm/tools/zetatokenconsumeruniv2.strategy.sol/zetatokenconsumeruniv2errors.go (100%) rename {pkg => v1/pkg}/contracts/evm/tools/zetatokenconsumeruniv3.strategy.sol/weth9.go (100%) rename {pkg => v1/pkg}/contracts/evm/tools/zetatokenconsumeruniv3.strategy.sol/zetatokenconsumeruniv3.go (99%) rename {pkg => v1/pkg}/contracts/evm/tools/zetatokenconsumeruniv3.strategy.sol/zetatokenconsumeruniv3errors.go (100%) rename {pkg => v1/pkg}/contracts/evm/tools/zetatokenconsumerzevm.strategy.sol/zetatokenconsumerzevm.go (99%) rename {pkg => v1/pkg}/contracts/evm/tools/zetatokenconsumerzevm.strategy.sol/zetatokenconsumerzevmerrors.go (100%) rename {pkg => v1/pkg}/contracts/evm/zeta.eth.sol/zetaeth.go (100%) rename {pkg => v1/pkg}/contracts/evm/zeta.non-eth.sol/zetanoneth.go (99%) rename {pkg => v1/pkg}/contracts/evm/zetaconnector.base.sol/zetaconnectorbase.go (99%) rename {pkg => v1/pkg}/contracts/evm/zetaconnector.eth.sol/zetaconnectoreth.go (99%) rename {pkg => v1/pkg}/contracts/evm/zetaconnector.non-eth.sol/zetaconnectornoneth.go (99%) rename {pkg => v1/pkg}/contracts/zevm/interfaces/isystem.sol/isystem.go (100%) rename {pkg => v1/pkg}/contracts/zevm/interfaces/iuniswapv2router01.sol/iuniswapv2router01.go (100%) rename {pkg => v1/pkg}/contracts/zevm/interfaces/iuniswapv2router02.sol/iuniswapv2router02.go (100%) rename {pkg => v1/pkg}/contracts/zevm/interfaces/iwzeta.sol/iweth9.go (100%) rename {pkg => v1/pkg}/contracts/zevm/interfaces/izrc20.sol/izrc20.go (100%) rename {pkg => v1/pkg}/contracts/zevm/interfaces/izrc20.sol/izrc20metadata.go (100%) rename {pkg => v1/pkg}/contracts/zevm/interfaces/izrc20.sol/zrc20events.go (100%) rename {pkg => v1/pkg}/contracts/zevm/interfaces/zcontract.sol/universalcontract.go (100%) rename {pkg => v1/pkg}/contracts/zevm/interfaces/zcontract.sol/zcontract.go (100%) rename {pkg => v1/pkg}/contracts/zevm/systemcontract.sol/systemcontract.go (100%) rename {pkg => v1/pkg}/contracts/zevm/systemcontract.sol/systemcontracterrors.go (100%) rename {pkg => v1/pkg}/contracts/zevm/testing/systemcontractmock.sol/systemcontracterrors.go (100%) rename {pkg => v1/pkg}/contracts/zevm/testing/systemcontractmock.sol/systemcontractmock.go (100%) rename {pkg => v1/pkg}/contracts/zevm/uniswap.sol/uniswapimports.go (100%) rename {pkg => v1/pkg}/contracts/zevm/uniswapperiphery.sol/uniswapimports.go (100%) rename {pkg => v1/pkg}/contracts/zevm/wzeta.sol/weth9.go (100%) rename {pkg => v1/pkg}/contracts/zevm/zetaconnectorzevm.sol/zetaconnectorzevm.go (100%) rename {pkg => v1/pkg}/contracts/zevm/zetaconnectorzevm.sol/zetainterfaces.go (100%) rename {pkg => v1/pkg}/contracts/zevm/zetaconnectorzevm.sol/zetareceiver.go (100%) rename {pkg => v1/pkg}/contracts/zevm/zrc20.sol/zrc20.go (100%) rename {pkg => v1/pkg}/contracts/zevm/zrc20.sol/zrc20errors.go (100%) rename {pkg => v1/pkg}/openzeppelin/contracts/access/ownable.sol/ownable.go (100%) rename {pkg => v1/pkg}/openzeppelin/contracts/access/ownable2step.sol/ownable2step.go (100%) rename {pkg => v1/pkg}/openzeppelin/contracts/security/pausable.sol/pausable.go (100%) rename {pkg => v1/pkg}/openzeppelin/contracts/security/reentrancyguard.sol/reentrancyguard.go (100%) rename {pkg => v1/pkg}/openzeppelin/contracts/token/erc20/erc20.sol/erc20.go (100%) rename {pkg => v1/pkg}/openzeppelin/contracts/token/erc20/extensions/erc20burnable.sol/erc20burnable.go (100%) rename {pkg => v1/pkg}/openzeppelin/contracts/token/erc20/extensions/ierc20metadata.sol/ierc20metadata.go (100%) rename {pkg => v1/pkg}/openzeppelin/contracts/token/erc20/ierc20.sol/ierc20.go (100%) rename {pkg => v1/pkg}/openzeppelin/contracts/token/erc20/utils/safeerc20.sol/safeerc20.go (100%) rename {pkg => v1/pkg}/openzeppelin/contracts/utils/address.sol/address.go (100%) rename {pkg => v1/pkg}/openzeppelin/contracts/utils/context.sol/context.go (100%) rename {pkg => v1/pkg}/uniswap/lib/contracts/libraries/transferhelper.sol/transferhelper.go (100%) rename {pkg => v1/pkg}/uniswap/v2-core/contracts/interfaces/ierc20.sol/ierc20.go (100%) rename {pkg => v1/pkg}/uniswap/v2-core/contracts/interfaces/iuniswapv2callee.sol/iuniswapv2callee.go (100%) rename {pkg => v1/pkg}/uniswap/v2-core/contracts/interfaces/iuniswapv2erc20.sol/iuniswapv2erc20.go (100%) rename {pkg => v1/pkg}/uniswap/v2-core/contracts/interfaces/iuniswapv2factory.sol/iuniswapv2factory.go (100%) rename {pkg => v1/pkg}/uniswap/v2-core/contracts/interfaces/iuniswapv2pair.sol/iuniswapv2pair.go (100%) rename {pkg => v1/pkg}/uniswap/v2-core/contracts/libraries/math.sol/math.go (100%) rename {pkg => v1/pkg}/uniswap/v2-core/contracts/libraries/safemath.sol/safemath.go (100%) rename {pkg => v1/pkg}/uniswap/v2-core/contracts/libraries/uq112x112.sol/uq112x112.go (100%) rename {pkg => v1/pkg}/uniswap/v2-core/contracts/uniswapv2erc20.sol/uniswapv2erc20.go (100%) rename {pkg => v1/pkg}/uniswap/v2-core/contracts/uniswapv2factory.sol/uniswapv2factory.go (100%) rename {pkg => v1/pkg}/uniswap/v2-core/contracts/uniswapv2pair.sol/uniswapv2pair.go (100%) rename {pkg => v1/pkg}/uniswap/v2-periphery/contracts/interfaces/ierc20.sol/ierc20.go (100%) rename {pkg => v1/pkg}/uniswap/v2-periphery/contracts/interfaces/iuniswapv2router01.sol/iuniswapv2router01.go (100%) rename {pkg => v1/pkg}/uniswap/v2-periphery/contracts/interfaces/iuniswapv2router02.sol/iuniswapv2router02.go (100%) rename {pkg => v1/pkg}/uniswap/v2-periphery/contracts/interfaces/iweth.sol/iweth.go (100%) rename {pkg => v1/pkg}/uniswap/v2-periphery/contracts/libraries/safemath.sol/safemath.go (100%) rename {pkg => v1/pkg}/uniswap/v2-periphery/contracts/libraries/uniswapv2library.sol/uniswapv2library.go (100%) rename {pkg => v1/pkg}/uniswap/v2-periphery/contracts/uniswapv2router02.sol/uniswapv2router02.go (100%) rename {pkg => v1/pkg}/uniswap/v3-core/contracts/interfaces/callback/iuniswapv3swapcallback.sol/iuniswapv3swapcallback.go (100%) rename {pkg => v1/pkg}/uniswap/v3-core/contracts/interfaces/iuniswapv3factory.sol/iuniswapv3factory.go (100%) rename {pkg => v1/pkg}/uniswap/v3-core/contracts/interfaces/iuniswapv3pool.sol/iuniswapv3pool.go (100%) rename {pkg => v1/pkg}/uniswap/v3-core/contracts/interfaces/pool/iuniswapv3poolactions.sol/iuniswapv3poolactions.go (100%) rename {pkg => v1/pkg}/uniswap/v3-core/contracts/interfaces/pool/iuniswapv3poolderivedstate.sol/iuniswapv3poolderivedstate.go (100%) rename {pkg => v1/pkg}/uniswap/v3-core/contracts/interfaces/pool/iuniswapv3poolevents.sol/iuniswapv3poolevents.go (100%) rename {pkg => v1/pkg}/uniswap/v3-core/contracts/interfaces/pool/iuniswapv3poolimmutables.sol/iuniswapv3poolimmutables.go (100%) rename {pkg => v1/pkg}/uniswap/v3-core/contracts/interfaces/pool/iuniswapv3poolowneractions.sol/iuniswapv3poolowneractions.go (100%) rename {pkg => v1/pkg}/uniswap/v3-core/contracts/interfaces/pool/iuniswapv3poolstate.sol/iuniswapv3poolstate.go (100%) rename {pkg => v1/pkg}/uniswap/v3-periphery/contracts/interfaces/iquoter.sol/iquoter.go (100%) rename {pkg => v1/pkg}/uniswap/v3-periphery/contracts/interfaces/iswaprouter.sol/iswaprouter.go (100%) rename readme.md => v1/readme.md (89%) rename {scripts => v1/scripts}/deployments/core/deploy-deterministic.ts (90%) rename {scripts => v1/scripts}/deployments/core/deploy-erc20-custody.ts (100%) rename {scripts => v1/scripts}/deployments/core/deploy-immutable-create2-factory.ts (100%) rename {scripts => v1/scripts}/deployments/core/deploy-zeta-connector.ts (100%) rename {scripts => v1/scripts}/deployments/core/deploy-zeta-token.ts (100%) rename {scripts => v1/scripts}/deployments/core/deploy.ts (100%) rename {scripts => v1/scripts}/deployments/core/deterministic-deploy-erc20-custody.ts (94%) rename {scripts => v1/scripts}/deployments/core/deterministic-deploy-zeta-connector.ts (90%) rename {scripts => v1/scripts}/deployments/core/deterministic-deploy-zeta-token.ts (90%) rename {scripts => v1/scripts}/deployments/tools/deterministic-deploy-zeta-consumer-pancakev3.ts (100%) rename {scripts => v1/scripts}/deployments/tools/deterministic-deploy-zeta-consumer-v2.ts (100%) rename {scripts => v1/scripts}/deployments/tools/deterministic-deploy-zeta-consumer-v3.ts (100%) rename {scripts => v1/scripts}/deployments/tools/deterministic-get-salt-erc20-custody.ts (100%) rename {scripts => v1/scripts}/deployments/tools/deterministic-get-salt-zeta-connector.ts (100%) rename {scripts => v1/scripts}/deployments/tools/deterministic-get-salt-zeta-token.ts (100%) rename {scripts => v1/scripts}/generate_addresses.sh (100%) rename {scripts => v1/scripts}/generate_addresses_types.ts (100%) rename {scripts => v1/scripts}/generate_go.sh (100%) rename {scripts => v1/scripts}/tools/bytecode-checker/bytecode.constants.ts (100%) rename {scripts => v1/scripts}/tools/bytecode-checker/bytecode.helpers.ts (100%) rename {scripts => v1/scripts}/tools/bytecode-checker/bytecode.ts (100%) rename {scripts => v1/scripts}/tools/send-tss-gas.ts (100%) rename {scripts => v1/scripts}/tools/set-zeta-token-addresses.ts (100%) rename {scripts => v1/scripts}/tools/test-zeta-send.ts (100%) rename {scripts => v1/scripts}/tools/token-approval.ts (100%) rename {scripts => v1/scripts}/tools/update-tss-address.ts (100%) rename {scripts => v1/scripts}/tools/update-zeta-connector.ts (100%) rename {tasks => v1/tasks}/addresses.mainnet.json (100%) rename {tasks => v1/tasks}/addresses.testnet.json (100%) rename {tasks => v1/tasks}/addresses.ts (100%) rename {tasks => v1/tasks}/readme.md (100%) rename {test => v1/test}/ConnectorZEVM.spec.ts (100%) rename {test => v1/test}/ERC20Custody.spec.ts (100%) rename {test => v1/test}/ImmutableCreate2Factory.spec.ts (100%) rename {test => v1/test}/ZRC20.spec.ts (100%) rename {test => v1/test}/Zeta.non-eth.spec.ts (100%) rename {test => v1/test}/ZetaConnector.spec.ts (100%) rename {test => v1/test}/ZetaInteractor.spec.ts (100%) rename {test => v1/test}/ZetaTokenConsumer.spec.ts (100%) rename {test => v1/test}/ZetaTokenConsumerZEVM.spec.ts (100%) rename {test => v1/test}/test.helpers.ts (100%) rename tsconfig.json => v1/tsconfig.json (100%) rename {typechain-types => v1/typechain-types}/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.ts (100%) rename {typechain-types => v1/typechain-types}/@openzeppelin/contracts-upgradeable/access/index.ts (100%) rename {typechain-types => v1/typechain-types}/@openzeppelin/contracts-upgradeable/index.ts (100%) rename {typechain-types => v1/typechain-types}/@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable.ts (100%) rename {typechain-types => v1/typechain-types}/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol/IERC1822ProxiableUpgradeable.ts (100%) rename {typechain-types => v1/typechain-types}/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/@openzeppelin/contracts-upgradeable/interfaces/index.ts (100%) rename {typechain-types => v1/typechain-types}/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.ts (100%) rename {typechain-types => v1/typechain-types}/@openzeppelin/contracts-upgradeable/proxy/ERC1967/index.ts (100%) rename {typechain-types => v1/typechain-types}/@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.ts (100%) rename {typechain-types => v1/typechain-types}/@openzeppelin/contracts-upgradeable/proxy/beacon/index.ts (100%) rename {typechain-types => v1/typechain-types}/@openzeppelin/contracts-upgradeable/proxy/index.ts (100%) rename {typechain-types => v1/typechain-types}/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.ts (100%) rename {typechain-types => v1/typechain-types}/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.ts (100%) rename {typechain-types => v1/typechain-types}/@openzeppelin/contracts-upgradeable/proxy/utils/index.ts (100%) rename {typechain-types => v1/typechain-types}/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.ts (100%) rename {typechain-types => v1/typechain-types}/@openzeppelin/contracts-upgradeable/security/index.ts (100%) rename {typechain-types => v1/typechain-types}/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.ts (100%) rename {typechain-types => v1/typechain-types}/@openzeppelin/contracts-upgradeable/utils/index.ts (100%) rename {typechain-types => v1/typechain-types}/@openzeppelin/contracts/access/Ownable.ts (100%) rename {typechain-types => v1/typechain-types}/@openzeppelin/contracts/access/Ownable2Step.ts (100%) rename {typechain-types => v1/typechain-types}/@openzeppelin/contracts/access/index.ts (100%) rename {typechain-types => v1/typechain-types}/@openzeppelin/contracts/index.ts (100%) rename {typechain-types => v1/typechain-types}/@openzeppelin/contracts/security/Pausable.ts (100%) rename {typechain-types => v1/typechain-types}/@openzeppelin/contracts/security/index.ts (100%) rename {typechain-types => v1/typechain-types}/@openzeppelin/contracts/token/ERC20/ERC20.ts (100%) rename {typechain-types => v1/typechain-types}/@openzeppelin/contracts/token/ERC20/IERC20.ts (100%) rename {typechain-types => v1/typechain-types}/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.ts (100%) rename {typechain-types => v1/typechain-types}/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.ts (100%) rename {typechain-types => v1/typechain-types}/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.ts (100%) rename {typechain-types => v1/typechain-types}/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/@openzeppelin/contracts/token/ERC20/extensions/index.ts (100%) rename {typechain-types => v1/typechain-types}/@openzeppelin/contracts/token/ERC20/index.ts (100%) rename {typechain-types => v1/typechain-types}/@openzeppelin/contracts/token/index.ts (100%) rename {typechain-types/@uniswap/v2-core => v1/typechain-types/@openzeppelin}/index.ts (100%) rename {typechain-types => v1/typechain-types}/@uniswap/index.ts (100%) rename {typechain-types => v1/typechain-types}/@uniswap/v2-core/contracts/UniswapV2ERC20.ts (100%) rename {typechain-types => v1/typechain-types}/@uniswap/v2-core/contracts/UniswapV2Factory.ts (100%) rename {typechain-types => v1/typechain-types}/@uniswap/v2-core/contracts/UniswapV2Pair.ts (100%) rename {typechain-types => v1/typechain-types}/@uniswap/v2-core/contracts/index.ts (100%) rename {typechain-types => v1/typechain-types}/@uniswap/v2-core/contracts/interfaces/IERC20.ts (100%) rename {typechain-types => v1/typechain-types}/@uniswap/v2-core/contracts/interfaces/IUniswapV2Callee.ts (100%) rename {typechain-types => v1/typechain-types}/@uniswap/v2-core/contracts/interfaces/IUniswapV2ERC20.ts (100%) rename {typechain-types => v1/typechain-types}/@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.ts (100%) rename {typechain-types => v1/typechain-types}/@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair.ts (100%) rename {typechain-types => v1/typechain-types}/@uniswap/v2-core/contracts/interfaces/index.ts (100%) rename {typechain-types/@uniswap/v2-periphery => v1/typechain-types/@uniswap/v2-core}/index.ts (100%) rename {typechain-types => v1/typechain-types}/@uniswap/v2-periphery/contracts/UniswapV2Router02.ts (100%) rename {typechain-types => v1/typechain-types}/@uniswap/v2-periphery/contracts/index.ts (100%) rename {typechain-types => v1/typechain-types}/@uniswap/v2-periphery/contracts/interfaces/IERC20.ts (100%) rename {typechain-types => v1/typechain-types}/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01.ts (100%) rename {typechain-types => v1/typechain-types}/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.ts (100%) rename {typechain-types => v1/typechain-types}/@uniswap/v2-periphery/contracts/interfaces/IWETH.ts (100%) rename {typechain-types => v1/typechain-types}/@uniswap/v2-periphery/contracts/interfaces/index.ts (100%) rename {typechain-types/@uniswap/v3-core => v1/typechain-types/@uniswap/v2-periphery}/index.ts (100%) rename {typechain-types => v1/typechain-types}/@uniswap/v3-core/contracts/index.ts (100%) rename {typechain-types => v1/typechain-types}/@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.ts (100%) rename {typechain-types => v1/typechain-types}/@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.ts (100%) rename {typechain-types => v1/typechain-types}/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.ts (100%) rename {typechain-types => v1/typechain-types}/@uniswap/v3-core/contracts/interfaces/callback/index.ts (100%) rename {typechain-types => v1/typechain-types}/@uniswap/v3-core/contracts/interfaces/index.ts (100%) rename {typechain-types => v1/typechain-types}/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.ts (100%) rename {typechain-types => v1/typechain-types}/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.ts (100%) rename {typechain-types => v1/typechain-types}/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.ts (100%) rename {typechain-types => v1/typechain-types}/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.ts (100%) rename {typechain-types => v1/typechain-types}/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.ts (100%) rename {typechain-types => v1/typechain-types}/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.ts (100%) rename {typechain-types => v1/typechain-types}/@uniswap/v3-core/contracts/interfaces/pool/index.ts (100%) rename {typechain-types/@uniswap/v3-periphery => v1/typechain-types/@uniswap/v3-core}/index.ts (100%) rename {typechain-types => v1/typechain-types}/@uniswap/v3-periphery/contracts/index.ts (100%) rename {typechain-types => v1/typechain-types}/@uniswap/v3-periphery/contracts/interfaces/IQuoter.ts (100%) rename {typechain-types => v1/typechain-types}/@uniswap/v3-periphery/contracts/interfaces/ISwapRouter.ts (100%) rename {typechain-types => v1/typechain-types}/@uniswap/v3-periphery/contracts/interfaces/index.ts (100%) rename {typechain-types/@openzeppelin => v1/typechain-types/@uniswap/v3-periphery}/index.ts (60%) rename {typechain-types => v1/typechain-types}/common.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/ERC20Custody.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/Zeta.eth.sol/ZetaEth.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/Zeta.eth.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/Zeta.non-eth.sol/ZetaNonEth.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/Zeta.non-eth.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/ZetaConnector.base.sol/ZetaConnectorBase.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/ZetaConnector.base.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/ZetaConnector.eth.sol/ZetaConnectorEth.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/ZetaConnector.eth.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/ZetaConnector.non-eth.sol/ZetaConnectorNonEth.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/ZetaConnector.non-eth.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/index.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/interfaces/ConnectorErrors.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/interfaces/ZetaErrors.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/interfaces/ZetaInteractorErrors.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/interfaces/ZetaInterfaces.sol/ZetaCommonErrors.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/interfaces/ZetaInterfaces.sol/ZetaConnector.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/interfaces/ZetaInterfaces.sol/ZetaReceiver.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/interfaces/ZetaInterfaces.sol/ZetaTokenConsumer.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/interfaces/ZetaInterfaces.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/interfaces/ZetaNonEthInterface.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/interfaces/index.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/testing/AttackerContract.sol/AttackerContract.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/testing/AttackerContract.sol/Victim.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/testing/AttackerContract.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/testing/ERC20Mock.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/testing/TestUniswapV3Contracts.sol/INonfungiblePositionManager.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/testing/TestUniswapV3Contracts.sol/IPoolInitializer.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/testing/TestUniswapV3Contracts.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/testing/ZetaInteractorMock.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/testing/ZetaReceiverMock.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/testing/index.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/tools/ImmutableCreate2Factory.sol/ImmutableCreate2Factory.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/tools/ImmutableCreate2Factory.sol/Ownable.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/tools/ImmutableCreate2Factory.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/tools/ZetaInteractor.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/ISwapRouterPancake.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/WETH9.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/ZetaTokenConsumerPancakeV3.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/ZetaTokenConsumerUniV3Errors.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/WETH9.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/ZetaTokenConsumerTrident.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/ZetaTokenConsumerTridentErrors.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/ZetaTokenConsumerUniV2.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/ZetaTokenConsumerUniV2Errors.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/WETH9.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/ZetaTokenConsumerUniV3.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/ZetaTokenConsumerUniV3Errors.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/ZetaTokenConsumerZEVM.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/ZetaTokenConsumerZEVMErrors.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/tools/index.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/tools/interfaces/TridentConcentratedLiquidityPoolFactory.sol/ConcentratedLiquidityPoolFactory.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/tools/interfaces/TridentConcentratedLiquidityPoolFactory.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/tools/interfaces/TridentIPoolRouter.sol/IPoolRouter.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/tools/interfaces/TridentIPoolRouter.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/evm/tools/interfaces/index.ts (100%) rename {typechain-types/contracts/prototypes => v1/typechain-types/contracts}/index.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/zevm/Interfaces.sol/ISystem.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/zevm/Interfaces.sol/IZRC20.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/zevm/Interfaces.sol/IZRC20Metadata.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/zevm/Interfaces.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/zevm/SystemContract.sol/SystemContract.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/zevm/SystemContract.sol/SystemContractErrors.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/zevm/SystemContract.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/zevm/WZETA.sol/WETH9.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/zevm/WZETA.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/zevm/ZRC20.sol/ZRC20.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/zevm/ZRC20.sol/ZRC20Errors.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/zevm/ZRC20.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/zevm/ZetaConnectorZEVM.sol/WZETA.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/zevm/ZetaConnectorZEVM.sol/ZetaConnectorZEVM.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/zevm/ZetaConnectorZEVM.sol/ZetaReceiver.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/zevm/ZetaConnectorZEVM.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/zevm/ZetaConnectorZEVM.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/zevm/index.ts (87%) rename {typechain-types => v1/typechain-types}/contracts/zevm/interfaces/ISystem.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/zevm/interfaces/IUniswapV2Router01.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/zevm/interfaces/IUniswapV2Router02.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/zevm/interfaces/IWZETA.sol/IWETH9.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/zevm/interfaces/IWZETA.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/zevm/interfaces/IZRC20.sol/ISystem.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/zevm/interfaces/IZRC20.sol/IZRC20.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/zevm/interfaces/IZRC20.sol/IZRC20Metadata.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/zevm/interfaces/IZRC20.sol/ZRC20Events.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/zevm/interfaces/IZRC20.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/zevm/interfaces/IZRC20.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/zevm/interfaces/ZContract.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/zevm/interfaces/index.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/zevm/interfaces/zContract.sol/UniversalContract.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/zevm/interfaces/zContract.sol/ZContract.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/zevm/interfaces/zContract.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/zevm/testing/SystemContractMock.sol/SystemContractErrors.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/zevm/testing/SystemContractMock.sol/SystemContractMock.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/zevm/testing/SystemContractMock.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/contracts/zevm/testing/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@openzeppelin/contracts-upgradeable/access/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@openzeppelin/contracts-upgradeable/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol/IERC1822ProxiableUpgradeable__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@openzeppelin/contracts-upgradeable/interfaces/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@openzeppelin/contracts-upgradeable/proxy/ERC1967/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@openzeppelin/contracts-upgradeable/proxy/beacon/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@openzeppelin/contracts-upgradeable/proxy/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@openzeppelin/contracts-upgradeable/proxy/utils/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@openzeppelin/contracts-upgradeable/security/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@openzeppelin/contracts-upgradeable/utils/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@openzeppelin/contracts/access/Ownable2Step__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@openzeppelin/contracts/access/Ownable__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@openzeppelin/contracts/access/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@openzeppelin/contracts/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@openzeppelin/contracts/security/Pausable__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@openzeppelin/contracts/security/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@openzeppelin/contracts/token/ERC20/extensions/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@openzeppelin/contracts/token/ERC20/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@openzeppelin/contracts/token/index.ts (100%) rename {typechain-types/factories/@uniswap/v2-core => v1/typechain-types/factories/@openzeppelin}/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@uniswap/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@uniswap/v2-core/contracts/UniswapV2ERC20__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@uniswap/v2-core/contracts/UniswapV2Factory__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@uniswap/v2-core/contracts/UniswapV2Pair__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@uniswap/v2-core/contracts/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@uniswap/v2-core/contracts/interfaces/IERC20__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Callee__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2ERC20__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@uniswap/v2-core/contracts/interfaces/index.ts (100%) rename {typechain-types/factories/@uniswap/v2-periphery => v1/typechain-types/factories/@uniswap/v2-core}/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@uniswap/v2-periphery/contracts/UniswapV2Router02__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@uniswap/v2-periphery/contracts/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@uniswap/v2-periphery/contracts/interfaces/IERC20__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@uniswap/v2-periphery/contracts/interfaces/IWETH__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@uniswap/v2-periphery/contracts/interfaces/index.ts (100%) rename {typechain-types/factories/@uniswap/v3-core => v1/typechain-types/factories/@uniswap/v2-periphery}/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@uniswap/v3-core/contracts/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@uniswap/v3-core/contracts/interfaces/callback/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@uniswap/v3-core/contracts/interfaces/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@uniswap/v3-core/contracts/interfaces/pool/index.ts (100%) rename {typechain-types/factories/@uniswap/v3-periphery => v1/typechain-types/factories/@uniswap/v3-core}/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@uniswap/v3-periphery/contracts/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@uniswap/v3-periphery/contracts/interfaces/IQuoter__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@uniswap/v3-periphery/contracts/interfaces/ISwapRouter__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/@uniswap/v3-periphery/contracts/interfaces/index.ts (100%) rename {typechain-types/contracts/prototypes/interfaces.sol => v1/typechain-types/factories/@uniswap/v3-periphery}/index.ts (67%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/ERC20Custody__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/Zeta.eth.sol/ZetaEth__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/Zeta.eth.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/Zeta.non-eth.sol/ZetaNonEth__factory.ts (99%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/Zeta.non-eth.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/ZetaConnector.base.sol/ZetaConnectorBase__factory.ts (99%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/ZetaConnector.base.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/ZetaConnector.eth.sol/ZetaConnectorEth__factory.ts (99%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/ZetaConnector.eth.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/ZetaConnector.non-eth.sol/ZetaConnectorNonEth__factory.ts (99%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/ZetaConnector.non-eth.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/interfaces/ConnectorErrors__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/interfaces/ZetaErrors__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/interfaces/ZetaInteractorErrors__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/interfaces/ZetaInterfaces.sol/ZetaCommonErrors__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/interfaces/ZetaInterfaces.sol/ZetaConnector__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/interfaces/ZetaInterfaces.sol/ZetaReceiver__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/interfaces/ZetaInterfaces.sol/ZetaTokenConsumer__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/interfaces/ZetaInterfaces.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/interfaces/ZetaNonEthInterface__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/interfaces/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/testing/AttackerContract.sol/AttackerContract__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/testing/AttackerContract.sol/Victim__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/testing/AttackerContract.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/testing/ERC20Mock__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/testing/TestUniswapV3Contracts.sol/INonfungiblePositionManager__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/testing/TestUniswapV3Contracts.sol/IPoolInitializer__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/testing/TestUniswapV3Contracts.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/testing/ZetaInteractorMock__factory.ts (99%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/testing/ZetaReceiverMock__factory.ts (98%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/testing/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/tools/ImmutableCreate2Factory.sol/ImmutableCreate2Factory__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/tools/ImmutableCreate2Factory.sol/Ownable__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/tools/ImmutableCreate2Factory.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/tools/ZetaInteractor__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/ISwapRouterPancake__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/WETH9__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/ZetaTokenConsumerPancakeV3__factory.ts (99%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/ZetaTokenConsumerUniV3Errors__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/WETH9__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/ZetaTokenConsumerTridentErrors__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/ZetaTokenConsumerTrident__factory.ts (99%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/ZetaTokenConsumerUniV2Errors__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/ZetaTokenConsumerUniV2__factory.ts (99%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/WETH9__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/ZetaTokenConsumerUniV3Errors__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/ZetaTokenConsumerUniV3__factory.ts (99%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/ZetaTokenConsumerZEVMErrors__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/ZetaTokenConsumerZEVM__factory.ts (99%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/tools/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/tools/interfaces/TridentConcentratedLiquidityPoolFactory.sol/ConcentratedLiquidityPoolFactory__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/tools/interfaces/TridentConcentratedLiquidityPoolFactory.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/tools/interfaces/TridentIPoolRouter.sol/IPoolRouter__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/tools/interfaces/TridentIPoolRouter.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/evm/tools/interfaces/index.ts (100%) rename {typechain-types/factories/contracts/prototypes => v1/typechain-types/factories/contracts}/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/zevm/Interfaces.sol/ISystem__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/zevm/Interfaces.sol/IZRC20Metadata__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/zevm/Interfaces.sol/IZRC20__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/zevm/Interfaces.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/zevm/SystemContract.sol/SystemContractErrors__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/zevm/SystemContract.sol/SystemContract__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/zevm/SystemContract.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/zevm/WZETA.sol/WETH9__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/zevm/WZETA.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/zevm/ZRC20.sol/ZRC20Errors__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/zevm/ZRC20.sol/ZRC20__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/zevm/ZRC20.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/zevm/ZRC20New.sol/ZRC20Errors__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/zevm/ZRC20New.sol/ZRC20New__factory.ts (100%) rename {typechain-types/factories/contracts/prototypes => v1/typechain-types/factories/contracts}/zevm/ZRC20New.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/zevm/ZetaConnectorZEVM.sol/WZETA__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/zevm/ZetaConnectorZEVM.sol/ZetaConnectorZEVM__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/zevm/ZetaConnectorZEVM.sol/ZetaReceiver__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/zevm/ZetaConnectorZEVM.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/zevm/ZetaConnectorZEVM__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/zevm/index.ts (88%) rename {typechain-types => v1/typechain-types}/factories/contracts/zevm/interfaces/ISystem__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/zevm/interfaces/IUniswapV2Router01__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/zevm/interfaces/IUniswapV2Router02__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/zevm/interfaces/IWZETA.sol/IWETH9__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/zevm/interfaces/IWZETA.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/zevm/interfaces/IZRC20.sol/ISystem__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/zevm/interfaces/IZRC20.sol/IZRC20Metadata__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/zevm/interfaces/IZRC20.sol/IZRC20__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/zevm/interfaces/IZRC20.sol/ZRC20Events__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/zevm/interfaces/IZRC20.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/zevm/interfaces/IZRC20__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/zevm/interfaces/ZContract__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/zevm/interfaces/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/zevm/interfaces/zContract.sol/UniversalContract__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/zevm/interfaces/zContract.sol/ZContract__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/zevm/interfaces/zContract.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/zevm/testing/SystemContractMock.sol/SystemContractErrors__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/zevm/testing/SystemContractMock.sol/SystemContractMock__factory.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/zevm/testing/SystemContractMock.sol/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/contracts/zevm/testing/index.ts (100%) rename {typechain-types => v1/typechain-types}/factories/index.ts (100%) rename {typechain-types => v1/typechain-types}/hardhat.d.ts (72%) rename {typechain-types => v1/typechain-types}/index.ts (71%) rename yarn.lock => v1/yarn.lock (99%) create mode 100644 v2/.eslintignore create mode 100644 v2/README.md rename echidna.yaml => v2/echidna.yaml (100%) create mode 100644 v2/eslint.config.mjs create mode 100644 v2/foundry.toml create mode 160000 v2/lib/forge-std create mode 160000 v2/lib/openzeppelin-contracts-upgradeable rename {lib => v2/lib}/openzeppelin-foundry-upgrades (100%) create mode 100644 v2/package.json create mode 100644 v2/pkg/accesscontrol.sol/accesscontrol.go create mode 100644 v2/pkg/accesscontrolupgradeable.sol/accesscontrolupgradeable.go 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 rename {pkg/openzeppelin/contracts-upgradeable/utils => v2/pkg}/contextupgradeable.sol/contextupgradeable.go (94%) 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/erc165.sol/erc165.go create mode 100644 v2/pkg/erc165upgradeable.sol/erc165upgradeable.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/erc20custody.sol/erc20custody.go create mode 100644 v2/pkg/erc20custodyechidnatest.sol/erc20custodyechidnatest.go rename {pkg/contracts/prototypes/evm => v2/pkg}/gatewayevm.sol/gatewayevm.go (51%) 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 rename {pkg/contracts/prototypes/evm => v2/pkg}/gatewayevmupgradetest.sol/gatewayevmupgradetest.go (55%) 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/iaccesscontrol.sol/iaccesscontrol.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/ierc20custody.sol/ierc20custodyerrors.go create mode 100644 v2/pkg/ierc20custody.sol/ierc20custodyevents.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 rename {pkg/contracts/prototypes/evm => v2/pkg}/igatewayevm.sol/igatewayevm.go (91%) rename {pkg/contracts/prototypes/evm => v2/pkg}/igatewayevm.sol/igatewayevmerrors.go (94%) rename {pkg/contracts/prototypes/evm => v2/pkg}/igatewayevm.sol/igatewayevmevents.go (94%) rename {pkg/contracts/prototypes/evm => v2/pkg}/igatewayevm.sol/revertable.go (97%) rename {pkg/contracts/prototypes/zevm => v2/pkg}/igatewayzevm.sol/igatewayzevm.go (71%) rename {pkg/contracts/prototypes/zevm => v2/pkg}/igatewayzevm.sol/igatewayzevmerrors.go (93%) rename {pkg/contracts/prototypes/zevm => v2/pkg}/igatewayzevm.sol/igatewayzevmevents.go (81%) create mode 100644 v2/pkg/imulticall3.sol/imulticall3.go rename {pkg/openzeppelin/contracts-upgradeable/proxy/utils => v2/pkg}/initializable.sol/initializable.go (94%) create mode 100644 v2/pkg/introspection/ierc165.sol/ierc165.go create mode 100644 v2/pkg/iproxyadmin.sol/iproxyadmin.go rename {pkg/contracts/prototypes/evm => v2/pkg}/ireceiverevm.sol/ireceiverevmevents.go (94%) 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 rename {pkg/contracts/prototypes/evm => v2/pkg}/izetaconnector.sol/izetaconnectorevents.go (96%) rename {pkg/contracts/prototypes/evm => v2/pkg}/izetanonethnew.sol/izetanonethnew.go (85%) 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/pausable.sol/pausable.go create mode 100644 v2/pkg/pausableupgradeable.sol/pausableupgradeable.go create mode 100644 v2/pkg/proxy.sol/proxy.go create mode 100644 v2/pkg/proxyadmin.sol/proxyadmin.go rename {pkg/contracts/prototypes/evm => v2/pkg}/receiverevm.sol/receiverevm.go (74%) create mode 100644 v2/pkg/reentrancyguard.sol/reentrancyguard.go rename {pkg/openzeppelin/contracts-upgradeable/security => v2/pkg}/reentrancyguardupgradeable.sol/reentrancyguardupgradeable.go (94%) create mode 100644 v2/pkg/safeconsole.sol/safeconsole.go create mode 100644 v2/pkg/safeerc20.sol/safeerc20.go rename {pkg/contracts/prototypes/zevm => v2/pkg}/senderzevm.sol/senderzevm.go (60%) 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 rename {pkg/contracts/prototypes/evm => v2/pkg}/testerc20.sol/testerc20.go (58%) rename {pkg/contracts/prototypes/zevm => v2/pkg}/testzcontract.sol/testzcontract.go (78%) 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 rename {pkg/openzeppelin/contracts-upgradeable/proxy/utils => v2/pkg}/uupsupgradeable.sol/uupsupgradeable.go (61%) 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/zetaconnectorbase.sol/zetaconnectorbase.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/zetaconnectornonnative.sol/zetaconnectornonnative.go create mode 100644 v2/pkg/zetaconnectornonnative.t.sol/zetaconnectornonnativetest.go create mode 100644 v2/pkg/zrc20.sol/zrc20.go rename {pkg/contracts/zevm/zrc20new.sol => v2/pkg/zrc20.sol}/zrc20errors.go (93%) create mode 100755 v2/scripts/generate_go.sh create mode 100644 v2/scripts/localnet/EvmCall.s.sol create mode 100644 v2/scripts/localnet/EvmDepositAndCall.s.sol create mode 100644 v2/scripts/localnet/ZevmCall.s.sol create mode 100644 v2/scripts/localnet/ZevmWithdrawAndCall.s.sol rename v2_localnet.md => v2/scripts/localnet/v2_localnet.md (80%) create mode 100644 v2/scripts/localnet/worker.ts create mode 100644 v2/slither.config.json rename contracts/prototypes/evm/ERC20CustodyNew.sol => v2/src/evm/ERC20Custody.sol (55%) rename {contracts/prototypes => v2/src}/evm/GatewayEVM.sol (70%) rename contracts/prototypes/evm/ZetaConnectorNewBase.sol => v2/src/evm/ZetaConnectorBase.sol (59%) rename {contracts/prototypes => v2/src}/evm/ZetaConnectorNative.sol (65%) rename {contracts/prototypes => v2/src}/evm/ZetaConnectorNonNative.sol (69%) rename contracts/prototypes/evm/IERC20CustodyNew.sol => v2/src/evm/interfaces/IERC20Custody.sol (85%) rename {contracts/prototypes/evm => v2/src/evm/interfaces}/IGatewayEVM.sol (92%) rename {contracts/prototypes/evm => v2/src/evm/interfaces}/IZetaConnector.sol (97%) rename {contracts/prototypes/evm => v2/src/evm/interfaces}/IZetaNonEthNew.sol (97%) rename {contracts/prototypes => v2/src}/zevm/GatewayZEVM.sol (71%) rename {contracts/prototypes/zevm => v2/src/zevm/interfaces}/IGatewayZEVM.sol (75%) create mode 100644 v2/src/zevm/interfaces/ISystem.sol create mode 100644 v2/src/zevm/interfaces/IWZETA.sol create mode 100644 v2/src/zevm/interfaces/IZRC20.sol create mode 100644 v2/src/zevm/interfaces/zContract.sol rename {testFoundry => v2/test}/GatewayEVM.t.sol (75%) rename {testFoundry => v2/test}/GatewayEVMUpgrade.t.sol (63%) rename {testFoundry => v2/test}/GatewayEVMZEVM.t.sol (66%) rename {testFoundry => v2/test}/GatewayZEVM.t.sol (71%) rename {testFoundry => v2/test}/ZetaConnectorNative.t.sol (78%) rename {testFoundry => v2/test}/ZetaConnectorNonNative.t.sol (72%) rename test/fuzz/ERC20CustodyNewEchidnaTest.sol => v2/test/fuzz/ERC20CustodyEchidnaTest.sol (58%) rename {test => v2/test}/fuzz/GatewayEVMEchidnaTest.sol (75%) rename {test => v2/test}/fuzz/readme.md (57%) rename {contracts/prototypes/evm => v2/test/utils}/GatewayEVMUpgradeTest.sol (72%) rename {contracts/prototypes/evm => v2/test/utils}/IReceiverEVM.sol (98%) rename {contracts/prototypes/evm => v2/test/utils}/ReceiverEVM.sol (95%) rename {contracts/prototypes/zevm => v2/test/utils}/SenderZEVM.sol (79%) create mode 100644 v2/test/utils/SystemContract.sol create mode 100644 v2/test/utils/SystemContractMock.sol rename {contracts/prototypes/evm => v2/test/utils}/TestERC20.sol (94%) rename {contracts/prototypes/zevm => v2/test/utils}/TestZContract.sol (92%) create mode 100644 v2/test/utils/WZETA.sol rename contracts/zevm/ZRC20New.sol => v2/test/utils/ZRC20.sol (94%) create mode 100644 v2/test/utils/Zeta.non-eth.sol create mode 100644 v2/tsconfig.json create mode 100644 v2/typechain-types/AccessControl.ts create mode 100644 v2/typechain-types/AccessControlUpgradeable.ts 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/ERC165.ts create mode 100644 v2/typechain-types/ERC165Upgradeable.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 rename {typechain-types/contracts/prototypes/evm/GatewayEVM.t.sol => v2/typechain-types/ERC20}/index.ts (61%) create mode 100644 v2/typechain-types/ERC20Burnable.ts create mode 100644 v2/typechain-types/ERC20Custody.ts create mode 100644 v2/typechain-types/ERC20CustodyEchidnaTest.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/IAccessControl.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/IERC20Custody.sol/IERC20CustodyErrors.ts create mode 100644 v2/typechain-types/IERC20Custody.sol/IERC20CustodyEvents.ts create mode 100644 v2/typechain-types/IERC20Custody.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 rename {typechain-types/forge-std/interfaces => v2/typechain-types}/IERC721.sol/index.ts (100%) 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 rename {typechain-types/contracts/prototypes/evm => v2/typechain-types}/IGatewayEVM.sol/index.ts (100%) 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 rename {typechain-types/contracts/prototypes/zevm => v2/typechain-types}/IGatewayZEVM.sol/index.ts (100%) 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 rename {typechain-types/contracts/prototypes/evm => v2/typechain-types}/IReceiverEVM.sol/index.ts (100%) 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 rename {typechain-types/factories/contracts/prototypes/interfaces.sol => v2/typechain-types/IWZETA.sol}/index.ts (61%) 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 rename {typechain-types/contracts/prototypes/evm => v2/typechain-types}/IZetaConnector.sol/index.ts (100%) 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/Pausable.ts create mode 100644 v2/typechain-types/PausableUpgradeable.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 rename {typechain-types/forge-std => v2/typechain-types}/StdError.sol/index.ts (100%) create mode 100644 v2/typechain-types/StdInvariant.ts create mode 100644 v2/typechain-types/StdStorage.sol/StdStorageSafe.ts rename {typechain-types/forge-std => v2/typechain-types}/StdStorage.sol/index.ts (100%) 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 rename {typechain-types/forge-std => v2/typechain-types}/Vm.sol/index.ts (100%) create mode 100644 v2/typechain-types/WZETA.sol/WETH9.ts rename {typechain-types/contracts/prototypes/test/GatewayEVMZEVM.t.sol => v2/typechain-types/WZETA.sol}/index.ts (58%) create mode 100644 v2/typechain-types/ZRC20.sol/ZRC20.ts create mode 100644 v2/typechain-types/ZRC20.sol/ZRC20Errors.ts rename {typechain-types/contracts/prototypes/zevm/ZRC20New.sol => v2/typechain-types/ZRC20.sol}/index.ts (76%) 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/ZetaConnectorBase.ts create mode 100644 v2/typechain-types/ZetaConnectorNative.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/AccessControlUpgradeable__factory.ts create mode 100644 v2/typechain-types/factories/AccessControl__factory.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/ERC165Upgradeable__factory.ts create mode 100644 v2/typechain-types/factories/ERC165__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/ERC20CustodyEchidnaTest__factory.ts create mode 100644 v2/typechain-types/factories/ERC20Custody__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/IAccessControl__factory.ts create mode 100644 v2/typechain-types/factories/IBeacon__factory.ts rename {typechain-types/factories/forge-std/interfaces => v2/typechain-types/factories}/IERC165__factory.ts (57%) create mode 100644 v2/typechain-types/factories/IERC1967__factory.ts create mode 100644 v2/typechain-types/factories/IERC20Custody.sol/IERC20CustodyErrors__factory.ts rename typechain-types/factories/contracts/prototypes/evm/IERC20CustodyNew.sol/IERC20CustodyNewEvents__factory.ts => v2/typechain-types/factories/IERC20Custody.sol/IERC20CustodyEvents__factory.ts (76%) create mode 100644 v2/typechain-types/factories/IERC20Custody.sol/index.ts create mode 100644 v2/typechain-types/factories/IERC20Metadata__factory.ts create mode 100644 v2/typechain-types/factories/IERC20Permit__factory.ts rename {typechain-types/factories/forge-std/interfaces => v2/typechain-types/factories}/IERC20__factory.ts (90%) rename {typechain-types/factories/forge-std/interfaces => v2/typechain-types/factories}/IERC721.sol/IERC721Enumerable__factory.ts (94%) rename {typechain-types/factories/forge-std/interfaces => v2/typechain-types/factories}/IERC721.sol/IERC721Metadata__factory.ts (94%) rename {typechain-types/factories/forge-std/interfaces => v2/typechain-types/factories}/IERC721.sol/IERC721TokenReceiver__factory.ts (75%) rename {typechain-types/factories/forge-std/interfaces => v2/typechain-types/factories}/IERC721.sol/IERC721__factory.ts (92%) rename {typechain-types/factories/forge-std/interfaces => v2/typechain-types/factories}/IERC721.sol/index.ts (100%) rename {typechain-types/factories/contracts/prototypes/evm/interfaces.sol => v2/typechain-types/factories/IGatewayEVM.sol}/IGatewayEVMErrors__factory.ts (70%) rename {typechain-types/factories/contracts/prototypes/evm/interfaces.sol => v2/typechain-types/factories/IGatewayEVM.sol}/IGatewayEVMEvents__factory.ts (90%) rename {typechain-types/factories/contracts/prototypes/evm => v2/typechain-types/factories}/IGatewayEVM.sol/IGatewayEVM__factory.ts (80%) rename {typechain-types/factories/contracts/prototypes/evm/GatewayEVM.sol => v2/typechain-types/factories/IGatewayEVM.sol}/Revertable__factory.ts (55%) rename {typechain-types/factories/contracts/prototypes/evm => v2/typechain-types/factories}/IGatewayEVM.sol/index.ts (100%) rename {typechain-types/factories/contracts/prototypes/zevm => v2/typechain-types/factories}/IGatewayZEVM.sol/IGatewayZEVMErrors__factory.ts (73%) rename {typechain-types/factories/contracts/prototypes/zevm => v2/typechain-types/factories}/IGatewayZEVM.sol/IGatewayZEVMEvents__factory.ts (74%) rename {typechain-types/factories/contracts/prototypes/zevm => v2/typechain-types/factories}/IGatewayZEVM.sol/IGatewayZEVM__factory.ts (78%) rename {typechain-types/factories/contracts/prototypes/zevm => v2/typechain-types/factories}/IGatewayZEVM.sol/index.ts (100%) rename {typechain-types/factories/forge-std/interfaces => v2/typechain-types/factories}/IMulticall3__factory.ts (95%) create mode 100644 v2/typechain-types/factories/IProxyAdmin__factory.ts rename {typechain-types/factories/contracts/prototypes/evm => v2/typechain-types/factories}/IReceiverEVM.sol/IReceiverEVMEvents__factory.ts (88%) rename {typechain-types/factories/contracts/prototypes/evm => v2/typechain-types/factories}/IReceiverEVM.sol/index.ts (100%) 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 rename typechain-types/factories/contracts/prototypes/evm/IGatewayEVM.sol/IGatewayEVMEvents__factory.ts => v2/typechain-types/factories/IZRC20.sol/ZRC20Events__factory.ts (54%) create mode 100644 v2/typechain-types/factories/IZRC20.sol/index.ts rename {typechain-types/factories/contracts/prototypes/evm => v2/typechain-types/factories}/IZetaConnector.sol/IZetaConnectorEvents__factory.ts (82%) rename {typechain-types/factories/contracts/prototypes/evm => v2/typechain-types/factories}/IZetaConnector.sol/index.ts (100%) rename {typechain-types/factories/contracts/prototypes/evm => v2/typechain-types/factories}/IZetaNonEthNew__factory.ts (90%) 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/PausableUpgradeable__factory.ts create mode 100644 v2/typechain-types/factories/Pausable__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 rename {typechain-types/factories/forge-std => v2/typechain-types/factories}/StdAssertions__factory.ts (94%) create mode 100644 v2/typechain-types/factories/StdError.sol/StdError__factory.ts rename {typechain-types/factories/forge-std => v2/typechain-types/factories}/StdError.sol/index.ts (100%) rename {typechain-types/factories/forge-std => v2/typechain-types/factories}/StdInvariant__factory.ts (91%) rename {typechain-types/factories/forge-std => v2/typechain-types/factories}/StdStorage.sol/StdStorageSafe__factory.ts (59%) rename {typechain-types/factories/forge-std => v2/typechain-types/factories}/StdStorage.sol/index.ts (100%) 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 rename {typechain-types/factories/forge-std => v2/typechain-types/factories}/Test__factory.ts (96%) 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 rename {typechain-types/factories/forge-std => v2/typechain-types/factories}/Vm.sol/VmSafe__factory.ts (96%) rename {typechain-types/factories/forge-std => v2/typechain-types/factories}/Vm.sol/Vm__factory.ts (96%) rename {typechain-types/factories/forge-std => v2/typechain-types/factories}/Vm.sol/index.ts (100%) create mode 100644 v2/typechain-types/factories/WZETA.sol/WETH9__factory.ts create mode 100644 v2/typechain-types/factories/WZETA.sol/index.ts rename {typechain-types/factories/contracts/prototypes/zevm/ZRC20New.sol => v2/typechain-types/factories/ZRC20.sol}/ZRC20Errors__factory.ts (67%) create mode 100644 v2/typechain-types/factories/ZRC20.sol/ZRC20__factory.ts rename {typechain-types/factories/contracts/zevm/ZRC20New.sol => v2/typechain-types/factories/ZRC20.sol}/index.ts (72%) create mode 100644 v2/typechain-types/factories/Zeta.non-eth.sol/ZetaErrors__factory.ts rename typechain-types/factories/contracts/prototypes/evm/ZetaConnectorNewBase__factory.ts => v2/typechain-types/factories/Zeta.non-eth.sol/ZetaNonEthInterface__factory.ts (58%) 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/ZetaConnectorBase__factory.ts create mode 100644 v2/typechain-types/factories/ZetaConnectorNative__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 rename {typechain-types/contracts/prototypes/test/GatewayIntegration.t.sol => v2/typechain-types/factories/draft-IERC1822.sol}/index.ts (54%) 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/introspection/IERC165__factory.ts create mode 100644 v2/typechain-types/factories/introspection/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/introspection/IERC165.ts create mode 100644 v2/typechain-types/introspection/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 create mode 100644 v2/yarn.lock diff --git a/.github/workflows/generated-files.yaml b/.github/workflows/generated-files_v1.yaml similarity index 90% rename from .github/workflows/generated-files.yaml rename to .github/workflows/generated-files_v1.yaml index bbbd540d..28dbe5d2 100644 --- a/.github/workflows/generated-files.yaml +++ b/.github/workflows/generated-files_v1.yaml @@ -1,26 +1,32 @@ -name: Generated Files are Updated +name: Generated Files are Updated (V1) on: push: branches: - main + paths: + - 'v1/**' pull_request: branches: - "*" + paths: + - 'v1/**' types: - synchronize - opened - reopened - ready_for_review +defaults: + run: + working-directory: ./v1 + 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 @@ -40,9 +46,6 @@ jobs: 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: Install Foundry - uses: foundry-rs/foundry-toolchain@v1 - - name: Generate Go packages and typechain-types run: | yarn generate diff --git a/.github/workflows/generated-files_v2.yaml b/.github/workflows/generated-files_v2.yaml new file mode 100644 index 00000000..05617e8b --- /dev/null +++ b/.github/workflows/generated-files_v2.yaml @@ -0,0 +1,65 @@ +name: Generated Files are Updated (V2) + +on: + push: + branches: + - main + paths: + - 'v2/**' + pull_request: + branches: + - "*" + paths: + - 'v2/**' + 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/.github/workflows/lint.yaml b/.github/workflows/lint_v1.yaml similarity index 82% rename from .github/workflows/lint.yaml rename to .github/workflows/lint_v1.yaml index e991d8eb..6ce55145 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint_v1.yaml @@ -1,18 +1,26 @@ -name: Lint TS/JS +name: Lint TS/JS (V1) on: push: branches: - main + paths: + - 'v1/**' pull_request: branches: - "*" + paths: + - 'v1/**' types: - synchronize - opened - reopened - ready_for_review +defaults: + run: + working-directory: ./v1 + jobs: lint: runs-on: ubuntu-latest @@ -20,8 +28,6 @@ jobs: steps: - name: Checkout Repository uses: actions/checkout@v3 - with: - submodules: recursive - name: Setup Node.js uses: actions/setup-node@v3 @@ -29,9 +35,6 @@ jobs: node-version: "18" registry-url: "https://registry.npmjs.org" - - name: Install Foundry - uses: foundry-rs/foundry-toolchain@v1 - - name: Install Dependencies run: yarn install diff --git a/.github/workflows/build.yaml b/.github/workflows/lint_v2.yaml similarity index 50% rename from .github/workflows/build.yaml rename to .github/workflows/lint_v2.yaml index afd8d666..71ea161d 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/lint_v2.yaml @@ -1,34 +1,50 @@ -name: Build +name: Lint TS/JS/Sol (V2) on: push: branches: - main + paths: + - 'v2/**' pull_request: branches: - "*" + paths: + - 'v2/**' types: - synchronize - opened - reopened - ready_for_review +defaults: + run: + working-directory: ./v2 + jobs: lint: runs-on: ubuntu-latest steps: - name: Checkout Repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 + with: + submodules: recursive - name: Setup Node.js uses: actions/setup-node@v3 with: - node-version: "18" + node-version: "21.1.0" registry-url: "https://registry.npmjs.org" + - name: Install Foundry + uses: foundry-rs/foundry-toolchain@v1 + - name: Install Dependencies run: yarn install - - name: Build - run: yarn build + - name: Lint JavaScript/TypeScript + run: yarn lint + + - name: Lint Solidity + run: forge fmt --check diff --git a/.github/workflows/publish-npm.yaml b/.github/workflows/publish-npm_v1.yaml similarity index 87% rename from .github/workflows/publish-npm.yaml rename to .github/workflows/publish-npm_v1.yaml index 91cedb1b..848a2218 100644 --- a/.github/workflows/publish-npm.yaml +++ b/.github/workflows/publish-npm_v1.yaml @@ -1,9 +1,13 @@ -name: Publish to NPM +name: Publish to NPM (V1) on: release: types: [published] +defaults: + run: + working-directory: ./v1 + jobs: publish: runs-on: ubuntu-latest @@ -11,8 +15,6 @@ jobs: steps: - name: Checkout Repository uses: actions/checkout@v3 - with: - submodules: recursive - name: Setup Node.js uses: actions/setup-node@v3 @@ -20,9 +22,6 @@ jobs: node-version: "18" registry-url: "https://registry.npmjs.org" - - name: Install Foundry - uses: foundry-rs/foundry-toolchain@v1 - - name: Install Dependencies run: yarn install diff --git a/.github/workflows/slither.yaml b/.github/workflows/slither_v2.yaml similarity index 79% rename from .github/workflows/slither.yaml rename to .github/workflows/slither_v2.yaml index 7ba3bb2d..1b855a03 100644 --- a/.github/workflows/slither.yaml +++ b/.github/workflows/slither_v2.yaml @@ -1,18 +1,26 @@ -name: Slither +name: Slither (V2) on: push: branches: - main + paths: + - 'v2/**' pull_request: branches: - "*" + paths: + - 'v2/**' types: - synchronize - opened - reopened - ready_for_review +defaults: + run: + working-directory: ./v2 + jobs: slither: runs-on: ubuntu-latest @@ -22,14 +30,14 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: submodules: recursive - name: Install Node.js uses: actions/setup-node@v2 with: - node-version: "18" + node-version: "21.1.0" - name: Install Foundry uses: foundry-rs/foundry-toolchain@v1 @@ -38,7 +46,7 @@ jobs: run: yarn install - name: Build project - run: yarn build + run: forge build - name: Run Slither uses: crytic/slither-action@main @@ -46,7 +54,7 @@ jobs: continue-on-error: true with: sarif: results.sarif - node-version: "18" + node-version: "21.1.0" fail-on: none - name: Upload SARIF file diff --git a/.github/workflows/test.yaml b/.github/workflows/test_v1.yaml similarity index 75% rename from .github/workflows/test.yaml rename to .github/workflows/test_v1.yaml index 2e2a20b4..04fa5d53 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test_v1.yaml @@ -1,18 +1,26 @@ -name: Test +name: Test (V1) on: push: branches: - main + paths: + - 'v1/**' pull_request: branches: - "*" + paths: + - 'v1/**' types: - synchronize - opened - reopened - ready_for_review +defaults: + run: + working-directory: ./v1 + jobs: test: runs-on: ubuntu-latest @@ -20,8 +28,6 @@ jobs: steps: - name: Checkout Repository uses: actions/checkout@v4 - with: - submodules: recursive - name: Setup Node.js uses: actions/setup-node@v4 @@ -29,17 +35,11 @@ jobs: node-version: "18.0.0" registry-url: "https://registry.npmjs.org" - - name: Install Foundry - uses: foundry-rs/foundry-toolchain@v1 - - name: Install Dependencies run: yarn install - name: Build project run: yarn build - - - name: Test (foundry) - run: yarn test:foundry - + - name: Test (hardhat) run: yarn test diff --git a/.github/workflows/coverage.yaml b/.github/workflows/test_v2.yaml similarity index 67% rename from .github/workflows/coverage.yaml rename to .github/workflows/test_v2.yaml index e58a721b..4136f6a6 100644 --- a/.github/workflows/coverage.yaml +++ b/.github/workflows/test_v2.yaml @@ -1,30 +1,40 @@ -name: Coverage +name: Test (V2) on: push: branches: - main + paths: + - 'v2/**' pull_request: branches: - "*" + paths: + - 'v2/**' types: - synchronize - opened - reopened - ready_for_review +defaults: + run: + working-directory: ./v2 + jobs: - coverage: + test: runs-on: ubuntu-latest steps: - name: Checkout Repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 + with: + submodules: recursive - name: Setup Node.js - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: - node-version: "18" + node-version: "21.1.0" registry-url: "https://registry.npmjs.org" - name: Install Foundry @@ -32,8 +42,11 @@ jobs: - name: Install Dependencies run: yarn install + + - name: Test + run: yarn test - - name: Test with coverage + - name: Coverage run: yarn coverage - name: Upload coverage reports to Codecov diff --git a/.gitignore b/.gitignore index ddb1d374..ce504686 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,4 @@ crytic-export out cache_forge +broadcast \ No newline at end of file diff --git a/.gitmodules b/.gitmodules index 7d79667c..caa14d00 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,9 @@ -[submodule "lib/forge-std"] - path = lib/forge-std - url = https://github.com/foundry-rs/forge-std -[submodule "lib/openzeppelin-foundry-upgrades"] - path = lib/openzeppelin-foundry-upgrades +[submodule "v2/lib/openzeppelin-foundry-upgrades"] + path = v2/lib/openzeppelin-foundry-upgrades url = https://github.com/OpenZeppelin/openzeppelin-foundry-upgrades +[submodule "v2/lib/forge-std"] + path = v2/lib/forge-std + url = https://github.com/foundry-rs/forge-std +[submodule "v2/lib/openzeppelin-contracts-upgradeable"] + path = v2/lib/openzeppelin-contracts-upgradeable + url = https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable diff --git a/README.md b/README.md new file mode 100644 index 00000000..f993d82e --- /dev/null +++ b/README.md @@ -0,0 +1,13 @@ +# ZetaChain Protocol Contracts + +Contracts of official protocol contracts deployed by the core ZetaChain team. + +## Learn more about ZetaChain + +* Check our [website](https://www.zetachain.com/). +* Read our [docs](https://docs.zetachain.com/). + +## Packages + +* [v1 legacy contracts](v1) +* [v2 new contracts (currently in development)](v2) \ No newline at end of file diff --git a/foundry.toml b/foundry.toml deleted file mode 100644 index f97dd94c..00000000 --- a/foundry.toml +++ /dev/null @@ -1,15 +0,0 @@ -[profile.default] -src = 'contracts' -out = 'out' -libs = ['node_modules', 'lib'] -test = 'testFoundry' -cache_path = 'cache_forge' -no-match-contract = '.*EchidnaTest$' -optimizer = true -optimizer_runs = 10_000 -ffi = true -ast = true -build_info = true -extra_output = ["storageLayout"] -fs_permissions = [{ access = "read", path = "out"}] -evm_version = "london" diff --git a/lib/forge-std b/lib/forge-std deleted file mode 160000 index 07263d19..00000000 --- a/lib/forge-std +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 07263d193d621c4b2b0ce8b4d54af58f6957d97d diff --git a/pkg/contracts/prototypes/evm/erc20custodynew.sol/erc20custodynew.go b/pkg/contracts/prototypes/evm/erc20custodynew.sol/erc20custodynew.go deleted file mode 100644 index e4290f3e..00000000 --- a/pkg/contracts/prototypes/evm/erc20custodynew.sol/erc20custodynew.go +++ /dev/null @@ -1,792 +0,0 @@ -// 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: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_gateway\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_tssAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidSender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"WithdrawAndCall\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"WithdrawAndRevert\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"gateway\",\"outputs\":[{\"internalType\":\"contractIGatewayEVM\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tssAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"withdrawAndCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"withdrawAndRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x60806040523480156200001157600080fd5b506040516200130d3803806200130d833981810160405281019062000037919062000180565b6001600081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480620000a75750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15620000df576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506200021a565b6000815190506200017a8162000200565b92915050565b600080604083850312156200019a5762000199620001fb565b5b6000620001aa8582860162000169565b9250506020620001bd8582860162000169565b9150509250929050565b6000620001d482620001db565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6200020b81620001c7565b81146200021757600080fd5b50565b6110e3806200022a6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063116191b61461005c57806321fc65f21461007a5780635b11259114610096578063c8a02362146100b4578063d9caed12146100d0575b600080fd5b6100646100ec565b6040516100719190610d41565b60405180910390f35b610094600480360381019061008f9190610a93565b610112565b005b61009e6102fb565b6040516100ab9190610caf565b60405180910390f35b6100ce60048036038101906100c99190610a93565b610321565b005b6100ea60048036038101906100e59190610a40565b61050a565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61011a610636565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101a1576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6101ee600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848773ffffffffffffffffffffffffffffffffffffffff166106869092919063ffffffff16565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635131ab5986868686866040518663ffffffff1660e01b8152600401610251959493929190610cca565b600060405180830381600087803b15801561026b57600080fd5b505af115801561027f573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e8585856040516102e493929190610e19565b60405180910390a36102f461070c565b5050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610329610636565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103b0576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103fd600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848773ffffffffffffffffffffffffffffffffffffffff166106869092919063ffffffff16565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b8969bd486868686866040518663ffffffff1660e01b8152600401610460959493929190610cca565b600060405180830381600087803b15801561047a57600080fd5b505af115801561048e573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c88585856040516104f393929190610e19565b60405180910390a361050361070c565b5050505050565b610512610636565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610599576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105c482828573ffffffffffffffffffffffffffffffffffffffff166106869092919063ffffffff16565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb836040516106219190610dfe565b60405180910390a361063161070c565b505050565b6002600054141561067c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067390610dde565b60405180910390fd5b6002600081905550565b6107078363a9059cbb60e01b84846040516024016106a5929190610d18565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610716565b505050565b6001600081905550565b6000610778826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166107dd9092919063ffffffff16565b90506000815111156107d857808060200190518101906107989190610b1b565b6107d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ce90610dbe565b60405180910390fd5b5b505050565b60606107ec84846000856107f5565b90509392505050565b60608247101561083a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083190610d7e565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516108639190610c98565b60006040518083038185875af1925050503d80600081146108a0576040519150601f19603f3d011682016040523d82523d6000602084013e6108a5565b606091505b50915091506108b6878383876108c2565b92505050949350505050565b606083156109255760008351141561091d576108dd85610938565b61091c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091390610d9e565b60405180910390fd5b5b829050610930565b61092f838361095b565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60008251111561096e5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a29190610d5c565b60405180910390fd5b6000813590506109ba81611068565b92915050565b6000815190506109cf8161107f565b92915050565b60008083601f8401126109eb576109ea610f53565b5b8235905067ffffffffffffffff811115610a0857610a07610f4e565b5b602083019150836001820283011115610a2457610a23610f58565b5b9250929050565b600081359050610a3a81611096565b92915050565b600080600060608486031215610a5957610a58610f62565b5b6000610a67868287016109ab565b9350506020610a78868287016109ab565b9250506040610a8986828701610a2b565b9150509250925092565b600080600080600060808688031215610aaf57610aae610f62565b5b6000610abd888289016109ab565b9550506020610ace888289016109ab565b9450506040610adf88828901610a2b565b935050606086013567ffffffffffffffff811115610b0057610aff610f5d565b5b610b0c888289016109d5565b92509250509295509295909350565b600060208284031215610b3157610b30610f62565b5b6000610b3f848285016109c0565b91505092915050565b610b5181610e8e565b82525050565b6000610b638385610e61565b9350610b70838584610f0c565b610b7983610f67565b840190509392505050565b6000610b8f82610e4b565b610b998185610e72565b9350610ba9818560208601610f1b565b80840191505092915050565b610bbe81610ed6565b82525050565b6000610bcf82610e56565b610bd98185610e7d565b9350610be9818560208601610f1b565b610bf281610f67565b840191505092915050565b6000610c0a602683610e7d565b9150610c1582610f78565b604082019050919050565b6000610c2d601d83610e7d565b9150610c3882610fc7565b602082019050919050565b6000610c50602a83610e7d565b9150610c5b82610ff0565b604082019050919050565b6000610c73601f83610e7d565b9150610c7e8261103f565b602082019050919050565b610c9281610ecc565b82525050565b6000610ca48284610b84565b915081905092915050565b6000602082019050610cc46000830184610b48565b92915050565b6000608082019050610cdf6000830188610b48565b610cec6020830187610b48565b610cf96040830186610c89565b8181036060830152610d0c818486610b57565b90509695505050505050565b6000604082019050610d2d6000830185610b48565b610d3a6020830184610c89565b9392505050565b6000602082019050610d566000830184610bb5565b92915050565b60006020820190508181036000830152610d768184610bc4565b905092915050565b60006020820190508181036000830152610d9781610bfd565b9050919050565b60006020820190508181036000830152610db781610c20565b9050919050565b60006020820190508181036000830152610dd781610c43565b9050919050565b60006020820190508181036000830152610df781610c66565b9050919050565b6000602082019050610e136000830184610c89565b92915050565b6000604082019050610e2e6000830186610c89565b8181036020830152610e41818486610b57565b9050949350505050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000610e9982610eac565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610ee182610ee8565b9050919050565b6000610ef382610efa565b9050919050565b6000610f0582610eac565b9050919050565b82818337600083830152505050565b60005b83811015610f39578082015181840152602081019050610f1e565b83811115610f48576000848401525b50505050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b61107181610e8e565b811461107c57600080fd5b50565b61108881610ea0565b811461109357600080fd5b50565b61109f81610ecc565b81146110aa57600080fd5b5056fea26469706673582212205340b8d5ae0d440bae0160f1fe56f515f5471e0710e9b5f33c8b948d4d8769e364736f6c63430008070033", -} - -// 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/pkg/contracts/prototypes/evm/ierc20custodynew.sol/ierc20custodynewerrors.go b/pkg/contracts/prototypes/evm/ierc20custodynew.sol/ierc20custodynewerrors.go deleted file mode 100644 index d3f0af38..00000000 --- a/pkg/contracts/prototypes/evm/ierc20custodynew.sol/ierc20custodynewerrors.go +++ /dev/null @@ -1,181 +0,0 @@ -// 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: "[{\"inputs\":[],\"name\":\"InvalidSender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"}]", -} - -// 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/pkg/contracts/prototypes/evm/ierc20custodynew.sol/ierc20custodynewevents.go b/pkg/contracts/prototypes/evm/ierc20custodynew.sol/ierc20custodynewevents.go deleted file mode 100644 index bae33183..00000000 --- a/pkg/contracts/prototypes/evm/ierc20custodynew.sol/ierc20custodynewevents.go +++ /dev/null @@ -1,645 +0,0 @@ -// 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: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"WithdrawAndCall\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"WithdrawAndRevert\",\"type\":\"event\"}]", -} - -// 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/pkg/contracts/prototypes/evm/zetaconnectornative.sol/zetaconnectornative.go b/pkg/contracts/prototypes/evm/zetaconnectornative.sol/zetaconnectornative.go deleted file mode 100644 index 39397ae5..00000000 --- a/pkg/contracts/prototypes/evm/zetaconnectornative.sol/zetaconnectornative.go +++ /dev/null @@ -1,817 +0,0 @@ -// 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: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_gateway\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_zetaToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_tssAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidSender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"WithdrawAndCall\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"WithdrawAndRevert\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"gateway\",\"outputs\":[{\"internalType\":\"contractIGatewayEVM\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"receiveTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tssAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"internalSendHash\",\"type\":\"bytes32\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"internalSendHash\",\"type\":\"bytes32\"}],\"name\":\"withdrawAndCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"internalSendHash\",\"type\":\"bytes32\"}],\"name\":\"withdrawAndRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zetaToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x60c06040523480156200001157600080fd5b5060405162001638380380620016388339818101604052810190620000379190620001ec565b8282826001600081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480620000aa5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80620000e25750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156200011a576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250508173ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b8152505080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050506200029b565b600081519050620001e68162000281565b92915050565b6000806000606084860312156200020857620002076200027c565b5b60006200021886828701620001d5565b93505060206200022b86828701620001d5565b92505060406200023e86828701620001d5565b9150509250925092565b600062000255826200025c565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6200028c8162000248565b81146200029857600080fd5b50565b60805160601c60a05160601c61132b6200030d6000396000818161020201528181610284015281816103f0015281816104b5015281816105b30152818161063501526107130152600081816101e001528181610248015281816104910152818161059101526105f9015261132b6000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806321e093b11161005b57806321e093b1146100d85780635b112591146100f65780635e3e9fef14610114578063743e0c9b146101305761007d565b806302d5c89914610082578063106e62901461009e578063116191b6146100ba575b600080fd5b61009c60048036038101906100979190610c56565b61014c565b005b6100b860048036038101906100b39190610c03565b61035a565b005b6100c261048f565b6040516100cf9190610f68565b60405180910390f35b6100e06104b3565b6040516100ed9190610e9f565b60405180910390f35b6100fe6104d7565b60405161010b9190610e9f565b60405180910390f35b61012e60048036038101906101299190610c56565b6104fd565b005b61014a60048036038101906101459190610d0b565b61070b565b005b61015461075b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101db576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6102467f0000000000000000000000000000000000000000000000000000000000000000857f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166107ab9092919063ffffffff16565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b8969bd47f0000000000000000000000000000000000000000000000000000000000000000878787876040518663ffffffff1660e01b81526004016102c7959493929190610ef1565b600060405180830381600087803b1580156102e157600080fd5b505af11580156102f5573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff167fba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe85858560405161034393929190611040565b60405180910390a2610353610831565b5050505050565b61036261075b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103e9576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61043483837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166107ab9092919063ffffffff16565b8273ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243648360405161047a9190611025565b60405180910390a261048a610831565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61050561075b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461058c576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105f77f0000000000000000000000000000000000000000000000000000000000000000857f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166107ab9092919063ffffffff16565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635131ab597f0000000000000000000000000000000000000000000000000000000000000000878787876040518663ffffffff1660e01b8152600401610678959493929190610ef1565b600060405180830381600087803b15801561069257600080fd5b505af11580156106a6573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff167f7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced8585856040516106f493929190611040565b60405180910390a2610704610831565b5050505050565b6107583330837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661083b909392919063ffffffff16565b50565b600260005414156107a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079890611005565b60405180910390fd5b6002600081905550565b61082c8363a9059cbb60e01b84846040516024016107ca929190610f3f565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506108c4565b505050565b6001600081905550565b6108be846323b872dd60e01b85858560405160240161085c93929190610eba565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506108c4565b50505050565b6000610926826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661098b9092919063ffffffff16565b905060008151111561098657808060200190518101906109469190610cde565b610985576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097c90610fe5565b60405180910390fd5b5b505050565b606061099a84846000856109a3565b90509392505050565b6060824710156109e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109df90610fa5565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051610a119190610e88565b60006040518083038185875af1925050503d8060008114610a4e576040519150601f19603f3d011682016040523d82523d6000602084013e610a53565b606091505b5091509150610a6487838387610a70565b92505050949350505050565b60608315610ad357600083511415610acb57610a8b85610ae6565b610aca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac190610fc5565b60405180910390fd5b5b829050610ade565b610add8383610b09565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600082511115610b1c5781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b509190610f83565b60405180910390fd5b600081359050610b6881611299565b92915050565b600081519050610b7d816112b0565b92915050565b600081359050610b92816112c7565b92915050565b60008083601f840112610bae57610bad611184565b5b8235905067ffffffffffffffff811115610bcb57610bca61117f565b5b602083019150836001820283011115610be757610be6611189565b5b9250929050565b600081359050610bfd816112de565b92915050565b600080600060608486031215610c1c57610c1b611193565b5b6000610c2a86828701610b59565b9350506020610c3b86828701610bee565b9250506040610c4c86828701610b83565b9150509250925092565b600080600080600060808688031215610c7257610c71611193565b5b6000610c8088828901610b59565b9550506020610c9188828901610bee565b945050604086013567ffffffffffffffff811115610cb257610cb161118e565b5b610cbe88828901610b98565b93509350506060610cd188828901610b83565b9150509295509295909350565b600060208284031215610cf457610cf3611193565b5b6000610d0284828501610b6e565b91505092915050565b600060208284031215610d2157610d20611193565b5b6000610d2f84828501610bee565b91505092915050565b610d41816110b5565b82525050565b6000610d538385611088565b9350610d6083858461113d565b610d6983611198565b840190509392505050565b6000610d7f82611072565b610d898185611099565b9350610d9981856020860161114c565b80840191505092915050565b610dae81611107565b82525050565b6000610dbf8261107d565b610dc981856110a4565b9350610dd981856020860161114c565b610de281611198565b840191505092915050565b6000610dfa6026836110a4565b9150610e05826111a9565b604082019050919050565b6000610e1d601d836110a4565b9150610e28826111f8565b602082019050919050565b6000610e40602a836110a4565b9150610e4b82611221565b604082019050919050565b6000610e63601f836110a4565b9150610e6e82611270565b602082019050919050565b610e82816110fd565b82525050565b6000610e948284610d74565b915081905092915050565b6000602082019050610eb46000830184610d38565b92915050565b6000606082019050610ecf6000830186610d38565b610edc6020830185610d38565b610ee96040830184610e79565b949350505050565b6000608082019050610f066000830188610d38565b610f136020830187610d38565b610f206040830186610e79565b8181036060830152610f33818486610d47565b90509695505050505050565b6000604082019050610f546000830185610d38565b610f616020830184610e79565b9392505050565b6000602082019050610f7d6000830184610da5565b92915050565b60006020820190508181036000830152610f9d8184610db4565b905092915050565b60006020820190508181036000830152610fbe81610ded565b9050919050565b60006020820190508181036000830152610fde81610e10565b9050919050565b60006020820190508181036000830152610ffe81610e33565b9050919050565b6000602082019050818103600083015261101e81610e56565b9050919050565b600060208201905061103a6000830184610e79565b92915050565b60006040820190506110556000830186610e79565b8181036020830152611068818486610d47565b9050949350505050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006110c0826110dd565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061111282611119565b9050919050565b60006111248261112b565b9050919050565b6000611136826110dd565b9050919050565b82818337600083830152505050565b60005b8381101561116a57808201518184015260208101905061114f565b83811115611179576000848401525b50505050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6112a2816110b5565b81146112ad57600080fd5b50565b6112b9816110c7565b81146112c457600080fd5b50565b6112d0816110d3565b81146112db57600080fd5b50565b6112e7816110fd565b81146112f257600080fd5b5056fea2646970667358221220655dba4ad3270e6153f071458a8ebcb80a69a23cb0bf8a44ed4a1f4df173d65664736f6c63430008070033", -} - -// 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/pkg/contracts/prototypes/evm/zetaconnectornewbase.sol/zetaconnectornewbase.go b/pkg/contracts/prototypes/evm/zetaconnectornewbase.sol/zetaconnectornewbase.go deleted file mode 100644 index 61c83283..00000000 --- a/pkg/contracts/prototypes/evm/zetaconnectornewbase.sol/zetaconnectornewbase.go +++ /dev/null @@ -1,795 +0,0 @@ -// 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: "[{\"inputs\":[],\"name\":\"InvalidSender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"WithdrawAndCall\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"WithdrawAndRevert\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"gateway\",\"outputs\":[{\"internalType\":\"contractIGatewayEVM\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"receiveTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tssAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"internalSendHash\",\"type\":\"bytes32\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"internalSendHash\",\"type\":\"bytes32\"}],\"name\":\"withdrawAndCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"internalSendHash\",\"type\":\"bytes32\"}],\"name\":\"withdrawAndRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zetaToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", -} - -// 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/pkg/contracts/prototypes/evm/zetaconnectornonnative.sol/zetaconnectornonnative.go b/pkg/contracts/prototypes/evm/zetaconnectornonnative.sol/zetaconnectornonnative.go deleted file mode 100644 index 4e7bd6ab..00000000 --- a/pkg/contracts/prototypes/evm/zetaconnectornonnative.sol/zetaconnectornonnative.go +++ /dev/null @@ -1,1003 +0,0 @@ -// 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: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_gateway\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_zetaToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_tssAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ExceedsMaxSupply\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"maxSupply\",\"type\":\"uint256\"}],\"name\":\"MaxSupplyUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"WithdrawAndCall\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"WithdrawAndRevert\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"gateway\",\"outputs\":[{\"internalType\":\"contractIGatewayEVM\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"receiveTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_maxSupply\",\"type\":\"uint256\"}],\"name\":\"setMaxSupply\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tssAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"internalSendHash\",\"type\":\"bytes32\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"internalSendHash\",\"type\":\"bytes32\"}],\"name\":\"withdrawAndCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"internalSendHash\",\"type\":\"bytes32\"}],\"name\":\"withdrawAndRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zetaToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x60c06040527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6002553480156200003557600080fd5b506040516200158d3803806200158d83398181016040528101906200005b919062000210565b8282826001600081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480620000ce5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80620001065750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156200013e576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250508173ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b8152505080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050620002bf565b6000815190506200020a81620002a5565b92915050565b6000806000606084860312156200022c576200022b620002a0565b5b60006200023c86828701620001f9565b93505060206200024f86828701620001f9565b92505060406200026286828701620001f9565b9150509250925092565b6000620002798262000280565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b620002b0816200026c565b8114620002bc57600080fd5b50565b60805160601c60a05160601c611247620003466000396000818161023001528181610311015281816103fc0152818161056601528181610647015281816107550152818161083101528181610912015281816109fd0152610b9d01526000818161034d015281816103c0015281816107310152818161094e01526109c101526112476000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80635b112591116100665780635b1125911461010c5780635e3e9fef1461012a5780636f8b44b014610146578063743e0c9b14610162578063d5abeb011461017e57610093565b806302d5c89914610098578063106e6290146100b4578063116191b6146100d057806321e093b1146100ee575b600080fd5b6100b260048036038101906100ad9190610d88565b61019c565b005b6100ce60048036038101906100c99190610d35565b6104d2565b005b6100d861072f565b6040516100e59190610fbf565b60405180910390f35b6100f6610753565b6040516101039190610ef6565b60405180910390f35b610114610777565b6040516101219190610ef6565b60405180910390f35b610144600480360381019061013f9190610d88565b61079d565b005b610160600480360381019061015b9190610e10565b610ad3565b005b61017c60048036038101906101779190610e10565b610b9b565b005b610186610c2b565b6040516101939190610ffa565b60405180910390f35b6101a4610c31565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461022b576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561029457600080fd5b505afa1580156102a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102cc9190610e3d565b856102d79190611069565b111561030f576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16631e458bee7f000000000000000000000000000000000000000000000000000000000000000086846040518463ffffffff1660e01b815260040161038c93929190610f88565b600060405180830381600087803b1580156103a657600080fd5b505af11580156103ba573d6000803e3d6000fd5b505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b8969bd47f0000000000000000000000000000000000000000000000000000000000000000878787876040518663ffffffff1660e01b815260040161043f959493929190610f11565b600060405180830381600087803b15801561045957600080fd5b505af115801561046d573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff167fba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe8585856040516104bb93929190611015565b60405180910390a26104cb610c81565b5050505050565b6104da610c31565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610561576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156105ca57600080fd5b505afa1580156105de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106029190610e3d565b8361060d9190611069565b1115610645576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16631e458bee8484846040518463ffffffff1660e01b81526004016106a293929190610f88565b600060405180830381600087803b1580156106bc57600080fd5b505af11580156106d0573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243648360405161071a9190610ffa565b60405180910390a261072a610c81565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6107a5610c31565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461082c576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561089557600080fd5b505afa1580156108a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108cd9190610e3d565b856108d89190611069565b1115610910576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16631e458bee7f000000000000000000000000000000000000000000000000000000000000000086846040518463ffffffff1660e01b815260040161098d93929190610f88565b600060405180830381600087803b1580156109a757600080fd5b505af11580156109bb573d6000803e3d6000fd5b505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635131ab597f0000000000000000000000000000000000000000000000000000000000000000878787876040518663ffffffff1660e01b8152600401610a40959493929190610f11565b600060405180830381600087803b158015610a5a57600080fd5b505af1158015610a6e573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff167f7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced858585604051610abc93929190611015565b60405180910390a2610acc610c81565b5050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b5a576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806002819055507f7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c81604051610b909190610ffa565b60405180910390a150565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166379cc679033836040518363ffffffff1660e01b8152600401610bf6929190610f5f565b600060405180830381600087803b158015610c1057600080fd5b505af1158015610c24573d6000803e3d6000fd5b5050505050565b60025481565b60026000541415610c77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6e90610fda565b60405180910390fd5b6002600081905550565b6001600081905550565b600081359050610c9a816111cc565b92915050565b600081359050610caf816111e3565b92915050565b60008083601f840112610ccb57610cca61117e565b5b8235905067ffffffffffffffff811115610ce857610ce7611179565b5b602083019150836001820283011115610d0457610d03611183565b5b9250929050565b600081359050610d1a816111fa565b92915050565b600081519050610d2f816111fa565b92915050565b600080600060608486031215610d4e57610d4d61118d565b5b6000610d5c86828701610c8b565b9350506020610d6d86828701610d0b565b9250506040610d7e86828701610ca0565b9150509250925092565b600080600080600060808688031215610da457610da361118d565b5b6000610db288828901610c8b565b9550506020610dc388828901610d0b565b945050604086013567ffffffffffffffff811115610de457610de3611188565b5b610df088828901610cb5565b93509350506060610e0388828901610ca0565b9150509295509295909350565b600060208284031215610e2657610e2561118d565b5b6000610e3484828501610d0b565b91505092915050565b600060208284031215610e5357610e5261118d565b5b6000610e6184828501610d20565b91505092915050565b610e73816110bf565b82525050565b610e82816110d1565b82525050565b6000610e948385611047565b9350610ea183858461113b565b610eaa83611192565b840190509392505050565b610ebe81611105565b82525050565b6000610ed1601f83611058565b9150610edc826111a3565b602082019050919050565b610ef0816110fb565b82525050565b6000602082019050610f0b6000830184610e6a565b92915050565b6000608082019050610f266000830188610e6a565b610f336020830187610e6a565b610f406040830186610ee7565b8181036060830152610f53818486610e88565b90509695505050505050565b6000604082019050610f746000830185610e6a565b610f816020830184610ee7565b9392505050565b6000606082019050610f9d6000830186610e6a565b610faa6020830185610ee7565b610fb76040830184610e79565b949350505050565b6000602082019050610fd46000830184610eb5565b92915050565b60006020820190508181036000830152610ff381610ec4565b9050919050565b600060208201905061100f6000830184610ee7565b92915050565b600060408201905061102a6000830186610ee7565b818103602083015261103d818486610e88565b9050949350505050565b600082825260208201905092915050565b600082825260208201905092915050565b6000611074826110fb565b915061107f836110fb565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156110b4576110b361114a565b5b828201905092915050565b60006110ca826110db565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061111082611117565b9050919050565b600061112282611129565b9050919050565b6000611134826110db565b9050919050565b82818337600083830152505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6111d5816110bf565b81146111e057600080fd5b50565b6111ec816110d1565b81146111f757600080fd5b50565b611203816110fb565b811461120e57600080fd5b5056fea264697066735822122044af4e37ef2ad6dd470fc1c3af732b6c36970257d67f6756302aee086afdfa4d64736f6c63430008070033", -} - -// 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/pkg/contracts/prototypes/zevm/gatewayzevm.sol/gatewayzevm.go b/pkg/contracts/prototypes/zevm/gatewayzevm.sol/gatewayzevm.go deleted file mode 100644 index d1a6d1ca..00000000 --- a/pkg/contracts/prototypes/zevm/gatewayzevm.sol/gatewayzevm.go +++ /dev/null @@ -1,1704 +0,0 @@ -// 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: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CallerIsNotFungibleModule\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedZetaSent\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GasFeeTransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientZRC20Amount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTarget\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyWZETAOrFungible\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WithdrawalFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZRC20BurnFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZRC20TransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"receiver\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"Call\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"zrc20\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"to\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasfee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"protocolFlatFee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"FUNGIBLE_MODULE_ADDRESS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"receiver\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"call\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"zrc20\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"origin\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainID\",\"type\":\"uint256\"}],\"internalType\":\"structzContext\",\"name\":\"context\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"depositAndCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"origin\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainID\",\"type\":\"uint256\"}],\"internalType\":\"structzContext\",\"name\":\"context\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"zrc20\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"depositAndCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"origin\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainID\",\"type\":\"uint256\"}],\"internalType\":\"structrevertContext\",\"name\":\"context\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"zrc20\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"depositAndRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"origin\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainID\",\"type\":\"uint256\"}],\"internalType\":\"structzContext\",\"name\":\"context\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"zrc20\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"origin\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainID\",\"type\":\"uint256\"}],\"internalType\":\"structrevertContext\",\"name\":\"context\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"zrc20\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"executeRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_zetaToken\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"receiver\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"zrc20\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"withdrawAndCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"receiver\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"zrc20\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"withdrawAndCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zetaToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", - Bin: "0x60a06040523073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152503480156200004757600080fd5b50620000586200005e60201b60201c565b62000208565b600060019054906101000a900460ff1615620000b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000a8906200015c565b60405180910390fd5b60ff801660008054906101000a900460ff1660ff1614620001225760ff6000806101000a81548160ff021916908360ff1602179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860ff6040516200011991906200017e565b60405180910390a15b565b6000620001336027836200019b565b91506200014082620001b9565b604082019050919050565b6200015681620001ac565b82525050565b60006020820190508181036000830152620001778162000124565b9050919050565b60006020820190506200019560008301846200014b565b92915050565b600082825260208201905092915050565b600060ff82169050919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320696e69746960008201527f616c697a696e6700000000000000000000000000000000000000000000000000602082015250565b60805160601c613e6d6200024360003960008181610b2a01528181610bb901528181610ccb01528181610d5a0152610e0a0152613e6d6000f3fe6080604052600436106101235760003560e01c806352d1902d116100a0578063bcf7f32b11610064578063bcf7f32b14610454578063c39aca371461047d578063c4d66de8146104a6578063f2fde38b146104cf578063f45346dc146104f8576101ff565b806352d1902d146103955780635af65967146103c0578063715018a6146103e95780637993c1e0146104005780638da5cb5b14610429576101ff565b80632e1a7d4d116100e75780632e1a7d4d146102d3578063309f5004146102fc5780633659cfe6146103255780633ce4a5bc1461034e5780634f1ef28614610379576101ff565b80630ac7c44c14610204578063135390f91461022d57806321501a951461025657806321e093b11461027f578063267e75a0146102aa576101ff565b366101ff5760fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156101c6575073735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b156101fd576040517f229930b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b005b600080fd5b34801561021057600080fd5b5061022b600480360381019061022691906129b3565b610521565b005b34801561023957600080fd5b50610254600480360381019061024f9190612a2f565b610588565b005b34801561026257600080fd5b5061027d60048036038101906102789190612cae565b61067f565b005b34801561028b57600080fd5b5061029461084e565b6040516102a1919061328e565b60405180910390f35b3480156102b657600080fd5b506102d160048036038101906102cc9190612dac565b610874565b005b3480156102df57600080fd5b506102fa60048036038101906102f59190612d52565b610957565b005b34801561030857600080fd5b50610323600480360381019061031e9190612b42565b610a34565b005b34801561033157600080fd5b5061034c6004803603810190610347919061283d565b610b28565b005b34801561035a57600080fd5b50610363610cb1565b604051610370919061328e565b60405180910390f35b610393600480360381019061038e919061286a565b610cc9565b005b3480156103a157600080fd5b506103aa610e06565b6040516103b791906134c5565b60405180910390f35b3480156103cc57600080fd5b506103e760048036038101906103e29190612b42565b610ebf565b005b3480156103f557600080fd5b506103fe6110f1565b005b34801561040c57600080fd5b5061042760048036038101906104229190612a9e565b611105565b005b34801561043557600080fd5b5061043e611202565b60405161044b919061328e565b60405180910390f35b34801561046057600080fd5b5061047b60048036038101906104769190612bf8565b61122c565b005b34801561048957600080fd5b506104a4600480360381019061049f9190612bf8565b611320565b005b3480156104b257600080fd5b506104cd60048036038101906104c8919061283d565b611552565b005b3480156104db57600080fd5b506104f660048036038101906104f1919061283d565b611749565b005b34801561050457600080fd5b5061051f600480360381019061051a9190612906565b6117cd565b005b610529611989565b3373ffffffffffffffffffffffffffffffffffffffff167f2b5af078ce280d812dc2241658dc5435c93408020e5418eef55a2b536de51c0f848484604051610573939291906134e0565b60405180910390a26105836119d9565b505050565b610590611989565b600061059c83836119e3565b90503373ffffffffffffffffffffffffffffffffffffffff167f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716838686858773ffffffffffffffffffffffffffffffffffffffff16634d8943bb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561062057600080fd5b505afa158015610634573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106589190612d7f565b60405161066995949392919061342f565b60405180910390a25061067a6119d9565b505050565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106f8576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061077157503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156107a8576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107b28484611cd3565b8273ffffffffffffffffffffffffffffffffffffffff1663de43156e8660fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168786866040518663ffffffff1660e01b815260040161081595949392919061372b565b600060405180830381600087803b15801561082f57600080fd5b505af1158015610843573d6000803e3d6000fd5b505050505050505050565b60fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61087c611989565b61089a8373735b14bb79463307aacbed86daf3322b1e6226ab611cd3565b3373ffffffffffffffffffffffffffffffffffffffff167f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc5771660fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673735b14bb79463307aacbed86daf3322b1e6226ab60405160200161091a9190613247565b60405160208183030381529060405286600080888860405161094297969594939291906132e0565b60405180910390a26109526119d9565b505050565b61095f611989565b61097d8173735b14bb79463307aacbed86daf3322b1e6226ab611cd3565b3373ffffffffffffffffffffffffffffffffffffffff167f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc5771660fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673735b14bb79463307aacbed86daf3322b1e6226ab6040516020016109fd9190613247565b60405160208183030381529060405284600080604051610a21959493929190613351565b60405180910390a2610a316119d9565b50565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610aad576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff166369582bee87878786866040518663ffffffff1660e01b8152600401610aee9594939291906136d6565b600060405180830381600087803b158015610b0857600080fd5b505af1158015610b1c573d6000803e3d6000fd5b50505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bae90613576565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610bf6611eef565b73ffffffffffffffffffffffffffffffffffffffff1614610c4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4390613596565b60405180910390fd5b610c5581611f46565b610cae81600067ffffffffffffffff811115610c7457610c736139f0565b5b6040519080825280601f01601f191660200182016040528015610ca65781602001600182028036833780820191505090505b506000611f51565b50565b73735b14bb79463307aacbed86daf3322b1e6226ab81565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610d58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4f90613576565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610d97611eef565b73ffffffffffffffffffffffffffffffffffffffff1614610ded576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de490613596565b60405180910390fd5b610df682611f46565b610e0282826001611f51565b5050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614610e96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8d906135b6565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b905090565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f38576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610fb157503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15610fe8576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff166347e7ef2484866040518363ffffffff1660e01b815260040161102392919061349c565b602060405180830381600087803b15801561103d57600080fd5b505af1158015611051573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110759190612959565b508273ffffffffffffffffffffffffffffffffffffffff166369582bee87878786866040518663ffffffff1660e01b81526004016110b79594939291906136d6565b600060405180830381600087803b1580156110d157600080fd5b505af11580156110e5573d6000803e3d6000fd5b50505050505050505050565b6110f96120ce565b611103600061214c565b565b61110d611989565b600061111985856119e3565b90503373ffffffffffffffffffffffffffffffffffffffff167f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716858888858973ffffffffffffffffffffffffffffffffffffffff16634d8943bb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561119d57600080fd5b505afa1580156111b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d59190612d7f565b89896040516111ea97969594939291906133be565b60405180910390a2506111fb6119d9565b5050505050565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112a5576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663de43156e87878786866040518663ffffffff1660e01b81526004016112e695949392919061372b565b600060405180830381600087803b15801561130057600080fd5b505af1158015611314573d6000803e3d6000fd5b50505050505050505050565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611399576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061141257503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611449576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff166347e7ef2484866040518363ffffffff1660e01b815260040161148492919061349c565b602060405180830381600087803b15801561149e57600080fd5b505af11580156114b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d69190612959565b508273ffffffffffffffffffffffffffffffffffffffff1663de43156e87878786866040518663ffffffff1660e01b815260040161151895949392919061372b565b600060405180830381600087803b15801561153257600080fd5b505af1158015611546573d6000803e3d6000fd5b50505050505050505050565b60008060019054906101000a900460ff161590508080156115835750600160008054906101000a900460ff1660ff16105b806115b0575061159230612212565b1580156115af5750600160008054906101000a900460ff1660ff16145b5b6115ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e6906135f6565b60405180910390fd5b60016000806101000a81548160ff021916908360ff160217905550801561162c576001600060016101000a81548160ff0219169083151502179055505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611693576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61169b612235565b6116a361228e565b6116ab6122df565b8160fb60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080156117455760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498600160405161173c9190613519565b60405180910390a15b5050565b6117516120ce565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156117c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b890613556565b60405180910390fd5b6117ca8161214c565b50565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611846576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806118bf57503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156118f6576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff166347e7ef2482846040518363ffffffff1660e01b815260040161193192919061349c565b602060405180830381600087803b15801561194b57600080fd5b505af115801561195f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119839190612959565b50505050565b600260c95414156119cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c6906136b6565b60405180910390fd5b600260c981905550565b600160c981905550565b60008060008373ffffffffffffffffffffffffffffffffffffffff1663d9eeebed6040518163ffffffff1660e01b8152600401604080518083038186803b158015611a2d57600080fd5b505afa158015611a41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6591906128c6565b915091508173ffffffffffffffffffffffffffffffffffffffff166323b872dd3373735b14bb79463307aacbed86daf3322b1e6226ab846040518463ffffffff1660e01b8152600401611aba939291906132a9565b602060405180830381600087803b158015611ad457600080fd5b505af1158015611ae8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b0c9190612959565b611b42576040517f0a7cd6d600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd3330886040518463ffffffff1660e01b8152600401611b7f939291906132a9565b602060405180830381600087803b158015611b9957600080fd5b505af1158015611bad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd19190612959565b611c07576040517f4dd9ee8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff166342966c68866040518263ffffffff1660e01b8152600401611c409190613780565b602060405180830381600087803b158015611c5a57600080fd5b505af1158015611c6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c929190612959565b611cc8576040517f2c77e05c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b809250505092915050565b60fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b8152600401611d32939291906132a9565b602060405180830381600087803b158015611d4c57600080fd5b505af1158015611d60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d849190612959565b611dba576040517fc7ffc47b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b8152600401611e159190613780565b600060405180830381600087803b158015611e2f57600080fd5b505af1158015611e43573d6000803e3d6000fd5b5050505060008173ffffffffffffffffffffffffffffffffffffffff1683604051611e6d90613279565b60006040518083038185875af1925050503d8060008114611eaa576040519150601f19603f3d011682016040523d82523d6000602084013e611eaf565b606091505b5050905080611eea576040517fc7ffc47b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b6000611f1d7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b612338565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611f4e6120ce565b50565b611f7d7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914360001b612342565b60000160009054906101000a900460ff1615611fa157611f9c8361234c565b6120c9565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611fe757600080fd5b505afa92505050801561201857506040513d601f19601f820116820180604052508101906120159190612986565b60015b612057576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204e90613616565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b81146120bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b3906135d6565b60405180910390fd5b506120c8838383612405565b5b505050565b6120d6612431565b73ffffffffffffffffffffffffffffffffffffffff166120f4611202565b73ffffffffffffffffffffffffffffffffffffffff161461214a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214190613656565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16612284576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227b90613696565b60405180910390fd5b61228c612439565b565b600060019054906101000a900460ff166122dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d490613696565b60405180910390fd5b565b600060019054906101000a900460ff1661232e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232590613696565b60405180910390fd5b61233661249a565b565b6000819050919050565b6000819050919050565b61235581612212565b612394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238b90613636565b60405180910390fd5b806123c17f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b612338565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61240e836124f3565b60008251118061241b5750805b1561242c5761242a8383612542565b505b505050565b600033905090565b600060019054906101000a900460ff16612488576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247f90613696565b60405180910390fd5b612498612493612431565b61214c565b565b600060019054906101000a900460ff166124e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e090613696565b60405180910390fd5b600160c981905550565b6124fc8161234c565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b60606125678383604051806060016040528060278152602001613e116027913961256f565b905092915050565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516125999190613262565b600060405180830381855af49150503d80600081146125d4576040519150601f19603f3d011682016040523d82523d6000602084013e6125d9565b606091505b50915091506125ea868383876125f5565b925050509392505050565b60608315612658576000835114156126505761261085612212565b61264f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264690613676565b60405180910390fd5b5b829050612663565b612662838361266b565b5b949350505050565b60008251111561267e5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b29190613534565b60405180910390fd5b60006126ce6126c9846137c0565b61379b565b9050828152602081018484840111156126ea576126e9613a3d565b5b6126f5848285613959565b509392505050565b60008135905061270c81613db4565b92915050565b60008151905061272181613db4565b92915050565b60008151905061273681613dcb565b92915050565b60008151905061274b81613de2565b92915050565b60008083601f84011261276757612766613a29565b5b8235905067ffffffffffffffff81111561278457612783613a24565b5b6020830191508360018202830111156127a05761279f613a38565b5b9250929050565b600082601f8301126127bc576127bb613a29565b5b81356127cc8482602086016126bb565b91505092915050565b6000606082840312156127eb576127ea613a2e565b5b81905092915050565b60006060828403121561280a57612809613a2e565b5b81905092915050565b60008135905061282281613df9565b92915050565b60008151905061283781613df9565b92915050565b60006020828403121561285357612852613a4c565b5b6000612861848285016126fd565b91505092915050565b6000806040838503121561288157612880613a4c565b5b600061288f858286016126fd565b925050602083013567ffffffffffffffff8111156128b0576128af613a42565b5b6128bc858286016127a7565b9150509250929050565b600080604083850312156128dd576128dc613a4c565b5b60006128eb85828601612712565b92505060206128fc85828601612828565b9150509250929050565b60008060006060848603121561291f5761291e613a4c565b5b600061292d868287016126fd565b935050602061293e86828701612813565b925050604061294f868287016126fd565b9150509250925092565b60006020828403121561296f5761296e613a4c565b5b600061297d84828501612727565b91505092915050565b60006020828403121561299c5761299b613a4c565b5b60006129aa8482850161273c565b91505092915050565b6000806000604084860312156129cc576129cb613a4c565b5b600084013567ffffffffffffffff8111156129ea576129e9613a42565b5b6129f6868287016127a7565b935050602084013567ffffffffffffffff811115612a1757612a16613a42565b5b612a2386828701612751565b92509250509250925092565b600080600060608486031215612a4857612a47613a4c565b5b600084013567ffffffffffffffff811115612a6657612a65613a42565b5b612a72868287016127a7565b9350506020612a8386828701612813565b9250506040612a94868287016126fd565b9150509250925092565b600080600080600060808688031215612aba57612ab9613a4c565b5b600086013567ffffffffffffffff811115612ad857612ad7613a42565b5b612ae4888289016127a7565b9550506020612af588828901612813565b9450506040612b06888289016126fd565b935050606086013567ffffffffffffffff811115612b2757612b26613a42565b5b612b3388828901612751565b92509250509295509295909350565b60008060008060008060a08789031215612b5f57612b5e613a4c565b5b600087013567ffffffffffffffff811115612b7d57612b7c613a42565b5b612b8989828a016127d5565b9650506020612b9a89828a016126fd565b9550506040612bab89828a01612813565b9450506060612bbc89828a016126fd565b935050608087013567ffffffffffffffff811115612bdd57612bdc613a42565b5b612be989828a01612751565b92509250509295509295509295565b60008060008060008060a08789031215612c1557612c14613a4c565b5b600087013567ffffffffffffffff811115612c3357612c32613a42565b5b612c3f89828a016127f4565b9650506020612c5089828a016126fd565b9550506040612c6189828a01612813565b9450506060612c7289828a016126fd565b935050608087013567ffffffffffffffff811115612c9357612c92613a42565b5b612c9f89828a01612751565b92509250509295509295509295565b600080600080600060808688031215612cca57612cc9613a4c565b5b600086013567ffffffffffffffff811115612ce857612ce7613a42565b5b612cf4888289016127f4565b9550506020612d0588828901612813565b9450506040612d16888289016126fd565b935050606086013567ffffffffffffffff811115612d3757612d36613a42565b5b612d4388828901612751565b92509250509295509295909350565b600060208284031215612d6857612d67613a4c565b5b6000612d7684828501612813565b91505092915050565b600060208284031215612d9557612d94613a4c565b5b6000612da384828501612828565b91505092915050565b600080600060408486031215612dc557612dc4613a4c565b5b6000612dd386828701612813565b935050602084013567ffffffffffffffff811115612df457612df3613a42565b5b612e0086828701612751565b92509250509250925092565b612e15816138d6565b82525050565b612e24816138d6565b82525050565b612e3b612e36826138d6565b6139cc565b82525050565b612e4a816138f4565b82525050565b6000612e5c8385613807565b9350612e69838584613959565b612e7283613a51565b840190509392505050565b6000612e898385613818565b9350612e96838584613959565b612e9f83613a51565b840190509392505050565b6000612eb5826137f1565b612ebf8185613818565b9350612ecf818560208601613968565b612ed881613a51565b840191505092915050565b6000612eee826137f1565b612ef88185613829565b9350612f08818560208601613968565b80840191505092915050565b612f1d81613935565b82525050565b612f2c81613947565b82525050565b6000612f3d826137fc565b612f478185613834565b9350612f57818560208601613968565b612f6081613a51565b840191505092915050565b6000612f78602683613834565b9150612f8382613a6f565b604082019050919050565b6000612f9b602c83613834565b9150612fa682613abe565b604082019050919050565b6000612fbe602c83613834565b9150612fc982613b0d565b604082019050919050565b6000612fe1603883613834565b9150612fec82613b5c565b604082019050919050565b6000613004602983613834565b915061300f82613bab565b604082019050919050565b6000613027602e83613834565b915061303282613bfa565b604082019050919050565b600061304a602e83613834565b915061305582613c49565b604082019050919050565b600061306d602d83613834565b915061307882613c98565b604082019050919050565b6000613090602083613834565b915061309b82613ce7565b602082019050919050565b60006130b3600083613818565b91506130be82613d10565b600082019050919050565b60006130d6600083613829565b91506130e182613d10565b600082019050919050565b60006130f9601d83613834565b915061310482613d13565b602082019050919050565b600061311c602b83613834565b915061312782613d3c565b604082019050919050565b600061313f601f83613834565b915061314a82613d8b565b602082019050919050565b600060608301613168600084018461385c565b858303600087015261317b838284612e50565b9250505061318c6020840184613845565b6131996020860182612e0c565b506131a760408401846138bf565b6131b46040860182613229565b508091505092915050565b6000606083016131d2600084018461385c565b85830360008701526131e5838284612e50565b925050506131f66020840184613845565b6132036020860182612e0c565b5061321160408401846138bf565b61321e6040860182613229565b508091505092915050565b6132328161391e565b82525050565b6132418161391e565b82525050565b60006132538284612e2a565b60148201915081905092915050565b600061326e8284612ee3565b915081905092915050565b6000613284826130c9565b9150819050919050565b60006020820190506132a36000830184612e1b565b92915050565b60006060820190506132be6000830186612e1b565b6132cb6020830185612e1b565b6132d86040830184613238565b949350505050565b600060c0820190506132f5600083018a612e1b565b81810360208301526133078189612eaa565b90506133166040830188613238565b6133236060830187612f14565b6133306080830186612f14565b81810360a0830152613343818486612e7d565b905098975050505050505050565b600060c0820190506133666000830188612e1b565b81810360208301526133788187612eaa565b90506133876040830186613238565b6133946060830185612f14565b6133a16080830184612f14565b81810360a08301526133b2816130a6565b90509695505050505050565b600060c0820190506133d3600083018a612e1b565b81810360208301526133e58189612eaa565b90506133f46040830188613238565b6134016060830187613238565b61340e6080830186613238565b81810360a0830152613421818486612e7d565b905098975050505050505050565b600060c0820190506134446000830188612e1b565b81810360208301526134568187612eaa565b90506134656040830186613238565b6134726060830185613238565b61347f6080830184613238565b81810360a0830152613490816130a6565b90509695505050505050565b60006040820190506134b16000830185612e1b565b6134be6020830184613238565b9392505050565b60006020820190506134da6000830184612e41565b92915050565b600060408201905081810360008301526134fa8186612eaa565b9050818103602083015261350f818486612e7d565b9050949350505050565b600060208201905061352e6000830184612f23565b92915050565b6000602082019050818103600083015261354e8184612f32565b905092915050565b6000602082019050818103600083015261356f81612f6b565b9050919050565b6000602082019050818103600083015261358f81612f8e565b9050919050565b600060208201905081810360008301526135af81612fb1565b9050919050565b600060208201905081810360008301526135cf81612fd4565b9050919050565b600060208201905081810360008301526135ef81612ff7565b9050919050565b6000602082019050818103600083015261360f8161301a565b9050919050565b6000602082019050818103600083015261362f8161303d565b9050919050565b6000602082019050818103600083015261364f81613060565b9050919050565b6000602082019050818103600083015261366f81613083565b9050919050565b6000602082019050818103600083015261368f816130ec565b9050919050565b600060208201905081810360008301526136af8161310f565b9050919050565b600060208201905081810360008301526136cf81613132565b9050919050565b600060808201905081810360008301526136f08188613155565b90506136ff6020830187612e1b565b61370c6040830186613238565b818103606083015261371f818486612e7d565b90509695505050505050565b6000608082019050818103600083015261374581886131bf565b90506137546020830187612e1b565b6137616040830186613238565b8181036060830152613774818486612e7d565b90509695505050505050565b60006020820190506137956000830184613238565b92915050565b60006137a56137b6565b90506137b1828261399b565b919050565b6000604051905090565b600067ffffffffffffffff8211156137db576137da6139f0565b5b6137e482613a51565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061385460208401846126fd565b905092915050565b6000808335600160200384360303811261387957613878613a47565b5b83810192508235915060208301925067ffffffffffffffff8211156138a1576138a0613a1f565b5b6001820236038413156138b7576138b6613a33565b5b509250929050565b60006138ce6020840184612813565b905092915050565b60006138e1826138fe565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006139408261391e565b9050919050565b600061395282613928565b9050919050565b82818337600083830152505050565b60005b8381101561398657808201518184015260208101905061396b565b83811115613995576000848401525b50505050565b6139a482613a51565b810181811067ffffffffffffffff821117156139c3576139c26139f0565b5b80604052505050565b60006139d7826139de565b9050919050565b60006139e982613a62565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f64656c656761746563616c6c0000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f6163746976652070726f78790000000000000000000000000000000000000000602082015250565b7f555550535570677261646561626c653a206d757374206e6f742062652063616c60008201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000602082015250565b7f45524331393637557067726164653a20756e737570706f727465642070726f7860008201527f6961626c65555549440000000000000000000000000000000000000000000000602082015250565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f45524331393637557067726164653a206e657720696d706c656d656e7461746960008201527f6f6e206973206e6f742055555053000000000000000000000000000000000000602082015250565b7f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60008201527f6f74206120636f6e747261637400000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b613dbd816138d6565b8114613dc857600080fd5b50565b613dd4816138e8565b8114613ddf57600080fd5b50565b613deb816138f4565b8114613df657600080fd5b50565b613e028161391e565b8114613e0d57600080fd5b5056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220378b717703092a88bbd7020c74cb919fe0a2dcf0feb2bf8581734d32a89387ac64736f6c63430008070033", -} - -// 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) -} - -// 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) -} - -// UpgradeTo is a paid mutator transaction binding the contract method 0x3659cfe6. -// -// Solidity: function upgradeTo(address newImplementation) returns() -func (_GatewayZEVM *GatewayZEVMTransactor) UpgradeTo(opts *bind.TransactOpts, newImplementation common.Address) (*types.Transaction, error) { - return _GatewayZEVM.contract.Transact(opts, "upgradeTo", newImplementation) -} - -// UpgradeTo is a paid mutator transaction binding the contract method 0x3659cfe6. -// -// Solidity: function upgradeTo(address newImplementation) returns() -func (_GatewayZEVM *GatewayZEVMSession) UpgradeTo(newImplementation common.Address) (*types.Transaction, error) { - return _GatewayZEVM.Contract.UpgradeTo(&_GatewayZEVM.TransactOpts, newImplementation) -} - -// UpgradeTo is a paid mutator transaction binding the contract method 0x3659cfe6. -// -// Solidity: function upgradeTo(address newImplementation) returns() -func (_GatewayZEVM *GatewayZEVMTransactorSession) UpgradeTo(newImplementation common.Address) (*types.Transaction, error) { - return _GatewayZEVM.Contract.UpgradeTo(&_GatewayZEVM.TransactOpts, newImplementation) -} - -// 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) -} - -// GatewayZEVMAdminChangedIterator is returned from FilterAdminChanged and is used to iterate over the raw logs and unpacked data for AdminChanged events raised by the GatewayZEVM contract. -type GatewayZEVMAdminChangedIterator struct { - Event *GatewayZEVMAdminChanged // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *GatewayZEVMAdminChangedIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(GatewayZEVMAdminChanged) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(GatewayZEVMAdminChanged) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *GatewayZEVMAdminChangedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *GatewayZEVMAdminChangedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// GatewayZEVMAdminChanged represents a AdminChanged event raised by the GatewayZEVM contract. -type GatewayZEVMAdminChanged 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 (_GatewayZEVM *GatewayZEVMFilterer) FilterAdminChanged(opts *bind.FilterOpts) (*GatewayZEVMAdminChangedIterator, error) { - - logs, sub, err := _GatewayZEVM.contract.FilterLogs(opts, "AdminChanged") - if err != nil { - return nil, err - } - return &GatewayZEVMAdminChangedIterator{contract: _GatewayZEVM.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 (_GatewayZEVM *GatewayZEVMFilterer) WatchAdminChanged(opts *bind.WatchOpts, sink chan<- *GatewayZEVMAdminChanged) (event.Subscription, error) { - - logs, sub, err := _GatewayZEVM.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(GatewayZEVMAdminChanged) - if err := _GatewayZEVM.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 (_GatewayZEVM *GatewayZEVMFilterer) ParseAdminChanged(log types.Log) (*GatewayZEVMAdminChanged, error) { - event := new(GatewayZEVMAdminChanged) - if err := _GatewayZEVM.contract.UnpackLog(event, "AdminChanged", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// GatewayZEVMBeaconUpgradedIterator is returned from FilterBeaconUpgraded and is used to iterate over the raw logs and unpacked data for BeaconUpgraded events raised by the GatewayZEVM contract. -type GatewayZEVMBeaconUpgradedIterator struct { - Event *GatewayZEVMBeaconUpgraded // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *GatewayZEVMBeaconUpgradedIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(GatewayZEVMBeaconUpgraded) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(GatewayZEVMBeaconUpgraded) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *GatewayZEVMBeaconUpgradedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *GatewayZEVMBeaconUpgradedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// GatewayZEVMBeaconUpgraded represents a BeaconUpgraded event raised by the GatewayZEVM contract. -type GatewayZEVMBeaconUpgraded 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 (_GatewayZEVM *GatewayZEVMFilterer) FilterBeaconUpgraded(opts *bind.FilterOpts, beacon []common.Address) (*GatewayZEVMBeaconUpgradedIterator, error) { - - var beaconRule []interface{} - for _, beaconItem := range beacon { - beaconRule = append(beaconRule, beaconItem) - } - - logs, sub, err := _GatewayZEVM.contract.FilterLogs(opts, "BeaconUpgraded", beaconRule) - if err != nil { - return nil, err - } - return &GatewayZEVMBeaconUpgradedIterator{contract: _GatewayZEVM.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 (_GatewayZEVM *GatewayZEVMFilterer) WatchBeaconUpgraded(opts *bind.WatchOpts, sink chan<- *GatewayZEVMBeaconUpgraded, beacon []common.Address) (event.Subscription, error) { - - var beaconRule []interface{} - for _, beaconItem := range beacon { - beaconRule = append(beaconRule, beaconItem) - } - - logs, sub, err := _GatewayZEVM.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(GatewayZEVMBeaconUpgraded) - if err := _GatewayZEVM.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 (_GatewayZEVM *GatewayZEVMFilterer) ParseBeaconUpgraded(log types.Log) (*GatewayZEVMBeaconUpgraded, error) { - event := new(GatewayZEVMBeaconUpgraded) - if err := _GatewayZEVM.contract.UnpackLog(event, "BeaconUpgraded", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// 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 uint8 - Raw types.Log // Blockchain specific contextual infos -} - -// FilterInitialized is a free log retrieval operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. -// -// Solidity: event Initialized(uint8 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 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. -// -// Solidity: event Initialized(uint8 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 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. -// -// Solidity: event Initialized(uint8 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/pkg/contracts/zevm/zrc20new.sol/zrc20new.go b/pkg/contracts/zevm/zrc20new.sol/zrc20new.go deleted file mode 100644 index 16e077b9..00000000 --- a/pkg/contracts/zevm/zrc20new.sol/zrc20new.go +++ /dev/null @@ -1,1831 +0,0 @@ -// 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: "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"chainid_\",\"type\":\"uint256\"},{\"internalType\":\"enumCoinType\",\"name\":\"coinType_\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit_\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"systemContractAddress_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"gatewayContractAddress_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CallerIsNotFungibleModule\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GasFeeTransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LowAllowance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LowBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroGasCoin\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroGasPrice\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"from\",\"type\":\"bytes\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"}],\"name\":\"UpdatedGasLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"protocolFlatFee\",\"type\":\"uint256\"}],\"name\":\"UpdatedProtocolFlatFee\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"systemContract\",\"type\":\"address\"}],\"name\":\"UpdatedSystemContract\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"to\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasFee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"protocolFlatFee\",\"type\":\"uint256\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"CHAIN_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COIN_TYPE\",\"outputs\":[{\"internalType\":\"enumCoinType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FUNGIBLE_MODULE_ADDRESS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"GATEWAY_CONTRACT_ADDRESS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROTOCOL_FLAT_FEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SYSTEM_CONTRACT_ADDRESS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"}],\"name\":\"updateGasLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"protocolFlatFee\",\"type\":\"uint256\"}],\"name\":\"updateProtocolFlatFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"updateSystemContractAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"to\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawGasFee\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x60c06040523480156200001157600080fd5b506040516200282d3803806200282d83398181016040528101906200003791906200035b565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614620000b1576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8760079080519060200190620000c9929190620001d1565b508660089080519060200190620000e2929190620001d1565b5085600960006101000a81548160ff021916908360ff16021790555084608081815250508360028111156200011c576200011b620005ae565b5b60a0816002811115620001345762000133620005ae565b5b60f81b8152505082600281905550816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505050620006bf565b828054620001df9062000542565b90600052602060002090601f0160209004810192826200020357600085556200024f565b82601f106200021e57805160ff19168380011785556200024f565b828001600101855582156200024f579182015b828111156200024e57825182559160200191906001019062000231565b5b5090506200025e919062000262565b5090565b5b808211156200027d57600081600090555060010162000263565b5090565b60006200029862000292846200048b565b62000462565b905082815260208101848484011115620002b757620002b662000640565b5b620002c48482856200050c565b509392505050565b600081519050620002dd8162000660565b92915050565b600081519050620002f4816200067a565b92915050565b600082601f8301126200031257620003116200063b565b5b81516200032484826020860162000281565b91505092915050565b6000815190506200033e816200068b565b92915050565b6000815190506200035581620006a5565b92915050565b600080600080600080600080610100898b0312156200037f576200037e6200064a565b5b600089015167ffffffffffffffff811115620003a0576200039f62000645565b5b620003ae8b828c01620002fa565b985050602089015167ffffffffffffffff811115620003d257620003d162000645565b5b620003e08b828c01620002fa565b9750506040620003f38b828c0162000344565b9650506060620004068b828c016200032d565b9550506080620004198b828c01620002e3565b94505060a06200042c8b828c016200032d565b93505060c06200043f8b828c01620002cc565b92505060e0620004528b828c01620002cc565b9150509295985092959890939650565b60006200046e62000481565b90506200047c828262000578565b919050565b6000604051905090565b600067ffffffffffffffff821115620004a957620004a86200060c565b5b620004b4826200064f565b9050602081019050919050565b6000620004ce82620004d5565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156200052c5780820151818401526020810190506200050f565b838111156200053c576000848401525b50505050565b600060028204905060018216806200055b57607f821691505b60208210811415620005725762000571620005dd565b5b50919050565b62000583826200064f565b810181811067ffffffffffffffff82111715620005a557620005a46200060c565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b6200066b81620004c1565b81146200067757600080fd5b50565b600381106200068857600080fd5b50565b6200069681620004f5565b8114620006a257600080fd5b50565b620006b081620004ff565b8114620006bc57600080fd5b50565b60805160a05160f81c612137620006f660003960006109580152600081816108a201528181610c250152610d5a01526121376000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806385e1f4d0116100c3578063d9eeebed1161007c578063d9eeebed146103cc578063dd62ed3e146103eb578063e2f535b81461041b578063eddeb12314610439578063f2441b3214610455578063f687d12a146104735761014d565b806385e1f4d0146102f657806395d89b4114610314578063a3413d0314610332578063a9059cbb14610350578063c701262614610380578063c835d7cc146103b05761014d565b8063313ce56711610115578063313ce5671461020c5780633ce4a5bc1461022a57806342966c681461024857806347e7ef24146102785780634d8943bb146102a857806370a08231146102c65761014d565b806306fdde0314610152578063091d278814610170578063095ea7b31461018e57806318160ddd146101be57806323b872dd146101dc575b600080fd5b61015a61048f565b6040516101679190611cad565b60405180910390f35b610178610521565b6040516101859190611ccf565b60405180910390f35b6101a860048036038101906101a3919061196e565b610527565b6040516101b59190611bfb565b60405180910390f35b6101c6610545565b6040516101d39190611ccf565b60405180910390f35b6101f660048036038101906101f1919061191b565b61054f565b6040516102039190611bfb565b60405180910390f35b610214610647565b6040516102219190611cea565b60405180910390f35b61023261065e565b60405161023f9190611b80565b60405180910390f35b610262600480360381019061025d9190611a37565b610676565b60405161026f9190611bfb565b60405180910390f35b610292600480360381019061028d919061196e565b61068b565b60405161029f9190611bfb565b60405180910390f35b6102b0610851565b6040516102bd9190611ccf565b60405180910390f35b6102e060048036038101906102db9190611881565b610857565b6040516102ed9190611ccf565b60405180910390f35b6102fe6108a0565b60405161030b9190611ccf565b60405180910390f35b61031c6108c4565b6040516103299190611cad565b60405180910390f35b61033a610956565b6040516103479190611c92565b60405180910390f35b61036a6004803603810190610365919061196e565b61097a565b6040516103779190611bfb565b60405180910390f35b61039a600480360381019061039591906119db565b610998565b6040516103a79190611bfb565b60405180910390f35b6103ca60048036038101906103c59190611881565b610aee565b005b6103d4610be1565b6040516103e2929190611bd2565b60405180910390f35b610405600480360381019061040091906118db565b610e4e565b6040516104129190611ccf565b60405180910390f35b610423610ed5565b6040516104309190611b80565b60405180910390f35b610453600480360381019061044e9190611a37565b610efb565b005b61045d610fb5565b60405161046a9190611b80565b60405180910390f35b61048d60048036038101906104889190611a37565b610fd9565b005b60606007805461049e90611f33565b80601f01602080910402602001604051908101604052809291908181526020018280546104ca90611f33565b80156105175780601f106104ec57610100808354040283529160200191610517565b820191906000526020600020905b8154815290600101906020018083116104fa57829003601f168201915b5050505050905090565b60025481565b600061053b610534611093565b848461109b565b6001905092915050565b6000600654905090565b600061055c848484611254565b6000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105a7611093565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561061e576040517f10bad14700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61063b8561062a611093565b85846106369190611e43565b61109b565b60019150509392505050565b6000600960009054906101000a900460ff16905090565b73735b14bb79463307aacbed86daf3322b1e6226ab81565b600061068233836114b0565b60019050919050565b600073735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610729575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b80156107835750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b156107ba576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107c48383611668565b8273ffffffffffffffffffffffffffffffffffffffff167f67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab373735b14bb79463307aacbed86daf3322b1e6226ab6040516020016108219190611b65565b6040516020818303038152906040528460405161083f929190611c16565b60405180910390a26001905092915050565b60035481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6060600880546108d390611f33565b80601f01602080910402602001604051908101604052809291908181526020018280546108ff90611f33565b801561094c5780601f106109215761010080835404028352916020019161094c565b820191906000526020600020905b81548152906001019060200180831161092f57829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061098e610987611093565b8484611254565b6001905092915050565b60008060006109a5610be1565b915091508173ffffffffffffffffffffffffffffffffffffffff166323b872dd3373735b14bb79463307aacbed86daf3322b1e6226ab846040518463ffffffff1660e01b81526004016109fa93929190611b9b565b602060405180830381600087803b158015610a1457600080fd5b505af1158015610a28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4c91906119ae565b610a82576040517f0a7cd6d600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a8c33856114b0565b3373ffffffffffffffffffffffffffffffffffffffff167f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d955868684600354604051610ada9493929190611c46565b60405180910390a260019250505092915050565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b67576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae81604051610bd69190611b80565b60405180910390a150565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630be155477f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401610c609190611ccf565b60206040518083038186803b158015610c7857600080fd5b505afa158015610c8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb091906118ae565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d19576040517f78fff39600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d7fd7afb7f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401610d959190611ccf565b60206040518083038186803b158015610dad57600080fd5b505afa158015610dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de59190611a64565b90506000811415610e22576040517fe661aed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060035460025483610e359190611de9565b610e3f9190611d93565b90508281945094505050509091565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f74576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806003819055507fef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f81604051610faa9190611ccf565b60405180910390a150565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611052576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806002819055507fff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a816040516110889190611ccf565b60405180910390a150565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611102576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611169576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112479190611ccf565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112bb576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611322576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156113a0576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81816113ac9190611e43565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461143e9190611d93565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114a29190611ccf565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611517576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611595576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81816115a19190611e43565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600660008282546115f69190611e43565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161165b9190611ccf565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116cf576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600660008282546116e19190611d93565b9250508190555080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117379190611d93565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161179c9190611ccf565b60405180910390a35050565b60006117bb6117b684611d2a565b611d05565b9050828152602081018484840111156117d7576117d661207b565b5b6117e2848285611ef1565b509392505050565b6000813590506117f9816120bc565b92915050565b60008151905061180e816120bc565b92915050565b600081519050611823816120d3565b92915050565b600082601f83011261183e5761183d612076565b5b813561184e8482602086016117a8565b91505092915050565b600081359050611866816120ea565b92915050565b60008151905061187b816120ea565b92915050565b60006020828403121561189757611896612085565b5b60006118a5848285016117ea565b91505092915050565b6000602082840312156118c4576118c3612085565b5b60006118d2848285016117ff565b91505092915050565b600080604083850312156118f2576118f1612085565b5b6000611900858286016117ea565b9250506020611911858286016117ea565b9150509250929050565b60008060006060848603121561193457611933612085565b5b6000611942868287016117ea565b9350506020611953868287016117ea565b925050604061196486828701611857565b9150509250925092565b6000806040838503121561198557611984612085565b5b6000611993858286016117ea565b92505060206119a485828601611857565b9150509250929050565b6000602082840312156119c4576119c3612085565b5b60006119d284828501611814565b91505092915050565b600080604083850312156119f2576119f1612085565b5b600083013567ffffffffffffffff811115611a1057611a0f612080565b5b611a1c85828601611829565b9250506020611a2d85828601611857565b9150509250929050565b600060208284031215611a4d57611a4c612085565b5b6000611a5b84828501611857565b91505092915050565b600060208284031215611a7a57611a79612085565b5b6000611a888482850161186c565b91505092915050565b611a9a81611e77565b82525050565b611ab1611aac82611e77565b611f96565b82525050565b611ac081611e89565b82525050565b6000611ad182611d5b565b611adb8185611d71565b9350611aeb818560208601611f00565b611af48161208a565b840191505092915050565b611b0881611edf565b82525050565b6000611b1982611d66565b611b238185611d82565b9350611b33818560208601611f00565b611b3c8161208a565b840191505092915050565b611b5081611ec8565b82525050565b611b5f81611ed2565b82525050565b6000611b718284611aa0565b60148201915081905092915050565b6000602082019050611b956000830184611a91565b92915050565b6000606082019050611bb06000830186611a91565b611bbd6020830185611a91565b611bca6040830184611b47565b949350505050565b6000604082019050611be76000830185611a91565b611bf46020830184611b47565b9392505050565b6000602082019050611c106000830184611ab7565b92915050565b60006040820190508181036000830152611c308185611ac6565b9050611c3f6020830184611b47565b9392505050565b60006080820190508181036000830152611c608187611ac6565b9050611c6f6020830186611b47565b611c7c6040830185611b47565b611c896060830184611b47565b95945050505050565b6000602082019050611ca76000830184611aff565b92915050565b60006020820190508181036000830152611cc78184611b0e565b905092915050565b6000602082019050611ce46000830184611b47565b92915050565b6000602082019050611cff6000830184611b56565b92915050565b6000611d0f611d20565b9050611d1b8282611f65565b919050565b6000604051905090565b600067ffffffffffffffff821115611d4557611d44612047565b5b611d4e8261208a565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000611d9e82611ec8565b9150611da983611ec8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611dde57611ddd611fba565b5b828201905092915050565b6000611df482611ec8565b9150611dff83611ec8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611e3857611e37611fba565b5b828202905092915050565b6000611e4e82611ec8565b9150611e5983611ec8565b925082821015611e6c57611e6b611fba565b5b828203905092915050565b6000611e8282611ea8565b9050919050565b60008115159050919050565b6000819050611ea3826120a8565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000611eea82611e95565b9050919050565b82818337600083830152505050565b60005b83811015611f1e578082015181840152602081019050611f03565b83811115611f2d576000848401525b50505050565b60006002820490506001821680611f4b57607f821691505b60208210811415611f5f57611f5e612018565b5b50919050565b611f6e8261208a565b810181811067ffffffffffffffff82111715611f8d57611f8c612047565b5b80604052505050565b6000611fa182611fa8565b9050919050565b6000611fb38261209b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b600381106120b9576120b8611fe9565b5b50565b6120c581611e77565b81146120d057600080fd5b50565b6120dc81611e89565b81146120e757600080fd5b50565b6120f381611ec8565b81146120fe57600080fd5b5056fea264697066735822122088cc6797a637e9f7f0d8220bcf745a632c2a8fcb9c479e8f3633f88f9d369ecc64736f6c63430008070033", -} - -// 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/pkg/openzeppelin/contracts-upgradeable/access/ownableupgradeable.sol/ownableupgradeable.go b/pkg/openzeppelin/contracts-upgradeable/access/ownableupgradeable.sol/ownableupgradeable.go deleted file mode 100644 index 1aa60b6a..00000000 --- a/pkg/openzeppelin/contracts-upgradeable/access/ownableupgradeable.sol/ownableupgradeable.go +++ /dev/null @@ -1,541 +0,0 @@ -// 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: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", -} - -// 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 uint8 - Raw types.Log // Blockchain specific contextual infos -} - -// FilterInitialized is a free log retrieval operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. -// -// Solidity: event Initialized(uint8 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 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. -// -// Solidity: event Initialized(uint8 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 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. -// -// Solidity: event Initialized(uint8 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/pkg/openzeppelin/contracts-upgradeable/interfaces/ierc1967upgradeable.sol/ierc1967upgradeable.go b/pkg/openzeppelin/contracts-upgradeable/interfaces/ierc1967upgradeable.sol/ierc1967upgradeable.go deleted file mode 100644 index 59892999..00000000 --- a/pkg/openzeppelin/contracts-upgradeable/interfaces/ierc1967upgradeable.sol/ierc1967upgradeable.go +++ /dev/null @@ -1,604 +0,0 @@ -// Code generated - DO NOT EDIT. -// This file is a generated binding and any manual changes will be lost. - -package ierc1967upgradeable - -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 -) - -// IERC1967UpgradeableMetaData contains all meta data concerning the IERC1967Upgradeable contract. -var IERC1967UpgradeableMetaData = &bind.MetaData{ - ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"}]", -} - -// IERC1967UpgradeableABI is the input ABI used to generate the binding from. -// Deprecated: Use IERC1967UpgradeableMetaData.ABI instead. -var IERC1967UpgradeableABI = IERC1967UpgradeableMetaData.ABI - -// IERC1967Upgradeable is an auto generated Go binding around an Ethereum contract. -type IERC1967Upgradeable struct { - IERC1967UpgradeableCaller // Read-only binding to the contract - IERC1967UpgradeableTransactor // Write-only binding to the contract - IERC1967UpgradeableFilterer // Log filterer for contract events -} - -// IERC1967UpgradeableCaller is an auto generated read-only Go binding around an Ethereum contract. -type IERC1967UpgradeableCaller struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// IERC1967UpgradeableTransactor is an auto generated write-only Go binding around an Ethereum contract. -type IERC1967UpgradeableTransactor struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// IERC1967UpgradeableFilterer is an auto generated log filtering Go binding around an Ethereum contract events. -type IERC1967UpgradeableFilterer struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// IERC1967UpgradeableSession is an auto generated Go binding around an Ethereum contract, -// with pre-set call and transact options. -type IERC1967UpgradeableSession struct { - Contract *IERC1967Upgradeable // 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 -} - -// IERC1967UpgradeableCallerSession is an auto generated read-only Go binding around an Ethereum contract, -// with pre-set call options. -type IERC1967UpgradeableCallerSession struct { - Contract *IERC1967UpgradeableCaller // Generic contract caller binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session -} - -// IERC1967UpgradeableTransactorSession is an auto generated write-only Go binding around an Ethereum contract, -// with pre-set transact options. -type IERC1967UpgradeableTransactorSession struct { - Contract *IERC1967UpgradeableTransactor // Generic contract transactor binding to set the session for - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// IERC1967UpgradeableRaw is an auto generated low-level Go binding around an Ethereum contract. -type IERC1967UpgradeableRaw struct { - Contract *IERC1967Upgradeable // Generic contract binding to access the raw methods on -} - -// IERC1967UpgradeableCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. -type IERC1967UpgradeableCallerRaw struct { - Contract *IERC1967UpgradeableCaller // Generic read-only contract binding to access the raw methods on -} - -// IERC1967UpgradeableTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. -type IERC1967UpgradeableTransactorRaw struct { - Contract *IERC1967UpgradeableTransactor // Generic write-only contract binding to access the raw methods on -} - -// NewIERC1967Upgradeable creates a new instance of IERC1967Upgradeable, bound to a specific deployed contract. -func NewIERC1967Upgradeable(address common.Address, backend bind.ContractBackend) (*IERC1967Upgradeable, error) { - contract, err := bindIERC1967Upgradeable(address, backend, backend, backend) - if err != nil { - return nil, err - } - return &IERC1967Upgradeable{IERC1967UpgradeableCaller: IERC1967UpgradeableCaller{contract: contract}, IERC1967UpgradeableTransactor: IERC1967UpgradeableTransactor{contract: contract}, IERC1967UpgradeableFilterer: IERC1967UpgradeableFilterer{contract: contract}}, nil -} - -// NewIERC1967UpgradeableCaller creates a new read-only instance of IERC1967Upgradeable, bound to a specific deployed contract. -func NewIERC1967UpgradeableCaller(address common.Address, caller bind.ContractCaller) (*IERC1967UpgradeableCaller, error) { - contract, err := bindIERC1967Upgradeable(address, caller, nil, nil) - if err != nil { - return nil, err - } - return &IERC1967UpgradeableCaller{contract: contract}, nil -} - -// NewIERC1967UpgradeableTransactor creates a new write-only instance of IERC1967Upgradeable, bound to a specific deployed contract. -func NewIERC1967UpgradeableTransactor(address common.Address, transactor bind.ContractTransactor) (*IERC1967UpgradeableTransactor, error) { - contract, err := bindIERC1967Upgradeable(address, nil, transactor, nil) - if err != nil { - return nil, err - } - return &IERC1967UpgradeableTransactor{contract: contract}, nil -} - -// NewIERC1967UpgradeableFilterer creates a new log filterer instance of IERC1967Upgradeable, bound to a specific deployed contract. -func NewIERC1967UpgradeableFilterer(address common.Address, filterer bind.ContractFilterer) (*IERC1967UpgradeableFilterer, error) { - contract, err := bindIERC1967Upgradeable(address, nil, nil, filterer) - if err != nil { - return nil, err - } - return &IERC1967UpgradeableFilterer{contract: contract}, nil -} - -// bindIERC1967Upgradeable binds a generic wrapper to an already deployed contract. -func bindIERC1967Upgradeable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { - parsed, err := IERC1967UpgradeableMetaData.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 (_IERC1967Upgradeable *IERC1967UpgradeableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _IERC1967Upgradeable.Contract.IERC1967UpgradeableCaller.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 (_IERC1967Upgradeable *IERC1967UpgradeableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _IERC1967Upgradeable.Contract.IERC1967UpgradeableTransactor.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_IERC1967Upgradeable *IERC1967UpgradeableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _IERC1967Upgradeable.Contract.IERC1967UpgradeableTransactor.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 (_IERC1967Upgradeable *IERC1967UpgradeableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _IERC1967Upgradeable.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 (_IERC1967Upgradeable *IERC1967UpgradeableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _IERC1967Upgradeable.Contract.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_IERC1967Upgradeable *IERC1967UpgradeableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _IERC1967Upgradeable.Contract.contract.Transact(opts, method, params...) -} - -// IERC1967UpgradeableAdminChangedIterator is returned from FilterAdminChanged and is used to iterate over the raw logs and unpacked data for AdminChanged events raised by the IERC1967Upgradeable contract. -type IERC1967UpgradeableAdminChangedIterator struct { - Event *IERC1967UpgradeableAdminChanged // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *IERC1967UpgradeableAdminChangedIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(IERC1967UpgradeableAdminChanged) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(IERC1967UpgradeableAdminChanged) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *IERC1967UpgradeableAdminChangedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *IERC1967UpgradeableAdminChangedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// IERC1967UpgradeableAdminChanged represents a AdminChanged event raised by the IERC1967Upgradeable contract. -type IERC1967UpgradeableAdminChanged 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 (_IERC1967Upgradeable *IERC1967UpgradeableFilterer) FilterAdminChanged(opts *bind.FilterOpts) (*IERC1967UpgradeableAdminChangedIterator, error) { - - logs, sub, err := _IERC1967Upgradeable.contract.FilterLogs(opts, "AdminChanged") - if err != nil { - return nil, err - } - return &IERC1967UpgradeableAdminChangedIterator{contract: _IERC1967Upgradeable.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 (_IERC1967Upgradeable *IERC1967UpgradeableFilterer) WatchAdminChanged(opts *bind.WatchOpts, sink chan<- *IERC1967UpgradeableAdminChanged) (event.Subscription, error) { - - logs, sub, err := _IERC1967Upgradeable.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(IERC1967UpgradeableAdminChanged) - if err := _IERC1967Upgradeable.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 (_IERC1967Upgradeable *IERC1967UpgradeableFilterer) ParseAdminChanged(log types.Log) (*IERC1967UpgradeableAdminChanged, error) { - event := new(IERC1967UpgradeableAdminChanged) - if err := _IERC1967Upgradeable.contract.UnpackLog(event, "AdminChanged", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// IERC1967UpgradeableBeaconUpgradedIterator is returned from FilterBeaconUpgraded and is used to iterate over the raw logs and unpacked data for BeaconUpgraded events raised by the IERC1967Upgradeable contract. -type IERC1967UpgradeableBeaconUpgradedIterator struct { - Event *IERC1967UpgradeableBeaconUpgraded // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *IERC1967UpgradeableBeaconUpgradedIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(IERC1967UpgradeableBeaconUpgraded) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(IERC1967UpgradeableBeaconUpgraded) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *IERC1967UpgradeableBeaconUpgradedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *IERC1967UpgradeableBeaconUpgradedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// IERC1967UpgradeableBeaconUpgraded represents a BeaconUpgraded event raised by the IERC1967Upgradeable contract. -type IERC1967UpgradeableBeaconUpgraded 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 (_IERC1967Upgradeable *IERC1967UpgradeableFilterer) FilterBeaconUpgraded(opts *bind.FilterOpts, beacon []common.Address) (*IERC1967UpgradeableBeaconUpgradedIterator, error) { - - var beaconRule []interface{} - for _, beaconItem := range beacon { - beaconRule = append(beaconRule, beaconItem) - } - - logs, sub, err := _IERC1967Upgradeable.contract.FilterLogs(opts, "BeaconUpgraded", beaconRule) - if err != nil { - return nil, err - } - return &IERC1967UpgradeableBeaconUpgradedIterator{contract: _IERC1967Upgradeable.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 (_IERC1967Upgradeable *IERC1967UpgradeableFilterer) WatchBeaconUpgraded(opts *bind.WatchOpts, sink chan<- *IERC1967UpgradeableBeaconUpgraded, beacon []common.Address) (event.Subscription, error) { - - var beaconRule []interface{} - for _, beaconItem := range beacon { - beaconRule = append(beaconRule, beaconItem) - } - - logs, sub, err := _IERC1967Upgradeable.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(IERC1967UpgradeableBeaconUpgraded) - if err := _IERC1967Upgradeable.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 (_IERC1967Upgradeable *IERC1967UpgradeableFilterer) ParseBeaconUpgraded(log types.Log) (*IERC1967UpgradeableBeaconUpgraded, error) { - event := new(IERC1967UpgradeableBeaconUpgraded) - if err := _IERC1967Upgradeable.contract.UnpackLog(event, "BeaconUpgraded", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// IERC1967UpgradeableUpgradedIterator is returned from FilterUpgraded and is used to iterate over the raw logs and unpacked data for Upgraded events raised by the IERC1967Upgradeable contract. -type IERC1967UpgradeableUpgradedIterator struct { - Event *IERC1967UpgradeableUpgraded // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *IERC1967UpgradeableUpgradedIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(IERC1967UpgradeableUpgraded) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(IERC1967UpgradeableUpgraded) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *IERC1967UpgradeableUpgradedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *IERC1967UpgradeableUpgradedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// IERC1967UpgradeableUpgraded represents a Upgraded event raised by the IERC1967Upgradeable contract. -type IERC1967UpgradeableUpgraded 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 (_IERC1967Upgradeable *IERC1967UpgradeableFilterer) FilterUpgraded(opts *bind.FilterOpts, implementation []common.Address) (*IERC1967UpgradeableUpgradedIterator, error) { - - var implementationRule []interface{} - for _, implementationItem := range implementation { - implementationRule = append(implementationRule, implementationItem) - } - - logs, sub, err := _IERC1967Upgradeable.contract.FilterLogs(opts, "Upgraded", implementationRule) - if err != nil { - return nil, err - } - return &IERC1967UpgradeableUpgradedIterator{contract: _IERC1967Upgradeable.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 (_IERC1967Upgradeable *IERC1967UpgradeableFilterer) WatchUpgraded(opts *bind.WatchOpts, sink chan<- *IERC1967UpgradeableUpgraded, implementation []common.Address) (event.Subscription, error) { - - var implementationRule []interface{} - for _, implementationItem := range implementation { - implementationRule = append(implementationRule, implementationItem) - } - - logs, sub, err := _IERC1967Upgradeable.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(IERC1967UpgradeableUpgraded) - if err := _IERC1967Upgradeable.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 (_IERC1967Upgradeable *IERC1967UpgradeableFilterer) ParseUpgraded(log types.Log) (*IERC1967UpgradeableUpgraded, error) { - event := new(IERC1967UpgradeableUpgraded) - if err := _IERC1967Upgradeable.contract.UnpackLog(event, "Upgraded", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} diff --git a/pkg/openzeppelin/contracts-upgradeable/proxy/beacon/ibeaconupgradeable.sol/ibeaconupgradeable.go b/pkg/openzeppelin/contracts-upgradeable/proxy/beacon/ibeaconupgradeable.sol/ibeaconupgradeable.go deleted file mode 100644 index a4a138b4..00000000 --- a/pkg/openzeppelin/contracts-upgradeable/proxy/beacon/ibeaconupgradeable.sol/ibeaconupgradeable.go +++ /dev/null @@ -1,212 +0,0 @@ -// Code generated - DO NOT EDIT. -// This file is a generated binding and any manual changes will be lost. - -package ibeaconupgradeable - -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 -) - -// IBeaconUpgradeableMetaData contains all meta data concerning the IBeaconUpgradeable contract. -var IBeaconUpgradeableMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", -} - -// IBeaconUpgradeableABI is the input ABI used to generate the binding from. -// Deprecated: Use IBeaconUpgradeableMetaData.ABI instead. -var IBeaconUpgradeableABI = IBeaconUpgradeableMetaData.ABI - -// IBeaconUpgradeable is an auto generated Go binding around an Ethereum contract. -type IBeaconUpgradeable struct { - IBeaconUpgradeableCaller // Read-only binding to the contract - IBeaconUpgradeableTransactor // Write-only binding to the contract - IBeaconUpgradeableFilterer // Log filterer for contract events -} - -// IBeaconUpgradeableCaller is an auto generated read-only Go binding around an Ethereum contract. -type IBeaconUpgradeableCaller struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// IBeaconUpgradeableTransactor is an auto generated write-only Go binding around an Ethereum contract. -type IBeaconUpgradeableTransactor struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// IBeaconUpgradeableFilterer is an auto generated log filtering Go binding around an Ethereum contract events. -type IBeaconUpgradeableFilterer struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// IBeaconUpgradeableSession is an auto generated Go binding around an Ethereum contract, -// with pre-set call and transact options. -type IBeaconUpgradeableSession struct { - Contract *IBeaconUpgradeable // 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 -} - -// IBeaconUpgradeableCallerSession is an auto generated read-only Go binding around an Ethereum contract, -// with pre-set call options. -type IBeaconUpgradeableCallerSession struct { - Contract *IBeaconUpgradeableCaller // Generic contract caller binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session -} - -// IBeaconUpgradeableTransactorSession is an auto generated write-only Go binding around an Ethereum contract, -// with pre-set transact options. -type IBeaconUpgradeableTransactorSession struct { - Contract *IBeaconUpgradeableTransactor // Generic contract transactor binding to set the session for - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// IBeaconUpgradeableRaw is an auto generated low-level Go binding around an Ethereum contract. -type IBeaconUpgradeableRaw struct { - Contract *IBeaconUpgradeable // Generic contract binding to access the raw methods on -} - -// IBeaconUpgradeableCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. -type IBeaconUpgradeableCallerRaw struct { - Contract *IBeaconUpgradeableCaller // Generic read-only contract binding to access the raw methods on -} - -// IBeaconUpgradeableTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. -type IBeaconUpgradeableTransactorRaw struct { - Contract *IBeaconUpgradeableTransactor // Generic write-only contract binding to access the raw methods on -} - -// NewIBeaconUpgradeable creates a new instance of IBeaconUpgradeable, bound to a specific deployed contract. -func NewIBeaconUpgradeable(address common.Address, backend bind.ContractBackend) (*IBeaconUpgradeable, error) { - contract, err := bindIBeaconUpgradeable(address, backend, backend, backend) - if err != nil { - return nil, err - } - return &IBeaconUpgradeable{IBeaconUpgradeableCaller: IBeaconUpgradeableCaller{contract: contract}, IBeaconUpgradeableTransactor: IBeaconUpgradeableTransactor{contract: contract}, IBeaconUpgradeableFilterer: IBeaconUpgradeableFilterer{contract: contract}}, nil -} - -// NewIBeaconUpgradeableCaller creates a new read-only instance of IBeaconUpgradeable, bound to a specific deployed contract. -func NewIBeaconUpgradeableCaller(address common.Address, caller bind.ContractCaller) (*IBeaconUpgradeableCaller, error) { - contract, err := bindIBeaconUpgradeable(address, caller, nil, nil) - if err != nil { - return nil, err - } - return &IBeaconUpgradeableCaller{contract: contract}, nil -} - -// NewIBeaconUpgradeableTransactor creates a new write-only instance of IBeaconUpgradeable, bound to a specific deployed contract. -func NewIBeaconUpgradeableTransactor(address common.Address, transactor bind.ContractTransactor) (*IBeaconUpgradeableTransactor, error) { - contract, err := bindIBeaconUpgradeable(address, nil, transactor, nil) - if err != nil { - return nil, err - } - return &IBeaconUpgradeableTransactor{contract: contract}, nil -} - -// NewIBeaconUpgradeableFilterer creates a new log filterer instance of IBeaconUpgradeable, bound to a specific deployed contract. -func NewIBeaconUpgradeableFilterer(address common.Address, filterer bind.ContractFilterer) (*IBeaconUpgradeableFilterer, error) { - contract, err := bindIBeaconUpgradeable(address, nil, nil, filterer) - if err != nil { - return nil, err - } - return &IBeaconUpgradeableFilterer{contract: contract}, nil -} - -// bindIBeaconUpgradeable binds a generic wrapper to an already deployed contract. -func bindIBeaconUpgradeable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { - parsed, err := IBeaconUpgradeableMetaData.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 (_IBeaconUpgradeable *IBeaconUpgradeableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _IBeaconUpgradeable.Contract.IBeaconUpgradeableCaller.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 (_IBeaconUpgradeable *IBeaconUpgradeableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _IBeaconUpgradeable.Contract.IBeaconUpgradeableTransactor.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_IBeaconUpgradeable *IBeaconUpgradeableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _IBeaconUpgradeable.Contract.IBeaconUpgradeableTransactor.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 (_IBeaconUpgradeable *IBeaconUpgradeableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _IBeaconUpgradeable.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 (_IBeaconUpgradeable *IBeaconUpgradeableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _IBeaconUpgradeable.Contract.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_IBeaconUpgradeable *IBeaconUpgradeableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _IBeaconUpgradeable.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 (_IBeaconUpgradeable *IBeaconUpgradeableCaller) Implementation(opts *bind.CallOpts) (common.Address, error) { - var out []interface{} - err := _IBeaconUpgradeable.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 (_IBeaconUpgradeable *IBeaconUpgradeableSession) Implementation() (common.Address, error) { - return _IBeaconUpgradeable.Contract.Implementation(&_IBeaconUpgradeable.CallOpts) -} - -// Implementation is a free data retrieval call binding the contract method 0x5c60da1b. -// -// Solidity: function implementation() view returns(address) -func (_IBeaconUpgradeable *IBeaconUpgradeableCallerSession) Implementation() (common.Address, error) { - return _IBeaconUpgradeable.Contract.Implementation(&_IBeaconUpgradeable.CallOpts) -} diff --git a/pkg/openzeppelin/contracts-upgradeable/proxy/erc1967/erc1967upgradeupgradeable.sol/erc1967upgradeupgradeable.go b/pkg/openzeppelin/contracts-upgradeable/proxy/erc1967/erc1967upgradeupgradeable.sol/erc1967upgradeupgradeable.go deleted file mode 100644 index 597aa411..00000000 --- a/pkg/openzeppelin/contracts-upgradeable/proxy/erc1967/erc1967upgradeupgradeable.sol/erc1967upgradeupgradeable.go +++ /dev/null @@ -1,738 +0,0 @@ -// Code generated - DO NOT EDIT. -// This file is a generated binding and any manual changes will be lost. - -package erc1967upgradeupgradeable - -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 -) - -// ERC1967UpgradeUpgradeableMetaData contains all meta data concerning the ERC1967UpgradeUpgradeable contract. -var ERC1967UpgradeUpgradeableMetaData = &bind.MetaData{ - ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"}]", -} - -// ERC1967UpgradeUpgradeableABI is the input ABI used to generate the binding from. -// Deprecated: Use ERC1967UpgradeUpgradeableMetaData.ABI instead. -var ERC1967UpgradeUpgradeableABI = ERC1967UpgradeUpgradeableMetaData.ABI - -// ERC1967UpgradeUpgradeable is an auto generated Go binding around an Ethereum contract. -type ERC1967UpgradeUpgradeable struct { - ERC1967UpgradeUpgradeableCaller // Read-only binding to the contract - ERC1967UpgradeUpgradeableTransactor // Write-only binding to the contract - ERC1967UpgradeUpgradeableFilterer // Log filterer for contract events -} - -// ERC1967UpgradeUpgradeableCaller is an auto generated read-only Go binding around an Ethereum contract. -type ERC1967UpgradeUpgradeableCaller struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// ERC1967UpgradeUpgradeableTransactor is an auto generated write-only Go binding around an Ethereum contract. -type ERC1967UpgradeUpgradeableTransactor struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// ERC1967UpgradeUpgradeableFilterer is an auto generated log filtering Go binding around an Ethereum contract events. -type ERC1967UpgradeUpgradeableFilterer struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// ERC1967UpgradeUpgradeableSession is an auto generated Go binding around an Ethereum contract, -// with pre-set call and transact options. -type ERC1967UpgradeUpgradeableSession struct { - Contract *ERC1967UpgradeUpgradeable // 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 -} - -// ERC1967UpgradeUpgradeableCallerSession is an auto generated read-only Go binding around an Ethereum contract, -// with pre-set call options. -type ERC1967UpgradeUpgradeableCallerSession struct { - Contract *ERC1967UpgradeUpgradeableCaller // Generic contract caller binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session -} - -// ERC1967UpgradeUpgradeableTransactorSession is an auto generated write-only Go binding around an Ethereum contract, -// with pre-set transact options. -type ERC1967UpgradeUpgradeableTransactorSession struct { - Contract *ERC1967UpgradeUpgradeableTransactor // Generic contract transactor binding to set the session for - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// ERC1967UpgradeUpgradeableRaw is an auto generated low-level Go binding around an Ethereum contract. -type ERC1967UpgradeUpgradeableRaw struct { - Contract *ERC1967UpgradeUpgradeable // Generic contract binding to access the raw methods on -} - -// ERC1967UpgradeUpgradeableCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. -type ERC1967UpgradeUpgradeableCallerRaw struct { - Contract *ERC1967UpgradeUpgradeableCaller // Generic read-only contract binding to access the raw methods on -} - -// ERC1967UpgradeUpgradeableTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. -type ERC1967UpgradeUpgradeableTransactorRaw struct { - Contract *ERC1967UpgradeUpgradeableTransactor // Generic write-only contract binding to access the raw methods on -} - -// NewERC1967UpgradeUpgradeable creates a new instance of ERC1967UpgradeUpgradeable, bound to a specific deployed contract. -func NewERC1967UpgradeUpgradeable(address common.Address, backend bind.ContractBackend) (*ERC1967UpgradeUpgradeable, error) { - contract, err := bindERC1967UpgradeUpgradeable(address, backend, backend, backend) - if err != nil { - return nil, err - } - return &ERC1967UpgradeUpgradeable{ERC1967UpgradeUpgradeableCaller: ERC1967UpgradeUpgradeableCaller{contract: contract}, ERC1967UpgradeUpgradeableTransactor: ERC1967UpgradeUpgradeableTransactor{contract: contract}, ERC1967UpgradeUpgradeableFilterer: ERC1967UpgradeUpgradeableFilterer{contract: contract}}, nil -} - -// NewERC1967UpgradeUpgradeableCaller creates a new read-only instance of ERC1967UpgradeUpgradeable, bound to a specific deployed contract. -func NewERC1967UpgradeUpgradeableCaller(address common.Address, caller bind.ContractCaller) (*ERC1967UpgradeUpgradeableCaller, error) { - contract, err := bindERC1967UpgradeUpgradeable(address, caller, nil, nil) - if err != nil { - return nil, err - } - return &ERC1967UpgradeUpgradeableCaller{contract: contract}, nil -} - -// NewERC1967UpgradeUpgradeableTransactor creates a new write-only instance of ERC1967UpgradeUpgradeable, bound to a specific deployed contract. -func NewERC1967UpgradeUpgradeableTransactor(address common.Address, transactor bind.ContractTransactor) (*ERC1967UpgradeUpgradeableTransactor, error) { - contract, err := bindERC1967UpgradeUpgradeable(address, nil, transactor, nil) - if err != nil { - return nil, err - } - return &ERC1967UpgradeUpgradeableTransactor{contract: contract}, nil -} - -// NewERC1967UpgradeUpgradeableFilterer creates a new log filterer instance of ERC1967UpgradeUpgradeable, bound to a specific deployed contract. -func NewERC1967UpgradeUpgradeableFilterer(address common.Address, filterer bind.ContractFilterer) (*ERC1967UpgradeUpgradeableFilterer, error) { - contract, err := bindERC1967UpgradeUpgradeable(address, nil, nil, filterer) - if err != nil { - return nil, err - } - return &ERC1967UpgradeUpgradeableFilterer{contract: contract}, nil -} - -// bindERC1967UpgradeUpgradeable binds a generic wrapper to an already deployed contract. -func bindERC1967UpgradeUpgradeable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { - parsed, err := ERC1967UpgradeUpgradeableMetaData.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 (_ERC1967UpgradeUpgradeable *ERC1967UpgradeUpgradeableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _ERC1967UpgradeUpgradeable.Contract.ERC1967UpgradeUpgradeableCaller.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 (_ERC1967UpgradeUpgradeable *ERC1967UpgradeUpgradeableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _ERC1967UpgradeUpgradeable.Contract.ERC1967UpgradeUpgradeableTransactor.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_ERC1967UpgradeUpgradeable *ERC1967UpgradeUpgradeableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _ERC1967UpgradeUpgradeable.Contract.ERC1967UpgradeUpgradeableTransactor.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 (_ERC1967UpgradeUpgradeable *ERC1967UpgradeUpgradeableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _ERC1967UpgradeUpgradeable.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 (_ERC1967UpgradeUpgradeable *ERC1967UpgradeUpgradeableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _ERC1967UpgradeUpgradeable.Contract.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_ERC1967UpgradeUpgradeable *ERC1967UpgradeUpgradeableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _ERC1967UpgradeUpgradeable.Contract.contract.Transact(opts, method, params...) -} - -// ERC1967UpgradeUpgradeableAdminChangedIterator is returned from FilterAdminChanged and is used to iterate over the raw logs and unpacked data for AdminChanged events raised by the ERC1967UpgradeUpgradeable contract. -type ERC1967UpgradeUpgradeableAdminChangedIterator struct { - Event *ERC1967UpgradeUpgradeableAdminChanged // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *ERC1967UpgradeUpgradeableAdminChangedIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(ERC1967UpgradeUpgradeableAdminChanged) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(ERC1967UpgradeUpgradeableAdminChanged) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *ERC1967UpgradeUpgradeableAdminChangedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *ERC1967UpgradeUpgradeableAdminChangedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// ERC1967UpgradeUpgradeableAdminChanged represents a AdminChanged event raised by the ERC1967UpgradeUpgradeable contract. -type ERC1967UpgradeUpgradeableAdminChanged 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 (_ERC1967UpgradeUpgradeable *ERC1967UpgradeUpgradeableFilterer) FilterAdminChanged(opts *bind.FilterOpts) (*ERC1967UpgradeUpgradeableAdminChangedIterator, error) { - - logs, sub, err := _ERC1967UpgradeUpgradeable.contract.FilterLogs(opts, "AdminChanged") - if err != nil { - return nil, err - } - return &ERC1967UpgradeUpgradeableAdminChangedIterator{contract: _ERC1967UpgradeUpgradeable.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 (_ERC1967UpgradeUpgradeable *ERC1967UpgradeUpgradeableFilterer) WatchAdminChanged(opts *bind.WatchOpts, sink chan<- *ERC1967UpgradeUpgradeableAdminChanged) (event.Subscription, error) { - - logs, sub, err := _ERC1967UpgradeUpgradeable.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(ERC1967UpgradeUpgradeableAdminChanged) - if err := _ERC1967UpgradeUpgradeable.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 (_ERC1967UpgradeUpgradeable *ERC1967UpgradeUpgradeableFilterer) ParseAdminChanged(log types.Log) (*ERC1967UpgradeUpgradeableAdminChanged, error) { - event := new(ERC1967UpgradeUpgradeableAdminChanged) - if err := _ERC1967UpgradeUpgradeable.contract.UnpackLog(event, "AdminChanged", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// ERC1967UpgradeUpgradeableBeaconUpgradedIterator is returned from FilterBeaconUpgraded and is used to iterate over the raw logs and unpacked data for BeaconUpgraded events raised by the ERC1967UpgradeUpgradeable contract. -type ERC1967UpgradeUpgradeableBeaconUpgradedIterator struct { - Event *ERC1967UpgradeUpgradeableBeaconUpgraded // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *ERC1967UpgradeUpgradeableBeaconUpgradedIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(ERC1967UpgradeUpgradeableBeaconUpgraded) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(ERC1967UpgradeUpgradeableBeaconUpgraded) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *ERC1967UpgradeUpgradeableBeaconUpgradedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *ERC1967UpgradeUpgradeableBeaconUpgradedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// ERC1967UpgradeUpgradeableBeaconUpgraded represents a BeaconUpgraded event raised by the ERC1967UpgradeUpgradeable contract. -type ERC1967UpgradeUpgradeableBeaconUpgraded 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 (_ERC1967UpgradeUpgradeable *ERC1967UpgradeUpgradeableFilterer) FilterBeaconUpgraded(opts *bind.FilterOpts, beacon []common.Address) (*ERC1967UpgradeUpgradeableBeaconUpgradedIterator, error) { - - var beaconRule []interface{} - for _, beaconItem := range beacon { - beaconRule = append(beaconRule, beaconItem) - } - - logs, sub, err := _ERC1967UpgradeUpgradeable.contract.FilterLogs(opts, "BeaconUpgraded", beaconRule) - if err != nil { - return nil, err - } - return &ERC1967UpgradeUpgradeableBeaconUpgradedIterator{contract: _ERC1967UpgradeUpgradeable.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 (_ERC1967UpgradeUpgradeable *ERC1967UpgradeUpgradeableFilterer) WatchBeaconUpgraded(opts *bind.WatchOpts, sink chan<- *ERC1967UpgradeUpgradeableBeaconUpgraded, beacon []common.Address) (event.Subscription, error) { - - var beaconRule []interface{} - for _, beaconItem := range beacon { - beaconRule = append(beaconRule, beaconItem) - } - - logs, sub, err := _ERC1967UpgradeUpgradeable.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(ERC1967UpgradeUpgradeableBeaconUpgraded) - if err := _ERC1967UpgradeUpgradeable.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 (_ERC1967UpgradeUpgradeable *ERC1967UpgradeUpgradeableFilterer) ParseBeaconUpgraded(log types.Log) (*ERC1967UpgradeUpgradeableBeaconUpgraded, error) { - event := new(ERC1967UpgradeUpgradeableBeaconUpgraded) - if err := _ERC1967UpgradeUpgradeable.contract.UnpackLog(event, "BeaconUpgraded", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// ERC1967UpgradeUpgradeableInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the ERC1967UpgradeUpgradeable contract. -type ERC1967UpgradeUpgradeableInitializedIterator struct { - Event *ERC1967UpgradeUpgradeableInitialized // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *ERC1967UpgradeUpgradeableInitializedIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(ERC1967UpgradeUpgradeableInitialized) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(ERC1967UpgradeUpgradeableInitialized) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *ERC1967UpgradeUpgradeableInitializedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *ERC1967UpgradeUpgradeableInitializedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// ERC1967UpgradeUpgradeableInitialized represents a Initialized event raised by the ERC1967UpgradeUpgradeable contract. -type ERC1967UpgradeUpgradeableInitialized struct { - Version uint8 - Raw types.Log // Blockchain specific contextual infos -} - -// FilterInitialized is a free log retrieval operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. -// -// Solidity: event Initialized(uint8 version) -func (_ERC1967UpgradeUpgradeable *ERC1967UpgradeUpgradeableFilterer) FilterInitialized(opts *bind.FilterOpts) (*ERC1967UpgradeUpgradeableInitializedIterator, error) { - - logs, sub, err := _ERC1967UpgradeUpgradeable.contract.FilterLogs(opts, "Initialized") - if err != nil { - return nil, err - } - return &ERC1967UpgradeUpgradeableInitializedIterator{contract: _ERC1967UpgradeUpgradeable.contract, event: "Initialized", logs: logs, sub: sub}, nil -} - -// WatchInitialized is a free log subscription operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. -// -// Solidity: event Initialized(uint8 version) -func (_ERC1967UpgradeUpgradeable *ERC1967UpgradeUpgradeableFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *ERC1967UpgradeUpgradeableInitialized) (event.Subscription, error) { - - logs, sub, err := _ERC1967UpgradeUpgradeable.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(ERC1967UpgradeUpgradeableInitialized) - if err := _ERC1967UpgradeUpgradeable.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 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. -// -// Solidity: event Initialized(uint8 version) -func (_ERC1967UpgradeUpgradeable *ERC1967UpgradeUpgradeableFilterer) ParseInitialized(log types.Log) (*ERC1967UpgradeUpgradeableInitialized, error) { - event := new(ERC1967UpgradeUpgradeableInitialized) - if err := _ERC1967UpgradeUpgradeable.contract.UnpackLog(event, "Initialized", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// ERC1967UpgradeUpgradeableUpgradedIterator is returned from FilterUpgraded and is used to iterate over the raw logs and unpacked data for Upgraded events raised by the ERC1967UpgradeUpgradeable contract. -type ERC1967UpgradeUpgradeableUpgradedIterator struct { - Event *ERC1967UpgradeUpgradeableUpgraded // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *ERC1967UpgradeUpgradeableUpgradedIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(ERC1967UpgradeUpgradeableUpgraded) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(ERC1967UpgradeUpgradeableUpgraded) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *ERC1967UpgradeUpgradeableUpgradedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *ERC1967UpgradeUpgradeableUpgradedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// ERC1967UpgradeUpgradeableUpgraded represents a Upgraded event raised by the ERC1967UpgradeUpgradeable contract. -type ERC1967UpgradeUpgradeableUpgraded 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 (_ERC1967UpgradeUpgradeable *ERC1967UpgradeUpgradeableFilterer) FilterUpgraded(opts *bind.FilterOpts, implementation []common.Address) (*ERC1967UpgradeUpgradeableUpgradedIterator, error) { - - var implementationRule []interface{} - for _, implementationItem := range implementation { - implementationRule = append(implementationRule, implementationItem) - } - - logs, sub, err := _ERC1967UpgradeUpgradeable.contract.FilterLogs(opts, "Upgraded", implementationRule) - if err != nil { - return nil, err - } - return &ERC1967UpgradeUpgradeableUpgradedIterator{contract: _ERC1967UpgradeUpgradeable.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 (_ERC1967UpgradeUpgradeable *ERC1967UpgradeUpgradeableFilterer) WatchUpgraded(opts *bind.WatchOpts, sink chan<- *ERC1967UpgradeUpgradeableUpgraded, implementation []common.Address) (event.Subscription, error) { - - var implementationRule []interface{} - for _, implementationItem := range implementation { - implementationRule = append(implementationRule, implementationItem) - } - - logs, sub, err := _ERC1967UpgradeUpgradeable.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(ERC1967UpgradeUpgradeableUpgraded) - if err := _ERC1967UpgradeUpgradeable.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 (_ERC1967UpgradeUpgradeable *ERC1967UpgradeUpgradeableFilterer) ParseUpgraded(log types.Log) (*ERC1967UpgradeUpgradeableUpgraded, error) { - event := new(ERC1967UpgradeUpgradeableUpgraded) - if err := _ERC1967UpgradeUpgradeable.contract.UnpackLog(event, "Upgraded", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} diff --git a/pkg/openzeppelin/contracts-upgradeable/utils/addressupgradeable.sol/addressupgradeable.go b/pkg/openzeppelin/contracts-upgradeable/utils/addressupgradeable.sol/addressupgradeable.go deleted file mode 100644 index 4b250099..00000000 --- a/pkg/openzeppelin/contracts-upgradeable/utils/addressupgradeable.sol/addressupgradeable.go +++ /dev/null @@ -1,203 +0,0 @@ -// Code generated - DO NOT EDIT. -// This file is a generated binding and any manual changes will be lost. - -package addressupgradeable - -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 -) - -// AddressUpgradeableMetaData contains all meta data concerning the AddressUpgradeable contract. -var AddressUpgradeableMetaData = &bind.MetaData{ - ABI: "[]", - Bin: "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bb9977b6b2ae9fdaa9573cc7ef606484b9a47ba5e63f00c602b173471d15b20a64736f6c63430008070033", -} - -// AddressUpgradeableABI is the input ABI used to generate the binding from. -// Deprecated: Use AddressUpgradeableMetaData.ABI instead. -var AddressUpgradeableABI = AddressUpgradeableMetaData.ABI - -// AddressUpgradeableBin is the compiled bytecode used for deploying new contracts. -// Deprecated: Use AddressUpgradeableMetaData.Bin instead. -var AddressUpgradeableBin = AddressUpgradeableMetaData.Bin - -// DeployAddressUpgradeable deploys a new Ethereum contract, binding an instance of AddressUpgradeable to it. -func DeployAddressUpgradeable(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *AddressUpgradeable, error) { - parsed, err := AddressUpgradeableMetaData.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(AddressUpgradeableBin), backend) - if err != nil { - return common.Address{}, nil, nil, err - } - return address, tx, &AddressUpgradeable{AddressUpgradeableCaller: AddressUpgradeableCaller{contract: contract}, AddressUpgradeableTransactor: AddressUpgradeableTransactor{contract: contract}, AddressUpgradeableFilterer: AddressUpgradeableFilterer{contract: contract}}, nil -} - -// AddressUpgradeable is an auto generated Go binding around an Ethereum contract. -type AddressUpgradeable struct { - AddressUpgradeableCaller // Read-only binding to the contract - AddressUpgradeableTransactor // Write-only binding to the contract - AddressUpgradeableFilterer // Log filterer for contract events -} - -// AddressUpgradeableCaller is an auto generated read-only Go binding around an Ethereum contract. -type AddressUpgradeableCaller struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// AddressUpgradeableTransactor is an auto generated write-only Go binding around an Ethereum contract. -type AddressUpgradeableTransactor struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// AddressUpgradeableFilterer is an auto generated log filtering Go binding around an Ethereum contract events. -type AddressUpgradeableFilterer struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// AddressUpgradeableSession is an auto generated Go binding around an Ethereum contract, -// with pre-set call and transact options. -type AddressUpgradeableSession struct { - Contract *AddressUpgradeable // 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 -} - -// AddressUpgradeableCallerSession is an auto generated read-only Go binding around an Ethereum contract, -// with pre-set call options. -type AddressUpgradeableCallerSession struct { - Contract *AddressUpgradeableCaller // Generic contract caller binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session -} - -// AddressUpgradeableTransactorSession is an auto generated write-only Go binding around an Ethereum contract, -// with pre-set transact options. -type AddressUpgradeableTransactorSession struct { - Contract *AddressUpgradeableTransactor // Generic contract transactor binding to set the session for - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// AddressUpgradeableRaw is an auto generated low-level Go binding around an Ethereum contract. -type AddressUpgradeableRaw struct { - Contract *AddressUpgradeable // Generic contract binding to access the raw methods on -} - -// AddressUpgradeableCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. -type AddressUpgradeableCallerRaw struct { - Contract *AddressUpgradeableCaller // Generic read-only contract binding to access the raw methods on -} - -// AddressUpgradeableTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. -type AddressUpgradeableTransactorRaw struct { - Contract *AddressUpgradeableTransactor // Generic write-only contract binding to access the raw methods on -} - -// NewAddressUpgradeable creates a new instance of AddressUpgradeable, bound to a specific deployed contract. -func NewAddressUpgradeable(address common.Address, backend bind.ContractBackend) (*AddressUpgradeable, error) { - contract, err := bindAddressUpgradeable(address, backend, backend, backend) - if err != nil { - return nil, err - } - return &AddressUpgradeable{AddressUpgradeableCaller: AddressUpgradeableCaller{contract: contract}, AddressUpgradeableTransactor: AddressUpgradeableTransactor{contract: contract}, AddressUpgradeableFilterer: AddressUpgradeableFilterer{contract: contract}}, nil -} - -// NewAddressUpgradeableCaller creates a new read-only instance of AddressUpgradeable, bound to a specific deployed contract. -func NewAddressUpgradeableCaller(address common.Address, caller bind.ContractCaller) (*AddressUpgradeableCaller, error) { - contract, err := bindAddressUpgradeable(address, caller, nil, nil) - if err != nil { - return nil, err - } - return &AddressUpgradeableCaller{contract: contract}, nil -} - -// NewAddressUpgradeableTransactor creates a new write-only instance of AddressUpgradeable, bound to a specific deployed contract. -func NewAddressUpgradeableTransactor(address common.Address, transactor bind.ContractTransactor) (*AddressUpgradeableTransactor, error) { - contract, err := bindAddressUpgradeable(address, nil, transactor, nil) - if err != nil { - return nil, err - } - return &AddressUpgradeableTransactor{contract: contract}, nil -} - -// NewAddressUpgradeableFilterer creates a new log filterer instance of AddressUpgradeable, bound to a specific deployed contract. -func NewAddressUpgradeableFilterer(address common.Address, filterer bind.ContractFilterer) (*AddressUpgradeableFilterer, error) { - contract, err := bindAddressUpgradeable(address, nil, nil, filterer) - if err != nil { - return nil, err - } - return &AddressUpgradeableFilterer{contract: contract}, nil -} - -// bindAddressUpgradeable binds a generic wrapper to an already deployed contract. -func bindAddressUpgradeable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { - parsed, err := AddressUpgradeableMetaData.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 (_AddressUpgradeable *AddressUpgradeableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _AddressUpgradeable.Contract.AddressUpgradeableCaller.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 (_AddressUpgradeable *AddressUpgradeableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _AddressUpgradeable.Contract.AddressUpgradeableTransactor.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_AddressUpgradeable *AddressUpgradeableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _AddressUpgradeable.Contract.AddressUpgradeableTransactor.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 (_AddressUpgradeable *AddressUpgradeableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _AddressUpgradeable.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 (_AddressUpgradeable *AddressUpgradeableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _AddressUpgradeable.Contract.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_AddressUpgradeable *AddressUpgradeableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _AddressUpgradeable.Contract.contract.Transact(opts, method, params...) -} diff --git a/pkg/openzeppelin/contracts-upgradeable/utils/storageslotupgradeable.sol/storageslotupgradeable.go b/pkg/openzeppelin/contracts-upgradeable/utils/storageslotupgradeable.sol/storageslotupgradeable.go deleted file mode 100644 index 5e1b607e..00000000 --- a/pkg/openzeppelin/contracts-upgradeable/utils/storageslotupgradeable.sol/storageslotupgradeable.go +++ /dev/null @@ -1,203 +0,0 @@ -// Code generated - DO NOT EDIT. -// This file is a generated binding and any manual changes will be lost. - -package storageslotupgradeable - -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 -) - -// StorageSlotUpgradeableMetaData contains all meta data concerning the StorageSlotUpgradeable contract. -var StorageSlotUpgradeableMetaData = &bind.MetaData{ - ABI: "[]", - Bin: "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e18234fba4711fe8a78c85843309b44a2dc320c8280807033ee03f351f0af3ae64736f6c63430008070033", -} - -// StorageSlotUpgradeableABI is the input ABI used to generate the binding from. -// Deprecated: Use StorageSlotUpgradeableMetaData.ABI instead. -var StorageSlotUpgradeableABI = StorageSlotUpgradeableMetaData.ABI - -// StorageSlotUpgradeableBin is the compiled bytecode used for deploying new contracts. -// Deprecated: Use StorageSlotUpgradeableMetaData.Bin instead. -var StorageSlotUpgradeableBin = StorageSlotUpgradeableMetaData.Bin - -// DeployStorageSlotUpgradeable deploys a new Ethereum contract, binding an instance of StorageSlotUpgradeable to it. -func DeployStorageSlotUpgradeable(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *StorageSlotUpgradeable, error) { - parsed, err := StorageSlotUpgradeableMetaData.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(StorageSlotUpgradeableBin), backend) - if err != nil { - return common.Address{}, nil, nil, err - } - return address, tx, &StorageSlotUpgradeable{StorageSlotUpgradeableCaller: StorageSlotUpgradeableCaller{contract: contract}, StorageSlotUpgradeableTransactor: StorageSlotUpgradeableTransactor{contract: contract}, StorageSlotUpgradeableFilterer: StorageSlotUpgradeableFilterer{contract: contract}}, nil -} - -// StorageSlotUpgradeable is an auto generated Go binding around an Ethereum contract. -type StorageSlotUpgradeable struct { - StorageSlotUpgradeableCaller // Read-only binding to the contract - StorageSlotUpgradeableTransactor // Write-only binding to the contract - StorageSlotUpgradeableFilterer // Log filterer for contract events -} - -// StorageSlotUpgradeableCaller is an auto generated read-only Go binding around an Ethereum contract. -type StorageSlotUpgradeableCaller struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// StorageSlotUpgradeableTransactor is an auto generated write-only Go binding around an Ethereum contract. -type StorageSlotUpgradeableTransactor struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// StorageSlotUpgradeableFilterer is an auto generated log filtering Go binding around an Ethereum contract events. -type StorageSlotUpgradeableFilterer struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// StorageSlotUpgradeableSession is an auto generated Go binding around an Ethereum contract, -// with pre-set call and transact options. -type StorageSlotUpgradeableSession struct { - Contract *StorageSlotUpgradeable // 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 -} - -// StorageSlotUpgradeableCallerSession is an auto generated read-only Go binding around an Ethereum contract, -// with pre-set call options. -type StorageSlotUpgradeableCallerSession struct { - Contract *StorageSlotUpgradeableCaller // Generic contract caller binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session -} - -// StorageSlotUpgradeableTransactorSession is an auto generated write-only Go binding around an Ethereum contract, -// with pre-set transact options. -type StorageSlotUpgradeableTransactorSession struct { - Contract *StorageSlotUpgradeableTransactor // Generic contract transactor binding to set the session for - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// StorageSlotUpgradeableRaw is an auto generated low-level Go binding around an Ethereum contract. -type StorageSlotUpgradeableRaw struct { - Contract *StorageSlotUpgradeable // Generic contract binding to access the raw methods on -} - -// StorageSlotUpgradeableCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. -type StorageSlotUpgradeableCallerRaw struct { - Contract *StorageSlotUpgradeableCaller // Generic read-only contract binding to access the raw methods on -} - -// StorageSlotUpgradeableTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. -type StorageSlotUpgradeableTransactorRaw struct { - Contract *StorageSlotUpgradeableTransactor // Generic write-only contract binding to access the raw methods on -} - -// NewStorageSlotUpgradeable creates a new instance of StorageSlotUpgradeable, bound to a specific deployed contract. -func NewStorageSlotUpgradeable(address common.Address, backend bind.ContractBackend) (*StorageSlotUpgradeable, error) { - contract, err := bindStorageSlotUpgradeable(address, backend, backend, backend) - if err != nil { - return nil, err - } - return &StorageSlotUpgradeable{StorageSlotUpgradeableCaller: StorageSlotUpgradeableCaller{contract: contract}, StorageSlotUpgradeableTransactor: StorageSlotUpgradeableTransactor{contract: contract}, StorageSlotUpgradeableFilterer: StorageSlotUpgradeableFilterer{contract: contract}}, nil -} - -// NewStorageSlotUpgradeableCaller creates a new read-only instance of StorageSlotUpgradeable, bound to a specific deployed contract. -func NewStorageSlotUpgradeableCaller(address common.Address, caller bind.ContractCaller) (*StorageSlotUpgradeableCaller, error) { - contract, err := bindStorageSlotUpgradeable(address, caller, nil, nil) - if err != nil { - return nil, err - } - return &StorageSlotUpgradeableCaller{contract: contract}, nil -} - -// NewStorageSlotUpgradeableTransactor creates a new write-only instance of StorageSlotUpgradeable, bound to a specific deployed contract. -func NewStorageSlotUpgradeableTransactor(address common.Address, transactor bind.ContractTransactor) (*StorageSlotUpgradeableTransactor, error) { - contract, err := bindStorageSlotUpgradeable(address, nil, transactor, nil) - if err != nil { - return nil, err - } - return &StorageSlotUpgradeableTransactor{contract: contract}, nil -} - -// NewStorageSlotUpgradeableFilterer creates a new log filterer instance of StorageSlotUpgradeable, bound to a specific deployed contract. -func NewStorageSlotUpgradeableFilterer(address common.Address, filterer bind.ContractFilterer) (*StorageSlotUpgradeableFilterer, error) { - contract, err := bindStorageSlotUpgradeable(address, nil, nil, filterer) - if err != nil { - return nil, err - } - return &StorageSlotUpgradeableFilterer{contract: contract}, nil -} - -// bindStorageSlotUpgradeable binds a generic wrapper to an already deployed contract. -func bindStorageSlotUpgradeable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { - parsed, err := StorageSlotUpgradeableMetaData.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 (_StorageSlotUpgradeable *StorageSlotUpgradeableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _StorageSlotUpgradeable.Contract.StorageSlotUpgradeableCaller.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 (_StorageSlotUpgradeable *StorageSlotUpgradeableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _StorageSlotUpgradeable.Contract.StorageSlotUpgradeableTransactor.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_StorageSlotUpgradeable *StorageSlotUpgradeableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _StorageSlotUpgradeable.Contract.StorageSlotUpgradeableTransactor.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 (_StorageSlotUpgradeable *StorageSlotUpgradeableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _StorageSlotUpgradeable.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 (_StorageSlotUpgradeable *StorageSlotUpgradeableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _StorageSlotUpgradeable.Contract.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_StorageSlotUpgradeable *StorageSlotUpgradeableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _StorageSlotUpgradeable.Contract.contract.Transact(opts, method, params...) -} diff --git a/remappings.txt b/remappings.txt deleted file mode 100644 index 8b720f8c..00000000 --- a/remappings.txt +++ /dev/null @@ -1,3 +0,0 @@ -@openzeppelin/=node_modules/@openzeppelin/ -@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/ -forge-std/=lib/forge-std/src/ \ No newline at end of file diff --git a/scripts/readme.md b/scripts/readme.md deleted file mode 100644 index 63551bfd..00000000 --- a/scripts/readme.md +++ /dev/null @@ -1,16 +0,0 @@ -## Worker script - -To start localnet execute: - -``` -yarn compile -yarn localnet -``` - -This will run hardhat local node and worker script, which will deploy all contracts, and listen and react to events, facilitating communication between contracts. -Tasks to interact with localnet are located in `tasks/localnet`. To make use of default contract addresses on localnet, start localnet from scratch, so contracts are deployed on same addresses. Otherwise, provide custom addresses as tasks parameters. - -To only show logs from worker and hide hardhat node logs: -``` -yarn localnet --hide="NODE" -``` \ No newline at end of file diff --git a/scripts/worker.ts b/scripts/worker.ts deleted file mode 100644 index 1afce2c9..00000000 --- a/scripts/worker.ts +++ /dev/null @@ -1,223 +0,0 @@ -import { AddressZero } from "@ethersproject/constants"; -import { SignerWithAddress } from "@nomiclabs/hardhat-ethers/signers"; -import { SystemContract, ZRC20 } from "@typechain-types"; -import { parseEther } from "ethers/lib/utils"; -import { ethers, upgrades } from "hardhat"; - -const hre = require("hardhat"); - -export const FUNGIBLE_MODULE_ADDRESS = "0x735b14BB79463307AAcBED86DAf3322B1e6226aB"; - -const deployProtocolContracts = async ( - tss: SignerWithAddress, - ownerEVM: SignerWithAddress, - ownerZEVM: SignerWithAddress, - fungibleModuleSigner: SignerWithAddress -) => { - // Prepare EVM - // Deploy system contracts (gateway and custody) - const TestERC20 = await ethers.getContractFactory("TestERC20"); - - const zetaToken = await TestERC20.deploy("Zeta Token", "ZETA"); - const GatewayEVM = await ethers.getContractFactory("GatewayEVM"); - const Custody = await ethers.getContractFactory("ERC20CustodyNew"); - const ZetaConnector = await ethers.getContractFactory("ZetaConnectorNonNative"); - - const gatewayEVM = await upgrades.deployProxy(GatewayEVM, [tss.address, zetaToken.address], { - initializer: "initialize", - kind: "uups", - }); - console.log("GatewayEVM:", gatewayEVM.address); - - const custody = await Custody.deploy(gatewayEVM.address, tss.address); - await gatewayEVM.connect(tss).setCustody(custody.address); - - const zetaConnector = await ZetaConnector.deploy(gatewayEVM.address, zetaToken.address, tss.address); - await gatewayEVM.connect(tss).setConnector(zetaConnector.address); - - // Prepare ZEVM - // Deploy system contracts (gateway and system) - const SystemContractFactory = await ethers.getContractFactory("SystemContractMock"); - const systemContract = (await SystemContractFactory.deploy(AddressZero, AddressZero, AddressZero)) as SystemContract; - - const WZETAFactory = await ethers.getContractFactory("contracts/zevm/WZETA.sol:WETH9"); - const wzeta = await WZETAFactory.deploy(); - - const GatewayZEVM = await ethers.getContractFactory("GatewayZEVM"); - const gatewayZEVM = await upgrades.deployProxy(GatewayZEVM, [wzeta.address], { - initializer: "initialize", - kind: "uups", - }); - console.log("GatewayZEVM:", gatewayZEVM.address); - - await wzeta.connect(fungibleModuleSigner).deposit({ value: ethers.utils.parseEther("10") }); - await wzeta.connect(fungibleModuleSigner).approve(gatewayZEVM.address, ethers.utils.parseEther("10")); - await wzeta.connect(ownerZEVM).deposit({ value: ethers.utils.parseEther("10") }); - await wzeta.connect(ownerZEVM).approve(gatewayZEVM.address, ethers.utils.parseEther("10")); - - return { - custody, - gatewayEVM, - gatewayZEVM, - systemContract, - }; -}; - -const deployTestContracts = async ( - protocolContracts, - ownerEVM: SignerWithAddress, - ownerZEVM: SignerWithAddress, - fungibleModuleSigner: SignerWithAddress -) => { - // Prepare EVM - // Deploy test contracts (erc20, receiver) and mint funds to test accounts - const TestERC20 = await ethers.getContractFactory("TestERC20"); - const ReceiverEVM = await ethers.getContractFactory("ReceiverEVM"); - - const token = await TestERC20.deploy("Test Token", "TTK"); - const receiverEVM = await ReceiverEVM.deploy(); - - await token.mint(ownerEVM.address, ethers.utils.parseEther("1000")); - - // Transfer some tokens to the custody contract - await token.transfer(protocolContracts.custody.address, ethers.utils.parseEther("500")); - - // Prepare ZEVM - // Deploy test contracts (test zContract, zrc20, sender) and mint funds to test accounts - const TestZContract = await ethers.getContractFactory("TestZContract"); - const testZContract = await TestZContract.deploy(); - - const ZRC20Factory = await ethers.getContractFactory("ZRC20New"); - const ZRC20Contract = (await ZRC20Factory.connect(fungibleModuleSigner).deploy( - "TOKEN", - "TKN", - 18, - 1, - 1, - 0, - protocolContracts.systemContract.address, - protocolContracts.gatewayZEVM.address - )) as ZRC20; - - await protocolContracts.systemContract.setGasCoinZRC20(1, ZRC20Contract.address); - await protocolContracts.systemContract.setGasPrice(1, ZRC20Contract.address); - await ZRC20Contract.connect(fungibleModuleSigner).deposit(ownerZEVM.address, parseEther("100")); - await ZRC20Contract.connect(ownerZEVM).approve(protocolContracts.gatewayZEVM.address, parseEther("100")); - - // Include abi of gatewayZEVM events, so hardhat can decode them automatically - const senderArtifact = await hre.artifacts.readArtifact("SenderZEVM"); - const gatewayZEVMArtifact = await hre.artifacts.readArtifact("GatewayZEVM"); - const senderABI = [ - ...senderArtifact.abi, - ...gatewayZEVMArtifact.abi.filter((f: ethers.utils.Fragment) => f.type === "event"), - ]; - - const SenderZEVM = new ethers.ContractFactory(senderABI, senderArtifact.bytecode, ownerZEVM); - const senderZEVM = await SenderZEVM.deploy(protocolContracts.gatewayZEVM.address); - await ZRC20Contract.connect(fungibleModuleSigner).deposit(senderZEVM.address, parseEther("100")); - - return { - ZRC20Contract, - receiverEVM, - senderZEVM, - testZContract, - }; -}; - -export const startWorker = async () => { - const [ownerEVM, ownerZEVM, tss] = await ethers.getSigners(); - - // Impersonate the fungible module account - await hre.network.provider.request({ - method: "hardhat_impersonateAccount", - params: [FUNGIBLE_MODULE_ADDRESS], - }); - - // Get a signer for the fungible module account - const fungibleModuleSigner = await ethers.getSigner(FUNGIBLE_MODULE_ADDRESS); - hre.network.provider.send("hardhat_setBalance", [FUNGIBLE_MODULE_ADDRESS, parseEther("1000000").toHexString()]); - - // Deploy system and test contracts - const protocolContracts = await deployProtocolContracts(tss, ownerEVM, ownerZEVM, fungibleModuleSigner); - const testContracts = await deployTestContracts(protocolContracts, ownerEVM, ownerZEVM, fungibleModuleSigner); - - // Listen to contracts events - // event Call(address indexed sender, bytes receiver, bytes message); - protocolContracts.gatewayZEVM.on("Call", async (...args: Array) => { - console.log("Worker: Call event on GatewayZEVM."); - console.log("Worker: Calling ReceiverEVM through GatewayEVM..."); - const receiver = args[1]; - const message = args[2]; - const executeTx = await protocolContracts.gatewayEVM.connect(tss).execute(receiver, message, { value: 0 }); - await executeTx.wait(); - }); - - // event Withdrawal(address indexed from, address zrc20, bytes to, uint256 value, uint256 gasfee, uint256 protocolFlatFee, bytes message); - protocolContracts.gatewayZEVM.on("Withdrawal", async (...args: Array) => { - console.log("Worker: Withdrawal event on GatewayZEVM."); - const receiver = args[2]; - const message = args[6]; - if (message != "0x") { - console.log("Worker: Calling ReceiverEVM through GatewayEVM..."); - const executeTx = await protocolContracts.gatewayEVM.connect(tss).execute(receiver, message, { value: 0 }); - await executeTx.wait(); - } - }); - - testContracts.receiverEVM.on("ReceivedPayable", () => { - console.log("ReceiverEVM: receivePayable called!"); - }); - - // event Call(address indexed sender, address indexed receiver, bytes payload); - protocolContracts.gatewayEVM.on("Call", async (...args: Array) => { - console.log("Worker: Call event on GatewayEVM."); - console.log("Worker: Calling TestZContract through GatewayZEVM..."); - const zContract = args[1]; - const payload = args[2]; - const executeTx = await protocolContracts.gatewayZEVM.connect(fungibleModuleSigner).execute( - [protocolContracts.gatewayZEVM.address, fungibleModuleSigner.address, 1], - // onCrosschainCall contains zrc20 and amount which is not available in Call event - testContracts.ZRC20Contract.address, - parseEther("0"), - zContract, - payload - ); - await executeTx.wait(); - }); - - // event Deposit(address indexed sender, address indexed receiver, uint256 amount, address asset, bytes payload); - protocolContracts.gatewayEVM.on("Deposit", async (...args: Array) => { - console.log("Worker: Deposit event on GatewayEVM."); - const receiver = args[1]; - const asset = args[3]; - const payload = args[4]; - if (payload != "0x") { - console.log("Worker: Calling TestZContract through GatewayZEVM..."); - const executeTx = await protocolContracts.gatewayZEVM - .connect(fungibleModuleSigner) - .execute( - [protocolContracts.gatewayZEVM.address, fungibleModuleSigner.address, 1], - asset, - parseEther("0"), - receiver, - payload - ); - await executeTx.wait(); - } - }); - - testContracts.testZContract.on("ContextData", async () => { - console.log("TestZContract: onCrosschainCall called!"); - }); - - process.stdin.resume(); -}; - -startWorker() - .then(() => { - console.log("Setup complete, monitoring events. Press CTRL+C to exit."); - }) - .catch((error) => { - console.error("Failed to deploy contracts or set up listeners:", error); - process.exit(1); - }); diff --git a/slither.config.json b/slither.config.json deleted file mode 100644 index 42ebfc46..00000000 --- a/slither.config.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "detectors_to_exclude": "", - "filter_paths": "forge-std,artifacts,cache,data,dist,docs,lib,node_modules,pkg,scripts,tasks,test,testing,typechain-types,contracts/evm,contracts/zevm" -} diff --git a/tasks/localnet.ts b/tasks/localnet.ts deleted file mode 100644 index 9af9b7eb..00000000 --- a/tasks/localnet.ts +++ /dev/null @@ -1,109 +0,0 @@ -import { task } from "hardhat/config"; - -declare const hre: any; - -// Contains tasks to make it easier to interact with prototype contracts localnet. -// To make use of default contract addresses on localnet, start localnet from scratch, so contracts are deployed on same addresses. -// Otherwise, provide custom addresses as parameters. - -task("zevm-call", "calls evm contract from zevm account") - .addOptionalParam("gatewayZEVM", "contract address of gateway on ZEVM", "0x2279B7A0a67DB372996a5FaB50D91eAA73d2eBe6") - .addOptionalParam("receiverEVM", "contract address of receiver on EVM", "0x610178dA211FEF7D417bC0e6FeD39F05609AD788") - .setAction(async (taskArgs) => { - const gatewayZEVM = await hre.ethers.getContractAt("GatewayZEVM", taskArgs.gatewayZEVM); - const receiverEVM = await hre.ethers.getContractAt("ReceiverEVM", taskArgs.receiverEVM); - - const str = "Hello!"; - const num = 42; - const flag = true; - - // Encode the function call data and call on zevm - const message = receiverEVM.interface.encodeFunctionData("receivePayable", [str, num, flag]); - try { - const callTx = await gatewayZEVM.call(receiverEVM.address, message); - await callTx.wait(); - console.log("ReceiverEVM called from ZEVM"); - } catch (e) { - console.error("Error calling ReceiverEVM:", e); - } - }); - -task("zevm-withdraw-and-call", "withdraws zrc20 and calls evm contract from zevm account") - .addOptionalParam("gatewayZEVM", "contract address of gateway on ZEVM", "0x2279B7A0a67DB372996a5FaB50D91eAA73d2eBe6") - .addOptionalParam("receiverEVM", "contract address of receiver on EVM", "0x610178dA211FEF7D417bC0e6FeD39F05609AD788") - .addOptionalParam("zrc20", "contract address of zrc20", "0x2ca7d64A7EFE2D62A725E2B35Cf7230D6677FfEe") - .addOptionalParam("amount", "amount to withdraw", "1") - .setAction(async (taskArgs) => { - const gatewayZEVM = await hre.ethers.getContractAt("GatewayZEVM", taskArgs.gatewayZEVM); - const receiverEVM = await hre.ethers.getContractAt("ReceiverEVM", taskArgs.receiverEVM); - const zrc20 = await hre.ethers.getContractAt("ZRC20New", taskArgs.zrc20); - const [, ownerZEVM] = await hre.ethers.getSigners(); - - const str = "Hello!"; - const num = 42; - const flag = true; - - // Encode the function call data and call on zevm - const message = receiverEVM.interface.encodeFunctionData("receivePayable", [str, num, flag]); - - try { - const callTx = await gatewayZEVM - .connect(ownerZEVM) - ["withdrawAndCall(bytes,uint256,address,bytes)"]( - receiverEVM.address, - hre.ethers.utils.parseEther(taskArgs.amount), - zrc20.address, - message - ); - await callTx.wait(); - console.log("ReceiverEVM called from ZEVM"); - } catch (e) { - console.error("Error calling ReciverEVM:", e); - } - }); - -task("evm-call", "calls zevm zcontract from evm account") - .addOptionalParam("gatewayEVM", "contract address of gateway on EVM", "0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0") - .addOptionalParam("zContract", "contract address of zContract on ZEVM", "0x0DCd1Bf9A1b36cE34237eEaFef220932846BCD82") - .setAction(async (taskArgs) => { - const gatewayEVM = await hre.ethers.getContractAt("GatewayEVM", taskArgs.gatewayEVM); - const zContract = await hre.ethers.getContractAt("TestZContract", taskArgs.zContract); - - const message = hre.ethers.utils.defaultAbiCoder.encode(["string"], ["hello"]); - - try { - const callTx = await gatewayEVM.call(zContract.address, message); - await callTx.wait(); - console.log("TestZContract called from EVM"); - } catch (e) { - console.error("Error calling TestZContract:", e); - } - }); - -task("evm-deposit-and-call", "deposits erc20 and calls zevm zcontract from evm account") - .addOptionalParam("gatewayEVM", "contract address of gateway on EVM", "0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0") - .addOptionalParam("zContract", "contract address of zContract on ZEVM", "0x0DCd1Bf9A1b36cE34237eEaFef220932846BCD82") - .addOptionalParam("erc20", "contract address of erc20", "0x8A791620dd6260079BF849Dc5567aDC3F2FdC318") - .addOptionalParam("amount", "amount to deposit", "1") - .setAction(async (taskArgs) => { - const gatewayEVM = await hre.ethers.getContractAt("GatewayEVM", taskArgs.gatewayEVM); - const zContract = await hre.ethers.getContractAt("TestZContract", taskArgs.zContract); - const erc20 = await hre.ethers.getContractAt("TestERC20", taskArgs.erc20); - - await erc20.approve(gatewayEVM.address, hre.ethers.utils.parseEther(taskArgs.amount)); - - const payload = hre.ethers.utils.defaultAbiCoder.encode(["string"], ["hello"]); - - try { - const callTx = await gatewayEVM["depositAndCall(address,uint256,address,bytes)"]( - zContract.address, - hre.ethers.utils.parseEther(taskArgs.amount), - erc20.address, - payload - ); - await callTx.wait(); - console.log("TestZContract called from EVM"); - } catch (e) { - console.error("Error calling TestZContract:", e); - } - }); diff --git a/test/prototypes/GatewayEVMUniswap.spec.ts b/test/prototypes/GatewayEVMUniswap.spec.ts deleted file mode 100644 index 0c2fd2de..00000000 --- a/test/prototypes/GatewayEVMUniswap.spec.ts +++ /dev/null @@ -1,104 +0,0 @@ -import { expect } from "chai"; -import { Contract } from "ethers"; -import { ethers, upgrades } from "hardhat"; -import { UniswapV2Deployer } from "uniswap-v2-deploy-plugin"; - -import { - ERC20, - ERC20CustodyNew, - GatewayEVM, - Receiver, - TestERC20, - UniswapV2Factory, - UniswapV2Pair, - UniswapV2Router02, -} from "../../typechain-types"; - -describe("Uniswap Integration with GatewayEVM", function () { - let tokenA: TestERC20; - let tokenB: TestERC20; - let factory: UniswapV2Factory; - let router: UniswapV2Router02; - let pair: UniswapV2Pair; - let custody: ERC20CustodyNew; - let gateway: GatewayEVM; - let owner, addr1, addr2; - let tssAddress; - - beforeEach(async function () { - [owner, addr1, addr2, tssAddress] = await ethers.getSigners(); - - // Deploy TestERC20 tokens - const TestERC20 = await ethers.getContractFactory("TestERC20"); - tokenA = (await TestERC20.deploy("Token A", "TKA")) as TestERC20; - tokenB = (await TestERC20.deploy("Token B", "TKB")) as TestERC20; - await tokenA.mint(owner.address, ethers.utils.parseEther("1000")); - await tokenB.mint(owner.address, ethers.utils.parseEther("1000")); - - const { factory: newFactory, router: newRouter, weth9: weth } = await UniswapV2Deployer.deploy(owner); - - factory = newFactory; - router = newRouter; - - // Approve Router to move tokens - await tokenA.approve(router.address, ethers.utils.parseEther("1000")); - await tokenB.approve(router.address, ethers.utils.parseEther("1000")); - - // Add Liquidity - await router.addLiquidity( - tokenA.address, - tokenB.address, - ethers.utils.parseEther("500"), - ethers.utils.parseEther("500"), - 0, - 0, - owner.address, - Math.floor(Date.now() / 1000) + 60 * 20 - ); - - // Deploy contracts - const Gateway = await ethers.getContractFactory("GatewayEVM"); - const ERC20CustodyNew = await ethers.getContractFactory("ERC20CustodyNew"); - const ZetaConnector = await ethers.getContractFactory("ZetaConnectorNonNative"); - const zeta = await TestERC20.deploy("Zeta", "ZETA"); - gateway = (await upgrades.deployProxy(Gateway, [tssAddress.address, zeta.address], { - initializer: "initialize", - kind: "uups", - })) as GatewayEVM; - custody = (await ERC20CustodyNew.deploy(gateway.address, tssAddress.address)) as ERC20CustodyNew; - gateway.connect(tssAddress).setCustody(custody.address); - const zetaConnector = await ZetaConnector.deploy(gateway.address, zeta.address, tssAddress.address); - gateway.connect(tssAddress).setConnector(zetaConnector.address); - - // Transfer some tokens to the custody contract - await tokenA.transfer(custody.address, ethers.utils.parseEther("100")); - await tokenB.transfer(custody.address, ethers.utils.parseEther("100")); - }); - - it("should perform a token swap on Uniswap and transfer the output tokens to a destination address", async function () { - const amountIn = ethers.utils.parseEther("50"); - - const data = router.interface.encodeFunctionData("swapExactTokensForTokens", [ - amountIn, - 0, - [tokenA.address, tokenB.address], - addr2.address, - Math.floor(Date.now() / 1000) + 60 * 20, - ]); - - // Withdraw and call - await custody.connect(tssAddress).withdrawAndCall(tokenA.address, router.address, amountIn, data); - - // Verify the destination address received the tokens - const destBalance = await tokenB.balanceOf(addr2.address); - expect(destBalance).to.be.gt(0); - - // Verify the remaining tokens are refunded to the Custody contract - const remainingBalance = await tokenA.balanceOf(custody.address); - expect(remainingBalance).to.equal(ethers.utils.parseEther("50")); - - // Verify the approval was reset - const allowance = await tokenA.allowance(gateway.address, router.address); - expect(allowance).to.equal(0); - }); -}); diff --git a/typechain-types/contracts/index.ts b/typechain-types/contracts/index.ts deleted file mode 100644 index 6fa2e250..00000000 --- a/typechain-types/contracts/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as evm from "./evm"; -export type { evm }; -import type * as prototypes from "./prototypes"; -export type { prototypes }; -import type * as zevm from "./zevm"; -export type { zevm }; diff --git a/typechain-types/contracts/prototypes/ERC20Custody.ts b/typechain-types/contracts/prototypes/ERC20Custody.ts deleted file mode 100644 index f1b2b774..00000000 --- a/typechain-types/contracts/prototypes/ERC20Custody.ts +++ /dev/null @@ -1,245 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../common"; - -export interface ERC20CustodyInterface extends utils.Interface { - functions: { - "gateway()": FunctionFragment; - "withdraw(address,address,uint256)": FunctionFragment; - "withdrawAndCall(address,address,uint256,bytes)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: "gateway" | "withdraw" | "withdrawAndCall" - ): FunctionFragment; - - encodeFunctionData(functionFragment: "gateway", values?: undefined): string; - encodeFunctionData( - functionFragment: "withdraw", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "withdrawAndCall", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - - decodeFunctionResult(functionFragment: "gateway", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "withdrawAndCall", - data: BytesLike - ): Result; - - events: { - "Withdraw(address,address,uint256)": EventFragment; - "WithdrawAndCall(address,address,uint256,bytes)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Withdraw"): EventFragment; - getEvent(nameOrSignatureOrTopic: "WithdrawAndCall"): EventFragment; -} - -export interface WithdrawEventObject { - token: string; - to: string; - amount: BigNumber; -} -export type WithdrawEvent = TypedEvent< - [string, string, BigNumber], - WithdrawEventObject ->; - -export type WithdrawEventFilter = TypedEventFilter; - -export interface WithdrawAndCallEventObject { - token: string; - to: string; - amount: BigNumber; - data: string; -} -export type WithdrawAndCallEvent = TypedEvent< - [string, string, BigNumber, string], - WithdrawAndCallEventObject ->; - -export type WithdrawAndCallEventFilter = TypedEventFilter; - -export interface ERC20Custody extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: ERC20CustodyInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - gateway(overrides?: CallOverrides): Promise<[string]>; - - withdraw( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndCall( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - gateway(overrides?: CallOverrides): Promise; - - withdraw( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndCall( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - gateway(overrides?: CallOverrides): Promise; - - withdraw( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - withdrawAndCall( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "Withdraw(address,address,uint256)"( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null - ): WithdrawEventFilter; - Withdraw( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null - ): WithdrawEventFilter; - - "WithdrawAndCall(address,address,uint256,bytes)"( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): WithdrawAndCallEventFilter; - WithdrawAndCall( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): WithdrawAndCallEventFilter; - }; - - estimateGas: { - gateway(overrides?: CallOverrides): Promise; - - withdraw( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndCall( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - gateway(overrides?: CallOverrides): Promise; - - withdraw( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndCall( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/ERC20CustodyNew.ts b/typechain-types/contracts/prototypes/ERC20CustodyNew.ts deleted file mode 100644 index c2f1889d..00000000 --- a/typechain-types/contracts/prototypes/ERC20CustodyNew.ts +++ /dev/null @@ -1,245 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../common"; - -export interface ERC20CustodyNewInterface extends utils.Interface { - functions: { - "gateway()": FunctionFragment; - "withdraw(address,address,uint256)": FunctionFragment; - "withdrawAndCall(address,address,uint256,bytes)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: "gateway" | "withdraw" | "withdrawAndCall" - ): FunctionFragment; - - encodeFunctionData(functionFragment: "gateway", values?: undefined): string; - encodeFunctionData( - functionFragment: "withdraw", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "withdrawAndCall", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - - decodeFunctionResult(functionFragment: "gateway", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "withdrawAndCall", - data: BytesLike - ): Result; - - events: { - "Withdraw(address,address,uint256)": EventFragment; - "WithdrawAndCall(address,address,uint256,bytes)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Withdraw"): EventFragment; - getEvent(nameOrSignatureOrTopic: "WithdrawAndCall"): EventFragment; -} - -export interface WithdrawEventObject { - token: string; - to: string; - amount: BigNumber; -} -export type WithdrawEvent = TypedEvent< - [string, string, BigNumber], - WithdrawEventObject ->; - -export type WithdrawEventFilter = TypedEventFilter; - -export interface WithdrawAndCallEventObject { - token: string; - to: string; - amount: BigNumber; - data: string; -} -export type WithdrawAndCallEvent = TypedEvent< - [string, string, BigNumber, string], - WithdrawAndCallEventObject ->; - -export type WithdrawAndCallEventFilter = TypedEventFilter; - -export interface ERC20CustodyNew extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: ERC20CustodyNewInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - gateway(overrides?: CallOverrides): Promise<[string]>; - - withdraw( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndCall( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - gateway(overrides?: CallOverrides): Promise; - - withdraw( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndCall( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - gateway(overrides?: CallOverrides): Promise; - - withdraw( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - withdrawAndCall( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "Withdraw(address,address,uint256)"( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null - ): WithdrawEventFilter; - Withdraw( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null - ): WithdrawEventFilter; - - "WithdrawAndCall(address,address,uint256,bytes)"( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): WithdrawAndCallEventFilter; - WithdrawAndCall( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): WithdrawAndCallEventFilter; - }; - - estimateGas: { - gateway(overrides?: CallOverrides): Promise; - - withdraw( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndCall( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - gateway(overrides?: CallOverrides): Promise; - - withdraw( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndCall( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/Gateway.ts b/typechain-types/contracts/prototypes/Gateway.ts deleted file mode 100644 index 5e76a81a..00000000 --- a/typechain-types/contracts/prototypes/Gateway.ts +++ /dev/null @@ -1,704 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PayableOverrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../common"; - -export interface GatewayInterface extends utils.Interface { - functions: { - "custody()": FunctionFragment; - "execute(address,bytes)": FunctionFragment; - "executeWithERC20(address,address,uint256,bytes)": FunctionFragment; - "initialize(address)": FunctionFragment; - "owner()": FunctionFragment; - "proxiableUUID()": FunctionFragment; - "renounceOwnership()": FunctionFragment; - "send(bytes,uint256)": FunctionFragment; - "sendERC20(bytes,address,uint256)": FunctionFragment; - "setCustody(address)": FunctionFragment; - "transferOwnership(address)": FunctionFragment; - "tssAddress()": FunctionFragment; - "upgradeTo(address)": FunctionFragment; - "upgradeToAndCall(address,bytes)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "custody" - | "execute" - | "executeWithERC20" - | "initialize" - | "owner" - | "proxiableUUID" - | "renounceOwnership" - | "send" - | "sendERC20" - | "setCustody" - | "transferOwnership" - | "tssAddress" - | "upgradeTo" - | "upgradeToAndCall" - ): FunctionFragment; - - encodeFunctionData(functionFragment: "custody", values?: undefined): string; - encodeFunctionData( - functionFragment: "execute", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "executeWithERC20", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "initialize", - values: [PromiseOrValue] - ): string; - encodeFunctionData(functionFragment: "owner", values?: undefined): string; - encodeFunctionData( - functionFragment: "proxiableUUID", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "renounceOwnership", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "send", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "sendERC20", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "setCustody", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "transferOwnership", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "tssAddress", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "upgradeTo", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "upgradeToAndCall", - values: [PromiseOrValue, PromiseOrValue] - ): string; - - decodeFunctionResult(functionFragment: "custody", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "execute", 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: "send", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "sendERC20", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "setCustody", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferOwnership", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "tssAddress", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "upgradeTo", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "upgradeToAndCall", - data: BytesLike - ): Result; - - events: { - "AdminChanged(address,address)": EventFragment; - "BeaconUpgraded(address)": EventFragment; - "Executed(address,uint256,bytes)": EventFragment; - "ExecutedWithERC20(address,address,uint256,bytes)": EventFragment; - "Initialized(uint8)": EventFragment; - "OwnershipTransferred(address,address)": EventFragment; - "Send(bytes,uint256)": EventFragment; - "SendERC20(bytes,address,uint256)": EventFragment; - "Upgraded(address)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "AdminChanged"): EventFragment; - getEvent(nameOrSignatureOrTopic: "BeaconUpgraded"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Executed"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ExecutedWithERC20"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment; - getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Send"): EventFragment; - getEvent(nameOrSignatureOrTopic: "SendERC20"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Upgraded"): EventFragment; -} - -export interface AdminChangedEventObject { - previousAdmin: string; - newAdmin: string; -} -export type AdminChangedEvent = TypedEvent< - [string, string], - AdminChangedEventObject ->; - -export type AdminChangedEventFilter = TypedEventFilter; - -export interface BeaconUpgradedEventObject { - beacon: string; -} -export type BeaconUpgradedEvent = TypedEvent< - [string], - BeaconUpgradedEventObject ->; - -export type BeaconUpgradedEventFilter = TypedEventFilter; - -export interface ExecutedEventObject { - destination: string; - value: BigNumber; - data: string; -} -export type ExecutedEvent = TypedEvent< - [string, BigNumber, string], - ExecutedEventObject ->; - -export type ExecutedEventFilter = TypedEventFilter; - -export interface ExecutedWithERC20EventObject { - token: string; - to: string; - amount: BigNumber; - data: string; -} -export type ExecutedWithERC20Event = TypedEvent< - [string, string, BigNumber, string], - ExecutedWithERC20EventObject ->; - -export type ExecutedWithERC20EventFilter = - TypedEventFilter; - -export interface InitializedEventObject { - version: number; -} -export type InitializedEvent = TypedEvent<[number], InitializedEventObject>; - -export type InitializedEventFilter = TypedEventFilter; - -export interface OwnershipTransferredEventObject { - previousOwner: string; - newOwner: string; -} -export type OwnershipTransferredEvent = TypedEvent< - [string, string], - OwnershipTransferredEventObject ->; - -export type OwnershipTransferredEventFilter = - TypedEventFilter; - -export interface SendEventObject { - recipient: string; - amount: BigNumber; -} -export type SendEvent = TypedEvent<[string, BigNumber], SendEventObject>; - -export type SendEventFilter = TypedEventFilter; - -export interface SendERC20EventObject { - recipient: string; - asset: string; - amount: BigNumber; -} -export type SendERC20Event = TypedEvent< - [string, string, BigNumber], - SendERC20EventObject ->; - -export type SendERC20EventFilter = TypedEventFilter; - -export interface UpgradedEventObject { - implementation: string; -} -export type UpgradedEvent = TypedEvent<[string], UpgradedEventObject>; - -export type UpgradedEventFilter = TypedEventFilter; - -export interface Gateway extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: GatewayInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - custody(overrides?: CallOverrides): Promise<[string]>; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - _tssAddress: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise<[string]>; - - proxiableUUID(overrides?: CallOverrides): Promise<[string]>; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - send( - recipient: PromiseOrValue, - amount: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - sendERC20( - recipient: PromiseOrValue, - token: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise<[string]>; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; - - custody(overrides?: CallOverrides): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - _tssAddress: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - send( - recipient: PromiseOrValue, - amount: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - sendERC20( - recipient: PromiseOrValue, - token: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - custody(overrides?: CallOverrides): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - initialize( - _tssAddress: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership(overrides?: CallOverrides): Promise; - - send( - recipient: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - sendERC20( - recipient: PromiseOrValue, - token: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "AdminChanged(address,address)"( - previousAdmin?: null, - newAdmin?: null - ): AdminChangedEventFilter; - AdminChanged( - previousAdmin?: null, - newAdmin?: null - ): AdminChangedEventFilter; - - "BeaconUpgraded(address)"( - beacon?: PromiseOrValue | null - ): BeaconUpgradedEventFilter; - BeaconUpgraded( - beacon?: PromiseOrValue | null - ): BeaconUpgradedEventFilter; - - "Executed(address,uint256,bytes)"( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): ExecutedEventFilter; - Executed( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): ExecutedEventFilter; - - "ExecutedWithERC20(address,address,uint256,bytes)"( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): ExecutedWithERC20EventFilter; - ExecutedWithERC20( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): ExecutedWithERC20EventFilter; - - "Initialized(uint8)"(version?: null): InitializedEventFilter; - Initialized(version?: null): InitializedEventFilter; - - "OwnershipTransferred(address,address)"( - previousOwner?: PromiseOrValue | null, - newOwner?: PromiseOrValue | null - ): OwnershipTransferredEventFilter; - OwnershipTransferred( - previousOwner?: PromiseOrValue | null, - newOwner?: PromiseOrValue | null - ): OwnershipTransferredEventFilter; - - "Send(bytes,uint256)"(recipient?: null, amount?: null): SendEventFilter; - Send(recipient?: null, amount?: null): SendEventFilter; - - "SendERC20(bytes,address,uint256)"( - recipient?: null, - asset?: PromiseOrValue | null, - amount?: null - ): SendERC20EventFilter; - SendERC20( - recipient?: null, - asset?: PromiseOrValue | null, - amount?: null - ): SendERC20EventFilter; - - "Upgraded(address)"( - implementation?: PromiseOrValue | null - ): UpgradedEventFilter; - Upgraded( - implementation?: PromiseOrValue | null - ): UpgradedEventFilter; - }; - - estimateGas: { - custody(overrides?: CallOverrides): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - _tssAddress: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - send( - recipient: PromiseOrValue, - amount: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - sendERC20( - recipient: PromiseOrValue, - token: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - custody(overrides?: CallOverrides): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - _tssAddress: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - send( - recipient: PromiseOrValue, - amount: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - sendERC20( - recipient: PromiseOrValue, - token: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/GatewayUpgradeTest.ts b/typechain-types/contracts/prototypes/GatewayUpgradeTest.ts deleted file mode 100644 index d870814a..00000000 --- a/typechain-types/contracts/prototypes/GatewayUpgradeTest.ts +++ /dev/null @@ -1,559 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PayableOverrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../common"; - -export interface GatewayUpgradeTestInterface extends utils.Interface { - functions: { - "custody()": FunctionFragment; - "execute(address,bytes)": FunctionFragment; - "executeWithERC20(address,address,uint256,bytes)": FunctionFragment; - "initialize()": FunctionFragment; - "owner()": FunctionFragment; - "proxiableUUID()": FunctionFragment; - "renounceOwnership()": FunctionFragment; - "setCustody(address)": FunctionFragment; - "transferOwnership(address)": FunctionFragment; - "upgradeTo(address)": FunctionFragment; - "upgradeToAndCall(address,bytes)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "custody" - | "execute" - | "executeWithERC20" - | "initialize" - | "owner" - | "proxiableUUID" - | "renounceOwnership" - | "setCustody" - | "transferOwnership" - | "upgradeTo" - | "upgradeToAndCall" - ): FunctionFragment; - - encodeFunctionData(functionFragment: "custody", values?: undefined): string; - encodeFunctionData( - functionFragment: "execute", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "executeWithERC20", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "initialize", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "owner", values?: undefined): string; - encodeFunctionData( - functionFragment: "proxiableUUID", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "renounceOwnership", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "setCustody", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "transferOwnership", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "upgradeTo", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "upgradeToAndCall", - values: [PromiseOrValue, PromiseOrValue] - ): string; - - decodeFunctionResult(functionFragment: "custody", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "execute", 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: "setCustody", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferOwnership", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "upgradeTo", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "upgradeToAndCall", - data: BytesLike - ): Result; - - events: { - "AdminChanged(address,address)": EventFragment; - "BeaconUpgraded(address)": EventFragment; - "ExecutedV2(address,uint256,bytes)": EventFragment; - "ExecutedWithERC20V2(address,address,uint256,bytes)": EventFragment; - "Initialized(uint8)": EventFragment; - "OwnershipTransferred(address,address)": EventFragment; - "Upgraded(address)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "AdminChanged"): EventFragment; - getEvent(nameOrSignatureOrTopic: "BeaconUpgraded"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ExecutedV2"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ExecutedWithERC20V2"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment; - getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Upgraded"): EventFragment; -} - -export interface AdminChangedEventObject { - previousAdmin: string; - newAdmin: string; -} -export type AdminChangedEvent = TypedEvent< - [string, string], - AdminChangedEventObject ->; - -export type AdminChangedEventFilter = TypedEventFilter; - -export interface BeaconUpgradedEventObject { - beacon: string; -} -export type BeaconUpgradedEvent = TypedEvent< - [string], - BeaconUpgradedEventObject ->; - -export type BeaconUpgradedEventFilter = TypedEventFilter; - -export interface ExecutedV2EventObject { - destination: string; - value: BigNumber; - data: string; -} -export type ExecutedV2Event = TypedEvent< - [string, BigNumber, string], - ExecutedV2EventObject ->; - -export type ExecutedV2EventFilter = TypedEventFilter; - -export interface ExecutedWithERC20V2EventObject { - token: string; - to: string; - amount: BigNumber; - data: string; -} -export type ExecutedWithERC20V2Event = TypedEvent< - [string, string, BigNumber, string], - ExecutedWithERC20V2EventObject ->; - -export type ExecutedWithERC20V2EventFilter = - TypedEventFilter; - -export interface InitializedEventObject { - version: number; -} -export type InitializedEvent = TypedEvent<[number], InitializedEventObject>; - -export type InitializedEventFilter = TypedEventFilter; - -export interface OwnershipTransferredEventObject { - previousOwner: string; - newOwner: string; -} -export type OwnershipTransferredEvent = TypedEvent< - [string, string], - OwnershipTransferredEventObject ->; - -export type OwnershipTransferredEventFilter = - TypedEventFilter; - -export interface UpgradedEventObject { - implementation: string; -} -export type UpgradedEvent = TypedEvent<[string], UpgradedEventObject>; - -export type UpgradedEventFilter = TypedEventFilter; - -export interface GatewayUpgradeTest extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: GatewayUpgradeTestInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - custody(overrides?: CallOverrides): Promise<[string]>; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise<[string]>; - - proxiableUUID(overrides?: CallOverrides): Promise<[string]>; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; - - custody(overrides?: CallOverrides): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - custody(overrides?: CallOverrides): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - initialize(overrides?: CallOverrides): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership(overrides?: CallOverrides): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "AdminChanged(address,address)"( - previousAdmin?: null, - newAdmin?: null - ): AdminChangedEventFilter; - AdminChanged( - previousAdmin?: null, - newAdmin?: null - ): AdminChangedEventFilter; - - "BeaconUpgraded(address)"( - beacon?: PromiseOrValue | null - ): BeaconUpgradedEventFilter; - BeaconUpgraded( - beacon?: PromiseOrValue | null - ): BeaconUpgradedEventFilter; - - "ExecutedV2(address,uint256,bytes)"( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): ExecutedV2EventFilter; - ExecutedV2( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): ExecutedV2EventFilter; - - "ExecutedWithERC20V2(address,address,uint256,bytes)"( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): ExecutedWithERC20V2EventFilter; - ExecutedWithERC20V2( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): ExecutedWithERC20V2EventFilter; - - "Initialized(uint8)"(version?: null): InitializedEventFilter; - Initialized(version?: null): InitializedEventFilter; - - "OwnershipTransferred(address,address)"( - previousOwner?: PromiseOrValue | null, - newOwner?: PromiseOrValue | null - ): OwnershipTransferredEventFilter; - OwnershipTransferred( - previousOwner?: PromiseOrValue | null, - newOwner?: PromiseOrValue | null - ): OwnershipTransferredEventFilter; - - "Upgraded(address)"( - implementation?: PromiseOrValue | null - ): UpgradedEventFilter; - Upgraded( - implementation?: PromiseOrValue | null - ): UpgradedEventFilter; - }; - - estimateGas: { - custody(overrides?: CallOverrides): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - custody(overrides?: CallOverrides): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/GatewayV2.sol/Gateway.ts b/typechain-types/contracts/prototypes/GatewayV2.sol/Gateway.ts deleted file mode 100644 index 52121e90..00000000 --- a/typechain-types/contracts/prototypes/GatewayV2.sol/Gateway.ts +++ /dev/null @@ -1,559 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PayableOverrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../common"; - -export interface GatewayInterface extends utils.Interface { - functions: { - "custody()": FunctionFragment; - "execute(address,bytes)": FunctionFragment; - "executeWithERC20(address,address,uint256,bytes)": FunctionFragment; - "initialize()": FunctionFragment; - "owner()": FunctionFragment; - "proxiableUUID()": FunctionFragment; - "renounceOwnership()": FunctionFragment; - "setCustody(address)": FunctionFragment; - "transferOwnership(address)": FunctionFragment; - "upgradeTo(address)": FunctionFragment; - "upgradeToAndCall(address,bytes)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "custody" - | "execute" - | "executeWithERC20" - | "initialize" - | "owner" - | "proxiableUUID" - | "renounceOwnership" - | "setCustody" - | "transferOwnership" - | "upgradeTo" - | "upgradeToAndCall" - ): FunctionFragment; - - encodeFunctionData(functionFragment: "custody", values?: undefined): string; - encodeFunctionData( - functionFragment: "execute", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "executeWithERC20", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "initialize", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "owner", values?: undefined): string; - encodeFunctionData( - functionFragment: "proxiableUUID", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "renounceOwnership", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "setCustody", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "transferOwnership", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "upgradeTo", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "upgradeToAndCall", - values: [PromiseOrValue, PromiseOrValue] - ): string; - - decodeFunctionResult(functionFragment: "custody", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "execute", 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: "setCustody", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferOwnership", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "upgradeTo", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "upgradeToAndCall", - data: BytesLike - ): Result; - - events: { - "AdminChanged(address,address)": EventFragment; - "BeaconUpgraded(address)": EventFragment; - "ExecutedV2(address,uint256,bytes)": EventFragment; - "ExecutedWithERC20V2(address,address,uint256,bytes)": EventFragment; - "Initialized(uint8)": EventFragment; - "OwnershipTransferred(address,address)": EventFragment; - "Upgraded(address)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "AdminChanged"): EventFragment; - getEvent(nameOrSignatureOrTopic: "BeaconUpgraded"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ExecutedV2"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ExecutedWithERC20V2"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment; - getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Upgraded"): EventFragment; -} - -export interface AdminChangedEventObject { - previousAdmin: string; - newAdmin: string; -} -export type AdminChangedEvent = TypedEvent< - [string, string], - AdminChangedEventObject ->; - -export type AdminChangedEventFilter = TypedEventFilter; - -export interface BeaconUpgradedEventObject { - beacon: string; -} -export type BeaconUpgradedEvent = TypedEvent< - [string], - BeaconUpgradedEventObject ->; - -export type BeaconUpgradedEventFilter = TypedEventFilter; - -export interface ExecutedV2EventObject { - destination: string; - value: BigNumber; - data: string; -} -export type ExecutedV2Event = TypedEvent< - [string, BigNumber, string], - ExecutedV2EventObject ->; - -export type ExecutedV2EventFilter = TypedEventFilter; - -export interface ExecutedWithERC20V2EventObject { - token: string; - to: string; - amount: BigNumber; - data: string; -} -export type ExecutedWithERC20V2Event = TypedEvent< - [string, string, BigNumber, string], - ExecutedWithERC20V2EventObject ->; - -export type ExecutedWithERC20V2EventFilter = - TypedEventFilter; - -export interface InitializedEventObject { - version: number; -} -export type InitializedEvent = TypedEvent<[number], InitializedEventObject>; - -export type InitializedEventFilter = TypedEventFilter; - -export interface OwnershipTransferredEventObject { - previousOwner: string; - newOwner: string; -} -export type OwnershipTransferredEvent = TypedEvent< - [string, string], - OwnershipTransferredEventObject ->; - -export type OwnershipTransferredEventFilter = - TypedEventFilter; - -export interface UpgradedEventObject { - implementation: string; -} -export type UpgradedEvent = TypedEvent<[string], UpgradedEventObject>; - -export type UpgradedEventFilter = TypedEventFilter; - -export interface Gateway extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: GatewayInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - custody(overrides?: CallOverrides): Promise<[string]>; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise<[string]>; - - proxiableUUID(overrides?: CallOverrides): Promise<[string]>; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; - - custody(overrides?: CallOverrides): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - custody(overrides?: CallOverrides): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - initialize(overrides?: CallOverrides): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership(overrides?: CallOverrides): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "AdminChanged(address,address)"( - previousAdmin?: null, - newAdmin?: null - ): AdminChangedEventFilter; - AdminChanged( - previousAdmin?: null, - newAdmin?: null - ): AdminChangedEventFilter; - - "BeaconUpgraded(address)"( - beacon?: PromiseOrValue | null - ): BeaconUpgradedEventFilter; - BeaconUpgraded( - beacon?: PromiseOrValue | null - ): BeaconUpgradedEventFilter; - - "ExecutedV2(address,uint256,bytes)"( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): ExecutedV2EventFilter; - ExecutedV2( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): ExecutedV2EventFilter; - - "ExecutedWithERC20V2(address,address,uint256,bytes)"( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): ExecutedWithERC20V2EventFilter; - ExecutedWithERC20V2( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): ExecutedWithERC20V2EventFilter; - - "Initialized(uint8)"(version?: null): InitializedEventFilter; - Initialized(version?: null): InitializedEventFilter; - - "OwnershipTransferred(address,address)"( - previousOwner?: PromiseOrValue | null, - newOwner?: PromiseOrValue | null - ): OwnershipTransferredEventFilter; - OwnershipTransferred( - previousOwner?: PromiseOrValue | null, - newOwner?: PromiseOrValue | null - ): OwnershipTransferredEventFilter; - - "Upgraded(address)"( - implementation?: PromiseOrValue | null - ): UpgradedEventFilter; - Upgraded( - implementation?: PromiseOrValue | null - ): UpgradedEventFilter; - }; - - estimateGas: { - custody(overrides?: CallOverrides): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - custody(overrides?: CallOverrides): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/GatewayV2.sol/GatewayV2.ts b/typechain-types/contracts/prototypes/GatewayV2.sol/GatewayV2.ts deleted file mode 100644 index a3b2787d..00000000 --- a/typechain-types/contracts/prototypes/GatewayV2.sol/GatewayV2.ts +++ /dev/null @@ -1,559 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PayableOverrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../common"; - -export interface GatewayV2Interface extends utils.Interface { - functions: { - "custody()": FunctionFragment; - "execute(address,bytes)": FunctionFragment; - "executeWithERC20(address,address,uint256,bytes)": FunctionFragment; - "initialize()": FunctionFragment; - "owner()": FunctionFragment; - "proxiableUUID()": FunctionFragment; - "renounceOwnership()": FunctionFragment; - "setCustody(address)": FunctionFragment; - "transferOwnership(address)": FunctionFragment; - "upgradeTo(address)": FunctionFragment; - "upgradeToAndCall(address,bytes)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "custody" - | "execute" - | "executeWithERC20" - | "initialize" - | "owner" - | "proxiableUUID" - | "renounceOwnership" - | "setCustody" - | "transferOwnership" - | "upgradeTo" - | "upgradeToAndCall" - ): FunctionFragment; - - encodeFunctionData(functionFragment: "custody", values?: undefined): string; - encodeFunctionData( - functionFragment: "execute", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "executeWithERC20", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "initialize", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "owner", values?: undefined): string; - encodeFunctionData( - functionFragment: "proxiableUUID", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "renounceOwnership", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "setCustody", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "transferOwnership", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "upgradeTo", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "upgradeToAndCall", - values: [PromiseOrValue, PromiseOrValue] - ): string; - - decodeFunctionResult(functionFragment: "custody", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "execute", 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: "setCustody", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferOwnership", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "upgradeTo", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "upgradeToAndCall", - data: BytesLike - ): Result; - - events: { - "AdminChanged(address,address)": EventFragment; - "BeaconUpgraded(address)": EventFragment; - "ExecutedV2(address,uint256,bytes)": EventFragment; - "ExecutedWithERC20V2(address,address,uint256,bytes)": EventFragment; - "Initialized(uint8)": EventFragment; - "OwnershipTransferred(address,address)": EventFragment; - "Upgraded(address)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "AdminChanged"): EventFragment; - getEvent(nameOrSignatureOrTopic: "BeaconUpgraded"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ExecutedV2"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ExecutedWithERC20V2"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment; - getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Upgraded"): EventFragment; -} - -export interface AdminChangedEventObject { - previousAdmin: string; - newAdmin: string; -} -export type AdminChangedEvent = TypedEvent< - [string, string], - AdminChangedEventObject ->; - -export type AdminChangedEventFilter = TypedEventFilter; - -export interface BeaconUpgradedEventObject { - beacon: string; -} -export type BeaconUpgradedEvent = TypedEvent< - [string], - BeaconUpgradedEventObject ->; - -export type BeaconUpgradedEventFilter = TypedEventFilter; - -export interface ExecutedV2EventObject { - destination: string; - value: BigNumber; - data: string; -} -export type ExecutedV2Event = TypedEvent< - [string, BigNumber, string], - ExecutedV2EventObject ->; - -export type ExecutedV2EventFilter = TypedEventFilter; - -export interface ExecutedWithERC20V2EventObject { - token: string; - to: string; - amount: BigNumber; - data: string; -} -export type ExecutedWithERC20V2Event = TypedEvent< - [string, string, BigNumber, string], - ExecutedWithERC20V2EventObject ->; - -export type ExecutedWithERC20V2EventFilter = - TypedEventFilter; - -export interface InitializedEventObject { - version: number; -} -export type InitializedEvent = TypedEvent<[number], InitializedEventObject>; - -export type InitializedEventFilter = TypedEventFilter; - -export interface OwnershipTransferredEventObject { - previousOwner: string; - newOwner: string; -} -export type OwnershipTransferredEvent = TypedEvent< - [string, string], - OwnershipTransferredEventObject ->; - -export type OwnershipTransferredEventFilter = - TypedEventFilter; - -export interface UpgradedEventObject { - implementation: string; -} -export type UpgradedEvent = TypedEvent<[string], UpgradedEventObject>; - -export type UpgradedEventFilter = TypedEventFilter; - -export interface GatewayV2 extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: GatewayV2Interface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - custody(overrides?: CallOverrides): Promise<[string]>; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise<[string]>; - - proxiableUUID(overrides?: CallOverrides): Promise<[string]>; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; - - custody(overrides?: CallOverrides): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - custody(overrides?: CallOverrides): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - initialize(overrides?: CallOverrides): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership(overrides?: CallOverrides): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "AdminChanged(address,address)"( - previousAdmin?: null, - newAdmin?: null - ): AdminChangedEventFilter; - AdminChanged( - previousAdmin?: null, - newAdmin?: null - ): AdminChangedEventFilter; - - "BeaconUpgraded(address)"( - beacon?: PromiseOrValue | null - ): BeaconUpgradedEventFilter; - BeaconUpgraded( - beacon?: PromiseOrValue | null - ): BeaconUpgradedEventFilter; - - "ExecutedV2(address,uint256,bytes)"( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): ExecutedV2EventFilter; - ExecutedV2( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): ExecutedV2EventFilter; - - "ExecutedWithERC20V2(address,address,uint256,bytes)"( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): ExecutedWithERC20V2EventFilter; - ExecutedWithERC20V2( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): ExecutedWithERC20V2EventFilter; - - "Initialized(uint8)"(version?: null): InitializedEventFilter; - Initialized(version?: null): InitializedEventFilter; - - "OwnershipTransferred(address,address)"( - previousOwner?: PromiseOrValue | null, - newOwner?: PromiseOrValue | null - ): OwnershipTransferredEventFilter; - OwnershipTransferred( - previousOwner?: PromiseOrValue | null, - newOwner?: PromiseOrValue | null - ): OwnershipTransferredEventFilter; - - "Upgraded(address)"( - implementation?: PromiseOrValue | null - ): UpgradedEventFilter; - Upgraded( - implementation?: PromiseOrValue | null - ): UpgradedEventFilter; - }; - - estimateGas: { - custody(overrides?: CallOverrides): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - custody(overrides?: CallOverrides): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/GatewayV2.sol/index.ts b/typechain-types/contracts/prototypes/GatewayV2.sol/index.ts deleted file mode 100644 index cc062d9c..00000000 --- a/typechain-types/contracts/prototypes/GatewayV2.sol/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { Gateway } from "./Gateway"; -export type { GatewayV2 } from "./GatewayV2"; diff --git a/typechain-types/contracts/prototypes/GatewayV2.ts b/typechain-types/contracts/prototypes/GatewayV2.ts deleted file mode 100644 index 9d367e00..00000000 --- a/typechain-types/contracts/prototypes/GatewayV2.ts +++ /dev/null @@ -1,559 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PayableOverrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../common"; - -export interface GatewayV2Interface extends utils.Interface { - functions: { - "custody()": FunctionFragment; - "execute(address,bytes)": FunctionFragment; - "executeWithERC20(address,address,uint256,bytes)": FunctionFragment; - "initialize()": FunctionFragment; - "owner()": FunctionFragment; - "proxiableUUID()": FunctionFragment; - "renounceOwnership()": FunctionFragment; - "setCustody(address)": FunctionFragment; - "transferOwnership(address)": FunctionFragment; - "upgradeTo(address)": FunctionFragment; - "upgradeToAndCall(address,bytes)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "custody" - | "execute" - | "executeWithERC20" - | "initialize" - | "owner" - | "proxiableUUID" - | "renounceOwnership" - | "setCustody" - | "transferOwnership" - | "upgradeTo" - | "upgradeToAndCall" - ): FunctionFragment; - - encodeFunctionData(functionFragment: "custody", values?: undefined): string; - encodeFunctionData( - functionFragment: "execute", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "executeWithERC20", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "initialize", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "owner", values?: undefined): string; - encodeFunctionData( - functionFragment: "proxiableUUID", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "renounceOwnership", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "setCustody", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "transferOwnership", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "upgradeTo", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "upgradeToAndCall", - values: [PromiseOrValue, PromiseOrValue] - ): string; - - decodeFunctionResult(functionFragment: "custody", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "execute", 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: "setCustody", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferOwnership", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "upgradeTo", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "upgradeToAndCall", - data: BytesLike - ): Result; - - events: { - "AdminChanged(address,address)": EventFragment; - "BeaconUpgraded(address)": EventFragment; - "ExecutedV2(address,uint256,bytes)": EventFragment; - "ExecutedWithERC20V2(address,address,uint256,bytes)": EventFragment; - "Initialized(uint8)": EventFragment; - "OwnershipTransferred(address,address)": EventFragment; - "Upgraded(address)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "AdminChanged"): EventFragment; - getEvent(nameOrSignatureOrTopic: "BeaconUpgraded"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ExecutedV2"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ExecutedWithERC20V2"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment; - getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Upgraded"): EventFragment; -} - -export interface AdminChangedEventObject { - previousAdmin: string; - newAdmin: string; -} -export type AdminChangedEvent = TypedEvent< - [string, string], - AdminChangedEventObject ->; - -export type AdminChangedEventFilter = TypedEventFilter; - -export interface BeaconUpgradedEventObject { - beacon: string; -} -export type BeaconUpgradedEvent = TypedEvent< - [string], - BeaconUpgradedEventObject ->; - -export type BeaconUpgradedEventFilter = TypedEventFilter; - -export interface ExecutedV2EventObject { - destination: string; - value: BigNumber; - data: string; -} -export type ExecutedV2Event = TypedEvent< - [string, BigNumber, string], - ExecutedV2EventObject ->; - -export type ExecutedV2EventFilter = TypedEventFilter; - -export interface ExecutedWithERC20V2EventObject { - token: string; - to: string; - amount: BigNumber; - data: string; -} -export type ExecutedWithERC20V2Event = TypedEvent< - [string, string, BigNumber, string], - ExecutedWithERC20V2EventObject ->; - -export type ExecutedWithERC20V2EventFilter = - TypedEventFilter; - -export interface InitializedEventObject { - version: number; -} -export type InitializedEvent = TypedEvent<[number], InitializedEventObject>; - -export type InitializedEventFilter = TypedEventFilter; - -export interface OwnershipTransferredEventObject { - previousOwner: string; - newOwner: string; -} -export type OwnershipTransferredEvent = TypedEvent< - [string, string], - OwnershipTransferredEventObject ->; - -export type OwnershipTransferredEventFilter = - TypedEventFilter; - -export interface UpgradedEventObject { - implementation: string; -} -export type UpgradedEvent = TypedEvent<[string], UpgradedEventObject>; - -export type UpgradedEventFilter = TypedEventFilter; - -export interface GatewayV2 extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: GatewayV2Interface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - custody(overrides?: CallOverrides): Promise<[string]>; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise<[string]>; - - proxiableUUID(overrides?: CallOverrides): Promise<[string]>; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; - - custody(overrides?: CallOverrides): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - custody(overrides?: CallOverrides): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - initialize(overrides?: CallOverrides): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership(overrides?: CallOverrides): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "AdminChanged(address,address)"( - previousAdmin?: null, - newAdmin?: null - ): AdminChangedEventFilter; - AdminChanged( - previousAdmin?: null, - newAdmin?: null - ): AdminChangedEventFilter; - - "BeaconUpgraded(address)"( - beacon?: PromiseOrValue | null - ): BeaconUpgradedEventFilter; - BeaconUpgraded( - beacon?: PromiseOrValue | null - ): BeaconUpgradedEventFilter; - - "ExecutedV2(address,uint256,bytes)"( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): ExecutedV2EventFilter; - ExecutedV2( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): ExecutedV2EventFilter; - - "ExecutedWithERC20V2(address,address,uint256,bytes)"( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): ExecutedWithERC20V2EventFilter; - ExecutedWithERC20V2( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): ExecutedWithERC20V2EventFilter; - - "Initialized(uint8)"(version?: null): InitializedEventFilter; - Initialized(version?: null): InitializedEventFilter; - - "OwnershipTransferred(address,address)"( - previousOwner?: PromiseOrValue | null, - newOwner?: PromiseOrValue | null - ): OwnershipTransferredEventFilter; - OwnershipTransferred( - previousOwner?: PromiseOrValue | null, - newOwner?: PromiseOrValue | null - ): OwnershipTransferredEventFilter; - - "Upgraded(address)"( - implementation?: PromiseOrValue | null - ): UpgradedEventFilter; - Upgraded( - implementation?: PromiseOrValue | null - ): UpgradedEventFilter; - }; - - estimateGas: { - custody(overrides?: CallOverrides): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - custody(overrides?: CallOverrides): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/Receiver.ts b/typechain-types/contracts/prototypes/Receiver.ts deleted file mode 100644 index 4e82b83e..00000000 --- a/typechain-types/contracts/prototypes/Receiver.ts +++ /dev/null @@ -1,336 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PayableOverrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../common"; - -export interface ReceiverInterface extends utils.Interface { - functions: { - "receiveA(string,uint256,bool)": FunctionFragment; - "receiveB(string[],uint256[],bool)": FunctionFragment; - "receiveC(uint256,address,address)": FunctionFragment; - "receiveD()": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: "receiveA" | "receiveB" | "receiveC" | "receiveD" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "receiveA", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "receiveB", - values: [ - PromiseOrValue[], - PromiseOrValue[], - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "receiveC", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData(functionFragment: "receiveD", values?: undefined): string; - - decodeFunctionResult(functionFragment: "receiveA", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "receiveB", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "receiveC", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "receiveD", data: BytesLike): Result; - - events: { - "ReceivedA(address,uint256,string,uint256,bool)": EventFragment; - "ReceivedB(address,string[],uint256[],bool)": EventFragment; - "ReceivedC(address,uint256,address,address)": EventFragment; - "ReceivedD(address)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "ReceivedA"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ReceivedB"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ReceivedC"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ReceivedD"): EventFragment; -} - -export interface ReceivedAEventObject { - sender: string; - value: BigNumber; - str: string; - num: BigNumber; - flag: boolean; -} -export type ReceivedAEvent = TypedEvent< - [string, BigNumber, string, BigNumber, boolean], - ReceivedAEventObject ->; - -export type ReceivedAEventFilter = TypedEventFilter; - -export interface ReceivedBEventObject { - sender: string; - strs: string[]; - nums: BigNumber[]; - flag: boolean; -} -export type ReceivedBEvent = TypedEvent< - [string, string[], BigNumber[], boolean], - ReceivedBEventObject ->; - -export type ReceivedBEventFilter = TypedEventFilter; - -export interface ReceivedCEventObject { - sender: string; - amount: BigNumber; - token: string; - destination: string; -} -export type ReceivedCEvent = TypedEvent< - [string, BigNumber, string, string], - ReceivedCEventObject ->; - -export type ReceivedCEventFilter = TypedEventFilter; - -export interface ReceivedDEventObject { - sender: string; -} -export type ReceivedDEvent = TypedEvent<[string], ReceivedDEventObject>; - -export type ReceivedDEventFilter = TypedEventFilter; - -export interface Receiver extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: ReceiverInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - receiveA( - str: PromiseOrValue, - num: PromiseOrValue, - flag: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - receiveB( - strs: PromiseOrValue[], - nums: PromiseOrValue[], - flag: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - receiveC( - amount: PromiseOrValue, - token: PromiseOrValue, - destination: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - receiveD( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - receiveA( - str: PromiseOrValue, - num: PromiseOrValue, - flag: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - receiveB( - strs: PromiseOrValue[], - nums: PromiseOrValue[], - flag: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - receiveC( - amount: PromiseOrValue, - token: PromiseOrValue, - destination: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - receiveD( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - receiveA( - str: PromiseOrValue, - num: PromiseOrValue, - flag: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - receiveB( - strs: PromiseOrValue[], - nums: PromiseOrValue[], - flag: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - receiveC( - amount: PromiseOrValue, - token: PromiseOrValue, - destination: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - receiveD(overrides?: CallOverrides): Promise; - }; - - filters: { - "ReceivedA(address,uint256,string,uint256,bool)"( - sender?: null, - value?: null, - str?: null, - num?: null, - flag?: null - ): ReceivedAEventFilter; - ReceivedA( - sender?: null, - value?: null, - str?: null, - num?: null, - flag?: null - ): ReceivedAEventFilter; - - "ReceivedB(address,string[],uint256[],bool)"( - sender?: null, - strs?: null, - nums?: null, - flag?: null - ): ReceivedBEventFilter; - ReceivedB( - sender?: null, - strs?: null, - nums?: null, - flag?: null - ): ReceivedBEventFilter; - - "ReceivedC(address,uint256,address,address)"( - sender?: null, - amount?: null, - token?: null, - destination?: null - ): ReceivedCEventFilter; - ReceivedC( - sender?: null, - amount?: null, - token?: null, - destination?: null - ): ReceivedCEventFilter; - - "ReceivedD(address)"(sender?: null): ReceivedDEventFilter; - ReceivedD(sender?: null): ReceivedDEventFilter; - }; - - estimateGas: { - receiveA( - str: PromiseOrValue, - num: PromiseOrValue, - flag: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - receiveB( - strs: PromiseOrValue[], - nums: PromiseOrValue[], - flag: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - receiveC( - amount: PromiseOrValue, - token: PromiseOrValue, - destination: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - receiveD( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - receiveA( - str: PromiseOrValue, - num: PromiseOrValue, - flag: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - receiveB( - strs: PromiseOrValue[], - nums: PromiseOrValue[], - flag: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - receiveC( - amount: PromiseOrValue, - token: PromiseOrValue, - destination: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - receiveD( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/TestERC20.ts b/typechain-types/contracts/prototypes/TestERC20.ts deleted file mode 100644 index 580edbbc..00000000 --- a/typechain-types/contracts/prototypes/TestERC20.ts +++ /dev/null @@ -1,501 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../common"; - -export interface TestERC20Interface extends utils.Interface { - functions: { - "allowance(address,address)": FunctionFragment; - "approve(address,uint256)": FunctionFragment; - "balanceOf(address)": FunctionFragment; - "decimals()": FunctionFragment; - "decreaseAllowance(address,uint256)": FunctionFragment; - "increaseAllowance(address,uint256)": FunctionFragment; - "mint(address,uint256)": FunctionFragment; - "name()": FunctionFragment; - "symbol()": FunctionFragment; - "totalSupply()": FunctionFragment; - "transfer(address,uint256)": FunctionFragment; - "transferFrom(address,address,uint256)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "allowance" - | "approve" - | "balanceOf" - | "decimals" - | "decreaseAllowance" - | "increaseAllowance" - | "mint" - | "name" - | "symbol" - | "totalSupply" - | "transfer" - | "transferFrom" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "allowance", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [PromiseOrValue] - ): string; - encodeFunctionData(functionFragment: "decimals", values?: undefined): string; - encodeFunctionData( - functionFragment: "decreaseAllowance", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "increaseAllowance", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "mint", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData(functionFragment: "name", values?: undefined): string; - encodeFunctionData(functionFragment: "symbol", values?: undefined): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): 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: "decreaseAllowance", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "increaseAllowance", - 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; - - events: { - "Approval(address,address,uint256)": EventFragment; - "Transfer(address,address,uint256)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment; -} - -export interface ApprovalEventObject { - owner: string; - spender: string; - value: BigNumber; -} -export type ApprovalEvent = TypedEvent< - [string, string, BigNumber], - ApprovalEventObject ->; - -export type ApprovalEventFilter = TypedEventFilter; - -export interface TransferEventObject { - from: string; - to: string; - value: BigNumber; -} -export type TransferEvent = TypedEvent< - [string, string, BigNumber], - TransferEventObject ->; - -export type TransferEventFilter = TypedEventFilter; - -export interface TestERC20 extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: TestERC20Interface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - allowance( - owner: PromiseOrValue, - spender: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - approve( - spender: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - decimals(overrides?: CallOverrides): Promise<[number]>; - - decreaseAllowance( - spender: PromiseOrValue, - subtractedValue: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - increaseAllowance( - spender: PromiseOrValue, - addedValue: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - mint( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - name(overrides?: CallOverrides): Promise<[string]>; - - symbol(overrides?: CallOverrides): Promise<[string]>; - - totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>; - - transfer( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferFrom( - from: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - allowance( - owner: PromiseOrValue, - spender: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - approve( - spender: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - decreaseAllowance( - spender: PromiseOrValue, - subtractedValue: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - increaseAllowance( - spender: PromiseOrValue, - addedValue: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - mint( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferFrom( - from: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - allowance( - owner: PromiseOrValue, - spender: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - approve( - spender: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - balanceOf( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - decreaseAllowance( - spender: PromiseOrValue, - subtractedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - increaseAllowance( - spender: PromiseOrValue, - addedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - mint( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - transferFrom( - from: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "Approval(address,address,uint256)"( - owner?: PromiseOrValue | null, - spender?: PromiseOrValue | null, - value?: null - ): ApprovalEventFilter; - Approval( - owner?: PromiseOrValue | null, - spender?: PromiseOrValue | null, - value?: null - ): ApprovalEventFilter; - - "Transfer(address,address,uint256)"( - from?: PromiseOrValue | null, - to?: PromiseOrValue | null, - value?: null - ): TransferEventFilter; - Transfer( - from?: PromiseOrValue | null, - to?: PromiseOrValue | null, - value?: null - ): TransferEventFilter; - }; - - estimateGas: { - allowance( - owner: PromiseOrValue, - spender: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - approve( - spender: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - decreaseAllowance( - spender: PromiseOrValue, - subtractedValue: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - increaseAllowance( - spender: PromiseOrValue, - addedValue: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - mint( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferFrom( - from: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - allowance( - owner: PromiseOrValue, - spender: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - approve( - spender: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - decreaseAllowance( - spender: PromiseOrValue, - subtractedValue: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - increaseAllowance( - spender: PromiseOrValue, - addedValue: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - mint( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferFrom( - from: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/WETH9.ts b/typechain-types/contracts/prototypes/WETH9.ts deleted file mode 100644 index cc4355f3..00000000 --- a/typechain-types/contracts/prototypes/WETH9.ts +++ /dev/null @@ -1,480 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PayableOverrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../common"; - -export interface WETH9Interface extends utils.Interface { - functions: { - "allowance(address,address)": FunctionFragment; - "approve(address,uint256)": FunctionFragment; - "balanceOf(address)": FunctionFragment; - "decimals()": FunctionFragment; - "deposit()": FunctionFragment; - "name()": FunctionFragment; - "symbol()": FunctionFragment; - "totalSupply()": FunctionFragment; - "transfer(address,uint256)": FunctionFragment; - "transferFrom(address,address,uint256)": FunctionFragment; - "withdraw(uint256)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "allowance" - | "approve" - | "balanceOf" - | "decimals" - | "deposit" - | "name" - | "symbol" - | "totalSupply" - | "transfer" - | "transferFrom" - | "withdraw" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "allowance", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [PromiseOrValue] - ): 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: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "withdraw", - values: [PromiseOrValue] - ): 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; - - events: { - "Approval(address,address,uint256)": EventFragment; - "Deposit(address,uint256)": EventFragment; - "Transfer(address,address,uint256)": EventFragment; - "Withdrawal(address,uint256)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Deposit"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Withdrawal"): EventFragment; -} - -export interface ApprovalEventObject { - src: string; - guy: string; - wad: BigNumber; -} -export type ApprovalEvent = TypedEvent< - [string, string, BigNumber], - ApprovalEventObject ->; - -export type ApprovalEventFilter = TypedEventFilter; - -export interface DepositEventObject { - dst: string; - wad: BigNumber; -} -export type DepositEvent = TypedEvent<[string, BigNumber], DepositEventObject>; - -export type DepositEventFilter = TypedEventFilter; - -export interface TransferEventObject { - src: string; - dst: string; - wad: BigNumber; -} -export type TransferEvent = TypedEvent< - [string, string, BigNumber], - TransferEventObject ->; - -export type TransferEventFilter = TypedEventFilter; - -export interface WithdrawalEventObject { - src: string; - wad: BigNumber; -} -export type WithdrawalEvent = TypedEvent< - [string, BigNumber], - WithdrawalEventObject ->; - -export type WithdrawalEventFilter = TypedEventFilter; - -export interface WETH9 extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: WETH9Interface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - allowance( - arg0: PromiseOrValue, - arg1: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - approve( - guy: PromiseOrValue, - wad: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - arg0: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - decimals(overrides?: CallOverrides): Promise<[number]>; - - deposit( - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - name(overrides?: CallOverrides): Promise<[string]>; - - symbol(overrides?: CallOverrides): Promise<[string]>; - - totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>; - - transfer( - dst: PromiseOrValue, - wad: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferFrom( - src: PromiseOrValue, - dst: PromiseOrValue, - wad: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdraw( - wad: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - allowance( - arg0: PromiseOrValue, - arg1: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - approve( - guy: PromiseOrValue, - wad: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - arg0: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - deposit( - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - dst: PromiseOrValue, - wad: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferFrom( - src: PromiseOrValue, - dst: PromiseOrValue, - wad: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdraw( - wad: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - allowance( - arg0: PromiseOrValue, - arg1: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - approve( - guy: PromiseOrValue, - wad: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - balanceOf( - arg0: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - deposit(overrides?: CallOverrides): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - dst: PromiseOrValue, - wad: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - transferFrom( - src: PromiseOrValue, - dst: PromiseOrValue, - wad: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - withdraw( - wad: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "Approval(address,address,uint256)"( - src?: PromiseOrValue | null, - guy?: PromiseOrValue | null, - wad?: null - ): ApprovalEventFilter; - Approval( - src?: PromiseOrValue | null, - guy?: PromiseOrValue | null, - wad?: null - ): ApprovalEventFilter; - - "Deposit(address,uint256)"( - dst?: PromiseOrValue | null, - wad?: null - ): DepositEventFilter; - Deposit( - dst?: PromiseOrValue | null, - wad?: null - ): DepositEventFilter; - - "Transfer(address,address,uint256)"( - src?: PromiseOrValue | null, - dst?: PromiseOrValue | null, - wad?: null - ): TransferEventFilter; - Transfer( - src?: PromiseOrValue | null, - dst?: PromiseOrValue | null, - wad?: null - ): TransferEventFilter; - - "Withdrawal(address,uint256)"( - src?: PromiseOrValue | null, - wad?: null - ): WithdrawalEventFilter; - Withdrawal( - src?: PromiseOrValue | null, - wad?: null - ): WithdrawalEventFilter; - }; - - estimateGas: { - allowance( - arg0: PromiseOrValue, - arg1: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - approve( - guy: PromiseOrValue, - wad: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - arg0: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - deposit( - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - dst: PromiseOrValue, - wad: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferFrom( - src: PromiseOrValue, - dst: PromiseOrValue, - wad: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdraw( - wad: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - allowance( - arg0: PromiseOrValue, - arg1: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - approve( - guy: PromiseOrValue, - wad: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - arg0: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - deposit( - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - dst: PromiseOrValue, - wad: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferFrom( - src: PromiseOrValue, - dst: PromiseOrValue, - wad: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdraw( - wad: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/evm/ERC20CustodyNew.ts b/typechain-types/contracts/prototypes/evm/ERC20CustodyNew.ts deleted file mode 100644 index 99bed03f..00000000 --- a/typechain-types/contracts/prototypes/evm/ERC20CustodyNew.ts +++ /dev/null @@ -1,349 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../common"; - -export interface ERC20CustodyNewInterface extends utils.Interface { - functions: { - "gateway()": FunctionFragment; - "tssAddress()": FunctionFragment; - "withdraw(address,address,uint256)": FunctionFragment; - "withdrawAndCall(address,address,uint256,bytes)": FunctionFragment; - "withdrawAndRevert(address,address,uint256,bytes)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "gateway" - | "tssAddress" - | "withdraw" - | "withdrawAndCall" - | "withdrawAndRevert" - ): FunctionFragment; - - encodeFunctionData(functionFragment: "gateway", values?: undefined): string; - encodeFunctionData( - functionFragment: "tssAddress", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "withdraw", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "withdrawAndCall", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "withdrawAndRevert", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): 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; - - events: { - "Withdraw(address,address,uint256)": EventFragment; - "WithdrawAndCall(address,address,uint256,bytes)": EventFragment; - "WithdrawAndRevert(address,address,uint256,bytes)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Withdraw"): EventFragment; - getEvent(nameOrSignatureOrTopic: "WithdrawAndCall"): EventFragment; - getEvent(nameOrSignatureOrTopic: "WithdrawAndRevert"): EventFragment; -} - -export interface WithdrawEventObject { - token: string; - to: string; - amount: BigNumber; -} -export type WithdrawEvent = TypedEvent< - [string, string, BigNumber], - WithdrawEventObject ->; - -export type WithdrawEventFilter = TypedEventFilter; - -export interface WithdrawAndCallEventObject { - token: string; - to: string; - amount: BigNumber; - data: string; -} -export type WithdrawAndCallEvent = TypedEvent< - [string, string, BigNumber, string], - WithdrawAndCallEventObject ->; - -export type WithdrawAndCallEventFilter = TypedEventFilter; - -export interface WithdrawAndRevertEventObject { - token: string; - to: string; - amount: BigNumber; - data: string; -} -export type WithdrawAndRevertEvent = TypedEvent< - [string, string, BigNumber, string], - WithdrawAndRevertEventObject ->; - -export type WithdrawAndRevertEventFilter = - TypedEventFilter; - -export interface ERC20CustodyNew extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: ERC20CustodyNewInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - gateway(overrides?: CallOverrides): Promise<[string]>; - - tssAddress(overrides?: CallOverrides): Promise<[string]>; - - withdraw( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndCall( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndRevert( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - gateway(overrides?: CallOverrides): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - withdraw( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndCall( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndRevert( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - gateway(overrides?: CallOverrides): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - withdraw( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - withdrawAndCall( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - withdrawAndRevert( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "Withdraw(address,address,uint256)"( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null - ): WithdrawEventFilter; - Withdraw( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null - ): WithdrawEventFilter; - - "WithdrawAndCall(address,address,uint256,bytes)"( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): WithdrawAndCallEventFilter; - WithdrawAndCall( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): WithdrawAndCallEventFilter; - - "WithdrawAndRevert(address,address,uint256,bytes)"( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): WithdrawAndRevertEventFilter; - WithdrawAndRevert( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): WithdrawAndRevertEventFilter; - }; - - estimateGas: { - gateway(overrides?: CallOverrides): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - withdraw( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndCall( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndRevert( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - gateway(overrides?: CallOverrides): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - withdraw( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndCall( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndRevert( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/evm/ERC20CustodyNewEchidnaTest.ts b/typechain-types/contracts/prototypes/evm/ERC20CustodyNewEchidnaTest.ts deleted file mode 100644 index 7f3451e7..00000000 --- a/typechain-types/contracts/prototypes/evm/ERC20CustodyNewEchidnaTest.ts +++ /dev/null @@ -1,331 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../common"; - -export interface ERC20CustodyNewEchidnaTestInterface extends utils.Interface { - functions: { - "echidnaCaller()": FunctionFragment; - "gateway()": FunctionFragment; - "testERC20()": FunctionFragment; - "testWithdrawAndCall(address,uint256,bytes)": FunctionFragment; - "withdraw(address,address,uint256)": FunctionFragment; - "withdrawAndCall(address,address,uint256,bytes)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "echidnaCaller" - | "gateway" - | "testERC20" - | "testWithdrawAndCall" - | "withdraw" - | "withdrawAndCall" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "echidnaCaller", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "gateway", values?: undefined): string; - encodeFunctionData(functionFragment: "testERC20", values?: undefined): string; - encodeFunctionData( - functionFragment: "testWithdrawAndCall", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "withdraw", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "withdrawAndCall", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): 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: "withdraw", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "withdrawAndCall", - data: BytesLike - ): Result; - - events: { - "Withdraw(address,address,uint256)": EventFragment; - "WithdrawAndCall(address,address,uint256,bytes)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Withdraw"): EventFragment; - getEvent(nameOrSignatureOrTopic: "WithdrawAndCall"): EventFragment; -} - -export interface WithdrawEventObject { - token: string; - to: string; - amount: BigNumber; -} -export type WithdrawEvent = TypedEvent< - [string, string, BigNumber], - WithdrawEventObject ->; - -export type WithdrawEventFilter = TypedEventFilter; - -export interface WithdrawAndCallEventObject { - token: string; - to: string; - amount: BigNumber; - data: string; -} -export type WithdrawAndCallEvent = TypedEvent< - [string, string, BigNumber, string], - WithdrawAndCallEventObject ->; - -export type WithdrawAndCallEventFilter = TypedEventFilter; - -export interface ERC20CustodyNewEchidnaTest extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: ERC20CustodyNewEchidnaTestInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - echidnaCaller(overrides?: CallOverrides): Promise<[string]>; - - gateway(overrides?: CallOverrides): Promise<[string]>; - - testERC20(overrides?: CallOverrides): Promise<[string]>; - - testWithdrawAndCall( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdraw( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndCall( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - echidnaCaller(overrides?: CallOverrides): Promise; - - gateway(overrides?: CallOverrides): Promise; - - testERC20(overrides?: CallOverrides): Promise; - - testWithdrawAndCall( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdraw( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndCall( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - echidnaCaller(overrides?: CallOverrides): Promise; - - gateway(overrides?: CallOverrides): Promise; - - testERC20(overrides?: CallOverrides): Promise; - - testWithdrawAndCall( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - withdraw( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - withdrawAndCall( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "Withdraw(address,address,uint256)"( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null - ): WithdrawEventFilter; - Withdraw( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null - ): WithdrawEventFilter; - - "WithdrawAndCall(address,address,uint256,bytes)"( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): WithdrawAndCallEventFilter; - WithdrawAndCall( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): WithdrawAndCallEventFilter; - }; - - estimateGas: { - echidnaCaller(overrides?: CallOverrides): Promise; - - gateway(overrides?: CallOverrides): Promise; - - testERC20(overrides?: CallOverrides): Promise; - - testWithdrawAndCall( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdraw( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndCall( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - echidnaCaller(overrides?: CallOverrides): Promise; - - gateway(overrides?: CallOverrides): Promise; - - testERC20(overrides?: CallOverrides): Promise; - - testWithdrawAndCall( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdraw( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndCall( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/evm/Gateway.ts b/typechain-types/contracts/prototypes/evm/Gateway.ts deleted file mode 100644 index b016bda1..00000000 --- a/typechain-types/contracts/prototypes/evm/Gateway.ts +++ /dev/null @@ -1,704 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PayableOverrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../common"; - -export interface GatewayInterface extends utils.Interface { - functions: { - "custody()": FunctionFragment; - "execute(address,bytes)": FunctionFragment; - "executeWithERC20(address,address,uint256,bytes)": FunctionFragment; - "initialize(address)": FunctionFragment; - "owner()": FunctionFragment; - "proxiableUUID()": FunctionFragment; - "renounceOwnership()": FunctionFragment; - "send(bytes,uint256)": FunctionFragment; - "sendERC20(bytes,address,uint256)": FunctionFragment; - "setCustody(address)": FunctionFragment; - "transferOwnership(address)": FunctionFragment; - "tssAddress()": FunctionFragment; - "upgradeTo(address)": FunctionFragment; - "upgradeToAndCall(address,bytes)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "custody" - | "execute" - | "executeWithERC20" - | "initialize" - | "owner" - | "proxiableUUID" - | "renounceOwnership" - | "send" - | "sendERC20" - | "setCustody" - | "transferOwnership" - | "tssAddress" - | "upgradeTo" - | "upgradeToAndCall" - ): FunctionFragment; - - encodeFunctionData(functionFragment: "custody", values?: undefined): string; - encodeFunctionData( - functionFragment: "execute", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "executeWithERC20", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "initialize", - values: [PromiseOrValue] - ): string; - encodeFunctionData(functionFragment: "owner", values?: undefined): string; - encodeFunctionData( - functionFragment: "proxiableUUID", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "renounceOwnership", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "send", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "sendERC20", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "setCustody", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "transferOwnership", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "tssAddress", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "upgradeTo", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "upgradeToAndCall", - values: [PromiseOrValue, PromiseOrValue] - ): string; - - decodeFunctionResult(functionFragment: "custody", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "execute", 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: "send", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "sendERC20", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "setCustody", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferOwnership", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "tssAddress", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "upgradeTo", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "upgradeToAndCall", - data: BytesLike - ): Result; - - events: { - "AdminChanged(address,address)": EventFragment; - "BeaconUpgraded(address)": EventFragment; - "Executed(address,uint256,bytes)": EventFragment; - "ExecutedWithERC20(address,address,uint256,bytes)": EventFragment; - "Initialized(uint8)": EventFragment; - "OwnershipTransferred(address,address)": EventFragment; - "Send(bytes,uint256)": EventFragment; - "SendERC20(bytes,address,uint256)": EventFragment; - "Upgraded(address)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "AdminChanged"): EventFragment; - getEvent(nameOrSignatureOrTopic: "BeaconUpgraded"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Executed"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ExecutedWithERC20"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment; - getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Send"): EventFragment; - getEvent(nameOrSignatureOrTopic: "SendERC20"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Upgraded"): EventFragment; -} - -export interface AdminChangedEventObject { - previousAdmin: string; - newAdmin: string; -} -export type AdminChangedEvent = TypedEvent< - [string, string], - AdminChangedEventObject ->; - -export type AdminChangedEventFilter = TypedEventFilter; - -export interface BeaconUpgradedEventObject { - beacon: string; -} -export type BeaconUpgradedEvent = TypedEvent< - [string], - BeaconUpgradedEventObject ->; - -export type BeaconUpgradedEventFilter = TypedEventFilter; - -export interface ExecutedEventObject { - destination: string; - value: BigNumber; - data: string; -} -export type ExecutedEvent = TypedEvent< - [string, BigNumber, string], - ExecutedEventObject ->; - -export type ExecutedEventFilter = TypedEventFilter; - -export interface ExecutedWithERC20EventObject { - token: string; - to: string; - amount: BigNumber; - data: string; -} -export type ExecutedWithERC20Event = TypedEvent< - [string, string, BigNumber, string], - ExecutedWithERC20EventObject ->; - -export type ExecutedWithERC20EventFilter = - TypedEventFilter; - -export interface InitializedEventObject { - version: number; -} -export type InitializedEvent = TypedEvent<[number], InitializedEventObject>; - -export type InitializedEventFilter = TypedEventFilter; - -export interface OwnershipTransferredEventObject { - previousOwner: string; - newOwner: string; -} -export type OwnershipTransferredEvent = TypedEvent< - [string, string], - OwnershipTransferredEventObject ->; - -export type OwnershipTransferredEventFilter = - TypedEventFilter; - -export interface SendEventObject { - recipient: string; - amount: BigNumber; -} -export type SendEvent = TypedEvent<[string, BigNumber], SendEventObject>; - -export type SendEventFilter = TypedEventFilter; - -export interface SendERC20EventObject { - recipient: string; - asset: string; - amount: BigNumber; -} -export type SendERC20Event = TypedEvent< - [string, string, BigNumber], - SendERC20EventObject ->; - -export type SendERC20EventFilter = TypedEventFilter; - -export interface UpgradedEventObject { - implementation: string; -} -export type UpgradedEvent = TypedEvent<[string], UpgradedEventObject>; - -export type UpgradedEventFilter = TypedEventFilter; - -export interface Gateway extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: GatewayInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - custody(overrides?: CallOverrides): Promise<[string]>; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - _tssAddress: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise<[string]>; - - proxiableUUID(overrides?: CallOverrides): Promise<[string]>; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - send( - recipient: PromiseOrValue, - amount: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - sendERC20( - recipient: PromiseOrValue, - token: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise<[string]>; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; - - custody(overrides?: CallOverrides): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - _tssAddress: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - send( - recipient: PromiseOrValue, - amount: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - sendERC20( - recipient: PromiseOrValue, - token: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - custody(overrides?: CallOverrides): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - initialize( - _tssAddress: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership(overrides?: CallOverrides): Promise; - - send( - recipient: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - sendERC20( - recipient: PromiseOrValue, - token: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "AdminChanged(address,address)"( - previousAdmin?: null, - newAdmin?: null - ): AdminChangedEventFilter; - AdminChanged( - previousAdmin?: null, - newAdmin?: null - ): AdminChangedEventFilter; - - "BeaconUpgraded(address)"( - beacon?: PromiseOrValue | null - ): BeaconUpgradedEventFilter; - BeaconUpgraded( - beacon?: PromiseOrValue | null - ): BeaconUpgradedEventFilter; - - "Executed(address,uint256,bytes)"( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): ExecutedEventFilter; - Executed( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): ExecutedEventFilter; - - "ExecutedWithERC20(address,address,uint256,bytes)"( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): ExecutedWithERC20EventFilter; - ExecutedWithERC20( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): ExecutedWithERC20EventFilter; - - "Initialized(uint8)"(version?: null): InitializedEventFilter; - Initialized(version?: null): InitializedEventFilter; - - "OwnershipTransferred(address,address)"( - previousOwner?: PromiseOrValue | null, - newOwner?: PromiseOrValue | null - ): OwnershipTransferredEventFilter; - OwnershipTransferred( - previousOwner?: PromiseOrValue | null, - newOwner?: PromiseOrValue | null - ): OwnershipTransferredEventFilter; - - "Send(bytes,uint256)"(recipient?: null, amount?: null): SendEventFilter; - Send(recipient?: null, amount?: null): SendEventFilter; - - "SendERC20(bytes,address,uint256)"( - recipient?: null, - asset?: PromiseOrValue | null, - amount?: null - ): SendERC20EventFilter; - SendERC20( - recipient?: null, - asset?: PromiseOrValue | null, - amount?: null - ): SendERC20EventFilter; - - "Upgraded(address)"( - implementation?: PromiseOrValue | null - ): UpgradedEventFilter; - Upgraded( - implementation?: PromiseOrValue | null - ): UpgradedEventFilter; - }; - - estimateGas: { - custody(overrides?: CallOverrides): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - _tssAddress: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - send( - recipient: PromiseOrValue, - amount: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - sendERC20( - recipient: PromiseOrValue, - token: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - custody(overrides?: CallOverrides): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - _tssAddress: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - send( - recipient: PromiseOrValue, - amount: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - sendERC20( - recipient: PromiseOrValue, - token: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/evm/GatewayEVM.sol/GatewayEVM.ts b/typechain-types/contracts/prototypes/evm/GatewayEVM.sol/GatewayEVM.ts deleted file mode 100644 index 73fefe7e..00000000 --- a/typechain-types/contracts/prototypes/evm/GatewayEVM.sol/GatewayEVM.ts +++ /dev/null @@ -1,1075 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PayableOverrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../../common"; - -export interface GatewayEVMInterface extends utils.Interface { - functions: { - "call(address,bytes)": FunctionFragment; - "custody()": FunctionFragment; - "deposit(address)": FunctionFragment; - "deposit(address,uint256,address)": FunctionFragment; - "depositAndCall(address,bytes)": FunctionFragment; - "depositAndCall(address,uint256,address,bytes)": FunctionFragment; - "execute(address,bytes)": FunctionFragment; - "executeRevert(address,bytes)": FunctionFragment; - "executeWithERC20(address,address,uint256,bytes)": FunctionFragment; - "initialize(address,address)": FunctionFragment; - "owner()": FunctionFragment; - "proxiableUUID()": FunctionFragment; - "renounceOwnership()": FunctionFragment; - "revertWithERC20(address,address,uint256,bytes)": FunctionFragment; - "setConnector(address)": FunctionFragment; - "setCustody(address)": FunctionFragment; - "transferOwnership(address)": FunctionFragment; - "tssAddress()": FunctionFragment; - "upgradeTo(address)": FunctionFragment; - "upgradeToAndCall(address,bytes)": FunctionFragment; - "zeta()": FunctionFragment; - "zetaConnector()": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "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" - | "upgradeTo" - | "upgradeToAndCall" - | "zeta" - | "zetaConnector" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "call", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData(functionFragment: "custody", values?: undefined): string; - encodeFunctionData( - functionFragment: "deposit(address)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "deposit(address,uint256,address)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "depositAndCall(address,bytes)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "depositAndCall(address,uint256,address,bytes)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "execute", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "executeRevert", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "executeWithERC20", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "initialize", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData(functionFragment: "owner", values?: undefined): string; - encodeFunctionData( - functionFragment: "proxiableUUID", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "renounceOwnership", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "revertWithERC20", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "setConnector", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "setCustody", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "transferOwnership", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "tssAddress", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "upgradeTo", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "upgradeToAndCall", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData(functionFragment: "zeta", values?: undefined): string; - encodeFunctionData( - functionFragment: "zetaConnector", - values?: undefined - ): string; - - 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: "upgradeTo", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "upgradeToAndCall", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "zeta", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "zetaConnector", - data: BytesLike - ): Result; - - events: { - "AdminChanged(address,address)": EventFragment; - "BeaconUpgraded(address)": EventFragment; - "Call(address,address,bytes)": EventFragment; - "Deposit(address,address,uint256,address,bytes)": EventFragment; - "Executed(address,uint256,bytes)": EventFragment; - "ExecutedWithERC20(address,address,uint256,bytes)": EventFragment; - "Initialized(uint8)": EventFragment; - "OwnershipTransferred(address,address)": EventFragment; - "Reverted(address,uint256,bytes)": EventFragment; - "RevertedWithERC20(address,address,uint256,bytes)": EventFragment; - "Upgraded(address)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "AdminChanged"): EventFragment; - getEvent(nameOrSignatureOrTopic: "BeaconUpgraded"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Call"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Deposit"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Executed"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ExecutedWithERC20"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment; - getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Reverted"): EventFragment; - getEvent(nameOrSignatureOrTopic: "RevertedWithERC20"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Upgraded"): EventFragment; -} - -export interface AdminChangedEventObject { - previousAdmin: string; - newAdmin: string; -} -export type AdminChangedEvent = TypedEvent< - [string, string], - AdminChangedEventObject ->; - -export type AdminChangedEventFilter = TypedEventFilter; - -export interface BeaconUpgradedEventObject { - beacon: string; -} -export type BeaconUpgradedEvent = TypedEvent< - [string], - BeaconUpgradedEventObject ->; - -export type BeaconUpgradedEventFilter = TypedEventFilter; - -export interface CallEventObject { - sender: string; - receiver: string; - payload: string; -} -export type CallEvent = TypedEvent<[string, string, string], CallEventObject>; - -export type CallEventFilter = TypedEventFilter; - -export interface DepositEventObject { - sender: string; - receiver: string; - amount: BigNumber; - asset: string; - payload: string; -} -export type DepositEvent = TypedEvent< - [string, string, BigNumber, string, string], - DepositEventObject ->; - -export type DepositEventFilter = TypedEventFilter; - -export interface ExecutedEventObject { - destination: string; - value: BigNumber; - data: string; -} -export type ExecutedEvent = TypedEvent< - [string, BigNumber, string], - ExecutedEventObject ->; - -export type ExecutedEventFilter = TypedEventFilter; - -export interface ExecutedWithERC20EventObject { - token: string; - to: string; - amount: BigNumber; - data: string; -} -export type ExecutedWithERC20Event = TypedEvent< - [string, string, BigNumber, string], - ExecutedWithERC20EventObject ->; - -export type ExecutedWithERC20EventFilter = - TypedEventFilter; - -export interface InitializedEventObject { - version: number; -} -export type InitializedEvent = TypedEvent<[number], InitializedEventObject>; - -export type InitializedEventFilter = TypedEventFilter; - -export interface OwnershipTransferredEventObject { - previousOwner: string; - newOwner: string; -} -export type OwnershipTransferredEvent = TypedEvent< - [string, string], - OwnershipTransferredEventObject ->; - -export type OwnershipTransferredEventFilter = - TypedEventFilter; - -export interface RevertedEventObject { - destination: string; - value: BigNumber; - data: string; -} -export type RevertedEvent = TypedEvent< - [string, BigNumber, string], - RevertedEventObject ->; - -export type RevertedEventFilter = TypedEventFilter; - -export interface RevertedWithERC20EventObject { - token: string; - to: string; - amount: BigNumber; - data: string; -} -export type RevertedWithERC20Event = TypedEvent< - [string, string, BigNumber, string], - RevertedWithERC20EventObject ->; - -export type RevertedWithERC20EventFilter = - TypedEventFilter; - -export interface UpgradedEventObject { - implementation: string; -} -export type UpgradedEvent = TypedEvent<[string], UpgradedEventObject>; - -export type UpgradedEventFilter = TypedEventFilter; - -export interface GatewayEVM extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: GatewayEVMInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - call( - receiver: PromiseOrValue, - payload: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - custody(overrides?: CallOverrides): Promise<[string]>; - - "deposit(address)"( - receiver: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "deposit(address,uint256,address)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - asset: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "depositAndCall(address,bytes)"( - receiver: PromiseOrValue, - payload: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "depositAndCall(address,uint256,address,bytes)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - asset: PromiseOrValue, - payload: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeRevert( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - _tssAddress: PromiseOrValue, - _zeta: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise<[string]>; - - proxiableUUID(overrides?: CallOverrides): Promise<[string]>; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - revertWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setConnector( - _zetaConnector: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise<[string]>; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - zeta(overrides?: CallOverrides): Promise<[string]>; - - zetaConnector(overrides?: CallOverrides): Promise<[string]>; - }; - - call( - receiver: PromiseOrValue, - payload: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - custody(overrides?: CallOverrides): Promise; - - "deposit(address)"( - receiver: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "deposit(address,uint256,address)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - asset: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "depositAndCall(address,bytes)"( - receiver: PromiseOrValue, - payload: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "depositAndCall(address,uint256,address,bytes)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - asset: PromiseOrValue, - payload: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeRevert( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - _tssAddress: PromiseOrValue, - _zeta: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - revertWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setConnector( - _zetaConnector: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - zeta(overrides?: CallOverrides): Promise; - - zetaConnector(overrides?: CallOverrides): Promise; - - callStatic: { - call( - receiver: PromiseOrValue, - payload: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - custody(overrides?: CallOverrides): Promise; - - "deposit(address)"( - receiver: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "deposit(address,uint256,address)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - asset: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "depositAndCall(address,bytes)"( - receiver: PromiseOrValue, - payload: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "depositAndCall(address,uint256,address,bytes)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - asset: PromiseOrValue, - payload: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - executeRevert( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - initialize( - _tssAddress: PromiseOrValue, - _zeta: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership(overrides?: CallOverrides): Promise; - - revertWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - setConnector( - _zetaConnector: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - zeta(overrides?: CallOverrides): Promise; - - zetaConnector(overrides?: CallOverrides): Promise; - }; - - filters: { - "AdminChanged(address,address)"( - previousAdmin?: null, - newAdmin?: null - ): AdminChangedEventFilter; - AdminChanged( - previousAdmin?: null, - newAdmin?: null - ): AdminChangedEventFilter; - - "BeaconUpgraded(address)"( - beacon?: PromiseOrValue | null - ): BeaconUpgradedEventFilter; - BeaconUpgraded( - beacon?: PromiseOrValue | null - ): BeaconUpgradedEventFilter; - - "Call(address,address,bytes)"( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - payload?: null - ): CallEventFilter; - Call( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - payload?: null - ): CallEventFilter; - - "Deposit(address,address,uint256,address,bytes)"( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - amount?: null, - asset?: null, - payload?: null - ): DepositEventFilter; - Deposit( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - amount?: null, - asset?: null, - payload?: null - ): DepositEventFilter; - - "Executed(address,uint256,bytes)"( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): ExecutedEventFilter; - Executed( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): ExecutedEventFilter; - - "ExecutedWithERC20(address,address,uint256,bytes)"( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): ExecutedWithERC20EventFilter; - ExecutedWithERC20( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): ExecutedWithERC20EventFilter; - - "Initialized(uint8)"(version?: null): InitializedEventFilter; - Initialized(version?: null): InitializedEventFilter; - - "OwnershipTransferred(address,address)"( - previousOwner?: PromiseOrValue | null, - newOwner?: PromiseOrValue | null - ): OwnershipTransferredEventFilter; - OwnershipTransferred( - previousOwner?: PromiseOrValue | null, - newOwner?: PromiseOrValue | null - ): OwnershipTransferredEventFilter; - - "Reverted(address,uint256,bytes)"( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): RevertedEventFilter; - Reverted( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): RevertedEventFilter; - - "RevertedWithERC20(address,address,uint256,bytes)"( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): RevertedWithERC20EventFilter; - RevertedWithERC20( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): RevertedWithERC20EventFilter; - - "Upgraded(address)"( - implementation?: PromiseOrValue | null - ): UpgradedEventFilter; - Upgraded( - implementation?: PromiseOrValue | null - ): UpgradedEventFilter; - }; - - estimateGas: { - call( - receiver: PromiseOrValue, - payload: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - custody(overrides?: CallOverrides): Promise; - - "deposit(address)"( - receiver: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "deposit(address,uint256,address)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - asset: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "depositAndCall(address,bytes)"( - receiver: PromiseOrValue, - payload: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "depositAndCall(address,uint256,address,bytes)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - asset: PromiseOrValue, - payload: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeRevert( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - _tssAddress: PromiseOrValue, - _zeta: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - revertWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setConnector( - _zetaConnector: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - zeta(overrides?: CallOverrides): Promise; - - zetaConnector(overrides?: CallOverrides): Promise; - }; - - populateTransaction: { - call( - receiver: PromiseOrValue, - payload: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - custody(overrides?: CallOverrides): Promise; - - "deposit(address)"( - receiver: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "deposit(address,uint256,address)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - asset: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "depositAndCall(address,bytes)"( - receiver: PromiseOrValue, - payload: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "depositAndCall(address,uint256,address,bytes)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - asset: PromiseOrValue, - payload: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeRevert( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - _tssAddress: PromiseOrValue, - _zeta: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - revertWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setConnector( - _zetaConnector: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - zeta(overrides?: CallOverrides): Promise; - - zetaConnector(overrides?: CallOverrides): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/evm/GatewayEVM.sol/Revertable.ts b/typechain-types/contracts/prototypes/evm/GatewayEVM.sol/Revertable.ts deleted file mode 100644 index f1bb069b..00000000 --- a/typechain-types/contracts/prototypes/evm/GatewayEVM.sol/Revertable.ts +++ /dev/null @@ -1,102 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { FunctionFragment, Result } from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../../common"; - -export interface RevertableInterface extends utils.Interface { - functions: { - "onRevert(bytes)": FunctionFragment; - }; - - getFunction(nameOrSignatureOrTopic: "onRevert"): FunctionFragment; - - encodeFunctionData( - functionFragment: "onRevert", - values: [PromiseOrValue] - ): string; - - decodeFunctionResult(functionFragment: "onRevert", data: BytesLike): Result; - - events: {}; -} - -export interface Revertable extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: RevertableInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - onRevert( - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - onRevert( - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - onRevert( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: {}; - - estimateGas: { - onRevert( - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - onRevert( - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/evm/GatewayEVM.sol/index.ts b/typechain-types/contracts/prototypes/evm/GatewayEVM.sol/index.ts deleted file mode 100644 index 367fce50..00000000 --- a/typechain-types/contracts/prototypes/evm/GatewayEVM.sol/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { GatewayEVM } from "./GatewayEVM"; -export type { Revertable } from "./Revertable"; diff --git a/typechain-types/contracts/prototypes/evm/GatewayEVM.t.sol/GatewayEVMTest.ts b/typechain-types/contracts/prototypes/evm/GatewayEVM.t.sol/GatewayEVMTest.ts deleted file mode 100644 index 0572c60f..00000000 --- a/typechain-types/contracts/prototypes/evm/GatewayEVM.t.sol/GatewayEVMTest.ts +++ /dev/null @@ -1,1023 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../../common"; - -export declare namespace StdInvariant { - export type FuzzSelectorStruct = { - addr: PromiseOrValue; - selectors: PromiseOrValue[]; - }; - - export type FuzzSelectorStructOutput = [string, string[]] & { - addr: string; - selectors: string[]; - }; - - export type FuzzArtifactSelectorStruct = { - artifact: PromiseOrValue; - selectors: PromiseOrValue[]; - }; - - export type FuzzArtifactSelectorStructOutput = [string, string[]] & { - artifact: string; - selectors: string[]; - }; - - export type FuzzInterfaceStruct = { - addr: PromiseOrValue; - artifacts: PromiseOrValue[]; - }; - - export type FuzzInterfaceStructOutput = [string, string[]] & { - addr: string; - artifacts: string[]; - }; -} - -export interface GatewayEVMTestInterface extends utils.Interface { - functions: { - "IS_TEST()": FunctionFragment; - "excludeArtifacts()": FunctionFragment; - "excludeContracts()": FunctionFragment; - "excludeSelectors()": FunctionFragment; - "excludeSenders()": FunctionFragment; - "failed()": FunctionFragment; - "setUp()": FunctionFragment; - "targetArtifactSelectors()": FunctionFragment; - "targetArtifacts()": FunctionFragment; - "targetContracts()": FunctionFragment; - "targetInterfaces()": FunctionFragment; - "targetSelectors()": FunctionFragment; - "targetSenders()": FunctionFragment; - "testForwardCallToReceivePayable()": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "IS_TEST" - | "excludeArtifacts" - | "excludeContracts" - | "excludeSelectors" - | "excludeSenders" - | "failed" - | "setUp" - | "targetArtifactSelectors" - | "targetArtifacts" - | "targetContracts" - | "targetInterfaces" - | "targetSelectors" - | "targetSenders" - | "testForwardCallToReceivePayable" - ): FunctionFragment; - - 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: "setUp", 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; - encodeFunctionData( - functionFragment: "testForwardCallToReceivePayable", - 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: "setUp", 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; - decodeFunctionResult( - functionFragment: "testForwardCallToReceivePayable", - data: BytesLike - ): Result; - - events: { - "Call(address,address,bytes)": EventFragment; - "Deposit(address,address,uint256,address,bytes)": EventFragment; - "Executed(address,uint256,bytes)": EventFragment; - "ExecutedWithERC20(address,address,uint256,bytes)": EventFragment; - "ReceivedERC20(address,uint256,address,address)": EventFragment; - "ReceivedNoParams(address)": EventFragment; - "ReceivedNonPayable(address,string[],uint256[],bool)": EventFragment; - "ReceivedPayable(address,uint256,string,uint256,bool)": EventFragment; - "log(string)": EventFragment; - "log_address(address)": EventFragment; - "log_array(uint256[])": EventFragment; - "log_array(int256[])": EventFragment; - "log_array(address[])": EventFragment; - "log_bytes(bytes)": EventFragment; - "log_bytes32(bytes32)": EventFragment; - "log_int(int256)": EventFragment; - "log_named_address(string,address)": EventFragment; - "log_named_array(string,uint256[])": EventFragment; - "log_named_array(string,int256[])": EventFragment; - "log_named_array(string,address[])": EventFragment; - "log_named_bytes(string,bytes)": EventFragment; - "log_named_bytes32(string,bytes32)": EventFragment; - "log_named_decimal_int(string,int256,uint256)": EventFragment; - "log_named_decimal_uint(string,uint256,uint256)": EventFragment; - "log_named_int(string,int256)": EventFragment; - "log_named_string(string,string)": EventFragment; - "log_named_uint(string,uint256)": EventFragment; - "log_string(string)": EventFragment; - "log_uint(uint256)": EventFragment; - "logs(bytes)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Call"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Deposit"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Executed"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ExecutedWithERC20"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ReceivedERC20"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ReceivedNoParams"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ReceivedNonPayable"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ReceivedPayable"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_address"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_array(uint256[])"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_array(int256[])"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_array(address[])"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_bytes"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_bytes32"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_int"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_address"): EventFragment; - getEvent( - nameOrSignatureOrTopic: "log_named_array(string,uint256[])" - ): EventFragment; - getEvent( - nameOrSignatureOrTopic: "log_named_array(string,int256[])" - ): EventFragment; - getEvent( - nameOrSignatureOrTopic: "log_named_array(string,address[])" - ): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_bytes"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_bytes32"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_decimal_int"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_decimal_uint"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_int"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_string"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_uint"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_string"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_uint"): EventFragment; - getEvent(nameOrSignatureOrTopic: "logs"): EventFragment; -} - -export interface CallEventObject { - sender: string; - receiver: string; - payload: string; -} -export type CallEvent = TypedEvent<[string, string, string], CallEventObject>; - -export type CallEventFilter = TypedEventFilter; - -export interface DepositEventObject { - sender: string; - receiver: string; - amount: BigNumber; - asset: string; - payload: string; -} -export type DepositEvent = TypedEvent< - [string, string, BigNumber, string, string], - DepositEventObject ->; - -export type DepositEventFilter = TypedEventFilter; - -export interface ExecutedEventObject { - destination: string; - value: BigNumber; - data: string; -} -export type ExecutedEvent = TypedEvent< - [string, BigNumber, string], - ExecutedEventObject ->; - -export type ExecutedEventFilter = TypedEventFilter; - -export interface ExecutedWithERC20EventObject { - token: string; - to: string; - amount: BigNumber; - data: string; -} -export type ExecutedWithERC20Event = TypedEvent< - [string, string, BigNumber, string], - ExecutedWithERC20EventObject ->; - -export type ExecutedWithERC20EventFilter = - TypedEventFilter; - -export interface ReceivedERC20EventObject { - sender: string; - amount: BigNumber; - token: string; - destination: string; -} -export type ReceivedERC20Event = TypedEvent< - [string, BigNumber, string, string], - ReceivedERC20EventObject ->; - -export type ReceivedERC20EventFilter = TypedEventFilter; - -export interface ReceivedNoParamsEventObject { - sender: string; -} -export type ReceivedNoParamsEvent = TypedEvent< - [string], - ReceivedNoParamsEventObject ->; - -export type ReceivedNoParamsEventFilter = - TypedEventFilter; - -export interface ReceivedNonPayableEventObject { - sender: string; - strs: string[]; - nums: BigNumber[]; - flag: boolean; -} -export type ReceivedNonPayableEvent = TypedEvent< - [string, string[], BigNumber[], boolean], - ReceivedNonPayableEventObject ->; - -export type ReceivedNonPayableEventFilter = - TypedEventFilter; - -export interface ReceivedPayableEventObject { - sender: string; - value: BigNumber; - str: string; - num: BigNumber; - flag: boolean; -} -export type ReceivedPayableEvent = TypedEvent< - [string, BigNumber, string, BigNumber, boolean], - ReceivedPayableEventObject ->; - -export type ReceivedPayableEventFilter = TypedEventFilter; - -export interface logEventObject { - arg0: string; -} -export type logEvent = TypedEvent<[string], logEventObject>; - -export type logEventFilter = TypedEventFilter; - -export interface log_addressEventObject { - arg0: string; -} -export type log_addressEvent = TypedEvent<[string], log_addressEventObject>; - -export type log_addressEventFilter = TypedEventFilter; - -export interface log_array_uint256_array_EventObject { - val: BigNumber[]; -} -export type log_array_uint256_array_Event = TypedEvent< - [BigNumber[]], - log_array_uint256_array_EventObject ->; - -export type log_array_uint256_array_EventFilter = - TypedEventFilter; - -export interface log_array_int256_array_EventObject { - val: BigNumber[]; -} -export type log_array_int256_array_Event = TypedEvent< - [BigNumber[]], - log_array_int256_array_EventObject ->; - -export type log_array_int256_array_EventFilter = - TypedEventFilter; - -export interface log_array_address_array_EventObject { - val: string[]; -} -export type log_array_address_array_Event = TypedEvent< - [string[]], - log_array_address_array_EventObject ->; - -export type log_array_address_array_EventFilter = - TypedEventFilter; - -export interface log_bytesEventObject { - arg0: string; -} -export type log_bytesEvent = TypedEvent<[string], log_bytesEventObject>; - -export type log_bytesEventFilter = TypedEventFilter; - -export interface log_bytes32EventObject { - arg0: string; -} -export type log_bytes32Event = TypedEvent<[string], log_bytes32EventObject>; - -export type log_bytes32EventFilter = TypedEventFilter; - -export interface log_intEventObject { - arg0: BigNumber; -} -export type log_intEvent = TypedEvent<[BigNumber], log_intEventObject>; - -export type log_intEventFilter = TypedEventFilter; - -export interface log_named_addressEventObject { - key: string; - val: string; -} -export type log_named_addressEvent = TypedEvent< - [string, string], - log_named_addressEventObject ->; - -export type log_named_addressEventFilter = - TypedEventFilter; - -export interface log_named_array_string_uint256_array_EventObject { - key: string; - val: BigNumber[]; -} -export type log_named_array_string_uint256_array_Event = TypedEvent< - [string, BigNumber[]], - log_named_array_string_uint256_array_EventObject ->; - -export type log_named_array_string_uint256_array_EventFilter = - TypedEventFilter; - -export interface log_named_array_string_int256_array_EventObject { - key: string; - val: BigNumber[]; -} -export type log_named_array_string_int256_array_Event = TypedEvent< - [string, BigNumber[]], - log_named_array_string_int256_array_EventObject ->; - -export type log_named_array_string_int256_array_EventFilter = - TypedEventFilter; - -export interface log_named_array_string_address_array_EventObject { - key: string; - val: string[]; -} -export type log_named_array_string_address_array_Event = TypedEvent< - [string, string[]], - log_named_array_string_address_array_EventObject ->; - -export type log_named_array_string_address_array_EventFilter = - TypedEventFilter; - -export interface log_named_bytesEventObject { - key: string; - val: string; -} -export type log_named_bytesEvent = TypedEvent< - [string, string], - log_named_bytesEventObject ->; - -export type log_named_bytesEventFilter = TypedEventFilter; - -export interface log_named_bytes32EventObject { - key: string; - val: string; -} -export type log_named_bytes32Event = TypedEvent< - [string, string], - log_named_bytes32EventObject ->; - -export type log_named_bytes32EventFilter = - TypedEventFilter; - -export interface log_named_decimal_intEventObject { - key: string; - val: BigNumber; - decimals: BigNumber; -} -export type log_named_decimal_intEvent = TypedEvent< - [string, BigNumber, BigNumber], - log_named_decimal_intEventObject ->; - -export type log_named_decimal_intEventFilter = - TypedEventFilter; - -export interface log_named_decimal_uintEventObject { - key: string; - val: BigNumber; - decimals: BigNumber; -} -export type log_named_decimal_uintEvent = TypedEvent< - [string, BigNumber, BigNumber], - log_named_decimal_uintEventObject ->; - -export type log_named_decimal_uintEventFilter = - TypedEventFilter; - -export interface log_named_intEventObject { - key: string; - val: BigNumber; -} -export type log_named_intEvent = TypedEvent< - [string, BigNumber], - log_named_intEventObject ->; - -export type log_named_intEventFilter = TypedEventFilter; - -export interface log_named_stringEventObject { - key: string; - val: string; -} -export type log_named_stringEvent = TypedEvent< - [string, string], - log_named_stringEventObject ->; - -export type log_named_stringEventFilter = - TypedEventFilter; - -export interface log_named_uintEventObject { - key: string; - val: BigNumber; -} -export type log_named_uintEvent = TypedEvent< - [string, BigNumber], - log_named_uintEventObject ->; - -export type log_named_uintEventFilter = TypedEventFilter; - -export interface log_stringEventObject { - arg0: string; -} -export type log_stringEvent = TypedEvent<[string], log_stringEventObject>; - -export type log_stringEventFilter = TypedEventFilter; - -export interface log_uintEventObject { - arg0: BigNumber; -} -export type log_uintEvent = TypedEvent<[BigNumber], log_uintEventObject>; - -export type log_uintEventFilter = TypedEventFilter; - -export interface logsEventObject { - arg0: string; -} -export type logsEvent = TypedEvent<[string], logsEventObject>; - -export type logsEventFilter = TypedEventFilter; - -export interface GatewayEVMTest extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: GatewayEVMTestInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - IS_TEST(overrides?: CallOverrides): Promise<[boolean]>; - - excludeArtifacts( - overrides?: CallOverrides - ): Promise<[string[]] & { excludedArtifacts_: string[] }>; - - excludeContracts( - overrides?: CallOverrides - ): Promise<[string[]] & { excludedContracts_: string[] }>; - - excludeSelectors( - overrides?: CallOverrides - ): Promise< - [StdInvariant.FuzzSelectorStructOutput[]] & { - excludedSelectors_: StdInvariant.FuzzSelectorStructOutput[]; - } - >; - - excludeSenders( - overrides?: CallOverrides - ): Promise<[string[]] & { excludedSenders_: string[] }>; - - failed(overrides?: CallOverrides): Promise<[boolean]>; - - setUp( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - targetArtifactSelectors( - overrides?: CallOverrides - ): Promise< - [StdInvariant.FuzzArtifactSelectorStructOutput[]] & { - targetedArtifactSelectors_: StdInvariant.FuzzArtifactSelectorStructOutput[]; - } - >; - - targetArtifacts( - overrides?: CallOverrides - ): Promise<[string[]] & { targetedArtifacts_: string[] }>; - - targetContracts( - overrides?: CallOverrides - ): Promise<[string[]] & { targetedContracts_: string[] }>; - - targetInterfaces( - overrides?: CallOverrides - ): Promise< - [StdInvariant.FuzzInterfaceStructOutput[]] & { - targetedInterfaces_: StdInvariant.FuzzInterfaceStructOutput[]; - } - >; - - targetSelectors( - overrides?: CallOverrides - ): Promise< - [StdInvariant.FuzzSelectorStructOutput[]] & { - targetedSelectors_: StdInvariant.FuzzSelectorStructOutput[]; - } - >; - - targetSenders( - overrides?: CallOverrides - ): Promise<[string[]] & { targetedSenders_: string[] }>; - - testForwardCallToReceivePayable( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - IS_TEST(overrides?: CallOverrides): Promise; - - excludeArtifacts(overrides?: CallOverrides): Promise; - - excludeContracts(overrides?: CallOverrides): Promise; - - excludeSelectors( - overrides?: CallOverrides - ): Promise; - - excludeSenders(overrides?: CallOverrides): Promise; - - failed(overrides?: CallOverrides): Promise; - - setUp( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - targetArtifactSelectors( - overrides?: CallOverrides - ): Promise; - - targetArtifacts(overrides?: CallOverrides): Promise; - - targetContracts(overrides?: CallOverrides): Promise; - - targetInterfaces( - overrides?: CallOverrides - ): Promise; - - targetSelectors( - overrides?: CallOverrides - ): Promise; - - targetSenders(overrides?: CallOverrides): Promise; - - testForwardCallToReceivePayable( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - IS_TEST(overrides?: CallOverrides): Promise; - - excludeArtifacts(overrides?: CallOverrides): Promise; - - excludeContracts(overrides?: CallOverrides): Promise; - - excludeSelectors( - overrides?: CallOverrides - ): Promise; - - excludeSenders(overrides?: CallOverrides): Promise; - - failed(overrides?: CallOverrides): Promise; - - setUp(overrides?: CallOverrides): Promise; - - targetArtifactSelectors( - overrides?: CallOverrides - ): Promise; - - targetArtifacts(overrides?: CallOverrides): Promise; - - targetContracts(overrides?: CallOverrides): Promise; - - targetInterfaces( - overrides?: CallOverrides - ): Promise; - - targetSelectors( - overrides?: CallOverrides - ): Promise; - - targetSenders(overrides?: CallOverrides): Promise; - - testForwardCallToReceivePayable(overrides?: CallOverrides): Promise; - }; - - filters: { - "Call(address,address,bytes)"( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - payload?: null - ): CallEventFilter; - Call( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - payload?: null - ): CallEventFilter; - - "Deposit(address,address,uint256,address,bytes)"( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - amount?: null, - asset?: null, - payload?: null - ): DepositEventFilter; - Deposit( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - amount?: null, - asset?: null, - payload?: null - ): DepositEventFilter; - - "Executed(address,uint256,bytes)"( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): ExecutedEventFilter; - Executed( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): ExecutedEventFilter; - - "ExecutedWithERC20(address,address,uint256,bytes)"( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): ExecutedWithERC20EventFilter; - ExecutedWithERC20( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): ExecutedWithERC20EventFilter; - - "ReceivedERC20(address,uint256,address,address)"( - sender?: null, - amount?: null, - token?: null, - destination?: null - ): ReceivedERC20EventFilter; - ReceivedERC20( - sender?: null, - amount?: null, - token?: null, - destination?: null - ): ReceivedERC20EventFilter; - - "ReceivedNoParams(address)"(sender?: null): ReceivedNoParamsEventFilter; - ReceivedNoParams(sender?: null): ReceivedNoParamsEventFilter; - - "ReceivedNonPayable(address,string[],uint256[],bool)"( - sender?: null, - strs?: null, - nums?: null, - flag?: null - ): ReceivedNonPayableEventFilter; - ReceivedNonPayable( - sender?: null, - strs?: null, - nums?: null, - flag?: null - ): ReceivedNonPayableEventFilter; - - "ReceivedPayable(address,uint256,string,uint256,bool)"( - sender?: null, - value?: null, - str?: null, - num?: null, - flag?: null - ): ReceivedPayableEventFilter; - ReceivedPayable( - sender?: null, - value?: null, - str?: null, - num?: null, - flag?: null - ): ReceivedPayableEventFilter; - - "log(string)"(arg0?: null): logEventFilter; - log(arg0?: null): logEventFilter; - - "log_address(address)"(arg0?: null): log_addressEventFilter; - log_address(arg0?: null): log_addressEventFilter; - - "log_array(uint256[])"(val?: null): log_array_uint256_array_EventFilter; - "log_array(int256[])"(val?: null): log_array_int256_array_EventFilter; - "log_array(address[])"(val?: null): log_array_address_array_EventFilter; - - "log_bytes(bytes)"(arg0?: null): log_bytesEventFilter; - log_bytes(arg0?: null): log_bytesEventFilter; - - "log_bytes32(bytes32)"(arg0?: null): log_bytes32EventFilter; - log_bytes32(arg0?: null): log_bytes32EventFilter; - - "log_int(int256)"(arg0?: null): log_intEventFilter; - log_int(arg0?: null): log_intEventFilter; - - "log_named_address(string,address)"( - key?: null, - val?: null - ): log_named_addressEventFilter; - log_named_address(key?: null, val?: null): log_named_addressEventFilter; - - "log_named_array(string,uint256[])"( - key?: null, - val?: null - ): log_named_array_string_uint256_array_EventFilter; - "log_named_array(string,int256[])"( - key?: null, - val?: null - ): log_named_array_string_int256_array_EventFilter; - "log_named_array(string,address[])"( - key?: null, - val?: null - ): log_named_array_string_address_array_EventFilter; - - "log_named_bytes(string,bytes)"( - key?: null, - val?: null - ): log_named_bytesEventFilter; - log_named_bytes(key?: null, val?: null): log_named_bytesEventFilter; - - "log_named_bytes32(string,bytes32)"( - key?: null, - val?: null - ): log_named_bytes32EventFilter; - log_named_bytes32(key?: null, val?: null): log_named_bytes32EventFilter; - - "log_named_decimal_int(string,int256,uint256)"( - key?: null, - val?: null, - decimals?: null - ): log_named_decimal_intEventFilter; - log_named_decimal_int( - key?: null, - val?: null, - decimals?: null - ): log_named_decimal_intEventFilter; - - "log_named_decimal_uint(string,uint256,uint256)"( - key?: null, - val?: null, - decimals?: null - ): log_named_decimal_uintEventFilter; - log_named_decimal_uint( - key?: null, - val?: null, - decimals?: null - ): log_named_decimal_uintEventFilter; - - "log_named_int(string,int256)"( - key?: null, - val?: null - ): log_named_intEventFilter; - log_named_int(key?: null, val?: null): log_named_intEventFilter; - - "log_named_string(string,string)"( - key?: null, - val?: null - ): log_named_stringEventFilter; - log_named_string(key?: null, val?: null): log_named_stringEventFilter; - - "log_named_uint(string,uint256)"( - key?: null, - val?: null - ): log_named_uintEventFilter; - log_named_uint(key?: null, val?: null): log_named_uintEventFilter; - - "log_string(string)"(arg0?: null): log_stringEventFilter; - log_string(arg0?: null): log_stringEventFilter; - - "log_uint(uint256)"(arg0?: null): log_uintEventFilter; - log_uint(arg0?: null): log_uintEventFilter; - - "logs(bytes)"(arg0?: null): logsEventFilter; - logs(arg0?: null): logsEventFilter; - }; - - estimateGas: { - IS_TEST(overrides?: CallOverrides): Promise; - - excludeArtifacts(overrides?: CallOverrides): Promise; - - excludeContracts(overrides?: CallOverrides): Promise; - - excludeSelectors(overrides?: CallOverrides): Promise; - - excludeSenders(overrides?: CallOverrides): Promise; - - failed(overrides?: CallOverrides): Promise; - - setUp( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - targetArtifactSelectors(overrides?: CallOverrides): Promise; - - targetArtifacts(overrides?: CallOverrides): Promise; - - targetContracts(overrides?: CallOverrides): Promise; - - targetInterfaces(overrides?: CallOverrides): Promise; - - targetSelectors(overrides?: CallOverrides): Promise; - - targetSenders(overrides?: CallOverrides): Promise; - - testForwardCallToReceivePayable( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - IS_TEST(overrides?: CallOverrides): Promise; - - excludeArtifacts(overrides?: CallOverrides): Promise; - - excludeContracts(overrides?: CallOverrides): Promise; - - excludeSelectors(overrides?: CallOverrides): Promise; - - excludeSenders(overrides?: CallOverrides): Promise; - - failed(overrides?: CallOverrides): Promise; - - setUp( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - targetArtifactSelectors( - overrides?: CallOverrides - ): Promise; - - targetArtifacts(overrides?: CallOverrides): Promise; - - targetContracts(overrides?: CallOverrides): Promise; - - targetInterfaces(overrides?: CallOverrides): Promise; - - targetSelectors(overrides?: CallOverrides): Promise; - - targetSenders(overrides?: CallOverrides): Promise; - - testForwardCallToReceivePayable( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/evm/GatewayEVM.ts b/typechain-types/contracts/prototypes/evm/GatewayEVM.ts deleted file mode 100644 index dc679c97..00000000 --- a/typechain-types/contracts/prototypes/evm/GatewayEVM.ts +++ /dev/null @@ -1,1075 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PayableOverrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../common"; - -export interface GatewayEVMInterface extends utils.Interface { - functions: { - "call(address,bytes)": FunctionFragment; - "custody()": FunctionFragment; - "deposit(address)": FunctionFragment; - "deposit(address,uint256,address)": FunctionFragment; - "depositAndCall(address,bytes)": FunctionFragment; - "depositAndCall(address,uint256,address,bytes)": FunctionFragment; - "execute(address,bytes)": FunctionFragment; - "executeRevert(address,bytes)": FunctionFragment; - "executeWithERC20(address,address,uint256,bytes)": FunctionFragment; - "initialize(address,address)": FunctionFragment; - "owner()": FunctionFragment; - "proxiableUUID()": FunctionFragment; - "renounceOwnership()": FunctionFragment; - "revertWithERC20(address,address,uint256,bytes)": FunctionFragment; - "setConnector(address)": FunctionFragment; - "setCustody(address)": FunctionFragment; - "transferOwnership(address)": FunctionFragment; - "tssAddress()": FunctionFragment; - "upgradeTo(address)": FunctionFragment; - "upgradeToAndCall(address,bytes)": FunctionFragment; - "zetaConnector()": FunctionFragment; - "zetaToken()": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "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" - | "upgradeTo" - | "upgradeToAndCall" - | "zetaConnector" - | "zetaToken" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "call", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData(functionFragment: "custody", values?: undefined): string; - encodeFunctionData( - functionFragment: "deposit(address)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "deposit(address,uint256,address)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "depositAndCall(address,bytes)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "depositAndCall(address,uint256,address,bytes)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "execute", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "executeRevert", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "executeWithERC20", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "initialize", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData(functionFragment: "owner", values?: undefined): string; - encodeFunctionData( - functionFragment: "proxiableUUID", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "renounceOwnership", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "revertWithERC20", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "setConnector", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "setCustody", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "transferOwnership", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "tssAddress", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "upgradeTo", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "upgradeToAndCall", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "zetaConnector", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "zetaToken", values?: undefined): string; - - 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: "upgradeTo", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "upgradeToAndCall", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "zetaConnector", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "zetaToken", data: BytesLike): Result; - - events: { - "AdminChanged(address,address)": EventFragment; - "BeaconUpgraded(address)": EventFragment; - "Call(address,address,bytes)": EventFragment; - "Deposit(address,address,uint256,address,bytes)": EventFragment; - "Executed(address,uint256,bytes)": EventFragment; - "ExecutedWithERC20(address,address,uint256,bytes)": EventFragment; - "Initialized(uint8)": EventFragment; - "OwnershipTransferred(address,address)": EventFragment; - "Reverted(address,uint256,bytes)": EventFragment; - "RevertedWithERC20(address,address,uint256,bytes)": EventFragment; - "Upgraded(address)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "AdminChanged"): EventFragment; - getEvent(nameOrSignatureOrTopic: "BeaconUpgraded"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Call"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Deposit"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Executed"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ExecutedWithERC20"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment; - getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Reverted"): EventFragment; - getEvent(nameOrSignatureOrTopic: "RevertedWithERC20"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Upgraded"): EventFragment; -} - -export interface AdminChangedEventObject { - previousAdmin: string; - newAdmin: string; -} -export type AdminChangedEvent = TypedEvent< - [string, string], - AdminChangedEventObject ->; - -export type AdminChangedEventFilter = TypedEventFilter; - -export interface BeaconUpgradedEventObject { - beacon: string; -} -export type BeaconUpgradedEvent = TypedEvent< - [string], - BeaconUpgradedEventObject ->; - -export type BeaconUpgradedEventFilter = TypedEventFilter; - -export interface CallEventObject { - sender: string; - receiver: string; - payload: string; -} -export type CallEvent = TypedEvent<[string, string, string], CallEventObject>; - -export type CallEventFilter = TypedEventFilter; - -export interface DepositEventObject { - sender: string; - receiver: string; - amount: BigNumber; - asset: string; - payload: string; -} -export type DepositEvent = TypedEvent< - [string, string, BigNumber, string, string], - DepositEventObject ->; - -export type DepositEventFilter = TypedEventFilter; - -export interface ExecutedEventObject { - destination: string; - value: BigNumber; - data: string; -} -export type ExecutedEvent = TypedEvent< - [string, BigNumber, string], - ExecutedEventObject ->; - -export type ExecutedEventFilter = TypedEventFilter; - -export interface ExecutedWithERC20EventObject { - token: string; - to: string; - amount: BigNumber; - data: string; -} -export type ExecutedWithERC20Event = TypedEvent< - [string, string, BigNumber, string], - ExecutedWithERC20EventObject ->; - -export type ExecutedWithERC20EventFilter = - TypedEventFilter; - -export interface InitializedEventObject { - version: number; -} -export type InitializedEvent = TypedEvent<[number], InitializedEventObject>; - -export type InitializedEventFilter = TypedEventFilter; - -export interface OwnershipTransferredEventObject { - previousOwner: string; - newOwner: string; -} -export type OwnershipTransferredEvent = TypedEvent< - [string, string], - OwnershipTransferredEventObject ->; - -export type OwnershipTransferredEventFilter = - TypedEventFilter; - -export interface RevertedEventObject { - destination: string; - value: BigNumber; - data: string; -} -export type RevertedEvent = TypedEvent< - [string, BigNumber, string], - RevertedEventObject ->; - -export type RevertedEventFilter = TypedEventFilter; - -export interface RevertedWithERC20EventObject { - token: string; - to: string; - amount: BigNumber; - data: string; -} -export type RevertedWithERC20Event = TypedEvent< - [string, string, BigNumber, string], - RevertedWithERC20EventObject ->; - -export type RevertedWithERC20EventFilter = - TypedEventFilter; - -export interface UpgradedEventObject { - implementation: string; -} -export type UpgradedEvent = TypedEvent<[string], UpgradedEventObject>; - -export type UpgradedEventFilter = TypedEventFilter; - -export interface GatewayEVM extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: GatewayEVMInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - call( - receiver: PromiseOrValue, - payload: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - custody(overrides?: CallOverrides): Promise<[string]>; - - "deposit(address)"( - receiver: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "deposit(address,uint256,address)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - asset: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "depositAndCall(address,bytes)"( - receiver: PromiseOrValue, - payload: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "depositAndCall(address,uint256,address,bytes)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - asset: PromiseOrValue, - payload: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeRevert( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - _tssAddress: PromiseOrValue, - _zetaToken: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise<[string]>; - - proxiableUUID(overrides?: CallOverrides): Promise<[string]>; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - revertWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setConnector( - _zetaConnector: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise<[string]>; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - zetaConnector(overrides?: CallOverrides): Promise<[string]>; - - zetaToken(overrides?: CallOverrides): Promise<[string]>; - }; - - call( - receiver: PromiseOrValue, - payload: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - custody(overrides?: CallOverrides): Promise; - - "deposit(address)"( - receiver: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "deposit(address,uint256,address)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - asset: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "depositAndCall(address,bytes)"( - receiver: PromiseOrValue, - payload: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "depositAndCall(address,uint256,address,bytes)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - asset: PromiseOrValue, - payload: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeRevert( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - _tssAddress: PromiseOrValue, - _zetaToken: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - revertWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setConnector( - _zetaConnector: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - zetaConnector(overrides?: CallOverrides): Promise; - - zetaToken(overrides?: CallOverrides): Promise; - - callStatic: { - call( - receiver: PromiseOrValue, - payload: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - custody(overrides?: CallOverrides): Promise; - - "deposit(address)"( - receiver: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "deposit(address,uint256,address)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - asset: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "depositAndCall(address,bytes)"( - receiver: PromiseOrValue, - payload: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "depositAndCall(address,uint256,address,bytes)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - asset: PromiseOrValue, - payload: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - executeRevert( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - initialize( - _tssAddress: PromiseOrValue, - _zetaToken: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership(overrides?: CallOverrides): Promise; - - revertWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - setConnector( - _zetaConnector: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - zetaConnector(overrides?: CallOverrides): Promise; - - zetaToken(overrides?: CallOverrides): Promise; - }; - - filters: { - "AdminChanged(address,address)"( - previousAdmin?: null, - newAdmin?: null - ): AdminChangedEventFilter; - AdminChanged( - previousAdmin?: null, - newAdmin?: null - ): AdminChangedEventFilter; - - "BeaconUpgraded(address)"( - beacon?: PromiseOrValue | null - ): BeaconUpgradedEventFilter; - BeaconUpgraded( - beacon?: PromiseOrValue | null - ): BeaconUpgradedEventFilter; - - "Call(address,address,bytes)"( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - payload?: null - ): CallEventFilter; - Call( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - payload?: null - ): CallEventFilter; - - "Deposit(address,address,uint256,address,bytes)"( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - amount?: null, - asset?: null, - payload?: null - ): DepositEventFilter; - Deposit( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - amount?: null, - asset?: null, - payload?: null - ): DepositEventFilter; - - "Executed(address,uint256,bytes)"( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): ExecutedEventFilter; - Executed( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): ExecutedEventFilter; - - "ExecutedWithERC20(address,address,uint256,bytes)"( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): ExecutedWithERC20EventFilter; - ExecutedWithERC20( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): ExecutedWithERC20EventFilter; - - "Initialized(uint8)"(version?: null): InitializedEventFilter; - Initialized(version?: null): InitializedEventFilter; - - "OwnershipTransferred(address,address)"( - previousOwner?: PromiseOrValue | null, - newOwner?: PromiseOrValue | null - ): OwnershipTransferredEventFilter; - OwnershipTransferred( - previousOwner?: PromiseOrValue | null, - newOwner?: PromiseOrValue | null - ): OwnershipTransferredEventFilter; - - "Reverted(address,uint256,bytes)"( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): RevertedEventFilter; - Reverted( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): RevertedEventFilter; - - "RevertedWithERC20(address,address,uint256,bytes)"( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): RevertedWithERC20EventFilter; - RevertedWithERC20( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): RevertedWithERC20EventFilter; - - "Upgraded(address)"( - implementation?: PromiseOrValue | null - ): UpgradedEventFilter; - Upgraded( - implementation?: PromiseOrValue | null - ): UpgradedEventFilter; - }; - - estimateGas: { - call( - receiver: PromiseOrValue, - payload: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - custody(overrides?: CallOverrides): Promise; - - "deposit(address)"( - receiver: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "deposit(address,uint256,address)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - asset: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "depositAndCall(address,bytes)"( - receiver: PromiseOrValue, - payload: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "depositAndCall(address,uint256,address,bytes)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - asset: PromiseOrValue, - payload: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeRevert( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - _tssAddress: PromiseOrValue, - _zetaToken: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - revertWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setConnector( - _zetaConnector: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - zetaConnector(overrides?: CallOverrides): Promise; - - zetaToken(overrides?: CallOverrides): Promise; - }; - - populateTransaction: { - call( - receiver: PromiseOrValue, - payload: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - custody(overrides?: CallOverrides): Promise; - - "deposit(address)"( - receiver: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "deposit(address,uint256,address)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - asset: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "depositAndCall(address,bytes)"( - receiver: PromiseOrValue, - payload: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "depositAndCall(address,uint256,address,bytes)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - asset: PromiseOrValue, - payload: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeRevert( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - _tssAddress: PromiseOrValue, - _zetaToken: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - revertWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setConnector( - _zetaConnector: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - zetaConnector(overrides?: CallOverrides): Promise; - - zetaToken(overrides?: CallOverrides): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/evm/GatewayEVMEchidnaTest.ts b/typechain-types/contracts/prototypes/evm/GatewayEVMEchidnaTest.ts deleted file mode 100644 index 5a7945e3..00000000 --- a/typechain-types/contracts/prototypes/evm/GatewayEVMEchidnaTest.ts +++ /dev/null @@ -1,935 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PayableOverrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../common"; - -export interface GatewayEVMEchidnaTestInterface extends utils.Interface { - functions: { - "call(address,bytes)": FunctionFragment; - "custody()": FunctionFragment; - "deposit(address)": FunctionFragment; - "deposit(address,uint256,address)": FunctionFragment; - "depositAndCall(address,bytes)": FunctionFragment; - "depositAndCall(address,uint256,address,bytes)": FunctionFragment; - "echidnaCaller()": FunctionFragment; - "execute(address,bytes)": FunctionFragment; - "executeWithERC20(address,address,uint256,bytes)": FunctionFragment; - "initialize(address)": FunctionFragment; - "owner()": FunctionFragment; - "proxiableUUID()": FunctionFragment; - "renounceOwnership()": FunctionFragment; - "setCustody(address)": FunctionFragment; - "testERC20()": FunctionFragment; - "testExecuteWithERC20(address,uint256,bytes)": FunctionFragment; - "transferOwnership(address)": FunctionFragment; - "tssAddress()": FunctionFragment; - "upgradeTo(address)": FunctionFragment; - "upgradeToAndCall(address,bytes)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "call" - | "custody" - | "deposit(address)" - | "deposit(address,uint256,address)" - | "depositAndCall(address,bytes)" - | "depositAndCall(address,uint256,address,bytes)" - | "echidnaCaller" - | "execute" - | "executeWithERC20" - | "initialize" - | "owner" - | "proxiableUUID" - | "renounceOwnership" - | "setCustody" - | "testERC20" - | "testExecuteWithERC20" - | "transferOwnership" - | "tssAddress" - | "upgradeTo" - | "upgradeToAndCall" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "call", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData(functionFragment: "custody", values?: undefined): string; - encodeFunctionData( - functionFragment: "deposit(address)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "deposit(address,uint256,address)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "depositAndCall(address,bytes)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "depositAndCall(address,uint256,address,bytes)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "echidnaCaller", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "execute", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "executeWithERC20", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "initialize", - values: [PromiseOrValue] - ): string; - encodeFunctionData(functionFragment: "owner", values?: undefined): string; - encodeFunctionData( - functionFragment: "proxiableUUID", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "renounceOwnership", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "setCustody", - values: [PromiseOrValue] - ): string; - encodeFunctionData(functionFragment: "testERC20", values?: undefined): string; - encodeFunctionData( - functionFragment: "testExecuteWithERC20", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "transferOwnership", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "tssAddress", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "upgradeTo", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "upgradeToAndCall", - values: [PromiseOrValue, PromiseOrValue] - ): string; - - 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: "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: "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: "upgradeTo", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "upgradeToAndCall", - data: BytesLike - ): Result; - - events: { - "AdminChanged(address,address)": EventFragment; - "BeaconUpgraded(address)": EventFragment; - "Call(address,address,bytes)": EventFragment; - "Deposit(address,address,uint256,address,bytes)": EventFragment; - "Executed(address,uint256,bytes)": EventFragment; - "ExecutedWithERC20(address,address,uint256,bytes)": EventFragment; - "Initialized(uint8)": EventFragment; - "OwnershipTransferred(address,address)": EventFragment; - "Upgraded(address)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "AdminChanged"): EventFragment; - getEvent(nameOrSignatureOrTopic: "BeaconUpgraded"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Call"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Deposit"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Executed"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ExecutedWithERC20"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment; - getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Upgraded"): EventFragment; -} - -export interface AdminChangedEventObject { - previousAdmin: string; - newAdmin: string; -} -export type AdminChangedEvent = TypedEvent< - [string, string], - AdminChangedEventObject ->; - -export type AdminChangedEventFilter = TypedEventFilter; - -export interface BeaconUpgradedEventObject { - beacon: string; -} -export type BeaconUpgradedEvent = TypedEvent< - [string], - BeaconUpgradedEventObject ->; - -export type BeaconUpgradedEventFilter = TypedEventFilter; - -export interface CallEventObject { - sender: string; - receiver: string; - payload: string; -} -export type CallEvent = TypedEvent<[string, string, string], CallEventObject>; - -export type CallEventFilter = TypedEventFilter; - -export interface DepositEventObject { - sender: string; - receiver: string; - amount: BigNumber; - asset: string; - payload: string; -} -export type DepositEvent = TypedEvent< - [string, string, BigNumber, string, string], - DepositEventObject ->; - -export type DepositEventFilter = TypedEventFilter; - -export interface ExecutedEventObject { - destination: string; - value: BigNumber; - data: string; -} -export type ExecutedEvent = TypedEvent< - [string, BigNumber, string], - ExecutedEventObject ->; - -export type ExecutedEventFilter = TypedEventFilter; - -export interface ExecutedWithERC20EventObject { - token: string; - to: string; - amount: BigNumber; - data: string; -} -export type ExecutedWithERC20Event = TypedEvent< - [string, string, BigNumber, string], - ExecutedWithERC20EventObject ->; - -export type ExecutedWithERC20EventFilter = - TypedEventFilter; - -export interface InitializedEventObject { - version: number; -} -export type InitializedEvent = TypedEvent<[number], InitializedEventObject>; - -export type InitializedEventFilter = TypedEventFilter; - -export interface OwnershipTransferredEventObject { - previousOwner: string; - newOwner: string; -} -export type OwnershipTransferredEvent = TypedEvent< - [string, string], - OwnershipTransferredEventObject ->; - -export type OwnershipTransferredEventFilter = - TypedEventFilter; - -export interface UpgradedEventObject { - implementation: string; -} -export type UpgradedEvent = TypedEvent<[string], UpgradedEventObject>; - -export type UpgradedEventFilter = TypedEventFilter; - -export interface GatewayEVMEchidnaTest extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: GatewayEVMEchidnaTestInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - call( - receiver: PromiseOrValue, - payload: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - custody(overrides?: CallOverrides): Promise<[string]>; - - "deposit(address)"( - receiver: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "deposit(address,uint256,address)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - asset: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "depositAndCall(address,bytes)"( - receiver: PromiseOrValue, - payload: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "depositAndCall(address,uint256,address,bytes)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - asset: PromiseOrValue, - payload: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - echidnaCaller(overrides?: CallOverrides): Promise<[string]>; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - _tssAddress: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise<[string]>; - - proxiableUUID(overrides?: CallOverrides): Promise<[string]>; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testERC20(overrides?: CallOverrides): Promise<[string]>; - - testExecuteWithERC20( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise<[string]>; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; - - call( - receiver: PromiseOrValue, - payload: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - custody(overrides?: CallOverrides): Promise; - - "deposit(address)"( - receiver: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "deposit(address,uint256,address)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - asset: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "depositAndCall(address,bytes)"( - receiver: PromiseOrValue, - payload: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "depositAndCall(address,uint256,address,bytes)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - asset: PromiseOrValue, - payload: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - echidnaCaller(overrides?: CallOverrides): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - _tssAddress: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testERC20(overrides?: CallOverrides): Promise; - - testExecuteWithERC20( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - call( - receiver: PromiseOrValue, - payload: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - custody(overrides?: CallOverrides): Promise; - - "deposit(address)"( - receiver: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "deposit(address,uint256,address)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - asset: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "depositAndCall(address,bytes)"( - receiver: PromiseOrValue, - payload: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "depositAndCall(address,uint256,address,bytes)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - asset: PromiseOrValue, - payload: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - echidnaCaller(overrides?: CallOverrides): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - initialize( - _tssAddress: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership(overrides?: CallOverrides): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - testERC20(overrides?: CallOverrides): Promise; - - testExecuteWithERC20( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "AdminChanged(address,address)"( - previousAdmin?: null, - newAdmin?: null - ): AdminChangedEventFilter; - AdminChanged( - previousAdmin?: null, - newAdmin?: null - ): AdminChangedEventFilter; - - "BeaconUpgraded(address)"( - beacon?: PromiseOrValue | null - ): BeaconUpgradedEventFilter; - BeaconUpgraded( - beacon?: PromiseOrValue | null - ): BeaconUpgradedEventFilter; - - "Call(address,address,bytes)"( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - payload?: null - ): CallEventFilter; - Call( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - payload?: null - ): CallEventFilter; - - "Deposit(address,address,uint256,address,bytes)"( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - amount?: null, - asset?: null, - payload?: null - ): DepositEventFilter; - Deposit( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - amount?: null, - asset?: null, - payload?: null - ): DepositEventFilter; - - "Executed(address,uint256,bytes)"( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): ExecutedEventFilter; - Executed( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): ExecutedEventFilter; - - "ExecutedWithERC20(address,address,uint256,bytes)"( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): ExecutedWithERC20EventFilter; - ExecutedWithERC20( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): ExecutedWithERC20EventFilter; - - "Initialized(uint8)"(version?: null): InitializedEventFilter; - Initialized(version?: null): InitializedEventFilter; - - "OwnershipTransferred(address,address)"( - previousOwner?: PromiseOrValue | null, - newOwner?: PromiseOrValue | null - ): OwnershipTransferredEventFilter; - OwnershipTransferred( - previousOwner?: PromiseOrValue | null, - newOwner?: PromiseOrValue | null - ): OwnershipTransferredEventFilter; - - "Upgraded(address)"( - implementation?: PromiseOrValue | null - ): UpgradedEventFilter; - Upgraded( - implementation?: PromiseOrValue | null - ): UpgradedEventFilter; - }; - - estimateGas: { - call( - receiver: PromiseOrValue, - payload: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - custody(overrides?: CallOverrides): Promise; - - "deposit(address)"( - receiver: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "deposit(address,uint256,address)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - asset: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "depositAndCall(address,bytes)"( - receiver: PromiseOrValue, - payload: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "depositAndCall(address,uint256,address,bytes)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - asset: PromiseOrValue, - payload: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - echidnaCaller(overrides?: CallOverrides): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - _tssAddress: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testERC20(overrides?: CallOverrides): Promise; - - testExecuteWithERC20( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - call( - receiver: PromiseOrValue, - payload: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - custody(overrides?: CallOverrides): Promise; - - "deposit(address)"( - receiver: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "deposit(address,uint256,address)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - asset: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "depositAndCall(address,bytes)"( - receiver: PromiseOrValue, - payload: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "depositAndCall(address,uint256,address,bytes)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - asset: PromiseOrValue, - payload: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - echidnaCaller(overrides?: CallOverrides): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - _tssAddress: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testERC20(overrides?: CallOverrides): Promise; - - testExecuteWithERC20( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/evm/GatewayEVMUpgradeTest.ts b/typechain-types/contracts/prototypes/evm/GatewayEVMUpgradeTest.ts deleted file mode 100644 index b9234477..00000000 --- a/typechain-types/contracts/prototypes/evm/GatewayEVMUpgradeTest.ts +++ /dev/null @@ -1,1100 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PayableOverrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../common"; - -export interface GatewayEVMUpgradeTestInterface extends utils.Interface { - functions: { - "call(address,bytes)": FunctionFragment; - "custody()": FunctionFragment; - "deposit(address)": FunctionFragment; - "deposit(address,uint256,address)": FunctionFragment; - "depositAndCall(address,bytes)": FunctionFragment; - "depositAndCall(address,uint256,address,bytes)": FunctionFragment; - "execute(address,bytes)": FunctionFragment; - "executeRevert(address,bytes)": FunctionFragment; - "executeWithERC20(address,address,uint256,bytes)": FunctionFragment; - "initialize(address,address)": FunctionFragment; - "owner()": FunctionFragment; - "proxiableUUID()": FunctionFragment; - "renounceOwnership()": FunctionFragment; - "revertWithERC20(address,address,uint256,bytes)": FunctionFragment; - "setConnector(address)": FunctionFragment; - "setCustody(address)": FunctionFragment; - "transferOwnership(address)": FunctionFragment; - "tssAddress()": FunctionFragment; - "upgradeTo(address)": FunctionFragment; - "upgradeToAndCall(address,bytes)": FunctionFragment; - "zetaConnector()": FunctionFragment; - "zetaToken()": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "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" - | "upgradeTo" - | "upgradeToAndCall" - | "zetaConnector" - | "zetaToken" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "call", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData(functionFragment: "custody", values?: undefined): string; - encodeFunctionData( - functionFragment: "deposit(address)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "deposit(address,uint256,address)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "depositAndCall(address,bytes)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "depositAndCall(address,uint256,address,bytes)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "execute", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "executeRevert", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "executeWithERC20", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "initialize", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData(functionFragment: "owner", values?: undefined): string; - encodeFunctionData( - functionFragment: "proxiableUUID", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "renounceOwnership", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "revertWithERC20", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "setConnector", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "setCustody", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "transferOwnership", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "tssAddress", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "upgradeTo", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "upgradeToAndCall", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "zetaConnector", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "zetaToken", values?: undefined): string; - - 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: "upgradeTo", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "upgradeToAndCall", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "zetaConnector", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "zetaToken", data: BytesLike): Result; - - events: { - "AdminChanged(address,address)": EventFragment; - "BeaconUpgraded(address)": EventFragment; - "Call(address,address,bytes)": EventFragment; - "Deposit(address,address,uint256,address,bytes)": EventFragment; - "Executed(address,uint256,bytes)": EventFragment; - "ExecutedV2(address,uint256,bytes)": EventFragment; - "ExecutedWithERC20(address,address,uint256,bytes)": EventFragment; - "Initialized(uint8)": EventFragment; - "OwnershipTransferred(address,address)": EventFragment; - "Reverted(address,uint256,bytes)": EventFragment; - "RevertedWithERC20(address,address,uint256,bytes)": EventFragment; - "Upgraded(address)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "AdminChanged"): EventFragment; - getEvent(nameOrSignatureOrTopic: "BeaconUpgraded"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Call"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Deposit"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Executed"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ExecutedV2"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ExecutedWithERC20"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment; - getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Reverted"): EventFragment; - getEvent(nameOrSignatureOrTopic: "RevertedWithERC20"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Upgraded"): EventFragment; -} - -export interface AdminChangedEventObject { - previousAdmin: string; - newAdmin: string; -} -export type AdminChangedEvent = TypedEvent< - [string, string], - AdminChangedEventObject ->; - -export type AdminChangedEventFilter = TypedEventFilter; - -export interface BeaconUpgradedEventObject { - beacon: string; -} -export type BeaconUpgradedEvent = TypedEvent< - [string], - BeaconUpgradedEventObject ->; - -export type BeaconUpgradedEventFilter = TypedEventFilter; - -export interface CallEventObject { - sender: string; - receiver: string; - payload: string; -} -export type CallEvent = TypedEvent<[string, string, string], CallEventObject>; - -export type CallEventFilter = TypedEventFilter; - -export interface DepositEventObject { - sender: string; - receiver: string; - amount: BigNumber; - asset: string; - payload: string; -} -export type DepositEvent = TypedEvent< - [string, string, BigNumber, string, string], - DepositEventObject ->; - -export type DepositEventFilter = TypedEventFilter; - -export interface ExecutedEventObject { - destination: string; - value: BigNumber; - data: string; -} -export type ExecutedEvent = TypedEvent< - [string, BigNumber, string], - ExecutedEventObject ->; - -export type ExecutedEventFilter = TypedEventFilter; - -export interface ExecutedV2EventObject { - destination: string; - value: BigNumber; - data: string; -} -export type ExecutedV2Event = TypedEvent< - [string, BigNumber, string], - ExecutedV2EventObject ->; - -export type ExecutedV2EventFilter = TypedEventFilter; - -export interface ExecutedWithERC20EventObject { - token: string; - to: string; - amount: BigNumber; - data: string; -} -export type ExecutedWithERC20Event = TypedEvent< - [string, string, BigNumber, string], - ExecutedWithERC20EventObject ->; - -export type ExecutedWithERC20EventFilter = - TypedEventFilter; - -export interface InitializedEventObject { - version: number; -} -export type InitializedEvent = TypedEvent<[number], InitializedEventObject>; - -export type InitializedEventFilter = TypedEventFilter; - -export interface OwnershipTransferredEventObject { - previousOwner: string; - newOwner: string; -} -export type OwnershipTransferredEvent = TypedEvent< - [string, string], - OwnershipTransferredEventObject ->; - -export type OwnershipTransferredEventFilter = - TypedEventFilter; - -export interface RevertedEventObject { - destination: string; - value: BigNumber; - data: string; -} -export type RevertedEvent = TypedEvent< - [string, BigNumber, string], - RevertedEventObject ->; - -export type RevertedEventFilter = TypedEventFilter; - -export interface RevertedWithERC20EventObject { - token: string; - to: string; - amount: BigNumber; - data: string; -} -export type RevertedWithERC20Event = TypedEvent< - [string, string, BigNumber, string], - RevertedWithERC20EventObject ->; - -export type RevertedWithERC20EventFilter = - TypedEventFilter; - -export interface UpgradedEventObject { - implementation: string; -} -export type UpgradedEvent = TypedEvent<[string], UpgradedEventObject>; - -export type UpgradedEventFilter = TypedEventFilter; - -export interface GatewayEVMUpgradeTest extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: GatewayEVMUpgradeTestInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - call( - receiver: PromiseOrValue, - payload: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - custody(overrides?: CallOverrides): Promise<[string]>; - - "deposit(address)"( - receiver: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "deposit(address,uint256,address)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - asset: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "depositAndCall(address,bytes)"( - receiver: PromiseOrValue, - payload: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "depositAndCall(address,uint256,address,bytes)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - asset: PromiseOrValue, - payload: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeRevert( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - _tssAddress: PromiseOrValue, - _zetaToken: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise<[string]>; - - proxiableUUID(overrides?: CallOverrides): Promise<[string]>; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - revertWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setConnector( - _zetaConnector: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise<[string]>; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - zetaConnector(overrides?: CallOverrides): Promise<[string]>; - - zetaToken(overrides?: CallOverrides): Promise<[string]>; - }; - - call( - receiver: PromiseOrValue, - payload: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - custody(overrides?: CallOverrides): Promise; - - "deposit(address)"( - receiver: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "deposit(address,uint256,address)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - asset: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "depositAndCall(address,bytes)"( - receiver: PromiseOrValue, - payload: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "depositAndCall(address,uint256,address,bytes)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - asset: PromiseOrValue, - payload: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeRevert( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - _tssAddress: PromiseOrValue, - _zetaToken: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - revertWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setConnector( - _zetaConnector: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - zetaConnector(overrides?: CallOverrides): Promise; - - zetaToken(overrides?: CallOverrides): Promise; - - callStatic: { - call( - receiver: PromiseOrValue, - payload: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - custody(overrides?: CallOverrides): Promise; - - "deposit(address)"( - receiver: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "deposit(address,uint256,address)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - asset: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "depositAndCall(address,bytes)"( - receiver: PromiseOrValue, - payload: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "depositAndCall(address,uint256,address,bytes)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - asset: PromiseOrValue, - payload: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - executeRevert( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - initialize( - _tssAddress: PromiseOrValue, - _zetaToken: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership(overrides?: CallOverrides): Promise; - - revertWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - setConnector( - _zetaConnector: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - zetaConnector(overrides?: CallOverrides): Promise; - - zetaToken(overrides?: CallOverrides): Promise; - }; - - filters: { - "AdminChanged(address,address)"( - previousAdmin?: null, - newAdmin?: null - ): AdminChangedEventFilter; - AdminChanged( - previousAdmin?: null, - newAdmin?: null - ): AdminChangedEventFilter; - - "BeaconUpgraded(address)"( - beacon?: PromiseOrValue | null - ): BeaconUpgradedEventFilter; - BeaconUpgraded( - beacon?: PromiseOrValue | null - ): BeaconUpgradedEventFilter; - - "Call(address,address,bytes)"( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - payload?: null - ): CallEventFilter; - Call( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - payload?: null - ): CallEventFilter; - - "Deposit(address,address,uint256,address,bytes)"( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - amount?: null, - asset?: null, - payload?: null - ): DepositEventFilter; - Deposit( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - amount?: null, - asset?: null, - payload?: null - ): DepositEventFilter; - - "Executed(address,uint256,bytes)"( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): ExecutedEventFilter; - Executed( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): ExecutedEventFilter; - - "ExecutedV2(address,uint256,bytes)"( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): ExecutedV2EventFilter; - ExecutedV2( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): ExecutedV2EventFilter; - - "ExecutedWithERC20(address,address,uint256,bytes)"( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): ExecutedWithERC20EventFilter; - ExecutedWithERC20( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): ExecutedWithERC20EventFilter; - - "Initialized(uint8)"(version?: null): InitializedEventFilter; - Initialized(version?: null): InitializedEventFilter; - - "OwnershipTransferred(address,address)"( - previousOwner?: PromiseOrValue | null, - newOwner?: PromiseOrValue | null - ): OwnershipTransferredEventFilter; - OwnershipTransferred( - previousOwner?: PromiseOrValue | null, - newOwner?: PromiseOrValue | null - ): OwnershipTransferredEventFilter; - - "Reverted(address,uint256,bytes)"( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): RevertedEventFilter; - Reverted( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): RevertedEventFilter; - - "RevertedWithERC20(address,address,uint256,bytes)"( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): RevertedWithERC20EventFilter; - RevertedWithERC20( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): RevertedWithERC20EventFilter; - - "Upgraded(address)"( - implementation?: PromiseOrValue | null - ): UpgradedEventFilter; - Upgraded( - implementation?: PromiseOrValue | null - ): UpgradedEventFilter; - }; - - estimateGas: { - call( - receiver: PromiseOrValue, - payload: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - custody(overrides?: CallOverrides): Promise; - - "deposit(address)"( - receiver: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "deposit(address,uint256,address)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - asset: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "depositAndCall(address,bytes)"( - receiver: PromiseOrValue, - payload: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "depositAndCall(address,uint256,address,bytes)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - asset: PromiseOrValue, - payload: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeRevert( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - _tssAddress: PromiseOrValue, - _zetaToken: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - revertWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setConnector( - _zetaConnector: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - zetaConnector(overrides?: CallOverrides): Promise; - - zetaToken(overrides?: CallOverrides): Promise; - }; - - populateTransaction: { - call( - receiver: PromiseOrValue, - payload: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - custody(overrides?: CallOverrides): Promise; - - "deposit(address)"( - receiver: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "deposit(address,uint256,address)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - asset: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "depositAndCall(address,bytes)"( - receiver: PromiseOrValue, - payload: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "depositAndCall(address,uint256,address,bytes)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - asset: PromiseOrValue, - payload: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeRevert( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - _tssAddress: PromiseOrValue, - _zetaToken: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - revertWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setConnector( - _zetaConnector: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - zetaConnector(overrides?: CallOverrides): Promise; - - zetaToken(overrides?: CallOverrides): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/evm/GatewayUpgradeTest.ts b/typechain-types/contracts/prototypes/evm/GatewayUpgradeTest.ts deleted file mode 100644 index e3880b5e..00000000 --- a/typechain-types/contracts/prototypes/evm/GatewayUpgradeTest.ts +++ /dev/null @@ -1,704 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PayableOverrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../common"; - -export interface GatewayUpgradeTestInterface extends utils.Interface { - functions: { - "custody()": FunctionFragment; - "execute(address,bytes)": FunctionFragment; - "executeWithERC20(address,address,uint256,bytes)": FunctionFragment; - "initialize(address)": FunctionFragment; - "owner()": FunctionFragment; - "proxiableUUID()": FunctionFragment; - "renounceOwnership()": FunctionFragment; - "send(bytes,uint256)": FunctionFragment; - "sendERC20(bytes,address,uint256)": FunctionFragment; - "setCustody(address)": FunctionFragment; - "transferOwnership(address)": FunctionFragment; - "tssAddress()": FunctionFragment; - "upgradeTo(address)": FunctionFragment; - "upgradeToAndCall(address,bytes)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "custody" - | "execute" - | "executeWithERC20" - | "initialize" - | "owner" - | "proxiableUUID" - | "renounceOwnership" - | "send" - | "sendERC20" - | "setCustody" - | "transferOwnership" - | "tssAddress" - | "upgradeTo" - | "upgradeToAndCall" - ): FunctionFragment; - - encodeFunctionData(functionFragment: "custody", values?: undefined): string; - encodeFunctionData( - functionFragment: "execute", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "executeWithERC20", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "initialize", - values: [PromiseOrValue] - ): string; - encodeFunctionData(functionFragment: "owner", values?: undefined): string; - encodeFunctionData( - functionFragment: "proxiableUUID", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "renounceOwnership", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "send", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "sendERC20", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "setCustody", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "transferOwnership", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "tssAddress", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "upgradeTo", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "upgradeToAndCall", - values: [PromiseOrValue, PromiseOrValue] - ): string; - - decodeFunctionResult(functionFragment: "custody", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "execute", 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: "send", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "sendERC20", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "setCustody", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferOwnership", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "tssAddress", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "upgradeTo", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "upgradeToAndCall", - data: BytesLike - ): Result; - - events: { - "AdminChanged(address,address)": EventFragment; - "BeaconUpgraded(address)": EventFragment; - "ExecutedV2(address,uint256,bytes)": EventFragment; - "ExecutedWithERC20(address,address,uint256,bytes)": EventFragment; - "Initialized(uint8)": EventFragment; - "OwnershipTransferred(address,address)": EventFragment; - "Send(bytes,uint256)": EventFragment; - "SendERC20(bytes,address,uint256)": EventFragment; - "Upgraded(address)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "AdminChanged"): EventFragment; - getEvent(nameOrSignatureOrTopic: "BeaconUpgraded"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ExecutedV2"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ExecutedWithERC20"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment; - getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Send"): EventFragment; - getEvent(nameOrSignatureOrTopic: "SendERC20"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Upgraded"): EventFragment; -} - -export interface AdminChangedEventObject { - previousAdmin: string; - newAdmin: string; -} -export type AdminChangedEvent = TypedEvent< - [string, string], - AdminChangedEventObject ->; - -export type AdminChangedEventFilter = TypedEventFilter; - -export interface BeaconUpgradedEventObject { - beacon: string; -} -export type BeaconUpgradedEvent = TypedEvent< - [string], - BeaconUpgradedEventObject ->; - -export type BeaconUpgradedEventFilter = TypedEventFilter; - -export interface ExecutedV2EventObject { - destination: string; - value: BigNumber; - data: string; -} -export type ExecutedV2Event = TypedEvent< - [string, BigNumber, string], - ExecutedV2EventObject ->; - -export type ExecutedV2EventFilter = TypedEventFilter; - -export interface ExecutedWithERC20EventObject { - token: string; - to: string; - amount: BigNumber; - data: string; -} -export type ExecutedWithERC20Event = TypedEvent< - [string, string, BigNumber, string], - ExecutedWithERC20EventObject ->; - -export type ExecutedWithERC20EventFilter = - TypedEventFilter; - -export interface InitializedEventObject { - version: number; -} -export type InitializedEvent = TypedEvent<[number], InitializedEventObject>; - -export type InitializedEventFilter = TypedEventFilter; - -export interface OwnershipTransferredEventObject { - previousOwner: string; - newOwner: string; -} -export type OwnershipTransferredEvent = TypedEvent< - [string, string], - OwnershipTransferredEventObject ->; - -export type OwnershipTransferredEventFilter = - TypedEventFilter; - -export interface SendEventObject { - recipient: string; - amount: BigNumber; -} -export type SendEvent = TypedEvent<[string, BigNumber], SendEventObject>; - -export type SendEventFilter = TypedEventFilter; - -export interface SendERC20EventObject { - recipient: string; - asset: string; - amount: BigNumber; -} -export type SendERC20Event = TypedEvent< - [string, string, BigNumber], - SendERC20EventObject ->; - -export type SendERC20EventFilter = TypedEventFilter; - -export interface UpgradedEventObject { - implementation: string; -} -export type UpgradedEvent = TypedEvent<[string], UpgradedEventObject>; - -export type UpgradedEventFilter = TypedEventFilter; - -export interface GatewayUpgradeTest extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: GatewayUpgradeTestInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - custody(overrides?: CallOverrides): Promise<[string]>; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - _tssAddress: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise<[string]>; - - proxiableUUID(overrides?: CallOverrides): Promise<[string]>; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - send( - recipient: PromiseOrValue, - amount: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - sendERC20( - recipient: PromiseOrValue, - token: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise<[string]>; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; - - custody(overrides?: CallOverrides): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - _tssAddress: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - send( - recipient: PromiseOrValue, - amount: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - sendERC20( - recipient: PromiseOrValue, - token: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - custody(overrides?: CallOverrides): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - initialize( - _tssAddress: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership(overrides?: CallOverrides): Promise; - - send( - recipient: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - sendERC20( - recipient: PromiseOrValue, - token: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "AdminChanged(address,address)"( - previousAdmin?: null, - newAdmin?: null - ): AdminChangedEventFilter; - AdminChanged( - previousAdmin?: null, - newAdmin?: null - ): AdminChangedEventFilter; - - "BeaconUpgraded(address)"( - beacon?: PromiseOrValue | null - ): BeaconUpgradedEventFilter; - BeaconUpgraded( - beacon?: PromiseOrValue | null - ): BeaconUpgradedEventFilter; - - "ExecutedV2(address,uint256,bytes)"( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): ExecutedV2EventFilter; - ExecutedV2( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): ExecutedV2EventFilter; - - "ExecutedWithERC20(address,address,uint256,bytes)"( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): ExecutedWithERC20EventFilter; - ExecutedWithERC20( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): ExecutedWithERC20EventFilter; - - "Initialized(uint8)"(version?: null): InitializedEventFilter; - Initialized(version?: null): InitializedEventFilter; - - "OwnershipTransferred(address,address)"( - previousOwner?: PromiseOrValue | null, - newOwner?: PromiseOrValue | null - ): OwnershipTransferredEventFilter; - OwnershipTransferred( - previousOwner?: PromiseOrValue | null, - newOwner?: PromiseOrValue | null - ): OwnershipTransferredEventFilter; - - "Send(bytes,uint256)"(recipient?: null, amount?: null): SendEventFilter; - Send(recipient?: null, amount?: null): SendEventFilter; - - "SendERC20(bytes,address,uint256)"( - recipient?: null, - asset?: PromiseOrValue | null, - amount?: null - ): SendERC20EventFilter; - SendERC20( - recipient?: null, - asset?: PromiseOrValue | null, - amount?: null - ): SendERC20EventFilter; - - "Upgraded(address)"( - implementation?: PromiseOrValue | null - ): UpgradedEventFilter; - Upgraded( - implementation?: PromiseOrValue | null - ): UpgradedEventFilter; - }; - - estimateGas: { - custody(overrides?: CallOverrides): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - _tssAddress: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - send( - recipient: PromiseOrValue, - amount: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - sendERC20( - recipient: PromiseOrValue, - token: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - custody(overrides?: CallOverrides): Promise; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - _tssAddress: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - send( - recipient: PromiseOrValue, - amount: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - sendERC20( - recipient: PromiseOrValue, - token: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setCustody( - _custody: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/evm/IERC20CustodyNew.sol/IERC20CustodyNewErrors.ts b/typechain-types/contracts/prototypes/evm/IERC20CustodyNew.sol/IERC20CustodyNewErrors.ts deleted file mode 100644 index 6791a1db..00000000 --- a/typechain-types/contracts/prototypes/evm/IERC20CustodyNew.sol/IERC20CustodyNewErrors.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { BaseContract, Signer, utils } from "ethers"; - -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../../common"; - -export interface IERC20CustodyNewErrorsInterface extends utils.Interface { - functions: {}; - - events: {}; -} - -export interface IERC20CustodyNewErrors extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: IERC20CustodyNewErrorsInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: {}; - - callStatic: {}; - - filters: {}; - - estimateGas: {}; - - populateTransaction: {}; -} diff --git a/typechain-types/contracts/prototypes/evm/IERC20CustodyNew.sol/IERC20CustodyNewEvents.ts b/typechain-types/contracts/prototypes/evm/IERC20CustodyNew.sol/IERC20CustodyNewEvents.ts deleted file mode 100644 index 68bcc9d8..00000000 --- a/typechain-types/contracts/prototypes/evm/IERC20CustodyNew.sol/IERC20CustodyNewEvents.ts +++ /dev/null @@ -1,140 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { BaseContract, BigNumber, Signer, utils } from "ethers"; -import type { EventFragment } from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../../common"; - -export interface IERC20CustodyNewEventsInterface extends utils.Interface { - functions: {}; - - events: { - "Withdraw(address,address,uint256)": EventFragment; - "WithdrawAndCall(address,address,uint256,bytes)": EventFragment; - "WithdrawAndRevert(address,address,uint256,bytes)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Withdraw"): EventFragment; - getEvent(nameOrSignatureOrTopic: "WithdrawAndCall"): EventFragment; - getEvent(nameOrSignatureOrTopic: "WithdrawAndRevert"): EventFragment; -} - -export interface WithdrawEventObject { - token: string; - to: string; - amount: BigNumber; -} -export type WithdrawEvent = TypedEvent< - [string, string, BigNumber], - WithdrawEventObject ->; - -export type WithdrawEventFilter = TypedEventFilter; - -export interface WithdrawAndCallEventObject { - token: string; - to: string; - amount: BigNumber; - data: string; -} -export type WithdrawAndCallEvent = TypedEvent< - [string, string, BigNumber, string], - WithdrawAndCallEventObject ->; - -export type WithdrawAndCallEventFilter = TypedEventFilter; - -export interface WithdrawAndRevertEventObject { - token: string; - to: string; - amount: BigNumber; - data: string; -} -export type WithdrawAndRevertEvent = TypedEvent< - [string, string, BigNumber, string], - WithdrawAndRevertEventObject ->; - -export type WithdrawAndRevertEventFilter = - TypedEventFilter; - -export interface IERC20CustodyNewEvents extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: IERC20CustodyNewEventsInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: {}; - - callStatic: {}; - - filters: { - "Withdraw(address,address,uint256)"( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null - ): WithdrawEventFilter; - Withdraw( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null - ): WithdrawEventFilter; - - "WithdrawAndCall(address,address,uint256,bytes)"( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): WithdrawAndCallEventFilter; - WithdrawAndCall( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): WithdrawAndCallEventFilter; - - "WithdrawAndRevert(address,address,uint256,bytes)"( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): WithdrawAndRevertEventFilter; - WithdrawAndRevert( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): WithdrawAndRevertEventFilter; - }; - - estimateGas: {}; - - populateTransaction: {}; -} diff --git a/typechain-types/contracts/prototypes/evm/IERC20CustodyNew.sol/index.ts b/typechain-types/contracts/prototypes/evm/IERC20CustodyNew.sol/index.ts deleted file mode 100644 index 8106a206..00000000 --- a/typechain-types/contracts/prototypes/evm/IERC20CustodyNew.sol/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { IERC20CustodyNewErrors } from "./IERC20CustodyNewErrors"; -export type { IERC20CustodyNewEvents } from "./IERC20CustodyNewEvents"; diff --git a/typechain-types/contracts/prototypes/evm/IGatewayEVM.sol/IGatewayEVM.ts b/typechain-types/contracts/prototypes/evm/IGatewayEVM.sol/IGatewayEVM.ts deleted file mode 100644 index 26e0e153..00000000 --- a/typechain-types/contracts/prototypes/evm/IGatewayEVM.sol/IGatewayEVM.ts +++ /dev/null @@ -1,219 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PayableOverrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { FunctionFragment, Result } from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../../common"; - -export interface IGatewayEVMInterface extends utils.Interface { - functions: { - "execute(address,bytes)": FunctionFragment; - "executeWithERC20(address,address,uint256,bytes)": FunctionFragment; - "revertWithERC20(address,address,uint256,bytes)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: "execute" | "executeWithERC20" | "revertWithERC20" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "execute", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "executeWithERC20", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "revertWithERC20", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - - decodeFunctionResult(functionFragment: "execute", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "executeWithERC20", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "revertWithERC20", - data: BytesLike - ): Result; - - events: {}; -} - -export interface IGatewayEVM extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: IGatewayEVMInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - revertWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - revertWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - revertWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: {}; - - estimateGas: { - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - revertWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - revertWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/evm/IGatewayEVM.sol/IGatewayEVMErrors.ts b/typechain-types/contracts/prototypes/evm/IGatewayEVM.sol/IGatewayEVMErrors.ts deleted file mode 100644 index 83722e4a..00000000 --- a/typechain-types/contracts/prototypes/evm/IGatewayEVM.sol/IGatewayEVMErrors.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { BaseContract, Signer, utils } from "ethers"; - -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../../common"; - -export interface IGatewayEVMErrorsInterface extends utils.Interface { - functions: {}; - - events: {}; -} - -export interface IGatewayEVMErrors extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: IGatewayEVMErrorsInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: {}; - - callStatic: {}; - - filters: {}; - - estimateGas: {}; - - populateTransaction: {}; -} diff --git a/typechain-types/contracts/prototypes/evm/IGatewayEVM.sol/IGatewayEVMEvents.ts b/typechain-types/contracts/prototypes/evm/IGatewayEVM.sol/IGatewayEVMEvents.ts deleted file mode 100644 index 6f43bb14..00000000 --- a/typechain-types/contracts/prototypes/evm/IGatewayEVM.sol/IGatewayEVMEvents.ts +++ /dev/null @@ -1,219 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { BaseContract, BigNumber, Signer, utils } from "ethers"; -import type { EventFragment } from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../../common"; - -export interface IGatewayEVMEventsInterface extends utils.Interface { - functions: {}; - - events: { - "Call(address,address,bytes)": EventFragment; - "Deposit(address,address,uint256,address,bytes)": EventFragment; - "Executed(address,uint256,bytes)": EventFragment; - "ExecutedWithERC20(address,address,uint256,bytes)": EventFragment; - "Reverted(address,uint256,bytes)": EventFragment; - "RevertedWithERC20(address,address,uint256,bytes)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Call"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Deposit"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Executed"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ExecutedWithERC20"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Reverted"): EventFragment; - getEvent(nameOrSignatureOrTopic: "RevertedWithERC20"): EventFragment; -} - -export interface CallEventObject { - sender: string; - receiver: string; - payload: string; -} -export type CallEvent = TypedEvent<[string, string, string], CallEventObject>; - -export type CallEventFilter = TypedEventFilter; - -export interface DepositEventObject { - sender: string; - receiver: string; - amount: BigNumber; - asset: string; - payload: string; -} -export type DepositEvent = TypedEvent< - [string, string, BigNumber, string, string], - DepositEventObject ->; - -export type DepositEventFilter = TypedEventFilter; - -export interface ExecutedEventObject { - destination: string; - value: BigNumber; - data: string; -} -export type ExecutedEvent = TypedEvent< - [string, BigNumber, string], - ExecutedEventObject ->; - -export type ExecutedEventFilter = TypedEventFilter; - -export interface ExecutedWithERC20EventObject { - token: string; - to: string; - amount: BigNumber; - data: string; -} -export type ExecutedWithERC20Event = TypedEvent< - [string, string, BigNumber, string], - ExecutedWithERC20EventObject ->; - -export type ExecutedWithERC20EventFilter = - TypedEventFilter; - -export interface RevertedEventObject { - destination: string; - value: BigNumber; - data: string; -} -export type RevertedEvent = TypedEvent< - [string, BigNumber, string], - RevertedEventObject ->; - -export type RevertedEventFilter = TypedEventFilter; - -export interface RevertedWithERC20EventObject { - token: string; - to: string; - amount: BigNumber; - data: string; -} -export type RevertedWithERC20Event = TypedEvent< - [string, string, BigNumber, string], - RevertedWithERC20EventObject ->; - -export type RevertedWithERC20EventFilter = - TypedEventFilter; - -export interface IGatewayEVMEvents extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: IGatewayEVMEventsInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: {}; - - callStatic: {}; - - filters: { - "Call(address,address,bytes)"( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - payload?: null - ): CallEventFilter; - Call( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - payload?: null - ): CallEventFilter; - - "Deposit(address,address,uint256,address,bytes)"( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - amount?: null, - asset?: null, - payload?: null - ): DepositEventFilter; - Deposit( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - amount?: null, - asset?: null, - payload?: null - ): DepositEventFilter; - - "Executed(address,uint256,bytes)"( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): ExecutedEventFilter; - Executed( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): ExecutedEventFilter; - - "ExecutedWithERC20(address,address,uint256,bytes)"( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): ExecutedWithERC20EventFilter; - ExecutedWithERC20( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): ExecutedWithERC20EventFilter; - - "Reverted(address,uint256,bytes)"( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): RevertedEventFilter; - Reverted( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): RevertedEventFilter; - - "RevertedWithERC20(address,address,uint256,bytes)"( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): RevertedWithERC20EventFilter; - RevertedWithERC20( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): RevertedWithERC20EventFilter; - }; - - estimateGas: {}; - - populateTransaction: {}; -} diff --git a/typechain-types/contracts/prototypes/evm/IGatewayEVM.sol/Revertable.ts b/typechain-types/contracts/prototypes/evm/IGatewayEVM.sol/Revertable.ts deleted file mode 100644 index f1bb069b..00000000 --- a/typechain-types/contracts/prototypes/evm/IGatewayEVM.sol/Revertable.ts +++ /dev/null @@ -1,102 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { FunctionFragment, Result } from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../../common"; - -export interface RevertableInterface extends utils.Interface { - functions: { - "onRevert(bytes)": FunctionFragment; - }; - - getFunction(nameOrSignatureOrTopic: "onRevert"): FunctionFragment; - - encodeFunctionData( - functionFragment: "onRevert", - values: [PromiseOrValue] - ): string; - - decodeFunctionResult(functionFragment: "onRevert", data: BytesLike): Result; - - events: {}; -} - -export interface Revertable extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: RevertableInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - onRevert( - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - onRevert( - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - onRevert( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: {}; - - estimateGas: { - onRevert( - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - onRevert( - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/evm/IReceiverEVM.sol/IReceiverEVMEvents.ts b/typechain-types/contracts/prototypes/evm/IReceiverEVM.sol/IReceiverEVMEvents.ts deleted file mode 100644 index 071b4afd..00000000 --- a/typechain-types/contracts/prototypes/evm/IReceiverEVM.sol/IReceiverEVMEvents.ts +++ /dev/null @@ -1,181 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { BaseContract, BigNumber, Signer, utils } from "ethers"; -import type { EventFragment } from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../../common"; - -export interface IReceiverEVMEventsInterface extends utils.Interface { - functions: {}; - - events: { - "ReceivedERC20(address,uint256,address,address)": EventFragment; - "ReceivedNoParams(address)": EventFragment; - "ReceivedNonPayable(address,string[],uint256[],bool)": EventFragment; - "ReceivedPayable(address,uint256,string,uint256,bool)": EventFragment; - "ReceivedRevert(address,bytes)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "ReceivedERC20"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ReceivedNoParams"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ReceivedNonPayable"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ReceivedPayable"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ReceivedRevert"): EventFragment; -} - -export interface ReceivedERC20EventObject { - sender: string; - amount: BigNumber; - token: string; - destination: string; -} -export type ReceivedERC20Event = TypedEvent< - [string, BigNumber, string, string], - ReceivedERC20EventObject ->; - -export type ReceivedERC20EventFilter = TypedEventFilter; - -export interface ReceivedNoParamsEventObject { - sender: string; -} -export type ReceivedNoParamsEvent = TypedEvent< - [string], - ReceivedNoParamsEventObject ->; - -export type ReceivedNoParamsEventFilter = - TypedEventFilter; - -export interface ReceivedNonPayableEventObject { - sender: string; - strs: string[]; - nums: BigNumber[]; - flag: boolean; -} -export type ReceivedNonPayableEvent = TypedEvent< - [string, string[], BigNumber[], boolean], - ReceivedNonPayableEventObject ->; - -export type ReceivedNonPayableEventFilter = - TypedEventFilter; - -export interface ReceivedPayableEventObject { - sender: string; - value: BigNumber; - str: string; - num: BigNumber; - flag: boolean; -} -export type ReceivedPayableEvent = TypedEvent< - [string, BigNumber, string, BigNumber, boolean], - ReceivedPayableEventObject ->; - -export type ReceivedPayableEventFilter = TypedEventFilter; - -export interface ReceivedRevertEventObject { - sender: string; - data: string; -} -export type ReceivedRevertEvent = TypedEvent< - [string, string], - ReceivedRevertEventObject ->; - -export type ReceivedRevertEventFilter = TypedEventFilter; - -export interface IReceiverEVMEvents extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: IReceiverEVMEventsInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: {}; - - callStatic: {}; - - filters: { - "ReceivedERC20(address,uint256,address,address)"( - sender?: null, - amount?: null, - token?: null, - destination?: null - ): ReceivedERC20EventFilter; - ReceivedERC20( - sender?: null, - amount?: null, - token?: null, - destination?: null - ): ReceivedERC20EventFilter; - - "ReceivedNoParams(address)"(sender?: null): ReceivedNoParamsEventFilter; - ReceivedNoParams(sender?: null): ReceivedNoParamsEventFilter; - - "ReceivedNonPayable(address,string[],uint256[],bool)"( - sender?: null, - strs?: null, - nums?: null, - flag?: null - ): ReceivedNonPayableEventFilter; - ReceivedNonPayable( - sender?: null, - strs?: null, - nums?: null, - flag?: null - ): ReceivedNonPayableEventFilter; - - "ReceivedPayable(address,uint256,string,uint256,bool)"( - sender?: null, - value?: null, - str?: null, - num?: null, - flag?: null - ): ReceivedPayableEventFilter; - ReceivedPayable( - sender?: null, - value?: null, - str?: null, - num?: null, - flag?: null - ): ReceivedPayableEventFilter; - - "ReceivedRevert(address,bytes)"( - sender?: null, - data?: null - ): ReceivedRevertEventFilter; - ReceivedRevert(sender?: null, data?: null): ReceivedRevertEventFilter; - }; - - estimateGas: {}; - - populateTransaction: {}; -} diff --git a/typechain-types/contracts/prototypes/evm/IZetaConnector.sol/IZetaConnectorEvents.ts b/typechain-types/contracts/prototypes/evm/IZetaConnector.sol/IZetaConnectorEvents.ts deleted file mode 100644 index 555e26e0..00000000 --- a/typechain-types/contracts/prototypes/evm/IZetaConnector.sol/IZetaConnectorEvents.ts +++ /dev/null @@ -1,131 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { BaseContract, BigNumber, Signer, utils } from "ethers"; -import type { EventFragment } from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../../common"; - -export interface IZetaConnectorEventsInterface extends utils.Interface { - functions: {}; - - events: { - "Withdraw(address,uint256)": EventFragment; - "WithdrawAndCall(address,uint256,bytes)": EventFragment; - "WithdrawAndRevert(address,uint256,bytes)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Withdraw"): EventFragment; - getEvent(nameOrSignatureOrTopic: "WithdrawAndCall"): EventFragment; - getEvent(nameOrSignatureOrTopic: "WithdrawAndRevert"): EventFragment; -} - -export interface WithdrawEventObject { - to: string; - amount: BigNumber; -} -export type WithdrawEvent = TypedEvent< - [string, BigNumber], - WithdrawEventObject ->; - -export type WithdrawEventFilter = TypedEventFilter; - -export interface WithdrawAndCallEventObject { - to: string; - amount: BigNumber; - data: string; -} -export type WithdrawAndCallEvent = TypedEvent< - [string, BigNumber, string], - WithdrawAndCallEventObject ->; - -export type WithdrawAndCallEventFilter = TypedEventFilter; - -export interface WithdrawAndRevertEventObject { - to: string; - amount: BigNumber; - data: string; -} -export type WithdrawAndRevertEvent = TypedEvent< - [string, BigNumber, string], - WithdrawAndRevertEventObject ->; - -export type WithdrawAndRevertEventFilter = - TypedEventFilter; - -export interface IZetaConnectorEvents extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: IZetaConnectorEventsInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: {}; - - callStatic: {}; - - filters: { - "Withdraw(address,uint256)"( - to?: PromiseOrValue | null, - amount?: null - ): WithdrawEventFilter; - Withdraw( - to?: PromiseOrValue | null, - amount?: null - ): WithdrawEventFilter; - - "WithdrawAndCall(address,uint256,bytes)"( - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): WithdrawAndCallEventFilter; - WithdrawAndCall( - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): WithdrawAndCallEventFilter; - - "WithdrawAndRevert(address,uint256,bytes)"( - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): WithdrawAndRevertEventFilter; - WithdrawAndRevert( - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): WithdrawAndRevertEventFilter; - }; - - estimateGas: {}; - - populateTransaction: {}; -} diff --git a/typechain-types/contracts/prototypes/evm/IZetaNonEthNew.ts b/typechain-types/contracts/prototypes/evm/IZetaNonEthNew.ts deleted file mode 100644 index eba3b2e0..00000000 --- a/typechain-types/contracts/prototypes/evm/IZetaNonEthNew.ts +++ /dev/null @@ -1,425 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../common"; - -export interface IZetaNonEthNewInterface extends utils.Interface { - functions: { - "allowance(address,address)": FunctionFragment; - "approve(address,uint256)": FunctionFragment; - "balanceOf(address)": FunctionFragment; - "burnFrom(address,uint256)": FunctionFragment; - "mint(address,uint256,bytes32)": FunctionFragment; - "totalSupply()": FunctionFragment; - "transfer(address,uint256)": FunctionFragment; - "transferFrom(address,address,uint256)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "allowance" - | "approve" - | "balanceOf" - | "burnFrom" - | "mint" - | "totalSupply" - | "transfer" - | "transferFrom" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "allowance", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "burnFrom", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "mint", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): 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; - - events: { - "Approval(address,address,uint256)": EventFragment; - "Transfer(address,address,uint256)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment; -} - -export interface ApprovalEventObject { - owner: string; - spender: string; - value: BigNumber; -} -export type ApprovalEvent = TypedEvent< - [string, string, BigNumber], - ApprovalEventObject ->; - -export type ApprovalEventFilter = TypedEventFilter; - -export interface TransferEventObject { - from: string; - to: string; - value: BigNumber; -} -export type TransferEvent = TypedEvent< - [string, string, BigNumber], - TransferEventObject ->; - -export type TransferEventFilter = TypedEventFilter; - -export interface IZetaNonEthNew extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: IZetaNonEthNewInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - allowance( - owner: PromiseOrValue, - spender: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - approve( - spender: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - burnFrom( - account: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - mint( - mintee: PromiseOrValue, - value: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>; - - transfer( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferFrom( - from: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - allowance( - owner: PromiseOrValue, - spender: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - approve( - spender: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - burnFrom( - account: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - mint( - mintee: PromiseOrValue, - value: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferFrom( - from: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - allowance( - owner: PromiseOrValue, - spender: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - approve( - spender: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - balanceOf( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - burnFrom( - account: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - mint( - mintee: PromiseOrValue, - value: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - transferFrom( - from: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "Approval(address,address,uint256)"( - owner?: PromiseOrValue | null, - spender?: PromiseOrValue | null, - value?: null - ): ApprovalEventFilter; - Approval( - owner?: PromiseOrValue | null, - spender?: PromiseOrValue | null, - value?: null - ): ApprovalEventFilter; - - "Transfer(address,address,uint256)"( - from?: PromiseOrValue | null, - to?: PromiseOrValue | null, - value?: null - ): TransferEventFilter; - Transfer( - from?: PromiseOrValue | null, - to?: PromiseOrValue | null, - value?: null - ): TransferEventFilter; - }; - - estimateGas: { - allowance( - owner: PromiseOrValue, - spender: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - approve( - spender: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - burnFrom( - account: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - mint( - mintee: PromiseOrValue, - value: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferFrom( - from: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - allowance( - owner: PromiseOrValue, - spender: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - approve( - spender: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - burnFrom( - account: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - mint( - mintee: PromiseOrValue, - value: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferFrom( - from: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/evm/Receiver.ts b/typechain-types/contracts/prototypes/evm/Receiver.ts deleted file mode 100644 index 99e27603..00000000 --- a/typechain-types/contracts/prototypes/evm/Receiver.ts +++ /dev/null @@ -1,360 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PayableOverrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../common"; - -export interface ReceiverInterface extends utils.Interface { - functions: { - "receiveERC20(uint256,address,address)": FunctionFragment; - "receiveNoParams()": FunctionFragment; - "receiveNonPayable(string[],uint256[],bool)": FunctionFragment; - "receivePayable(string,uint256,bool)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "receiveERC20" - | "receiveNoParams" - | "receiveNonPayable" - | "receivePayable" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "receiveERC20", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "receiveNoParams", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "receiveNonPayable", - values: [ - PromiseOrValue[], - PromiseOrValue[], - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "receivePayable", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - - decodeFunctionResult( - functionFragment: "receiveERC20", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "receiveNoParams", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "receiveNonPayable", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "receivePayable", - data: BytesLike - ): Result; - - events: { - "ReceivedERC20(address,uint256,address,address)": EventFragment; - "ReceivedNoParams(address)": EventFragment; - "ReceivedNonPayable(address,string[],uint256[],bool)": EventFragment; - "ReceivedPayable(address,uint256,string,uint256,bool)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "ReceivedERC20"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ReceivedNoParams"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ReceivedNonPayable"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ReceivedPayable"): EventFragment; -} - -export interface ReceivedERC20EventObject { - sender: string; - amount: BigNumber; - token: string; - destination: string; -} -export type ReceivedERC20Event = TypedEvent< - [string, BigNumber, string, string], - ReceivedERC20EventObject ->; - -export type ReceivedERC20EventFilter = TypedEventFilter; - -export interface ReceivedNoParamsEventObject { - sender: string; -} -export type ReceivedNoParamsEvent = TypedEvent< - [string], - ReceivedNoParamsEventObject ->; - -export type ReceivedNoParamsEventFilter = - TypedEventFilter; - -export interface ReceivedNonPayableEventObject { - sender: string; - strs: string[]; - nums: BigNumber[]; - flag: boolean; -} -export type ReceivedNonPayableEvent = TypedEvent< - [string, string[], BigNumber[], boolean], - ReceivedNonPayableEventObject ->; - -export type ReceivedNonPayableEventFilter = - TypedEventFilter; - -export interface ReceivedPayableEventObject { - sender: string; - value: BigNumber; - str: string; - num: BigNumber; - flag: boolean; -} -export type ReceivedPayableEvent = TypedEvent< - [string, BigNumber, string, BigNumber, boolean], - ReceivedPayableEventObject ->; - -export type ReceivedPayableEventFilter = TypedEventFilter; - -export interface Receiver extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: ReceiverInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - receiveERC20( - amount: PromiseOrValue, - token: PromiseOrValue, - destination: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - receiveNoParams( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - receiveNonPayable( - strs: PromiseOrValue[], - nums: PromiseOrValue[], - flag: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - receivePayable( - str: PromiseOrValue, - num: PromiseOrValue, - flag: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; - - receiveERC20( - amount: PromiseOrValue, - token: PromiseOrValue, - destination: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - receiveNoParams( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - receiveNonPayable( - strs: PromiseOrValue[], - nums: PromiseOrValue[], - flag: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - receivePayable( - str: PromiseOrValue, - num: PromiseOrValue, - flag: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - receiveERC20( - amount: PromiseOrValue, - token: PromiseOrValue, - destination: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - receiveNoParams(overrides?: CallOverrides): Promise; - - receiveNonPayable( - strs: PromiseOrValue[], - nums: PromiseOrValue[], - flag: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - receivePayable( - str: PromiseOrValue, - num: PromiseOrValue, - flag: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "ReceivedERC20(address,uint256,address,address)"( - sender?: null, - amount?: null, - token?: null, - destination?: null - ): ReceivedERC20EventFilter; - ReceivedERC20( - sender?: null, - amount?: null, - token?: null, - destination?: null - ): ReceivedERC20EventFilter; - - "ReceivedNoParams(address)"(sender?: null): ReceivedNoParamsEventFilter; - ReceivedNoParams(sender?: null): ReceivedNoParamsEventFilter; - - "ReceivedNonPayable(address,string[],uint256[],bool)"( - sender?: null, - strs?: null, - nums?: null, - flag?: null - ): ReceivedNonPayableEventFilter; - ReceivedNonPayable( - sender?: null, - strs?: null, - nums?: null, - flag?: null - ): ReceivedNonPayableEventFilter; - - "ReceivedPayable(address,uint256,string,uint256,bool)"( - sender?: null, - value?: null, - str?: null, - num?: null, - flag?: null - ): ReceivedPayableEventFilter; - ReceivedPayable( - sender?: null, - value?: null, - str?: null, - num?: null, - flag?: null - ): ReceivedPayableEventFilter; - }; - - estimateGas: { - receiveERC20( - amount: PromiseOrValue, - token: PromiseOrValue, - destination: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - receiveNoParams( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - receiveNonPayable( - strs: PromiseOrValue[], - nums: PromiseOrValue[], - flag: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - receivePayable( - str: PromiseOrValue, - num: PromiseOrValue, - flag: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - receiveERC20( - amount: PromiseOrValue, - token: PromiseOrValue, - destination: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - receiveNoParams( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - receiveNonPayable( - strs: PromiseOrValue[], - nums: PromiseOrValue[], - flag: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - receivePayable( - str: PromiseOrValue, - num: PromiseOrValue, - flag: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/evm/ReceiverEVM.ts b/typechain-types/contracts/prototypes/evm/ReceiverEVM.ts deleted file mode 100644 index b7b1ca45..00000000 --- a/typechain-types/contracts/prototypes/evm/ReceiverEVM.ts +++ /dev/null @@ -1,460 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PayableOverrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../common"; - -export interface ReceiverEVMInterface extends utils.Interface { - functions: { - "onRevert(bytes)": FunctionFragment; - "receiveERC20(uint256,address,address)": FunctionFragment; - "receiveERC20Partial(uint256,address,address)": FunctionFragment; - "receiveNoParams()": FunctionFragment; - "receiveNonPayable(string[],uint256[],bool)": FunctionFragment; - "receivePayable(string,uint256,bool)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "onRevert" - | "receiveERC20" - | "receiveERC20Partial" - | "receiveNoParams" - | "receiveNonPayable" - | "receivePayable" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "onRevert", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "receiveERC20", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "receiveERC20Partial", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "receiveNoParams", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "receiveNonPayable", - values: [ - PromiseOrValue[], - PromiseOrValue[], - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "receivePayable", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): 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; - - events: { - "ReceivedERC20(address,uint256,address,address)": EventFragment; - "ReceivedNoParams(address)": EventFragment; - "ReceivedNonPayable(address,string[],uint256[],bool)": EventFragment; - "ReceivedPayable(address,uint256,string,uint256,bool)": EventFragment; - "ReceivedRevert(address,bytes)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "ReceivedERC20"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ReceivedNoParams"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ReceivedNonPayable"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ReceivedPayable"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ReceivedRevert"): EventFragment; -} - -export interface ReceivedERC20EventObject { - sender: string; - amount: BigNumber; - token: string; - destination: string; -} -export type ReceivedERC20Event = TypedEvent< - [string, BigNumber, string, string], - ReceivedERC20EventObject ->; - -export type ReceivedERC20EventFilter = TypedEventFilter; - -export interface ReceivedNoParamsEventObject { - sender: string; -} -export type ReceivedNoParamsEvent = TypedEvent< - [string], - ReceivedNoParamsEventObject ->; - -export type ReceivedNoParamsEventFilter = - TypedEventFilter; - -export interface ReceivedNonPayableEventObject { - sender: string; - strs: string[]; - nums: BigNumber[]; - flag: boolean; -} -export type ReceivedNonPayableEvent = TypedEvent< - [string, string[], BigNumber[], boolean], - ReceivedNonPayableEventObject ->; - -export type ReceivedNonPayableEventFilter = - TypedEventFilter; - -export interface ReceivedPayableEventObject { - sender: string; - value: BigNumber; - str: string; - num: BigNumber; - flag: boolean; -} -export type ReceivedPayableEvent = TypedEvent< - [string, BigNumber, string, BigNumber, boolean], - ReceivedPayableEventObject ->; - -export type ReceivedPayableEventFilter = TypedEventFilter; - -export interface ReceivedRevertEventObject { - sender: string; - data: string; -} -export type ReceivedRevertEvent = TypedEvent< - [string, string], - ReceivedRevertEventObject ->; - -export type ReceivedRevertEventFilter = TypedEventFilter; - -export interface ReceiverEVM extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: ReceiverEVMInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - onRevert( - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - receiveERC20( - amount: PromiseOrValue, - token: PromiseOrValue, - destination: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - receiveERC20Partial( - amount: PromiseOrValue, - token: PromiseOrValue, - destination: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - receiveNoParams( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - receiveNonPayable( - strs: PromiseOrValue[], - nums: PromiseOrValue[], - flag: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - receivePayable( - str: PromiseOrValue, - num: PromiseOrValue, - flag: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; - - onRevert( - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - receiveERC20( - amount: PromiseOrValue, - token: PromiseOrValue, - destination: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - receiveERC20Partial( - amount: PromiseOrValue, - token: PromiseOrValue, - destination: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - receiveNoParams( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - receiveNonPayable( - strs: PromiseOrValue[], - nums: PromiseOrValue[], - flag: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - receivePayable( - str: PromiseOrValue, - num: PromiseOrValue, - flag: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - onRevert( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - receiveERC20( - amount: PromiseOrValue, - token: PromiseOrValue, - destination: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - receiveERC20Partial( - amount: PromiseOrValue, - token: PromiseOrValue, - destination: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - receiveNoParams(overrides?: CallOverrides): Promise; - - receiveNonPayable( - strs: PromiseOrValue[], - nums: PromiseOrValue[], - flag: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - receivePayable( - str: PromiseOrValue, - num: PromiseOrValue, - flag: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "ReceivedERC20(address,uint256,address,address)"( - sender?: null, - amount?: null, - token?: null, - destination?: null - ): ReceivedERC20EventFilter; - ReceivedERC20( - sender?: null, - amount?: null, - token?: null, - destination?: null - ): ReceivedERC20EventFilter; - - "ReceivedNoParams(address)"(sender?: null): ReceivedNoParamsEventFilter; - ReceivedNoParams(sender?: null): ReceivedNoParamsEventFilter; - - "ReceivedNonPayable(address,string[],uint256[],bool)"( - sender?: null, - strs?: null, - nums?: null, - flag?: null - ): ReceivedNonPayableEventFilter; - ReceivedNonPayable( - sender?: null, - strs?: null, - nums?: null, - flag?: null - ): ReceivedNonPayableEventFilter; - - "ReceivedPayable(address,uint256,string,uint256,bool)"( - sender?: null, - value?: null, - str?: null, - num?: null, - flag?: null - ): ReceivedPayableEventFilter; - ReceivedPayable( - sender?: null, - value?: null, - str?: null, - num?: null, - flag?: null - ): ReceivedPayableEventFilter; - - "ReceivedRevert(address,bytes)"( - sender?: null, - data?: null - ): ReceivedRevertEventFilter; - ReceivedRevert(sender?: null, data?: null): ReceivedRevertEventFilter; - }; - - estimateGas: { - onRevert( - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - receiveERC20( - amount: PromiseOrValue, - token: PromiseOrValue, - destination: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - receiveERC20Partial( - amount: PromiseOrValue, - token: PromiseOrValue, - destination: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - receiveNoParams( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - receiveNonPayable( - strs: PromiseOrValue[], - nums: PromiseOrValue[], - flag: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - receivePayable( - str: PromiseOrValue, - num: PromiseOrValue, - flag: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - onRevert( - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - receiveERC20( - amount: PromiseOrValue, - token: PromiseOrValue, - destination: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - receiveERC20Partial( - amount: PromiseOrValue, - token: PromiseOrValue, - destination: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - receiveNoParams( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - receiveNonPayable( - strs: PromiseOrValue[], - nums: PromiseOrValue[], - flag: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - receivePayable( - str: PromiseOrValue, - num: PromiseOrValue, - flag: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/evm/TestERC20.ts b/typechain-types/contracts/prototypes/evm/TestERC20.ts deleted file mode 100644 index e72cddfe..00000000 --- a/typechain-types/contracts/prototypes/evm/TestERC20.ts +++ /dev/null @@ -1,501 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../common"; - -export interface TestERC20Interface extends utils.Interface { - functions: { - "allowance(address,address)": FunctionFragment; - "approve(address,uint256)": FunctionFragment; - "balanceOf(address)": FunctionFragment; - "decimals()": FunctionFragment; - "decreaseAllowance(address,uint256)": FunctionFragment; - "increaseAllowance(address,uint256)": FunctionFragment; - "mint(address,uint256)": FunctionFragment; - "name()": FunctionFragment; - "symbol()": FunctionFragment; - "totalSupply()": FunctionFragment; - "transfer(address,uint256)": FunctionFragment; - "transferFrom(address,address,uint256)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "allowance" - | "approve" - | "balanceOf" - | "decimals" - | "decreaseAllowance" - | "increaseAllowance" - | "mint" - | "name" - | "symbol" - | "totalSupply" - | "transfer" - | "transferFrom" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "allowance", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [PromiseOrValue] - ): string; - encodeFunctionData(functionFragment: "decimals", values?: undefined): string; - encodeFunctionData( - functionFragment: "decreaseAllowance", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "increaseAllowance", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "mint", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData(functionFragment: "name", values?: undefined): string; - encodeFunctionData(functionFragment: "symbol", values?: undefined): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): 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: "decreaseAllowance", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "increaseAllowance", - 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; - - events: { - "Approval(address,address,uint256)": EventFragment; - "Transfer(address,address,uint256)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment; -} - -export interface ApprovalEventObject { - owner: string; - spender: string; - value: BigNumber; -} -export type ApprovalEvent = TypedEvent< - [string, string, BigNumber], - ApprovalEventObject ->; - -export type ApprovalEventFilter = TypedEventFilter; - -export interface TransferEventObject { - from: string; - to: string; - value: BigNumber; -} -export type TransferEvent = TypedEvent< - [string, string, BigNumber], - TransferEventObject ->; - -export type TransferEventFilter = TypedEventFilter; - -export interface TestERC20 extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: TestERC20Interface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - allowance( - owner: PromiseOrValue, - spender: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - approve( - spender: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - decimals(overrides?: CallOverrides): Promise<[number]>; - - decreaseAllowance( - spender: PromiseOrValue, - subtractedValue: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - increaseAllowance( - spender: PromiseOrValue, - addedValue: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - mint( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - name(overrides?: CallOverrides): Promise<[string]>; - - symbol(overrides?: CallOverrides): Promise<[string]>; - - totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>; - - transfer( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferFrom( - from: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - allowance( - owner: PromiseOrValue, - spender: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - approve( - spender: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - decreaseAllowance( - spender: PromiseOrValue, - subtractedValue: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - increaseAllowance( - spender: PromiseOrValue, - addedValue: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - mint( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferFrom( - from: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - allowance( - owner: PromiseOrValue, - spender: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - approve( - spender: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - balanceOf( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - decreaseAllowance( - spender: PromiseOrValue, - subtractedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - increaseAllowance( - spender: PromiseOrValue, - addedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - mint( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - transferFrom( - from: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "Approval(address,address,uint256)"( - owner?: PromiseOrValue | null, - spender?: PromiseOrValue | null, - value?: null - ): ApprovalEventFilter; - Approval( - owner?: PromiseOrValue | null, - spender?: PromiseOrValue | null, - value?: null - ): ApprovalEventFilter; - - "Transfer(address,address,uint256)"( - from?: PromiseOrValue | null, - to?: PromiseOrValue | null, - value?: null - ): TransferEventFilter; - Transfer( - from?: PromiseOrValue | null, - to?: PromiseOrValue | null, - value?: null - ): TransferEventFilter; - }; - - estimateGas: { - allowance( - owner: PromiseOrValue, - spender: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - approve( - spender: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - decreaseAllowance( - spender: PromiseOrValue, - subtractedValue: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - increaseAllowance( - spender: PromiseOrValue, - addedValue: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - mint( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferFrom( - from: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - allowance( - owner: PromiseOrValue, - spender: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - approve( - spender: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - decreaseAllowance( - spender: PromiseOrValue, - subtractedValue: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - increaseAllowance( - spender: PromiseOrValue, - addedValue: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - mint( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferFrom( - from: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/evm/ZetaConnectorNative.ts b/typechain-types/contracts/prototypes/evm/ZetaConnectorNative.ts deleted file mode 100644 index 80eca2cf..00000000 --- a/typechain-types/contracts/prototypes/evm/ZetaConnectorNative.ts +++ /dev/null @@ -1,389 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../common"; - -export interface ZetaConnectorNativeInterface extends utils.Interface { - functions: { - "gateway()": FunctionFragment; - "receiveTokens(uint256)": FunctionFragment; - "tssAddress()": FunctionFragment; - "withdraw(address,uint256,bytes32)": FunctionFragment; - "withdrawAndCall(address,uint256,bytes,bytes32)": FunctionFragment; - "withdrawAndRevert(address,uint256,bytes,bytes32)": FunctionFragment; - "zetaToken()": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "gateway" - | "receiveTokens" - | "tssAddress" - | "withdraw" - | "withdrawAndCall" - | "withdrawAndRevert" - | "zetaToken" - ): FunctionFragment; - - encodeFunctionData(functionFragment: "gateway", values?: undefined): string; - encodeFunctionData( - functionFragment: "receiveTokens", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "tssAddress", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "withdraw", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "withdrawAndCall", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "withdrawAndRevert", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): 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; - - events: { - "Withdraw(address,uint256)": EventFragment; - "WithdrawAndCall(address,uint256,bytes)": EventFragment; - "WithdrawAndRevert(address,uint256,bytes)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Withdraw"): EventFragment; - getEvent(nameOrSignatureOrTopic: "WithdrawAndCall"): EventFragment; - getEvent(nameOrSignatureOrTopic: "WithdrawAndRevert"): EventFragment; -} - -export interface WithdrawEventObject { - to: string; - amount: BigNumber; -} -export type WithdrawEvent = TypedEvent< - [string, BigNumber], - WithdrawEventObject ->; - -export type WithdrawEventFilter = TypedEventFilter; - -export interface WithdrawAndCallEventObject { - to: string; - amount: BigNumber; - data: string; -} -export type WithdrawAndCallEvent = TypedEvent< - [string, BigNumber, string], - WithdrawAndCallEventObject ->; - -export type WithdrawAndCallEventFilter = TypedEventFilter; - -export interface WithdrawAndRevertEventObject { - to: string; - amount: BigNumber; - data: string; -} -export type WithdrawAndRevertEvent = TypedEvent< - [string, BigNumber, string], - WithdrawAndRevertEventObject ->; - -export type WithdrawAndRevertEventFilter = - TypedEventFilter; - -export interface ZetaConnectorNative extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: ZetaConnectorNativeInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - gateway(overrides?: CallOverrides): Promise<[string]>; - - receiveTokens( - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise<[string]>; - - withdraw( - to: PromiseOrValue, - amount: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndCall( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndRevert( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - zetaToken(overrides?: CallOverrides): Promise<[string]>; - }; - - gateway(overrides?: CallOverrides): Promise; - - receiveTokens( - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - withdraw( - to: PromiseOrValue, - amount: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndCall( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndRevert( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - zetaToken(overrides?: CallOverrides): Promise; - - callStatic: { - gateway(overrides?: CallOverrides): Promise; - - receiveTokens( - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - withdraw( - to: PromiseOrValue, - amount: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - withdrawAndCall( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - withdrawAndRevert( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - zetaToken(overrides?: CallOverrides): Promise; - }; - - filters: { - "Withdraw(address,uint256)"( - to?: PromiseOrValue | null, - amount?: null - ): WithdrawEventFilter; - Withdraw( - to?: PromiseOrValue | null, - amount?: null - ): WithdrawEventFilter; - - "WithdrawAndCall(address,uint256,bytes)"( - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): WithdrawAndCallEventFilter; - WithdrawAndCall( - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): WithdrawAndCallEventFilter; - - "WithdrawAndRevert(address,uint256,bytes)"( - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): WithdrawAndRevertEventFilter; - WithdrawAndRevert( - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): WithdrawAndRevertEventFilter; - }; - - estimateGas: { - gateway(overrides?: CallOverrides): Promise; - - receiveTokens( - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - withdraw( - to: PromiseOrValue, - amount: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndCall( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndRevert( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - zetaToken(overrides?: CallOverrides): Promise; - }; - - populateTransaction: { - gateway(overrides?: CallOverrides): Promise; - - receiveTokens( - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - withdraw( - to: PromiseOrValue, - amount: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndCall( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndRevert( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - zetaToken(overrides?: CallOverrides): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/evm/ZetaConnectorNew.ts b/typechain-types/contracts/prototypes/evm/ZetaConnectorNew.ts deleted file mode 100644 index 812ea2e0..00000000 --- a/typechain-types/contracts/prototypes/evm/ZetaConnectorNew.ts +++ /dev/null @@ -1,237 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../common"; - -export interface ZetaConnectorNewInterface extends utils.Interface { - functions: { - "gateway()": FunctionFragment; - "withdraw(address,uint256)": FunctionFragment; - "withdrawAndCall(address,uint256,bytes)": FunctionFragment; - "zeta()": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: "gateway" | "withdraw" | "withdrawAndCall" | "zeta" - ): FunctionFragment; - - encodeFunctionData(functionFragment: "gateway", values?: undefined): string; - encodeFunctionData( - functionFragment: "withdraw", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "withdrawAndCall", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData(functionFragment: "zeta", values?: undefined): string; - - decodeFunctionResult(functionFragment: "gateway", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "withdrawAndCall", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "zeta", data: BytesLike): Result; - - events: { - "Withdraw(address,uint256)": EventFragment; - "WithdrawAndCall(address,uint256,bytes)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Withdraw"): EventFragment; - getEvent(nameOrSignatureOrTopic: "WithdrawAndCall"): EventFragment; -} - -export interface WithdrawEventObject { - to: string; - amount: BigNumber; -} -export type WithdrawEvent = TypedEvent< - [string, BigNumber], - WithdrawEventObject ->; - -export type WithdrawEventFilter = TypedEventFilter; - -export interface WithdrawAndCallEventObject { - to: string; - amount: BigNumber; - data: string; -} -export type WithdrawAndCallEvent = TypedEvent< - [string, BigNumber, string], - WithdrawAndCallEventObject ->; - -export type WithdrawAndCallEventFilter = TypedEventFilter; - -export interface ZetaConnectorNew extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: ZetaConnectorNewInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - gateway(overrides?: CallOverrides): Promise<[string]>; - - withdraw( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndCall( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - zeta(overrides?: CallOverrides): Promise<[string]>; - }; - - gateway(overrides?: CallOverrides): Promise; - - withdraw( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndCall( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - zeta(overrides?: CallOverrides): Promise; - - callStatic: { - gateway(overrides?: CallOverrides): Promise; - - withdraw( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - withdrawAndCall( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - zeta(overrides?: CallOverrides): Promise; - }; - - filters: { - "Withdraw(address,uint256)"( - to?: PromiseOrValue | null, - amount?: null - ): WithdrawEventFilter; - Withdraw( - to?: PromiseOrValue | null, - amount?: null - ): WithdrawEventFilter; - - "WithdrawAndCall(address,uint256,bytes)"( - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): WithdrawAndCallEventFilter; - WithdrawAndCall( - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): WithdrawAndCallEventFilter; - }; - - estimateGas: { - gateway(overrides?: CallOverrides): Promise; - - withdraw( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndCall( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - zeta(overrides?: CallOverrides): Promise; - }; - - populateTransaction: { - gateway(overrides?: CallOverrides): Promise; - - withdraw( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndCall( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - zeta(overrides?: CallOverrides): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/evm/ZetaConnectorNewBase.ts b/typechain-types/contracts/prototypes/evm/ZetaConnectorNewBase.ts deleted file mode 100644 index cfd60395..00000000 --- a/typechain-types/contracts/prototypes/evm/ZetaConnectorNewBase.ts +++ /dev/null @@ -1,389 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../common"; - -export interface ZetaConnectorNewBaseInterface extends utils.Interface { - functions: { - "gateway()": FunctionFragment; - "receiveTokens(uint256)": FunctionFragment; - "tssAddress()": FunctionFragment; - "withdraw(address,uint256,bytes32)": FunctionFragment; - "withdrawAndCall(address,uint256,bytes,bytes32)": FunctionFragment; - "withdrawAndRevert(address,uint256,bytes,bytes32)": FunctionFragment; - "zetaToken()": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "gateway" - | "receiveTokens" - | "tssAddress" - | "withdraw" - | "withdrawAndCall" - | "withdrawAndRevert" - | "zetaToken" - ): FunctionFragment; - - encodeFunctionData(functionFragment: "gateway", values?: undefined): string; - encodeFunctionData( - functionFragment: "receiveTokens", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "tssAddress", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "withdraw", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "withdrawAndCall", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "withdrawAndRevert", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): 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; - - events: { - "Withdraw(address,uint256)": EventFragment; - "WithdrawAndCall(address,uint256,bytes)": EventFragment; - "WithdrawAndRevert(address,uint256,bytes)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Withdraw"): EventFragment; - getEvent(nameOrSignatureOrTopic: "WithdrawAndCall"): EventFragment; - getEvent(nameOrSignatureOrTopic: "WithdrawAndRevert"): EventFragment; -} - -export interface WithdrawEventObject { - to: string; - amount: BigNumber; -} -export type WithdrawEvent = TypedEvent< - [string, BigNumber], - WithdrawEventObject ->; - -export type WithdrawEventFilter = TypedEventFilter; - -export interface WithdrawAndCallEventObject { - to: string; - amount: BigNumber; - data: string; -} -export type WithdrawAndCallEvent = TypedEvent< - [string, BigNumber, string], - WithdrawAndCallEventObject ->; - -export type WithdrawAndCallEventFilter = TypedEventFilter; - -export interface WithdrawAndRevertEventObject { - to: string; - amount: BigNumber; - data: string; -} -export type WithdrawAndRevertEvent = TypedEvent< - [string, BigNumber, string], - WithdrawAndRevertEventObject ->; - -export type WithdrawAndRevertEventFilter = - TypedEventFilter; - -export interface ZetaConnectorNewBase extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: ZetaConnectorNewBaseInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - gateway(overrides?: CallOverrides): Promise<[string]>; - - receiveTokens( - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise<[string]>; - - withdraw( - to: PromiseOrValue, - amount: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndCall( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndRevert( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - zetaToken(overrides?: CallOverrides): Promise<[string]>; - }; - - gateway(overrides?: CallOverrides): Promise; - - receiveTokens( - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - withdraw( - to: PromiseOrValue, - amount: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndCall( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndRevert( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - zetaToken(overrides?: CallOverrides): Promise; - - callStatic: { - gateway(overrides?: CallOverrides): Promise; - - receiveTokens( - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - withdraw( - to: PromiseOrValue, - amount: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - withdrawAndCall( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - withdrawAndRevert( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - zetaToken(overrides?: CallOverrides): Promise; - }; - - filters: { - "Withdraw(address,uint256)"( - to?: PromiseOrValue | null, - amount?: null - ): WithdrawEventFilter; - Withdraw( - to?: PromiseOrValue | null, - amount?: null - ): WithdrawEventFilter; - - "WithdrawAndCall(address,uint256,bytes)"( - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): WithdrawAndCallEventFilter; - WithdrawAndCall( - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): WithdrawAndCallEventFilter; - - "WithdrawAndRevert(address,uint256,bytes)"( - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): WithdrawAndRevertEventFilter; - WithdrawAndRevert( - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): WithdrawAndRevertEventFilter; - }; - - estimateGas: { - gateway(overrides?: CallOverrides): Promise; - - receiveTokens( - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - withdraw( - to: PromiseOrValue, - amount: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndCall( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndRevert( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - zetaToken(overrides?: CallOverrides): Promise; - }; - - populateTransaction: { - gateway(overrides?: CallOverrides): Promise; - - receiveTokens( - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - withdraw( - to: PromiseOrValue, - amount: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndCall( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndRevert( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - zetaToken(overrides?: CallOverrides): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/evm/ZetaConnectorNonNative.ts b/typechain-types/contracts/prototypes/evm/ZetaConnectorNonNative.ts deleted file mode 100644 index ec008409..00000000 --- a/typechain-types/contracts/prototypes/evm/ZetaConnectorNonNative.ts +++ /dev/null @@ -1,454 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../common"; - -export interface ZetaConnectorNonNativeInterface extends utils.Interface { - functions: { - "gateway()": FunctionFragment; - "maxSupply()": FunctionFragment; - "receiveTokens(uint256)": FunctionFragment; - "setMaxSupply(uint256)": FunctionFragment; - "tssAddress()": FunctionFragment; - "withdraw(address,uint256,bytes32)": FunctionFragment; - "withdrawAndCall(address,uint256,bytes,bytes32)": FunctionFragment; - "withdrawAndRevert(address,uint256,bytes,bytes32)": FunctionFragment; - "zetaToken()": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "gateway" - | "maxSupply" - | "receiveTokens" - | "setMaxSupply" - | "tssAddress" - | "withdraw" - | "withdrawAndCall" - | "withdrawAndRevert" - | "zetaToken" - ): FunctionFragment; - - encodeFunctionData(functionFragment: "gateway", values?: undefined): string; - encodeFunctionData(functionFragment: "maxSupply", values?: undefined): string; - encodeFunctionData( - functionFragment: "receiveTokens", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "setMaxSupply", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "tssAddress", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "withdraw", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "withdrawAndCall", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "withdrawAndRevert", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): 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; - - events: { - "MaxSupplyUpdated(uint256)": EventFragment; - "Withdraw(address,uint256)": EventFragment; - "WithdrawAndCall(address,uint256,bytes)": EventFragment; - "WithdrawAndRevert(address,uint256,bytes)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "MaxSupplyUpdated"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Withdraw"): EventFragment; - getEvent(nameOrSignatureOrTopic: "WithdrawAndCall"): EventFragment; - getEvent(nameOrSignatureOrTopic: "WithdrawAndRevert"): EventFragment; -} - -export interface MaxSupplyUpdatedEventObject { - maxSupply: BigNumber; -} -export type MaxSupplyUpdatedEvent = TypedEvent< - [BigNumber], - MaxSupplyUpdatedEventObject ->; - -export type MaxSupplyUpdatedEventFilter = - TypedEventFilter; - -export interface WithdrawEventObject { - to: string; - amount: BigNumber; -} -export type WithdrawEvent = TypedEvent< - [string, BigNumber], - WithdrawEventObject ->; - -export type WithdrawEventFilter = TypedEventFilter; - -export interface WithdrawAndCallEventObject { - to: string; - amount: BigNumber; - data: string; -} -export type WithdrawAndCallEvent = TypedEvent< - [string, BigNumber, string], - WithdrawAndCallEventObject ->; - -export type WithdrawAndCallEventFilter = TypedEventFilter; - -export interface WithdrawAndRevertEventObject { - to: string; - amount: BigNumber; - data: string; -} -export type WithdrawAndRevertEvent = TypedEvent< - [string, BigNumber, string], - WithdrawAndRevertEventObject ->; - -export type WithdrawAndRevertEventFilter = - TypedEventFilter; - -export interface ZetaConnectorNonNative extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: ZetaConnectorNonNativeInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - gateway(overrides?: CallOverrides): Promise<[string]>; - - maxSupply(overrides?: CallOverrides): Promise<[BigNumber]>; - - receiveTokens( - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setMaxSupply( - _maxSupply: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise<[string]>; - - withdraw( - to: PromiseOrValue, - amount: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndCall( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndRevert( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - zetaToken(overrides?: CallOverrides): Promise<[string]>; - }; - - gateway(overrides?: CallOverrides): Promise; - - maxSupply(overrides?: CallOverrides): Promise; - - receiveTokens( - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setMaxSupply( - _maxSupply: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - withdraw( - to: PromiseOrValue, - amount: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndCall( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndRevert( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - zetaToken(overrides?: CallOverrides): Promise; - - callStatic: { - gateway(overrides?: CallOverrides): Promise; - - maxSupply(overrides?: CallOverrides): Promise; - - receiveTokens( - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - setMaxSupply( - _maxSupply: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - withdraw( - to: PromiseOrValue, - amount: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - withdrawAndCall( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - withdrawAndRevert( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - zetaToken(overrides?: CallOverrides): Promise; - }; - - filters: { - "MaxSupplyUpdated(uint256)"(maxSupply?: null): MaxSupplyUpdatedEventFilter; - MaxSupplyUpdated(maxSupply?: null): MaxSupplyUpdatedEventFilter; - - "Withdraw(address,uint256)"( - to?: PromiseOrValue | null, - amount?: null - ): WithdrawEventFilter; - Withdraw( - to?: PromiseOrValue | null, - amount?: null - ): WithdrawEventFilter; - - "WithdrawAndCall(address,uint256,bytes)"( - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): WithdrawAndCallEventFilter; - WithdrawAndCall( - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): WithdrawAndCallEventFilter; - - "WithdrawAndRevert(address,uint256,bytes)"( - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): WithdrawAndRevertEventFilter; - WithdrawAndRevert( - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): WithdrawAndRevertEventFilter; - }; - - estimateGas: { - gateway(overrides?: CallOverrides): Promise; - - maxSupply(overrides?: CallOverrides): Promise; - - receiveTokens( - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setMaxSupply( - _maxSupply: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - withdraw( - to: PromiseOrValue, - amount: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndCall( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndRevert( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - zetaToken(overrides?: CallOverrides): Promise; - }; - - populateTransaction: { - gateway(overrides?: CallOverrides): Promise; - - maxSupply(overrides?: CallOverrides): Promise; - - receiveTokens( - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setMaxSupply( - _maxSupply: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - tssAddress(overrides?: CallOverrides): Promise; - - withdraw( - to: PromiseOrValue, - amount: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndCall( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndRevert( - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - internalSendHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - zetaToken(overrides?: CallOverrides): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/evm/index.ts b/typechain-types/contracts/prototypes/evm/index.ts deleted file mode 100644 index bac93995..00000000 --- a/typechain-types/contracts/prototypes/evm/index.ts +++ /dev/null @@ -1,20 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as ierc20CustodyNewSol from "./IERC20CustodyNew.sol"; -export type { ierc20CustodyNewSol }; -import type * as iGatewayEvmSol from "./IGatewayEVM.sol"; -export type { iGatewayEvmSol }; -import type * as iReceiverEvmSol from "./IReceiverEVM.sol"; -export type { iReceiverEvmSol }; -import type * as iZetaConnectorSol from "./IZetaConnector.sol"; -export type { iZetaConnectorSol }; -export type { ERC20CustodyNew } from "./ERC20CustodyNew"; -export type { GatewayEVM } from "./GatewayEVM"; -export type { GatewayEVMUpgradeTest } from "./GatewayEVMUpgradeTest"; -export type { IZetaNonEthNew } from "./IZetaNonEthNew"; -export type { ReceiverEVM } from "./ReceiverEVM"; -export type { TestERC20 } from "./TestERC20"; -export type { ZetaConnectorNative } from "./ZetaConnectorNative"; -export type { ZetaConnectorNewBase } from "./ZetaConnectorNewBase"; -export type { ZetaConnectorNonNative } from "./ZetaConnectorNonNative"; diff --git a/typechain-types/contracts/prototypes/evm/interfaces.sol/IGateway.ts b/typechain-types/contracts/prototypes/evm/interfaces.sol/IGateway.ts deleted file mode 100644 index 9eb52ca6..00000000 --- a/typechain-types/contracts/prototypes/evm/interfaces.sol/IGateway.ts +++ /dev/null @@ -1,250 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PayableOverrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { FunctionFragment, Result } from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../../common"; - -export interface IGatewayInterface extends utils.Interface { - functions: { - "execute(address,bytes)": FunctionFragment; - "executeWithERC20(address,address,uint256,bytes)": FunctionFragment; - "send(bytes,uint256)": FunctionFragment; - "sendERC20(bytes,address,uint256)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "execute" - | "executeWithERC20" - | "send" - | "sendERC20" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "execute", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "executeWithERC20", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "send", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "sendERC20", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - - decodeFunctionResult(functionFragment: "execute", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "executeWithERC20", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "send", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "sendERC20", data: BytesLike): Result; - - events: {}; -} - -export interface IGateway extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: IGatewayInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - send( - recipient: PromiseOrValue, - amount: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - sendERC20( - recipient: PromiseOrValue, - asset: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - send( - recipient: PromiseOrValue, - amount: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - sendERC20( - recipient: PromiseOrValue, - asset: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - send( - recipient: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - sendERC20( - recipient: PromiseOrValue, - asset: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: {}; - - estimateGas: { - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - send( - recipient: PromiseOrValue, - amount: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - sendERC20( - recipient: PromiseOrValue, - asset: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - send( - recipient: PromiseOrValue, - amount: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - sendERC20( - recipient: PromiseOrValue, - asset: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/evm/interfaces.sol/IGatewayEVM.ts b/typechain-types/contracts/prototypes/evm/interfaces.sol/IGatewayEVM.ts deleted file mode 100644 index ba50c19d..00000000 --- a/typechain-types/contracts/prototypes/evm/interfaces.sol/IGatewayEVM.ts +++ /dev/null @@ -1,219 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PayableOverrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { FunctionFragment, Result } from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../../common"; - -export interface IGatewayEVMInterface extends utils.Interface { - functions: { - "execute(address,bytes)": FunctionFragment; - "executeWithERC20(address,address,uint256,bytes)": FunctionFragment; - "revertWithERC20(address,address,uint256,bytes)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: "execute" | "executeWithERC20" | "revertWithERC20" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "execute", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "executeWithERC20", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "revertWithERC20", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - - decodeFunctionResult(functionFragment: "execute", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "executeWithERC20", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "revertWithERC20", - data: BytesLike - ): Result; - - events: {}; -} - -export interface IGatewayEVM extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: IGatewayEVMInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - revertWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - revertWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - revertWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: {}; - - estimateGas: { - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - revertWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - revertWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/evm/interfaces.sol/IGatewayEVMErrors.ts b/typechain-types/contracts/prototypes/evm/interfaces.sol/IGatewayEVMErrors.ts deleted file mode 100644 index 83722e4a..00000000 --- a/typechain-types/contracts/prototypes/evm/interfaces.sol/IGatewayEVMErrors.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { BaseContract, Signer, utils } from "ethers"; - -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../../common"; - -export interface IGatewayEVMErrorsInterface extends utils.Interface { - functions: {}; - - events: {}; -} - -export interface IGatewayEVMErrors extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: IGatewayEVMErrorsInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: {}; - - callStatic: {}; - - filters: {}; - - estimateGas: {}; - - populateTransaction: {}; -} diff --git a/typechain-types/contracts/prototypes/evm/interfaces.sol/IGatewayEVMEvents.ts b/typechain-types/contracts/prototypes/evm/interfaces.sol/IGatewayEVMEvents.ts deleted file mode 100644 index 6f43bb14..00000000 --- a/typechain-types/contracts/prototypes/evm/interfaces.sol/IGatewayEVMEvents.ts +++ /dev/null @@ -1,219 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { BaseContract, BigNumber, Signer, utils } from "ethers"; -import type { EventFragment } from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../../common"; - -export interface IGatewayEVMEventsInterface extends utils.Interface { - functions: {}; - - events: { - "Call(address,address,bytes)": EventFragment; - "Deposit(address,address,uint256,address,bytes)": EventFragment; - "Executed(address,uint256,bytes)": EventFragment; - "ExecutedWithERC20(address,address,uint256,bytes)": EventFragment; - "Reverted(address,uint256,bytes)": EventFragment; - "RevertedWithERC20(address,address,uint256,bytes)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Call"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Deposit"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Executed"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ExecutedWithERC20"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Reverted"): EventFragment; - getEvent(nameOrSignatureOrTopic: "RevertedWithERC20"): EventFragment; -} - -export interface CallEventObject { - sender: string; - receiver: string; - payload: string; -} -export type CallEvent = TypedEvent<[string, string, string], CallEventObject>; - -export type CallEventFilter = TypedEventFilter; - -export interface DepositEventObject { - sender: string; - receiver: string; - amount: BigNumber; - asset: string; - payload: string; -} -export type DepositEvent = TypedEvent< - [string, string, BigNumber, string, string], - DepositEventObject ->; - -export type DepositEventFilter = TypedEventFilter; - -export interface ExecutedEventObject { - destination: string; - value: BigNumber; - data: string; -} -export type ExecutedEvent = TypedEvent< - [string, BigNumber, string], - ExecutedEventObject ->; - -export type ExecutedEventFilter = TypedEventFilter; - -export interface ExecutedWithERC20EventObject { - token: string; - to: string; - amount: BigNumber; - data: string; -} -export type ExecutedWithERC20Event = TypedEvent< - [string, string, BigNumber, string], - ExecutedWithERC20EventObject ->; - -export type ExecutedWithERC20EventFilter = - TypedEventFilter; - -export interface RevertedEventObject { - destination: string; - value: BigNumber; - data: string; -} -export type RevertedEvent = TypedEvent< - [string, BigNumber, string], - RevertedEventObject ->; - -export type RevertedEventFilter = TypedEventFilter; - -export interface RevertedWithERC20EventObject { - token: string; - to: string; - amount: BigNumber; - data: string; -} -export type RevertedWithERC20Event = TypedEvent< - [string, string, BigNumber, string], - RevertedWithERC20EventObject ->; - -export type RevertedWithERC20EventFilter = - TypedEventFilter; - -export interface IGatewayEVMEvents extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: IGatewayEVMEventsInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: {}; - - callStatic: {}; - - filters: { - "Call(address,address,bytes)"( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - payload?: null - ): CallEventFilter; - Call( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - payload?: null - ): CallEventFilter; - - "Deposit(address,address,uint256,address,bytes)"( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - amount?: null, - asset?: null, - payload?: null - ): DepositEventFilter; - Deposit( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - amount?: null, - asset?: null, - payload?: null - ): DepositEventFilter; - - "Executed(address,uint256,bytes)"( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): ExecutedEventFilter; - Executed( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): ExecutedEventFilter; - - "ExecutedWithERC20(address,address,uint256,bytes)"( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): ExecutedWithERC20EventFilter; - ExecutedWithERC20( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): ExecutedWithERC20EventFilter; - - "Reverted(address,uint256,bytes)"( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): RevertedEventFilter; - Reverted( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): RevertedEventFilter; - - "RevertedWithERC20(address,address,uint256,bytes)"( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): RevertedWithERC20EventFilter; - RevertedWithERC20( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): RevertedWithERC20EventFilter; - }; - - estimateGas: {}; - - populateTransaction: {}; -} diff --git a/typechain-types/contracts/prototypes/evm/interfaces.sol/IReceiverEVMEvents.ts b/typechain-types/contracts/prototypes/evm/interfaces.sol/IReceiverEVMEvents.ts deleted file mode 100644 index b29196dc..00000000 --- a/typechain-types/contracts/prototypes/evm/interfaces.sol/IReceiverEVMEvents.ts +++ /dev/null @@ -1,162 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { BaseContract, BigNumber, Signer, utils } from "ethers"; -import type { EventFragment } from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../../common"; - -export interface IReceiverEVMEventsInterface extends utils.Interface { - functions: {}; - - events: { - "ReceivedERC20(address,uint256,address,address)": EventFragment; - "ReceivedNoParams(address)": EventFragment; - "ReceivedNonPayable(address,string[],uint256[],bool)": EventFragment; - "ReceivedPayable(address,uint256,string,uint256,bool)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "ReceivedERC20"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ReceivedNoParams"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ReceivedNonPayable"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ReceivedPayable"): EventFragment; -} - -export interface ReceivedERC20EventObject { - sender: string; - amount: BigNumber; - token: string; - destination: string; -} -export type ReceivedERC20Event = TypedEvent< - [string, BigNumber, string, string], - ReceivedERC20EventObject ->; - -export type ReceivedERC20EventFilter = TypedEventFilter; - -export interface ReceivedNoParamsEventObject { - sender: string; -} -export type ReceivedNoParamsEvent = TypedEvent< - [string], - ReceivedNoParamsEventObject ->; - -export type ReceivedNoParamsEventFilter = - TypedEventFilter; - -export interface ReceivedNonPayableEventObject { - sender: string; - strs: string[]; - nums: BigNumber[]; - flag: boolean; -} -export type ReceivedNonPayableEvent = TypedEvent< - [string, string[], BigNumber[], boolean], - ReceivedNonPayableEventObject ->; - -export type ReceivedNonPayableEventFilter = - TypedEventFilter; - -export interface ReceivedPayableEventObject { - sender: string; - value: BigNumber; - str: string; - num: BigNumber; - flag: boolean; -} -export type ReceivedPayableEvent = TypedEvent< - [string, BigNumber, string, BigNumber, boolean], - ReceivedPayableEventObject ->; - -export type ReceivedPayableEventFilter = TypedEventFilter; - -export interface IReceiverEVMEvents extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: IReceiverEVMEventsInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: {}; - - callStatic: {}; - - filters: { - "ReceivedERC20(address,uint256,address,address)"( - sender?: null, - amount?: null, - token?: null, - destination?: null - ): ReceivedERC20EventFilter; - ReceivedERC20( - sender?: null, - amount?: null, - token?: null, - destination?: null - ): ReceivedERC20EventFilter; - - "ReceivedNoParams(address)"(sender?: null): ReceivedNoParamsEventFilter; - ReceivedNoParams(sender?: null): ReceivedNoParamsEventFilter; - - "ReceivedNonPayable(address,string[],uint256[],bool)"( - sender?: null, - strs?: null, - nums?: null, - flag?: null - ): ReceivedNonPayableEventFilter; - ReceivedNonPayable( - sender?: null, - strs?: null, - nums?: null, - flag?: null - ): ReceivedNonPayableEventFilter; - - "ReceivedPayable(address,uint256,string,uint256,bool)"( - sender?: null, - value?: null, - str?: null, - num?: null, - flag?: null - ): ReceivedPayableEventFilter; - ReceivedPayable( - sender?: null, - value?: null, - str?: null, - num?: null, - flag?: null - ): ReceivedPayableEventFilter; - }; - - estimateGas: {}; - - populateTransaction: {}; -} diff --git a/typechain-types/contracts/prototypes/evm/interfaces.sol/index.ts b/typechain-types/contracts/prototypes/evm/interfaces.sol/index.ts deleted file mode 100644 index 87e4491f..00000000 --- a/typechain-types/contracts/prototypes/evm/interfaces.sol/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -/* 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 { IReceiverEVMEvents } from "./IReceiverEVMEvents"; diff --git a/typechain-types/contracts/prototypes/interfaces.sol/IGateway.ts b/typechain-types/contracts/prototypes/interfaces.sol/IGateway.ts deleted file mode 100644 index 969095cb..00000000 --- a/typechain-types/contracts/prototypes/interfaces.sol/IGateway.ts +++ /dev/null @@ -1,165 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PayableOverrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { FunctionFragment, Result } from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../common"; - -export interface IGatewayInterface extends utils.Interface { - functions: { - "execute(address,bytes)": FunctionFragment; - "executeWithERC20(address,address,uint256,bytes)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: "execute" | "executeWithERC20" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "execute", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "executeWithERC20", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - - decodeFunctionResult(functionFragment: "execute", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "executeWithERC20", - data: BytesLike - ): Result; - - events: {}; -} - -export interface IGateway extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: IGatewayInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: {}; - - estimateGas: { - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - execute( - destination: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - executeWithERC20( - token: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/test/GatewayEVM.t.sol/GatewayEVMInboundTest.ts b/typechain-types/contracts/prototypes/test/GatewayEVM.t.sol/GatewayEVMInboundTest.ts deleted file mode 100644 index 931a9fba..00000000 --- a/typechain-types/contracts/prototypes/test/GatewayEVM.t.sol/GatewayEVMInboundTest.ts +++ /dev/null @@ -1,1257 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../../common"; - -export declare namespace StdInvariant { - export type FuzzSelectorStruct = { - addr: PromiseOrValue; - selectors: PromiseOrValue[]; - }; - - export type FuzzSelectorStructOutput = [string, string[]] & { - addr: string; - selectors: string[]; - }; - - export type FuzzArtifactSelectorStruct = { - artifact: PromiseOrValue; - selectors: PromiseOrValue[]; - }; - - export type FuzzArtifactSelectorStructOutput = [string, string[]] & { - artifact: string; - selectors: string[]; - }; - - export type FuzzInterfaceStruct = { - addr: PromiseOrValue; - artifacts: PromiseOrValue[]; - }; - - export type FuzzInterfaceStructOutput = [string, string[]] & { - addr: string; - artifacts: string[]; - }; -} - -export interface GatewayEVMInboundTestInterface extends utils.Interface { - functions: { - "IS_TEST()": FunctionFragment; - "excludeArtifacts()": FunctionFragment; - "excludeContracts()": FunctionFragment; - "excludeSelectors()": FunctionFragment; - "excludeSenders()": FunctionFragment; - "failed()": FunctionFragment; - "setUp()": FunctionFragment; - "targetArtifactSelectors()": FunctionFragment; - "targetArtifacts()": FunctionFragment; - "targetContracts()": FunctionFragment; - "targetInterfaces()": FunctionFragment; - "targetSelectors()": FunctionFragment; - "targetSenders()": FunctionFragment; - "testCallWithPayload()": FunctionFragment; - "testDepositERC20ToCustody()": FunctionFragment; - "testDepositERC20ToCustodyWithPayload()": FunctionFragment; - "testDepositEthToTss()": FunctionFragment; - "testDepositEthToTssWithPayload()": FunctionFragment; - "testFailDepositERC20ToCustodyIfAmountIs0()": FunctionFragment; - "testFailDepositERC20ToCustodyWithPayloadIfAmountIs0()": FunctionFragment; - "testFailDepositEthToTssIfAmountIs0()": FunctionFragment; - "testFailDepositEthToTssWithPayloadIfAmountIs0()": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "IS_TEST" - | "excludeArtifacts" - | "excludeContracts" - | "excludeSelectors" - | "excludeSenders" - | "failed" - | "setUp" - | "targetArtifactSelectors" - | "targetArtifacts" - | "targetContracts" - | "targetInterfaces" - | "targetSelectors" - | "targetSenders" - | "testCallWithPayload" - | "testDepositERC20ToCustody" - | "testDepositERC20ToCustodyWithPayload" - | "testDepositEthToTss" - | "testDepositEthToTssWithPayload" - | "testFailDepositERC20ToCustodyIfAmountIs0" - | "testFailDepositERC20ToCustodyWithPayloadIfAmountIs0" - | "testFailDepositEthToTssIfAmountIs0" - | "testFailDepositEthToTssWithPayloadIfAmountIs0" - ): FunctionFragment; - - 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: "setUp", 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; - encodeFunctionData( - functionFragment: "testCallWithPayload", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "testDepositERC20ToCustody", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "testDepositERC20ToCustodyWithPayload", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "testDepositEthToTss", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "testDepositEthToTssWithPayload", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "testFailDepositERC20ToCustodyIfAmountIs0", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "testFailDepositERC20ToCustodyWithPayloadIfAmountIs0", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "testFailDepositEthToTssIfAmountIs0", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "testFailDepositEthToTssWithPayloadIfAmountIs0", - 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: "setUp", 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; - decodeFunctionResult( - functionFragment: "testCallWithPayload", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "testDepositERC20ToCustody", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "testDepositERC20ToCustodyWithPayload", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "testDepositEthToTss", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "testDepositEthToTssWithPayload", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "testFailDepositERC20ToCustodyIfAmountIs0", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "testFailDepositERC20ToCustodyWithPayloadIfAmountIs0", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "testFailDepositEthToTssIfAmountIs0", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "testFailDepositEthToTssWithPayloadIfAmountIs0", - data: BytesLike - ): Result; - - events: { - "Call(address,address,bytes)": EventFragment; - "Deposit(address,address,uint256,address,bytes)": EventFragment; - "Executed(address,uint256,bytes)": EventFragment; - "ExecutedWithERC20(address,address,uint256,bytes)": EventFragment; - "ReceivedERC20(address,uint256,address,address)": EventFragment; - "ReceivedNoParams(address)": EventFragment; - "ReceivedNonPayable(address,string[],uint256[],bool)": EventFragment; - "ReceivedPayable(address,uint256,string,uint256,bool)": EventFragment; - "log(string)": EventFragment; - "log_address(address)": EventFragment; - "log_array(uint256[])": EventFragment; - "log_array(int256[])": EventFragment; - "log_array(address[])": EventFragment; - "log_bytes(bytes)": EventFragment; - "log_bytes32(bytes32)": EventFragment; - "log_int(int256)": EventFragment; - "log_named_address(string,address)": EventFragment; - "log_named_array(string,uint256[])": EventFragment; - "log_named_array(string,int256[])": EventFragment; - "log_named_array(string,address[])": EventFragment; - "log_named_bytes(string,bytes)": EventFragment; - "log_named_bytes32(string,bytes32)": EventFragment; - "log_named_decimal_int(string,int256,uint256)": EventFragment; - "log_named_decimal_uint(string,uint256,uint256)": EventFragment; - "log_named_int(string,int256)": EventFragment; - "log_named_string(string,string)": EventFragment; - "log_named_uint(string,uint256)": EventFragment; - "log_string(string)": EventFragment; - "log_uint(uint256)": EventFragment; - "logs(bytes)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Call"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Deposit"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Executed"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ExecutedWithERC20"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ReceivedERC20"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ReceivedNoParams"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ReceivedNonPayable"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ReceivedPayable"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_address"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_array(uint256[])"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_array(int256[])"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_array(address[])"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_bytes"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_bytes32"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_int"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_address"): EventFragment; - getEvent( - nameOrSignatureOrTopic: "log_named_array(string,uint256[])" - ): EventFragment; - getEvent( - nameOrSignatureOrTopic: "log_named_array(string,int256[])" - ): EventFragment; - getEvent( - nameOrSignatureOrTopic: "log_named_array(string,address[])" - ): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_bytes"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_bytes32"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_decimal_int"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_decimal_uint"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_int"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_string"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_uint"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_string"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_uint"): EventFragment; - getEvent(nameOrSignatureOrTopic: "logs"): EventFragment; -} - -export interface CallEventObject { - sender: string; - receiver: string; - payload: string; -} -export type CallEvent = TypedEvent<[string, string, string], CallEventObject>; - -export type CallEventFilter = TypedEventFilter; - -export interface DepositEventObject { - sender: string; - receiver: string; - amount: BigNumber; - asset: string; - payload: string; -} -export type DepositEvent = TypedEvent< - [string, string, BigNumber, string, string], - DepositEventObject ->; - -export type DepositEventFilter = TypedEventFilter; - -export interface ExecutedEventObject { - destination: string; - value: BigNumber; - data: string; -} -export type ExecutedEvent = TypedEvent< - [string, BigNumber, string], - ExecutedEventObject ->; - -export type ExecutedEventFilter = TypedEventFilter; - -export interface ExecutedWithERC20EventObject { - token: string; - to: string; - amount: BigNumber; - data: string; -} -export type ExecutedWithERC20Event = TypedEvent< - [string, string, BigNumber, string], - ExecutedWithERC20EventObject ->; - -export type ExecutedWithERC20EventFilter = - TypedEventFilter; - -export interface ReceivedERC20EventObject { - sender: string; - amount: BigNumber; - token: string; - destination: string; -} -export type ReceivedERC20Event = TypedEvent< - [string, BigNumber, string, string], - ReceivedERC20EventObject ->; - -export type ReceivedERC20EventFilter = TypedEventFilter; - -export interface ReceivedNoParamsEventObject { - sender: string; -} -export type ReceivedNoParamsEvent = TypedEvent< - [string], - ReceivedNoParamsEventObject ->; - -export type ReceivedNoParamsEventFilter = - TypedEventFilter; - -export interface ReceivedNonPayableEventObject { - sender: string; - strs: string[]; - nums: BigNumber[]; - flag: boolean; -} -export type ReceivedNonPayableEvent = TypedEvent< - [string, string[], BigNumber[], boolean], - ReceivedNonPayableEventObject ->; - -export type ReceivedNonPayableEventFilter = - TypedEventFilter; - -export interface ReceivedPayableEventObject { - sender: string; - value: BigNumber; - str: string; - num: BigNumber; - flag: boolean; -} -export type ReceivedPayableEvent = TypedEvent< - [string, BigNumber, string, BigNumber, boolean], - ReceivedPayableEventObject ->; - -export type ReceivedPayableEventFilter = TypedEventFilter; - -export interface logEventObject { - arg0: string; -} -export type logEvent = TypedEvent<[string], logEventObject>; - -export type logEventFilter = TypedEventFilter; - -export interface log_addressEventObject { - arg0: string; -} -export type log_addressEvent = TypedEvent<[string], log_addressEventObject>; - -export type log_addressEventFilter = TypedEventFilter; - -export interface log_array_uint256_array_EventObject { - val: BigNumber[]; -} -export type log_array_uint256_array_Event = TypedEvent< - [BigNumber[]], - log_array_uint256_array_EventObject ->; - -export type log_array_uint256_array_EventFilter = - TypedEventFilter; - -export interface log_array_int256_array_EventObject { - val: BigNumber[]; -} -export type log_array_int256_array_Event = TypedEvent< - [BigNumber[]], - log_array_int256_array_EventObject ->; - -export type log_array_int256_array_EventFilter = - TypedEventFilter; - -export interface log_array_address_array_EventObject { - val: string[]; -} -export type log_array_address_array_Event = TypedEvent< - [string[]], - log_array_address_array_EventObject ->; - -export type log_array_address_array_EventFilter = - TypedEventFilter; - -export interface log_bytesEventObject { - arg0: string; -} -export type log_bytesEvent = TypedEvent<[string], log_bytesEventObject>; - -export type log_bytesEventFilter = TypedEventFilter; - -export interface log_bytes32EventObject { - arg0: string; -} -export type log_bytes32Event = TypedEvent<[string], log_bytes32EventObject>; - -export type log_bytes32EventFilter = TypedEventFilter; - -export interface log_intEventObject { - arg0: BigNumber; -} -export type log_intEvent = TypedEvent<[BigNumber], log_intEventObject>; - -export type log_intEventFilter = TypedEventFilter; - -export interface log_named_addressEventObject { - key: string; - val: string; -} -export type log_named_addressEvent = TypedEvent< - [string, string], - log_named_addressEventObject ->; - -export type log_named_addressEventFilter = - TypedEventFilter; - -export interface log_named_array_string_uint256_array_EventObject { - key: string; - val: BigNumber[]; -} -export type log_named_array_string_uint256_array_Event = TypedEvent< - [string, BigNumber[]], - log_named_array_string_uint256_array_EventObject ->; - -export type log_named_array_string_uint256_array_EventFilter = - TypedEventFilter; - -export interface log_named_array_string_int256_array_EventObject { - key: string; - val: BigNumber[]; -} -export type log_named_array_string_int256_array_Event = TypedEvent< - [string, BigNumber[]], - log_named_array_string_int256_array_EventObject ->; - -export type log_named_array_string_int256_array_EventFilter = - TypedEventFilter; - -export interface log_named_array_string_address_array_EventObject { - key: string; - val: string[]; -} -export type log_named_array_string_address_array_Event = TypedEvent< - [string, string[]], - log_named_array_string_address_array_EventObject ->; - -export type log_named_array_string_address_array_EventFilter = - TypedEventFilter; - -export interface log_named_bytesEventObject { - key: string; - val: string; -} -export type log_named_bytesEvent = TypedEvent< - [string, string], - log_named_bytesEventObject ->; - -export type log_named_bytesEventFilter = TypedEventFilter; - -export interface log_named_bytes32EventObject { - key: string; - val: string; -} -export type log_named_bytes32Event = TypedEvent< - [string, string], - log_named_bytes32EventObject ->; - -export type log_named_bytes32EventFilter = - TypedEventFilter; - -export interface log_named_decimal_intEventObject { - key: string; - val: BigNumber; - decimals: BigNumber; -} -export type log_named_decimal_intEvent = TypedEvent< - [string, BigNumber, BigNumber], - log_named_decimal_intEventObject ->; - -export type log_named_decimal_intEventFilter = - TypedEventFilter; - -export interface log_named_decimal_uintEventObject { - key: string; - val: BigNumber; - decimals: BigNumber; -} -export type log_named_decimal_uintEvent = TypedEvent< - [string, BigNumber, BigNumber], - log_named_decimal_uintEventObject ->; - -export type log_named_decimal_uintEventFilter = - TypedEventFilter; - -export interface log_named_intEventObject { - key: string; - val: BigNumber; -} -export type log_named_intEvent = TypedEvent< - [string, BigNumber], - log_named_intEventObject ->; - -export type log_named_intEventFilter = TypedEventFilter; - -export interface log_named_stringEventObject { - key: string; - val: string; -} -export type log_named_stringEvent = TypedEvent< - [string, string], - log_named_stringEventObject ->; - -export type log_named_stringEventFilter = - TypedEventFilter; - -export interface log_named_uintEventObject { - key: string; - val: BigNumber; -} -export type log_named_uintEvent = TypedEvent< - [string, BigNumber], - log_named_uintEventObject ->; - -export type log_named_uintEventFilter = TypedEventFilter; - -export interface log_stringEventObject { - arg0: string; -} -export type log_stringEvent = TypedEvent<[string], log_stringEventObject>; - -export type log_stringEventFilter = TypedEventFilter; - -export interface log_uintEventObject { - arg0: BigNumber; -} -export type log_uintEvent = TypedEvent<[BigNumber], log_uintEventObject>; - -export type log_uintEventFilter = TypedEventFilter; - -export interface logsEventObject { - arg0: string; -} -export type logsEvent = TypedEvent<[string], logsEventObject>; - -export type logsEventFilter = TypedEventFilter; - -export interface GatewayEVMInboundTest extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: GatewayEVMInboundTestInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - IS_TEST(overrides?: CallOverrides): Promise<[boolean]>; - - excludeArtifacts( - overrides?: CallOverrides - ): Promise<[string[]] & { excludedArtifacts_: string[] }>; - - excludeContracts( - overrides?: CallOverrides - ): Promise<[string[]] & { excludedContracts_: string[] }>; - - excludeSelectors( - overrides?: CallOverrides - ): Promise< - [StdInvariant.FuzzSelectorStructOutput[]] & { - excludedSelectors_: StdInvariant.FuzzSelectorStructOutput[]; - } - >; - - excludeSenders( - overrides?: CallOverrides - ): Promise<[string[]] & { excludedSenders_: string[] }>; - - failed(overrides?: CallOverrides): Promise<[boolean]>; - - setUp( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - targetArtifactSelectors( - overrides?: CallOverrides - ): Promise< - [StdInvariant.FuzzArtifactSelectorStructOutput[]] & { - targetedArtifactSelectors_: StdInvariant.FuzzArtifactSelectorStructOutput[]; - } - >; - - targetArtifacts( - overrides?: CallOverrides - ): Promise<[string[]] & { targetedArtifacts_: string[] }>; - - targetContracts( - overrides?: CallOverrides - ): Promise<[string[]] & { targetedContracts_: string[] }>; - - targetInterfaces( - overrides?: CallOverrides - ): Promise< - [StdInvariant.FuzzInterfaceStructOutput[]] & { - targetedInterfaces_: StdInvariant.FuzzInterfaceStructOutput[]; - } - >; - - targetSelectors( - overrides?: CallOverrides - ): Promise< - [StdInvariant.FuzzSelectorStructOutput[]] & { - targetedSelectors_: StdInvariant.FuzzSelectorStructOutput[]; - } - >; - - targetSenders( - overrides?: CallOverrides - ): Promise<[string[]] & { targetedSenders_: string[] }>; - - testCallWithPayload( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testDepositERC20ToCustody( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testDepositERC20ToCustodyWithPayload( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testDepositEthToTss( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testDepositEthToTssWithPayload( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testFailDepositERC20ToCustodyIfAmountIs0( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testFailDepositERC20ToCustodyWithPayloadIfAmountIs0( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testFailDepositEthToTssIfAmountIs0( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testFailDepositEthToTssWithPayloadIfAmountIs0( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - IS_TEST(overrides?: CallOverrides): Promise; - - excludeArtifacts(overrides?: CallOverrides): Promise; - - excludeContracts(overrides?: CallOverrides): Promise; - - excludeSelectors( - overrides?: CallOverrides - ): Promise; - - excludeSenders(overrides?: CallOverrides): Promise; - - failed(overrides?: CallOverrides): Promise; - - setUp( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - targetArtifactSelectors( - overrides?: CallOverrides - ): Promise; - - targetArtifacts(overrides?: CallOverrides): Promise; - - targetContracts(overrides?: CallOverrides): Promise; - - targetInterfaces( - overrides?: CallOverrides - ): Promise; - - targetSelectors( - overrides?: CallOverrides - ): Promise; - - targetSenders(overrides?: CallOverrides): Promise; - - testCallWithPayload( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testDepositERC20ToCustody( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testDepositERC20ToCustodyWithPayload( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testDepositEthToTss( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testDepositEthToTssWithPayload( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testFailDepositERC20ToCustodyIfAmountIs0( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testFailDepositERC20ToCustodyWithPayloadIfAmountIs0( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testFailDepositEthToTssIfAmountIs0( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testFailDepositEthToTssWithPayloadIfAmountIs0( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - IS_TEST(overrides?: CallOverrides): Promise; - - excludeArtifacts(overrides?: CallOverrides): Promise; - - excludeContracts(overrides?: CallOverrides): Promise; - - excludeSelectors( - overrides?: CallOverrides - ): Promise; - - excludeSenders(overrides?: CallOverrides): Promise; - - failed(overrides?: CallOverrides): Promise; - - setUp(overrides?: CallOverrides): Promise; - - targetArtifactSelectors( - overrides?: CallOverrides - ): Promise; - - targetArtifacts(overrides?: CallOverrides): Promise; - - targetContracts(overrides?: CallOverrides): Promise; - - targetInterfaces( - overrides?: CallOverrides - ): Promise; - - targetSelectors( - overrides?: CallOverrides - ): Promise; - - targetSenders(overrides?: CallOverrides): Promise; - - testCallWithPayload(overrides?: CallOverrides): Promise; - - testDepositERC20ToCustody(overrides?: CallOverrides): Promise; - - testDepositERC20ToCustodyWithPayload( - overrides?: CallOverrides - ): Promise; - - testDepositEthToTss(overrides?: CallOverrides): Promise; - - testDepositEthToTssWithPayload(overrides?: CallOverrides): Promise; - - testFailDepositERC20ToCustodyIfAmountIs0( - overrides?: CallOverrides - ): Promise; - - testFailDepositERC20ToCustodyWithPayloadIfAmountIs0( - overrides?: CallOverrides - ): Promise; - - testFailDepositEthToTssIfAmountIs0( - overrides?: CallOverrides - ): Promise; - - testFailDepositEthToTssWithPayloadIfAmountIs0( - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "Call(address,address,bytes)"( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - payload?: null - ): CallEventFilter; - Call( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - payload?: null - ): CallEventFilter; - - "Deposit(address,address,uint256,address,bytes)"( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - amount?: null, - asset?: null, - payload?: null - ): DepositEventFilter; - Deposit( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - amount?: null, - asset?: null, - payload?: null - ): DepositEventFilter; - - "Executed(address,uint256,bytes)"( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): ExecutedEventFilter; - Executed( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): ExecutedEventFilter; - - "ExecutedWithERC20(address,address,uint256,bytes)"( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): ExecutedWithERC20EventFilter; - ExecutedWithERC20( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): ExecutedWithERC20EventFilter; - - "ReceivedERC20(address,uint256,address,address)"( - sender?: null, - amount?: null, - token?: null, - destination?: null - ): ReceivedERC20EventFilter; - ReceivedERC20( - sender?: null, - amount?: null, - token?: null, - destination?: null - ): ReceivedERC20EventFilter; - - "ReceivedNoParams(address)"(sender?: null): ReceivedNoParamsEventFilter; - ReceivedNoParams(sender?: null): ReceivedNoParamsEventFilter; - - "ReceivedNonPayable(address,string[],uint256[],bool)"( - sender?: null, - strs?: null, - nums?: null, - flag?: null - ): ReceivedNonPayableEventFilter; - ReceivedNonPayable( - sender?: null, - strs?: null, - nums?: null, - flag?: null - ): ReceivedNonPayableEventFilter; - - "ReceivedPayable(address,uint256,string,uint256,bool)"( - sender?: null, - value?: null, - str?: null, - num?: null, - flag?: null - ): ReceivedPayableEventFilter; - ReceivedPayable( - sender?: null, - value?: null, - str?: null, - num?: null, - flag?: null - ): ReceivedPayableEventFilter; - - "log(string)"(arg0?: null): logEventFilter; - log(arg0?: null): logEventFilter; - - "log_address(address)"(arg0?: null): log_addressEventFilter; - log_address(arg0?: null): log_addressEventFilter; - - "log_array(uint256[])"(val?: null): log_array_uint256_array_EventFilter; - "log_array(int256[])"(val?: null): log_array_int256_array_EventFilter; - "log_array(address[])"(val?: null): log_array_address_array_EventFilter; - - "log_bytes(bytes)"(arg0?: null): log_bytesEventFilter; - log_bytes(arg0?: null): log_bytesEventFilter; - - "log_bytes32(bytes32)"(arg0?: null): log_bytes32EventFilter; - log_bytes32(arg0?: null): log_bytes32EventFilter; - - "log_int(int256)"(arg0?: null): log_intEventFilter; - log_int(arg0?: null): log_intEventFilter; - - "log_named_address(string,address)"( - key?: null, - val?: null - ): log_named_addressEventFilter; - log_named_address(key?: null, val?: null): log_named_addressEventFilter; - - "log_named_array(string,uint256[])"( - key?: null, - val?: null - ): log_named_array_string_uint256_array_EventFilter; - "log_named_array(string,int256[])"( - key?: null, - val?: null - ): log_named_array_string_int256_array_EventFilter; - "log_named_array(string,address[])"( - key?: null, - val?: null - ): log_named_array_string_address_array_EventFilter; - - "log_named_bytes(string,bytes)"( - key?: null, - val?: null - ): log_named_bytesEventFilter; - log_named_bytes(key?: null, val?: null): log_named_bytesEventFilter; - - "log_named_bytes32(string,bytes32)"( - key?: null, - val?: null - ): log_named_bytes32EventFilter; - log_named_bytes32(key?: null, val?: null): log_named_bytes32EventFilter; - - "log_named_decimal_int(string,int256,uint256)"( - key?: null, - val?: null, - decimals?: null - ): log_named_decimal_intEventFilter; - log_named_decimal_int( - key?: null, - val?: null, - decimals?: null - ): log_named_decimal_intEventFilter; - - "log_named_decimal_uint(string,uint256,uint256)"( - key?: null, - val?: null, - decimals?: null - ): log_named_decimal_uintEventFilter; - log_named_decimal_uint( - key?: null, - val?: null, - decimals?: null - ): log_named_decimal_uintEventFilter; - - "log_named_int(string,int256)"( - key?: null, - val?: null - ): log_named_intEventFilter; - log_named_int(key?: null, val?: null): log_named_intEventFilter; - - "log_named_string(string,string)"( - key?: null, - val?: null - ): log_named_stringEventFilter; - log_named_string(key?: null, val?: null): log_named_stringEventFilter; - - "log_named_uint(string,uint256)"( - key?: null, - val?: null - ): log_named_uintEventFilter; - log_named_uint(key?: null, val?: null): log_named_uintEventFilter; - - "log_string(string)"(arg0?: null): log_stringEventFilter; - log_string(arg0?: null): log_stringEventFilter; - - "log_uint(uint256)"(arg0?: null): log_uintEventFilter; - log_uint(arg0?: null): log_uintEventFilter; - - "logs(bytes)"(arg0?: null): logsEventFilter; - logs(arg0?: null): logsEventFilter; - }; - - estimateGas: { - IS_TEST(overrides?: CallOverrides): Promise; - - excludeArtifacts(overrides?: CallOverrides): Promise; - - excludeContracts(overrides?: CallOverrides): Promise; - - excludeSelectors(overrides?: CallOverrides): Promise; - - excludeSenders(overrides?: CallOverrides): Promise; - - failed(overrides?: CallOverrides): Promise; - - setUp( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - targetArtifactSelectors(overrides?: CallOverrides): Promise; - - targetArtifacts(overrides?: CallOverrides): Promise; - - targetContracts(overrides?: CallOverrides): Promise; - - targetInterfaces(overrides?: CallOverrides): Promise; - - targetSelectors(overrides?: CallOverrides): Promise; - - targetSenders(overrides?: CallOverrides): Promise; - - testCallWithPayload( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testDepositERC20ToCustody( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testDepositERC20ToCustodyWithPayload( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testDepositEthToTss( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testDepositEthToTssWithPayload( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testFailDepositERC20ToCustodyIfAmountIs0( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testFailDepositERC20ToCustodyWithPayloadIfAmountIs0( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testFailDepositEthToTssIfAmountIs0( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testFailDepositEthToTssWithPayloadIfAmountIs0( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - IS_TEST(overrides?: CallOverrides): Promise; - - excludeArtifacts(overrides?: CallOverrides): Promise; - - excludeContracts(overrides?: CallOverrides): Promise; - - excludeSelectors(overrides?: CallOverrides): Promise; - - excludeSenders(overrides?: CallOverrides): Promise; - - failed(overrides?: CallOverrides): Promise; - - setUp( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - targetArtifactSelectors( - overrides?: CallOverrides - ): Promise; - - targetArtifacts(overrides?: CallOverrides): Promise; - - targetContracts(overrides?: CallOverrides): Promise; - - targetInterfaces(overrides?: CallOverrides): Promise; - - targetSelectors(overrides?: CallOverrides): Promise; - - targetSenders(overrides?: CallOverrides): Promise; - - testCallWithPayload( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testDepositERC20ToCustody( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testDepositERC20ToCustodyWithPayload( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testDepositEthToTss( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testDepositEthToTssWithPayload( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testFailDepositERC20ToCustodyIfAmountIs0( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testFailDepositERC20ToCustodyWithPayloadIfAmountIs0( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testFailDepositEthToTssIfAmountIs0( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testFailDepositEthToTssWithPayloadIfAmountIs0( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/test/GatewayEVM.t.sol/GatewayEVMTest.ts b/typechain-types/contracts/prototypes/test/GatewayEVM.t.sol/GatewayEVMTest.ts deleted file mode 100644 index c5bfb328..00000000 --- a/typechain-types/contracts/prototypes/test/GatewayEVM.t.sol/GatewayEVMTest.ts +++ /dev/null @@ -1,1195 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../../common"; - -export declare namespace StdInvariant { - export type FuzzSelectorStruct = { - addr: PromiseOrValue; - selectors: PromiseOrValue[]; - }; - - export type FuzzSelectorStructOutput = [string, string[]] & { - addr: string; - selectors: string[]; - }; - - export type FuzzArtifactSelectorStruct = { - artifact: PromiseOrValue; - selectors: PromiseOrValue[]; - }; - - export type FuzzArtifactSelectorStructOutput = [string, string[]] & { - artifact: string; - selectors: string[]; - }; - - export type FuzzInterfaceStruct = { - addr: PromiseOrValue; - artifacts: PromiseOrValue[]; - }; - - export type FuzzInterfaceStructOutput = [string, string[]] & { - addr: string; - artifacts: string[]; - }; -} - -export interface GatewayEVMTestInterface extends utils.Interface { - functions: { - "IS_TEST()": FunctionFragment; - "excludeArtifacts()": FunctionFragment; - "excludeContracts()": FunctionFragment; - "excludeSelectors()": FunctionFragment; - "excludeSenders()": FunctionFragment; - "failed()": FunctionFragment; - "setUp()": FunctionFragment; - "targetArtifactSelectors()": FunctionFragment; - "targetArtifacts()": FunctionFragment; - "targetContracts()": FunctionFragment; - "targetInterfaces()": FunctionFragment; - "targetSelectors()": FunctionFragment; - "targetSenders()": FunctionFragment; - "testForwardCallToReceiveERC20ThroughCustody()": FunctionFragment; - "testForwardCallToReceiveNoParams()": FunctionFragment; - "testForwardCallToReceiveNoParamsThroughCustody()": FunctionFragment; - "testForwardCallToReceiveNonPayable()": FunctionFragment; - "testForwardCallToReceivePayable()": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "IS_TEST" - | "excludeArtifacts" - | "excludeContracts" - | "excludeSelectors" - | "excludeSenders" - | "failed" - | "setUp" - | "targetArtifactSelectors" - | "targetArtifacts" - | "targetContracts" - | "targetInterfaces" - | "targetSelectors" - | "targetSenders" - | "testForwardCallToReceiveERC20ThroughCustody" - | "testForwardCallToReceiveNoParams" - | "testForwardCallToReceiveNoParamsThroughCustody" - | "testForwardCallToReceiveNonPayable" - | "testForwardCallToReceivePayable" - ): FunctionFragment; - - 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: "setUp", 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; - encodeFunctionData( - functionFragment: "testForwardCallToReceiveERC20ThroughCustody", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "testForwardCallToReceiveNoParams", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "testForwardCallToReceiveNoParamsThroughCustody", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "testForwardCallToReceiveNonPayable", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "testForwardCallToReceivePayable", - 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: "setUp", 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; - decodeFunctionResult( - functionFragment: "testForwardCallToReceiveERC20ThroughCustody", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "testForwardCallToReceiveNoParams", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "testForwardCallToReceiveNoParamsThroughCustody", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "testForwardCallToReceiveNonPayable", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "testForwardCallToReceivePayable", - data: BytesLike - ): Result; - - events: { - "Call(address,address,bytes)": EventFragment; - "Deposit(address,address,uint256,address,bytes)": EventFragment; - "Executed(address,uint256,bytes)": EventFragment; - "ExecutedWithERC20(address,address,uint256,bytes)": EventFragment; - "ReceivedERC20(address,uint256,address,address)": EventFragment; - "ReceivedNoParams(address)": EventFragment; - "ReceivedNonPayable(address,string[],uint256[],bool)": EventFragment; - "ReceivedPayable(address,uint256,string,uint256,bool)": EventFragment; - "Reverted(address,uint256,bytes)": EventFragment; - "RevertedWithERC20(address,address,uint256,bytes)": EventFragment; - "log(string)": EventFragment; - "log_address(address)": EventFragment; - "log_array(uint256[])": EventFragment; - "log_array(int256[])": EventFragment; - "log_array(address[])": EventFragment; - "log_bytes(bytes)": EventFragment; - "log_bytes32(bytes32)": EventFragment; - "log_int(int256)": EventFragment; - "log_named_address(string,address)": EventFragment; - "log_named_array(string,uint256[])": EventFragment; - "log_named_array(string,int256[])": EventFragment; - "log_named_array(string,address[])": EventFragment; - "log_named_bytes(string,bytes)": EventFragment; - "log_named_bytes32(string,bytes32)": EventFragment; - "log_named_decimal_int(string,int256,uint256)": EventFragment; - "log_named_decimal_uint(string,uint256,uint256)": EventFragment; - "log_named_int(string,int256)": EventFragment; - "log_named_string(string,string)": EventFragment; - "log_named_uint(string,uint256)": EventFragment; - "log_string(string)": EventFragment; - "log_uint(uint256)": EventFragment; - "logs(bytes)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Call"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Deposit"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Executed"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ExecutedWithERC20"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ReceivedERC20"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ReceivedNoParams"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ReceivedNonPayable"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ReceivedPayable"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Reverted"): EventFragment; - getEvent(nameOrSignatureOrTopic: "RevertedWithERC20"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_address"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_array(uint256[])"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_array(int256[])"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_array(address[])"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_bytes"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_bytes32"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_int"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_address"): EventFragment; - getEvent( - nameOrSignatureOrTopic: "log_named_array(string,uint256[])" - ): EventFragment; - getEvent( - nameOrSignatureOrTopic: "log_named_array(string,int256[])" - ): EventFragment; - getEvent( - nameOrSignatureOrTopic: "log_named_array(string,address[])" - ): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_bytes"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_bytes32"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_decimal_int"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_decimal_uint"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_int"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_string"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_uint"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_string"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_uint"): EventFragment; - getEvent(nameOrSignatureOrTopic: "logs"): EventFragment; -} - -export interface CallEventObject { - sender: string; - receiver: string; - payload: string; -} -export type CallEvent = TypedEvent<[string, string, string], CallEventObject>; - -export type CallEventFilter = TypedEventFilter; - -export interface DepositEventObject { - sender: string; - receiver: string; - amount: BigNumber; - asset: string; - payload: string; -} -export type DepositEvent = TypedEvent< - [string, string, BigNumber, string, string], - DepositEventObject ->; - -export type DepositEventFilter = TypedEventFilter; - -export interface ExecutedEventObject { - destination: string; - value: BigNumber; - data: string; -} -export type ExecutedEvent = TypedEvent< - [string, BigNumber, string], - ExecutedEventObject ->; - -export type ExecutedEventFilter = TypedEventFilter; - -export interface ExecutedWithERC20EventObject { - token: string; - to: string; - amount: BigNumber; - data: string; -} -export type ExecutedWithERC20Event = TypedEvent< - [string, string, BigNumber, string], - ExecutedWithERC20EventObject ->; - -export type ExecutedWithERC20EventFilter = - TypedEventFilter; - -export interface ReceivedERC20EventObject { - sender: string; - amount: BigNumber; - token: string; - destination: string; -} -export type ReceivedERC20Event = TypedEvent< - [string, BigNumber, string, string], - ReceivedERC20EventObject ->; - -export type ReceivedERC20EventFilter = TypedEventFilter; - -export interface ReceivedNoParamsEventObject { - sender: string; -} -export type ReceivedNoParamsEvent = TypedEvent< - [string], - ReceivedNoParamsEventObject ->; - -export type ReceivedNoParamsEventFilter = - TypedEventFilter; - -export interface ReceivedNonPayableEventObject { - sender: string; - strs: string[]; - nums: BigNumber[]; - flag: boolean; -} -export type ReceivedNonPayableEvent = TypedEvent< - [string, string[], BigNumber[], boolean], - ReceivedNonPayableEventObject ->; - -export type ReceivedNonPayableEventFilter = - TypedEventFilter; - -export interface ReceivedPayableEventObject { - sender: string; - value: BigNumber; - str: string; - num: BigNumber; - flag: boolean; -} -export type ReceivedPayableEvent = TypedEvent< - [string, BigNumber, string, BigNumber, boolean], - ReceivedPayableEventObject ->; - -export type ReceivedPayableEventFilter = TypedEventFilter; - -export interface RevertedEventObject { - destination: string; - value: BigNumber; - data: string; -} -export type RevertedEvent = TypedEvent< - [string, BigNumber, string], - RevertedEventObject ->; - -export type RevertedEventFilter = TypedEventFilter; - -export interface RevertedWithERC20EventObject { - token: string; - to: string; - amount: BigNumber; - data: string; -} -export type RevertedWithERC20Event = TypedEvent< - [string, string, BigNumber, string], - RevertedWithERC20EventObject ->; - -export type RevertedWithERC20EventFilter = - TypedEventFilter; - -export interface logEventObject { - arg0: string; -} -export type logEvent = TypedEvent<[string], logEventObject>; - -export type logEventFilter = TypedEventFilter; - -export interface log_addressEventObject { - arg0: string; -} -export type log_addressEvent = TypedEvent<[string], log_addressEventObject>; - -export type log_addressEventFilter = TypedEventFilter; - -export interface log_array_uint256_array_EventObject { - val: BigNumber[]; -} -export type log_array_uint256_array_Event = TypedEvent< - [BigNumber[]], - log_array_uint256_array_EventObject ->; - -export type log_array_uint256_array_EventFilter = - TypedEventFilter; - -export interface log_array_int256_array_EventObject { - val: BigNumber[]; -} -export type log_array_int256_array_Event = TypedEvent< - [BigNumber[]], - log_array_int256_array_EventObject ->; - -export type log_array_int256_array_EventFilter = - TypedEventFilter; - -export interface log_array_address_array_EventObject { - val: string[]; -} -export type log_array_address_array_Event = TypedEvent< - [string[]], - log_array_address_array_EventObject ->; - -export type log_array_address_array_EventFilter = - TypedEventFilter; - -export interface log_bytesEventObject { - arg0: string; -} -export type log_bytesEvent = TypedEvent<[string], log_bytesEventObject>; - -export type log_bytesEventFilter = TypedEventFilter; - -export interface log_bytes32EventObject { - arg0: string; -} -export type log_bytes32Event = TypedEvent<[string], log_bytes32EventObject>; - -export type log_bytes32EventFilter = TypedEventFilter; - -export interface log_intEventObject { - arg0: BigNumber; -} -export type log_intEvent = TypedEvent<[BigNumber], log_intEventObject>; - -export type log_intEventFilter = TypedEventFilter; - -export interface log_named_addressEventObject { - key: string; - val: string; -} -export type log_named_addressEvent = TypedEvent< - [string, string], - log_named_addressEventObject ->; - -export type log_named_addressEventFilter = - TypedEventFilter; - -export interface log_named_array_string_uint256_array_EventObject { - key: string; - val: BigNumber[]; -} -export type log_named_array_string_uint256_array_Event = TypedEvent< - [string, BigNumber[]], - log_named_array_string_uint256_array_EventObject ->; - -export type log_named_array_string_uint256_array_EventFilter = - TypedEventFilter; - -export interface log_named_array_string_int256_array_EventObject { - key: string; - val: BigNumber[]; -} -export type log_named_array_string_int256_array_Event = TypedEvent< - [string, BigNumber[]], - log_named_array_string_int256_array_EventObject ->; - -export type log_named_array_string_int256_array_EventFilter = - TypedEventFilter; - -export interface log_named_array_string_address_array_EventObject { - key: string; - val: string[]; -} -export type log_named_array_string_address_array_Event = TypedEvent< - [string, string[]], - log_named_array_string_address_array_EventObject ->; - -export type log_named_array_string_address_array_EventFilter = - TypedEventFilter; - -export interface log_named_bytesEventObject { - key: string; - val: string; -} -export type log_named_bytesEvent = TypedEvent< - [string, string], - log_named_bytesEventObject ->; - -export type log_named_bytesEventFilter = TypedEventFilter; - -export interface log_named_bytes32EventObject { - key: string; - val: string; -} -export type log_named_bytes32Event = TypedEvent< - [string, string], - log_named_bytes32EventObject ->; - -export type log_named_bytes32EventFilter = - TypedEventFilter; - -export interface log_named_decimal_intEventObject { - key: string; - val: BigNumber; - decimals: BigNumber; -} -export type log_named_decimal_intEvent = TypedEvent< - [string, BigNumber, BigNumber], - log_named_decimal_intEventObject ->; - -export type log_named_decimal_intEventFilter = - TypedEventFilter; - -export interface log_named_decimal_uintEventObject { - key: string; - val: BigNumber; - decimals: BigNumber; -} -export type log_named_decimal_uintEvent = TypedEvent< - [string, BigNumber, BigNumber], - log_named_decimal_uintEventObject ->; - -export type log_named_decimal_uintEventFilter = - TypedEventFilter; - -export interface log_named_intEventObject { - key: string; - val: BigNumber; -} -export type log_named_intEvent = TypedEvent< - [string, BigNumber], - log_named_intEventObject ->; - -export type log_named_intEventFilter = TypedEventFilter; - -export interface log_named_stringEventObject { - key: string; - val: string; -} -export type log_named_stringEvent = TypedEvent< - [string, string], - log_named_stringEventObject ->; - -export type log_named_stringEventFilter = - TypedEventFilter; - -export interface log_named_uintEventObject { - key: string; - val: BigNumber; -} -export type log_named_uintEvent = TypedEvent< - [string, BigNumber], - log_named_uintEventObject ->; - -export type log_named_uintEventFilter = TypedEventFilter; - -export interface log_stringEventObject { - arg0: string; -} -export type log_stringEvent = TypedEvent<[string], log_stringEventObject>; - -export type log_stringEventFilter = TypedEventFilter; - -export interface log_uintEventObject { - arg0: BigNumber; -} -export type log_uintEvent = TypedEvent<[BigNumber], log_uintEventObject>; - -export type log_uintEventFilter = TypedEventFilter; - -export interface logsEventObject { - arg0: string; -} -export type logsEvent = TypedEvent<[string], logsEventObject>; - -export type logsEventFilter = TypedEventFilter; - -export interface GatewayEVMTest extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: GatewayEVMTestInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - IS_TEST(overrides?: CallOverrides): Promise<[boolean]>; - - excludeArtifacts( - overrides?: CallOverrides - ): Promise<[string[]] & { excludedArtifacts_: string[] }>; - - excludeContracts( - overrides?: CallOverrides - ): Promise<[string[]] & { excludedContracts_: string[] }>; - - excludeSelectors( - overrides?: CallOverrides - ): Promise< - [StdInvariant.FuzzSelectorStructOutput[]] & { - excludedSelectors_: StdInvariant.FuzzSelectorStructOutput[]; - } - >; - - excludeSenders( - overrides?: CallOverrides - ): Promise<[string[]] & { excludedSenders_: string[] }>; - - failed(overrides?: CallOverrides): Promise<[boolean]>; - - setUp( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - targetArtifactSelectors( - overrides?: CallOverrides - ): Promise< - [StdInvariant.FuzzArtifactSelectorStructOutput[]] & { - targetedArtifactSelectors_: StdInvariant.FuzzArtifactSelectorStructOutput[]; - } - >; - - targetArtifacts( - overrides?: CallOverrides - ): Promise<[string[]] & { targetedArtifacts_: string[] }>; - - targetContracts( - overrides?: CallOverrides - ): Promise<[string[]] & { targetedContracts_: string[] }>; - - targetInterfaces( - overrides?: CallOverrides - ): Promise< - [StdInvariant.FuzzInterfaceStructOutput[]] & { - targetedInterfaces_: StdInvariant.FuzzInterfaceStructOutput[]; - } - >; - - targetSelectors( - overrides?: CallOverrides - ): Promise< - [StdInvariant.FuzzSelectorStructOutput[]] & { - targetedSelectors_: StdInvariant.FuzzSelectorStructOutput[]; - } - >; - - targetSenders( - overrides?: CallOverrides - ): Promise<[string[]] & { targetedSenders_: string[] }>; - - testForwardCallToReceiveERC20ThroughCustody( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testForwardCallToReceiveNoParams( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testForwardCallToReceiveNoParamsThroughCustody( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testForwardCallToReceiveNonPayable( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testForwardCallToReceivePayable( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - IS_TEST(overrides?: CallOverrides): Promise; - - excludeArtifacts(overrides?: CallOverrides): Promise; - - excludeContracts(overrides?: CallOverrides): Promise; - - excludeSelectors( - overrides?: CallOverrides - ): Promise; - - excludeSenders(overrides?: CallOverrides): Promise; - - failed(overrides?: CallOverrides): Promise; - - setUp( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - targetArtifactSelectors( - overrides?: CallOverrides - ): Promise; - - targetArtifacts(overrides?: CallOverrides): Promise; - - targetContracts(overrides?: CallOverrides): Promise; - - targetInterfaces( - overrides?: CallOverrides - ): Promise; - - targetSelectors( - overrides?: CallOverrides - ): Promise; - - targetSenders(overrides?: CallOverrides): Promise; - - testForwardCallToReceiveERC20ThroughCustody( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testForwardCallToReceiveNoParams( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testForwardCallToReceiveNoParamsThroughCustody( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testForwardCallToReceiveNonPayable( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testForwardCallToReceivePayable( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - IS_TEST(overrides?: CallOverrides): Promise; - - excludeArtifacts(overrides?: CallOverrides): Promise; - - excludeContracts(overrides?: CallOverrides): Promise; - - excludeSelectors( - overrides?: CallOverrides - ): Promise; - - excludeSenders(overrides?: CallOverrides): Promise; - - failed(overrides?: CallOverrides): Promise; - - setUp(overrides?: CallOverrides): Promise; - - targetArtifactSelectors( - overrides?: CallOverrides - ): Promise; - - targetArtifacts(overrides?: CallOverrides): Promise; - - targetContracts(overrides?: CallOverrides): Promise; - - targetInterfaces( - overrides?: CallOverrides - ): Promise; - - targetSelectors( - overrides?: CallOverrides - ): Promise; - - targetSenders(overrides?: CallOverrides): Promise; - - testForwardCallToReceiveERC20ThroughCustody( - overrides?: CallOverrides - ): Promise; - - testForwardCallToReceiveNoParams(overrides?: CallOverrides): Promise; - - testForwardCallToReceiveNoParamsThroughCustody( - overrides?: CallOverrides - ): Promise; - - testForwardCallToReceiveNonPayable( - overrides?: CallOverrides - ): Promise; - - testForwardCallToReceivePayable(overrides?: CallOverrides): Promise; - }; - - filters: { - "Call(address,address,bytes)"( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - payload?: null - ): CallEventFilter; - Call( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - payload?: null - ): CallEventFilter; - - "Deposit(address,address,uint256,address,bytes)"( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - amount?: null, - asset?: null, - payload?: null - ): DepositEventFilter; - Deposit( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - amount?: null, - asset?: null, - payload?: null - ): DepositEventFilter; - - "Executed(address,uint256,bytes)"( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): ExecutedEventFilter; - Executed( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): ExecutedEventFilter; - - "ExecutedWithERC20(address,address,uint256,bytes)"( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): ExecutedWithERC20EventFilter; - ExecutedWithERC20( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): ExecutedWithERC20EventFilter; - - "ReceivedERC20(address,uint256,address,address)"( - sender?: null, - amount?: null, - token?: null, - destination?: null - ): ReceivedERC20EventFilter; - ReceivedERC20( - sender?: null, - amount?: null, - token?: null, - destination?: null - ): ReceivedERC20EventFilter; - - "ReceivedNoParams(address)"(sender?: null): ReceivedNoParamsEventFilter; - ReceivedNoParams(sender?: null): ReceivedNoParamsEventFilter; - - "ReceivedNonPayable(address,string[],uint256[],bool)"( - sender?: null, - strs?: null, - nums?: null, - flag?: null - ): ReceivedNonPayableEventFilter; - ReceivedNonPayable( - sender?: null, - strs?: null, - nums?: null, - flag?: null - ): ReceivedNonPayableEventFilter; - - "ReceivedPayable(address,uint256,string,uint256,bool)"( - sender?: null, - value?: null, - str?: null, - num?: null, - flag?: null - ): ReceivedPayableEventFilter; - ReceivedPayable( - sender?: null, - value?: null, - str?: null, - num?: null, - flag?: null - ): ReceivedPayableEventFilter; - - "Reverted(address,uint256,bytes)"( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): RevertedEventFilter; - Reverted( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): RevertedEventFilter; - - "RevertedWithERC20(address,address,uint256,bytes)"( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): RevertedWithERC20EventFilter; - RevertedWithERC20( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): RevertedWithERC20EventFilter; - - "log(string)"(arg0?: null): logEventFilter; - log(arg0?: null): logEventFilter; - - "log_address(address)"(arg0?: null): log_addressEventFilter; - log_address(arg0?: null): log_addressEventFilter; - - "log_array(uint256[])"(val?: null): log_array_uint256_array_EventFilter; - "log_array(int256[])"(val?: null): log_array_int256_array_EventFilter; - "log_array(address[])"(val?: null): log_array_address_array_EventFilter; - - "log_bytes(bytes)"(arg0?: null): log_bytesEventFilter; - log_bytes(arg0?: null): log_bytesEventFilter; - - "log_bytes32(bytes32)"(arg0?: null): log_bytes32EventFilter; - log_bytes32(arg0?: null): log_bytes32EventFilter; - - "log_int(int256)"(arg0?: null): log_intEventFilter; - log_int(arg0?: null): log_intEventFilter; - - "log_named_address(string,address)"( - key?: null, - val?: null - ): log_named_addressEventFilter; - log_named_address(key?: null, val?: null): log_named_addressEventFilter; - - "log_named_array(string,uint256[])"( - key?: null, - val?: null - ): log_named_array_string_uint256_array_EventFilter; - "log_named_array(string,int256[])"( - key?: null, - val?: null - ): log_named_array_string_int256_array_EventFilter; - "log_named_array(string,address[])"( - key?: null, - val?: null - ): log_named_array_string_address_array_EventFilter; - - "log_named_bytes(string,bytes)"( - key?: null, - val?: null - ): log_named_bytesEventFilter; - log_named_bytes(key?: null, val?: null): log_named_bytesEventFilter; - - "log_named_bytes32(string,bytes32)"( - key?: null, - val?: null - ): log_named_bytes32EventFilter; - log_named_bytes32(key?: null, val?: null): log_named_bytes32EventFilter; - - "log_named_decimal_int(string,int256,uint256)"( - key?: null, - val?: null, - decimals?: null - ): log_named_decimal_intEventFilter; - log_named_decimal_int( - key?: null, - val?: null, - decimals?: null - ): log_named_decimal_intEventFilter; - - "log_named_decimal_uint(string,uint256,uint256)"( - key?: null, - val?: null, - decimals?: null - ): log_named_decimal_uintEventFilter; - log_named_decimal_uint( - key?: null, - val?: null, - decimals?: null - ): log_named_decimal_uintEventFilter; - - "log_named_int(string,int256)"( - key?: null, - val?: null - ): log_named_intEventFilter; - log_named_int(key?: null, val?: null): log_named_intEventFilter; - - "log_named_string(string,string)"( - key?: null, - val?: null - ): log_named_stringEventFilter; - log_named_string(key?: null, val?: null): log_named_stringEventFilter; - - "log_named_uint(string,uint256)"( - key?: null, - val?: null - ): log_named_uintEventFilter; - log_named_uint(key?: null, val?: null): log_named_uintEventFilter; - - "log_string(string)"(arg0?: null): log_stringEventFilter; - log_string(arg0?: null): log_stringEventFilter; - - "log_uint(uint256)"(arg0?: null): log_uintEventFilter; - log_uint(arg0?: null): log_uintEventFilter; - - "logs(bytes)"(arg0?: null): logsEventFilter; - logs(arg0?: null): logsEventFilter; - }; - - estimateGas: { - IS_TEST(overrides?: CallOverrides): Promise; - - excludeArtifacts(overrides?: CallOverrides): Promise; - - excludeContracts(overrides?: CallOverrides): Promise; - - excludeSelectors(overrides?: CallOverrides): Promise; - - excludeSenders(overrides?: CallOverrides): Promise; - - failed(overrides?: CallOverrides): Promise; - - setUp( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - targetArtifactSelectors(overrides?: CallOverrides): Promise; - - targetArtifacts(overrides?: CallOverrides): Promise; - - targetContracts(overrides?: CallOverrides): Promise; - - targetInterfaces(overrides?: CallOverrides): Promise; - - targetSelectors(overrides?: CallOverrides): Promise; - - targetSenders(overrides?: CallOverrides): Promise; - - testForwardCallToReceiveERC20ThroughCustody( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testForwardCallToReceiveNoParams( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testForwardCallToReceiveNoParamsThroughCustody( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testForwardCallToReceiveNonPayable( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testForwardCallToReceivePayable( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - IS_TEST(overrides?: CallOverrides): Promise; - - excludeArtifacts(overrides?: CallOverrides): Promise; - - excludeContracts(overrides?: CallOverrides): Promise; - - excludeSelectors(overrides?: CallOverrides): Promise; - - excludeSenders(overrides?: CallOverrides): Promise; - - failed(overrides?: CallOverrides): Promise; - - setUp( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - targetArtifactSelectors( - overrides?: CallOverrides - ): Promise; - - targetArtifacts(overrides?: CallOverrides): Promise; - - targetContracts(overrides?: CallOverrides): Promise; - - targetInterfaces(overrides?: CallOverrides): Promise; - - targetSelectors(overrides?: CallOverrides): Promise; - - targetSenders(overrides?: CallOverrides): Promise; - - testForwardCallToReceiveERC20ThroughCustody( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testForwardCallToReceiveNoParams( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testForwardCallToReceiveNoParamsThroughCustody( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testForwardCallToReceiveNonPayable( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testForwardCallToReceivePayable( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/test/GatewayEVM.t.sol/index.ts b/typechain-types/contracts/prototypes/test/GatewayEVM.t.sol/index.ts deleted file mode 100644 index 0359fc63..00000000 --- a/typechain-types/contracts/prototypes/test/GatewayEVM.t.sol/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { GatewayEVMInboundTest } from "./GatewayEVMInboundTest"; -export type { GatewayEVMTest } from "./GatewayEVMTest"; diff --git a/typechain-types/contracts/prototypes/test/GatewayEVMZEVM.t.sol/GatewayEVMZEVMTest.ts b/typechain-types/contracts/prototypes/test/GatewayEVMZEVM.t.sol/GatewayEVMZEVMTest.ts deleted file mode 100644 index 45d14fb8..00000000 --- a/typechain-types/contracts/prototypes/test/GatewayEVMZEVM.t.sol/GatewayEVMZEVMTest.ts +++ /dev/null @@ -1,1197 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../../common"; - -export declare namespace StdInvariant { - export type FuzzSelectorStruct = { - addr: PromiseOrValue; - selectors: PromiseOrValue[]; - }; - - export type FuzzSelectorStructOutput = [string, string[]] & { - addr: string; - selectors: string[]; - }; - - export type FuzzArtifactSelectorStruct = { - artifact: PromiseOrValue; - selectors: PromiseOrValue[]; - }; - - export type FuzzArtifactSelectorStructOutput = [string, string[]] & { - artifact: string; - selectors: string[]; - }; - - export type FuzzInterfaceStruct = { - addr: PromiseOrValue; - artifacts: PromiseOrValue[]; - }; - - export type FuzzInterfaceStructOutput = [string, string[]] & { - addr: string; - artifacts: string[]; - }; -} - -export interface GatewayEVMZEVMTestInterface extends utils.Interface { - functions: { - "IS_TEST()": FunctionFragment; - "excludeArtifacts()": FunctionFragment; - "excludeContracts()": FunctionFragment; - "excludeSelectors()": FunctionFragment; - "excludeSenders()": FunctionFragment; - "failed()": FunctionFragment; - "setUp()": FunctionFragment; - "targetArtifactSelectors()": FunctionFragment; - "targetArtifacts()": FunctionFragment; - "targetContracts()": FunctionFragment; - "targetInterfaces()": FunctionFragment; - "targetSelectors()": FunctionFragment; - "targetSenders()": FunctionFragment; - "testCallReceiverEVMFromSenderZEVM()": FunctionFragment; - "testCallReceiverEVMFromZEVM()": FunctionFragment; - "testWithdrawAndCallReceiverEVMFromSenderZEVM()": FunctionFragment; - "testWithdrawAndCallReceiverEVMFromZEVM()": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "IS_TEST" - | "excludeArtifacts" - | "excludeContracts" - | "excludeSelectors" - | "excludeSenders" - | "failed" - | "setUp" - | "targetArtifactSelectors" - | "targetArtifacts" - | "targetContracts" - | "targetInterfaces" - | "targetSelectors" - | "targetSenders" - | "testCallReceiverEVMFromSenderZEVM" - | "testCallReceiverEVMFromZEVM" - | "testWithdrawAndCallReceiverEVMFromSenderZEVM" - | "testWithdrawAndCallReceiverEVMFromZEVM" - ): FunctionFragment; - - 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: "setUp", 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; - encodeFunctionData( - functionFragment: "testCallReceiverEVMFromSenderZEVM", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "testCallReceiverEVMFromZEVM", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "testWithdrawAndCallReceiverEVMFromSenderZEVM", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "testWithdrawAndCallReceiverEVMFromZEVM", - 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: "setUp", 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; - decodeFunctionResult( - functionFragment: "testCallReceiverEVMFromSenderZEVM", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "testCallReceiverEVMFromZEVM", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "testWithdrawAndCallReceiverEVMFromSenderZEVM", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "testWithdrawAndCallReceiverEVMFromZEVM", - data: BytesLike - ): Result; - - events: { - "Call(address,bytes,bytes)": EventFragment; - "Call(address,address,bytes)": EventFragment; - "Deposit(address,address,uint256,address,bytes)": EventFragment; - "Executed(address,uint256,bytes)": EventFragment; - "ExecutedWithERC20(address,address,uint256,bytes)": EventFragment; - "ReceivedERC20(address,uint256,address,address)": EventFragment; - "ReceivedNoParams(address)": EventFragment; - "ReceivedNonPayable(address,string[],uint256[],bool)": EventFragment; - "ReceivedPayable(address,uint256,string,uint256,bool)": EventFragment; - "Withdrawal(address,address,bytes,uint256,uint256,uint256,bytes)": EventFragment; - "log(string)": EventFragment; - "log_address(address)": EventFragment; - "log_array(uint256[])": EventFragment; - "log_array(int256[])": EventFragment; - "log_array(address[])": EventFragment; - "log_bytes(bytes)": EventFragment; - "log_bytes32(bytes32)": EventFragment; - "log_int(int256)": EventFragment; - "log_named_address(string,address)": EventFragment; - "log_named_array(string,uint256[])": EventFragment; - "log_named_array(string,int256[])": EventFragment; - "log_named_array(string,address[])": EventFragment; - "log_named_bytes(string,bytes)": EventFragment; - "log_named_bytes32(string,bytes32)": EventFragment; - "log_named_decimal_int(string,int256,uint256)": EventFragment; - "log_named_decimal_uint(string,uint256,uint256)": EventFragment; - "log_named_int(string,int256)": EventFragment; - "log_named_string(string,string)": EventFragment; - "log_named_uint(string,uint256)": EventFragment; - "log_string(string)": EventFragment; - "log_uint(uint256)": EventFragment; - "logs(bytes)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Call(address,bytes,bytes)"): EventFragment; - getEvent( - nameOrSignatureOrTopic: "Call(address,address,bytes)" - ): EventFragment; - getEvent(nameOrSignatureOrTopic: "Deposit"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Executed"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ExecutedWithERC20"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ReceivedERC20"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ReceivedNoParams"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ReceivedNonPayable"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ReceivedPayable"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Reverted"): EventFragment; - getEvent(nameOrSignatureOrTopic: "RevertedWithERC20"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Withdrawal"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_address"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_array(uint256[])"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_array(int256[])"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_array(address[])"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_bytes"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_bytes32"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_int"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_address"): EventFragment; - getEvent( - nameOrSignatureOrTopic: "log_named_array(string,uint256[])" - ): EventFragment; - getEvent( - nameOrSignatureOrTopic: "log_named_array(string,int256[])" - ): EventFragment; - getEvent( - nameOrSignatureOrTopic: "log_named_array(string,address[])" - ): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_bytes"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_bytes32"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_decimal_int"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_decimal_uint"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_int"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_string"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_uint"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_string"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_uint"): EventFragment; - getEvent(nameOrSignatureOrTopic: "logs"): EventFragment; -} - -export interface Call_address_bytes_bytes_EventObject { - sender: string; - receiver: string; - message: string; -} -export type Call_address_bytes_bytes_Event = TypedEvent< - [string, string, string], - Call_address_bytes_bytes_EventObject ->; - -export type Call_address_bytes_bytes_EventFilter = - TypedEventFilter; - -export interface Call_address_address_bytes_EventObject { - sender: string; - receiver: string; - payload: string; -} -export type Call_address_address_bytes_Event = TypedEvent< - [string, string, string], - Call_address_address_bytes_EventObject ->; - -export type Call_address_address_bytes_EventFilter = - TypedEventFilter; - -export interface DepositEventObject { - sender: string; - receiver: string; - amount: BigNumber; - asset: string; - payload: string; -} -export type DepositEvent = TypedEvent< - [string, string, BigNumber, string, string], - DepositEventObject ->; - -export type DepositEventFilter = TypedEventFilter; - -export interface ExecutedEventObject { - destination: string; - value: BigNumber; - data: string; -} -export type ExecutedEvent = TypedEvent< - [string, BigNumber, string], - ExecutedEventObject ->; - -export type ExecutedEventFilter = TypedEventFilter; - -export interface ExecutedWithERC20EventObject { - token: string; - to: string; - amount: BigNumber; - data: string; -} -export type ExecutedWithERC20Event = TypedEvent< - [string, string, BigNumber, string], - ExecutedWithERC20EventObject ->; - -export type ExecutedWithERC20EventFilter = - TypedEventFilter; - -export interface ReceivedERC20EventObject { - sender: string; - amount: BigNumber; - token: string; - destination: string; -} -export type ReceivedERC20Event = TypedEvent< - [string, BigNumber, string, string], - ReceivedERC20EventObject ->; - -export type ReceivedERC20EventFilter = TypedEventFilter; - -export interface ReceivedNoParamsEventObject { - sender: string; -} -export type ReceivedNoParamsEvent = TypedEvent< - [string], - ReceivedNoParamsEventObject ->; - -export type ReceivedNoParamsEventFilter = - TypedEventFilter; - -export interface ReceivedNonPayableEventObject { - sender: string; - strs: string[]; - nums: BigNumber[]; - flag: boolean; -} -export type ReceivedNonPayableEvent = TypedEvent< - [string, string[], BigNumber[], boolean], - ReceivedNonPayableEventObject ->; - -export type ReceivedNonPayableEventFilter = - TypedEventFilter; - -export interface ReceivedPayableEventObject { - sender: string; - value: BigNumber; - str: string; - num: BigNumber; - flag: boolean; -} -export type ReceivedPayableEvent = TypedEvent< - [string, BigNumber, string, BigNumber, boolean], - ReceivedPayableEventObject ->; - -export type ReceivedPayableEventFilter = TypedEventFilter; - -export interface RevertedEventObject { - destination: string; - value: BigNumber; - data: string; -} -export type RevertedEvent = TypedEvent< - [string, BigNumber, string], - RevertedEventObject ->; - -export type RevertedEventFilter = TypedEventFilter; - -export interface RevertedWithERC20EventObject { - token: string; - to: string; - amount: BigNumber; - data: string; -} -export type RevertedWithERC20Event = TypedEvent< - [string, string, BigNumber, string], - RevertedWithERC20EventObject ->; - -export type RevertedWithERC20EventFilter = - TypedEventFilter; - -export interface WithdrawalEventObject { - from: string; - zrc20: string; - to: string; - value: BigNumber; - gasfee: BigNumber; - protocolFlatFee: BigNumber; - message: string; -} -export type WithdrawalEvent = TypedEvent< - [string, string, string, BigNumber, BigNumber, BigNumber, string], - WithdrawalEventObject ->; - -export type WithdrawalEventFilter = TypedEventFilter; - -export interface logEventObject { - arg0: string; -} -export type logEvent = TypedEvent<[string], logEventObject>; - -export type logEventFilter = TypedEventFilter; - -export interface log_addressEventObject { - arg0: string; -} -export type log_addressEvent = TypedEvent<[string], log_addressEventObject>; - -export type log_addressEventFilter = TypedEventFilter; - -export interface log_array_uint256_array_EventObject { - val: BigNumber[]; -} -export type log_array_uint256_array_Event = TypedEvent< - [BigNumber[]], - log_array_uint256_array_EventObject ->; - -export type log_array_uint256_array_EventFilter = - TypedEventFilter; - -export interface log_array_int256_array_EventObject { - val: BigNumber[]; -} -export type log_array_int256_array_Event = TypedEvent< - [BigNumber[]], - log_array_int256_array_EventObject ->; - -export type log_array_int256_array_EventFilter = - TypedEventFilter; - -export interface log_array_address_array_EventObject { - val: string[]; -} -export type log_array_address_array_Event = TypedEvent< - [string[]], - log_array_address_array_EventObject ->; - -export type log_array_address_array_EventFilter = - TypedEventFilter; - -export interface log_bytesEventObject { - arg0: string; -} -export type log_bytesEvent = TypedEvent<[string], log_bytesEventObject>; - -export type log_bytesEventFilter = TypedEventFilter; - -export interface log_bytes32EventObject { - arg0: string; -} -export type log_bytes32Event = TypedEvent<[string], log_bytes32EventObject>; - -export type log_bytes32EventFilter = TypedEventFilter; - -export interface log_intEventObject { - arg0: BigNumber; -} -export type log_intEvent = TypedEvent<[BigNumber], log_intEventObject>; - -export type log_intEventFilter = TypedEventFilter; - -export interface log_named_addressEventObject { - key: string; - val: string; -} -export type log_named_addressEvent = TypedEvent< - [string, string], - log_named_addressEventObject ->; - -export type log_named_addressEventFilter = - TypedEventFilter; - -export interface log_named_array_string_uint256_array_EventObject { - key: string; - val: BigNumber[]; -} -export type log_named_array_string_uint256_array_Event = TypedEvent< - [string, BigNumber[]], - log_named_array_string_uint256_array_EventObject ->; - -export type log_named_array_string_uint256_array_EventFilter = - TypedEventFilter; - -export interface log_named_array_string_int256_array_EventObject { - key: string; - val: BigNumber[]; -} -export type log_named_array_string_int256_array_Event = TypedEvent< - [string, BigNumber[]], - log_named_array_string_int256_array_EventObject ->; - -export type log_named_array_string_int256_array_EventFilter = - TypedEventFilter; - -export interface log_named_array_string_address_array_EventObject { - key: string; - val: string[]; -} -export type log_named_array_string_address_array_Event = TypedEvent< - [string, string[]], - log_named_array_string_address_array_EventObject ->; - -export type log_named_array_string_address_array_EventFilter = - TypedEventFilter; - -export interface log_named_bytesEventObject { - key: string; - val: string; -} -export type log_named_bytesEvent = TypedEvent< - [string, string], - log_named_bytesEventObject ->; - -export type log_named_bytesEventFilter = TypedEventFilter; - -export interface log_named_bytes32EventObject { - key: string; - val: string; -} -export type log_named_bytes32Event = TypedEvent< - [string, string], - log_named_bytes32EventObject ->; - -export type log_named_bytes32EventFilter = - TypedEventFilter; - -export interface log_named_decimal_intEventObject { - key: string; - val: BigNumber; - decimals: BigNumber; -} -export type log_named_decimal_intEvent = TypedEvent< - [string, BigNumber, BigNumber], - log_named_decimal_intEventObject ->; - -export type log_named_decimal_intEventFilter = - TypedEventFilter; - -export interface log_named_decimal_uintEventObject { - key: string; - val: BigNumber; - decimals: BigNumber; -} -export type log_named_decimal_uintEvent = TypedEvent< - [string, BigNumber, BigNumber], - log_named_decimal_uintEventObject ->; - -export type log_named_decimal_uintEventFilter = - TypedEventFilter; - -export interface log_named_intEventObject { - key: string; - val: BigNumber; -} -export type log_named_intEvent = TypedEvent< - [string, BigNumber], - log_named_intEventObject ->; - -export type log_named_intEventFilter = TypedEventFilter; - -export interface log_named_stringEventObject { - key: string; - val: string; -} -export type log_named_stringEvent = TypedEvent< - [string, string], - log_named_stringEventObject ->; - -export type log_named_stringEventFilter = - TypedEventFilter; - -export interface log_named_uintEventObject { - key: string; - val: BigNumber; -} -export type log_named_uintEvent = TypedEvent< - [string, BigNumber], - log_named_uintEventObject ->; - -export type log_named_uintEventFilter = TypedEventFilter; - -export interface log_stringEventObject { - arg0: string; -} -export type log_stringEvent = TypedEvent<[string], log_stringEventObject>; - -export type log_stringEventFilter = TypedEventFilter; - -export interface log_uintEventObject { - arg0: BigNumber; -} -export type log_uintEvent = TypedEvent<[BigNumber], log_uintEventObject>; - -export type log_uintEventFilter = TypedEventFilter; - -export interface logsEventObject { - arg0: string; -} -export type logsEvent = TypedEvent<[string], logsEventObject>; - -export type logsEventFilter = TypedEventFilter; - -export interface GatewayEVMZEVMTest extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: GatewayEVMZEVMTestInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - IS_TEST(overrides?: CallOverrides): Promise<[boolean]>; - - excludeArtifacts( - overrides?: CallOverrides - ): Promise<[string[]] & { excludedArtifacts_: string[] }>; - - excludeContracts( - overrides?: CallOverrides - ): Promise<[string[]] & { excludedContracts_: string[] }>; - - excludeSelectors( - overrides?: CallOverrides - ): Promise< - [StdInvariant.FuzzSelectorStructOutput[]] & { - excludedSelectors_: StdInvariant.FuzzSelectorStructOutput[]; - } - >; - - excludeSenders( - overrides?: CallOverrides - ): Promise<[string[]] & { excludedSenders_: string[] }>; - - failed(overrides?: CallOverrides): Promise<[boolean]>; - - setUp( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - targetArtifactSelectors( - overrides?: CallOverrides - ): Promise< - [StdInvariant.FuzzArtifactSelectorStructOutput[]] & { - targetedArtifactSelectors_: StdInvariant.FuzzArtifactSelectorStructOutput[]; - } - >; - - targetArtifacts( - overrides?: CallOverrides - ): Promise<[string[]] & { targetedArtifacts_: string[] }>; - - targetContracts( - overrides?: CallOverrides - ): Promise<[string[]] & { targetedContracts_: string[] }>; - - targetInterfaces( - overrides?: CallOverrides - ): Promise< - [StdInvariant.FuzzInterfaceStructOutput[]] & { - targetedInterfaces_: StdInvariant.FuzzInterfaceStructOutput[]; - } - >; - - targetSelectors( - overrides?: CallOverrides - ): Promise< - [StdInvariant.FuzzSelectorStructOutput[]] & { - targetedSelectors_: StdInvariant.FuzzSelectorStructOutput[]; - } - >; - - targetSenders( - overrides?: CallOverrides - ): Promise<[string[]] & { targetedSenders_: string[] }>; - - testCallReceiverEVMFromSenderZEVM( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testCallReceiverEVMFromZEVM( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testWithdrawAndCallReceiverEVMFromSenderZEVM( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testWithdrawAndCallReceiverEVMFromZEVM( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - IS_TEST(overrides?: CallOverrides): Promise; - - excludeArtifacts(overrides?: CallOverrides): Promise; - - excludeContracts(overrides?: CallOverrides): Promise; - - excludeSelectors( - overrides?: CallOverrides - ): Promise; - - excludeSenders(overrides?: CallOverrides): Promise; - - failed(overrides?: CallOverrides): Promise; - - setUp( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - targetArtifactSelectors( - overrides?: CallOverrides - ): Promise; - - targetArtifacts(overrides?: CallOverrides): Promise; - - targetContracts(overrides?: CallOverrides): Promise; - - targetInterfaces( - overrides?: CallOverrides - ): Promise; - - targetSelectors( - overrides?: CallOverrides - ): Promise; - - targetSenders(overrides?: CallOverrides): Promise; - - testCallReceiverEVMFromSenderZEVM( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testCallReceiverEVMFromZEVM( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testWithdrawAndCallReceiverEVMFromSenderZEVM( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testWithdrawAndCallReceiverEVMFromZEVM( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - IS_TEST(overrides?: CallOverrides): Promise; - - excludeArtifacts(overrides?: CallOverrides): Promise; - - excludeContracts(overrides?: CallOverrides): Promise; - - excludeSelectors( - overrides?: CallOverrides - ): Promise; - - excludeSenders(overrides?: CallOverrides): Promise; - - failed(overrides?: CallOverrides): Promise; - - setUp(overrides?: CallOverrides): Promise; - - targetArtifactSelectors( - overrides?: CallOverrides - ): Promise; - - targetArtifacts(overrides?: CallOverrides): Promise; - - targetContracts(overrides?: CallOverrides): Promise; - - targetInterfaces( - overrides?: CallOverrides - ): Promise; - - targetSelectors( - overrides?: CallOverrides - ): Promise; - - targetSenders(overrides?: CallOverrides): Promise; - - testCallReceiverEVMFromSenderZEVM(overrides?: CallOverrides): Promise; - - testCallReceiverEVMFromZEVM(overrides?: CallOverrides): Promise; - - testWithdrawAndCallReceiverEVMFromSenderZEVM( - overrides?: CallOverrides - ): Promise; - - testWithdrawAndCallReceiverEVMFromZEVM( - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "Call(address,bytes,bytes)"( - sender?: PromiseOrValue | null, - receiver?: null, - message?: null - ): Call_address_bytes_bytes_EventFilter; - "Call(address,address,bytes)"( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - payload?: null - ): Call_address_address_bytes_EventFilter; - - "Deposit(address,address,uint256,address,bytes)"( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - amount?: null, - asset?: null, - payload?: null - ): DepositEventFilter; - Deposit( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - amount?: null, - asset?: null, - payload?: null - ): DepositEventFilter; - - "Executed(address,uint256,bytes)"( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): ExecutedEventFilter; - Executed( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): ExecutedEventFilter; - - "ExecutedWithERC20(address,address,uint256,bytes)"( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): ExecutedWithERC20EventFilter; - ExecutedWithERC20( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): ExecutedWithERC20EventFilter; - - "ReceivedERC20(address,uint256,address,address)"( - sender?: null, - amount?: null, - token?: null, - destination?: null - ): ReceivedERC20EventFilter; - ReceivedERC20( - sender?: null, - amount?: null, - token?: null, - destination?: null - ): ReceivedERC20EventFilter; - - "ReceivedNoParams(address)"(sender?: null): ReceivedNoParamsEventFilter; - ReceivedNoParams(sender?: null): ReceivedNoParamsEventFilter; - - "ReceivedNonPayable(address,string[],uint256[],bool)"( - sender?: null, - strs?: null, - nums?: null, - flag?: null - ): ReceivedNonPayableEventFilter; - ReceivedNonPayable( - sender?: null, - strs?: null, - nums?: null, - flag?: null - ): ReceivedNonPayableEventFilter; - - "ReceivedPayable(address,uint256,string,uint256,bool)"( - sender?: null, - value?: null, - str?: null, - num?: null, - flag?: null - ): ReceivedPayableEventFilter; - ReceivedPayable( - sender?: null, - value?: null, - str?: null, - num?: null, - flag?: null - ): ReceivedPayableEventFilter; - - "Withdrawal(address,address,bytes,uint256,uint256,uint256,bytes)"( - from?: PromiseOrValue | null, - zrc20?: null, - to?: null, - value?: null, - gasfee?: null, - protocolFlatFee?: null, - message?: null - ): WithdrawalEventFilter; - Withdrawal( - from?: PromiseOrValue | null, - zrc20?: null, - to?: null, - value?: null, - gasfee?: null, - protocolFlatFee?: null, - message?: null - ): WithdrawalEventFilter; - - "log(string)"(arg0?: null): logEventFilter; - log(arg0?: null): logEventFilter; - - "log_address(address)"(arg0?: null): log_addressEventFilter; - log_address(arg0?: null): log_addressEventFilter; - - "log_array(uint256[])"(val?: null): log_array_uint256_array_EventFilter; - "log_array(int256[])"(val?: null): log_array_int256_array_EventFilter; - "log_array(address[])"(val?: null): log_array_address_array_EventFilter; - - "log_bytes(bytes)"(arg0?: null): log_bytesEventFilter; - log_bytes(arg0?: null): log_bytesEventFilter; - - "log_bytes32(bytes32)"(arg0?: null): log_bytes32EventFilter; - log_bytes32(arg0?: null): log_bytes32EventFilter; - - "log_int(int256)"(arg0?: null): log_intEventFilter; - log_int(arg0?: null): log_intEventFilter; - - "log_named_address(string,address)"( - key?: null, - val?: null - ): log_named_addressEventFilter; - log_named_address(key?: null, val?: null): log_named_addressEventFilter; - - "log_named_array(string,uint256[])"( - key?: null, - val?: null - ): log_named_array_string_uint256_array_EventFilter; - "log_named_array(string,int256[])"( - key?: null, - val?: null - ): log_named_array_string_int256_array_EventFilter; - "log_named_array(string,address[])"( - key?: null, - val?: null - ): log_named_array_string_address_array_EventFilter; - - "log_named_bytes(string,bytes)"( - key?: null, - val?: null - ): log_named_bytesEventFilter; - log_named_bytes(key?: null, val?: null): log_named_bytesEventFilter; - - "log_named_bytes32(string,bytes32)"( - key?: null, - val?: null - ): log_named_bytes32EventFilter; - log_named_bytes32(key?: null, val?: null): log_named_bytes32EventFilter; - - "log_named_decimal_int(string,int256,uint256)"( - key?: null, - val?: null, - decimals?: null - ): log_named_decimal_intEventFilter; - log_named_decimal_int( - key?: null, - val?: null, - decimals?: null - ): log_named_decimal_intEventFilter; - - "log_named_decimal_uint(string,uint256,uint256)"( - key?: null, - val?: null, - decimals?: null - ): log_named_decimal_uintEventFilter; - log_named_decimal_uint( - key?: null, - val?: null, - decimals?: null - ): log_named_decimal_uintEventFilter; - - "log_named_int(string,int256)"( - key?: null, - val?: null - ): log_named_intEventFilter; - log_named_int(key?: null, val?: null): log_named_intEventFilter; - - "log_named_string(string,string)"( - key?: null, - val?: null - ): log_named_stringEventFilter; - log_named_string(key?: null, val?: null): log_named_stringEventFilter; - - "log_named_uint(string,uint256)"( - key?: null, - val?: null - ): log_named_uintEventFilter; - log_named_uint(key?: null, val?: null): log_named_uintEventFilter; - - "log_string(string)"(arg0?: null): log_stringEventFilter; - log_string(arg0?: null): log_stringEventFilter; - - "log_uint(uint256)"(arg0?: null): log_uintEventFilter; - log_uint(arg0?: null): log_uintEventFilter; - - "logs(bytes)"(arg0?: null): logsEventFilter; - logs(arg0?: null): logsEventFilter; - }; - - estimateGas: { - IS_TEST(overrides?: CallOverrides): Promise; - - excludeArtifacts(overrides?: CallOverrides): Promise; - - excludeContracts(overrides?: CallOverrides): Promise; - - excludeSelectors(overrides?: CallOverrides): Promise; - - excludeSenders(overrides?: CallOverrides): Promise; - - failed(overrides?: CallOverrides): Promise; - - setUp( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - targetArtifactSelectors(overrides?: CallOverrides): Promise; - - targetArtifacts(overrides?: CallOverrides): Promise; - - targetContracts(overrides?: CallOverrides): Promise; - - targetInterfaces(overrides?: CallOverrides): Promise; - - targetSelectors(overrides?: CallOverrides): Promise; - - targetSenders(overrides?: CallOverrides): Promise; - - testCallReceiverEVMFromSenderZEVM( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testCallReceiverEVMFromZEVM( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testWithdrawAndCallReceiverEVMFromSenderZEVM( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testWithdrawAndCallReceiverEVMFromZEVM( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - IS_TEST(overrides?: CallOverrides): Promise; - - excludeArtifacts(overrides?: CallOverrides): Promise; - - excludeContracts(overrides?: CallOverrides): Promise; - - excludeSelectors(overrides?: CallOverrides): Promise; - - excludeSenders(overrides?: CallOverrides): Promise; - - failed(overrides?: CallOverrides): Promise; - - setUp( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - targetArtifactSelectors( - overrides?: CallOverrides - ): Promise; - - targetArtifacts(overrides?: CallOverrides): Promise; - - targetContracts(overrides?: CallOverrides): Promise; - - targetInterfaces(overrides?: CallOverrides): Promise; - - targetSelectors(overrides?: CallOverrides): Promise; - - targetSenders(overrides?: CallOverrides): Promise; - - testCallReceiverEVMFromSenderZEVM( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testCallReceiverEVMFromZEVM( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testWithdrawAndCallReceiverEVMFromSenderZEVM( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testWithdrawAndCallReceiverEVMFromZEVM( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/test/GatewayIntegration.t.sol/GatewayIntegrationTest.ts b/typechain-types/contracts/prototypes/test/GatewayIntegration.t.sol/GatewayIntegrationTest.ts deleted file mode 100644 index 5dbb0271..00000000 --- a/typechain-types/contracts/prototypes/test/GatewayIntegration.t.sol/GatewayIntegrationTest.ts +++ /dev/null @@ -1,1078 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../../common"; - -export declare namespace StdInvariant { - export type FuzzSelectorStruct = { - addr: PromiseOrValue; - selectors: PromiseOrValue[]; - }; - - export type FuzzSelectorStructOutput = [string, string[]] & { - addr: string; - selectors: string[]; - }; - - export type FuzzArtifactSelectorStruct = { - artifact: PromiseOrValue; - selectors: PromiseOrValue[]; - }; - - export type FuzzArtifactSelectorStructOutput = [string, string[]] & { - artifact: string; - selectors: string[]; - }; - - export type FuzzInterfaceStruct = { - addr: PromiseOrValue; - artifacts: PromiseOrValue[]; - }; - - export type FuzzInterfaceStructOutput = [string, string[]] & { - addr: string; - artifacts: string[]; - }; -} - -export interface GatewayIntegrationTestInterface extends utils.Interface { - functions: { - "IS_TEST()": FunctionFragment; - "excludeArtifacts()": FunctionFragment; - "excludeContracts()": FunctionFragment; - "excludeSelectors()": FunctionFragment; - "excludeSenders()": FunctionFragment; - "failed()": FunctionFragment; - "setUp()": FunctionFragment; - "targetArtifactSelectors()": FunctionFragment; - "targetArtifacts()": FunctionFragment; - "targetContracts()": FunctionFragment; - "targetInterfaces()": FunctionFragment; - "targetSelectors()": FunctionFragment; - "targetSenders()": FunctionFragment; - "testCallReceiverEVMFromZEVM()": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "IS_TEST" - | "excludeArtifacts" - | "excludeContracts" - | "excludeSelectors" - | "excludeSenders" - | "failed" - | "setUp" - | "targetArtifactSelectors" - | "targetArtifacts" - | "targetContracts" - | "targetInterfaces" - | "targetSelectors" - | "targetSenders" - | "testCallReceiverEVMFromZEVM" - ): FunctionFragment; - - 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: "setUp", 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; - encodeFunctionData( - functionFragment: "testCallReceiverEVMFromZEVM", - 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: "setUp", 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; - decodeFunctionResult( - functionFragment: "testCallReceiverEVMFromZEVM", - data: BytesLike - ): Result; - - events: { - "Call(address,bytes,bytes)": EventFragment; - "Call(address,address,bytes)": EventFragment; - "Deposit(address,address,uint256,address,bytes)": EventFragment; - "Executed(address,uint256,bytes)": EventFragment; - "ExecutedWithERC20(address,address,uint256,bytes)": EventFragment; - "ReceivedERC20(address,uint256,address,address)": EventFragment; - "ReceivedNoParams(address)": EventFragment; - "ReceivedNonPayable(address,string[],uint256[],bool)": EventFragment; - "ReceivedPayable(address,uint256,string,uint256,bool)": EventFragment; - "Withdrawal(address,bytes,uint256,uint256,uint256,bytes)": EventFragment; - "log(string)": EventFragment; - "log_address(address)": EventFragment; - "log_array(uint256[])": EventFragment; - "log_array(int256[])": EventFragment; - "log_array(address[])": EventFragment; - "log_bytes(bytes)": EventFragment; - "log_bytes32(bytes32)": EventFragment; - "log_int(int256)": EventFragment; - "log_named_address(string,address)": EventFragment; - "log_named_array(string,uint256[])": EventFragment; - "log_named_array(string,int256[])": EventFragment; - "log_named_array(string,address[])": EventFragment; - "log_named_bytes(string,bytes)": EventFragment; - "log_named_bytes32(string,bytes32)": EventFragment; - "log_named_decimal_int(string,int256,uint256)": EventFragment; - "log_named_decimal_uint(string,uint256,uint256)": EventFragment; - "log_named_int(string,int256)": EventFragment; - "log_named_string(string,string)": EventFragment; - "log_named_uint(string,uint256)": EventFragment; - "log_string(string)": EventFragment; - "log_uint(uint256)": EventFragment; - "logs(bytes)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Call(address,bytes,bytes)"): EventFragment; - getEvent( - nameOrSignatureOrTopic: "Call(address,address,bytes)" - ): EventFragment; - getEvent(nameOrSignatureOrTopic: "Deposit"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Executed"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ExecutedWithERC20"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ReceivedERC20"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ReceivedNoParams"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ReceivedNonPayable"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ReceivedPayable"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Withdrawal"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_address"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_array(uint256[])"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_array(int256[])"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_array(address[])"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_bytes"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_bytes32"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_int"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_address"): EventFragment; - getEvent( - nameOrSignatureOrTopic: "log_named_array(string,uint256[])" - ): EventFragment; - getEvent( - nameOrSignatureOrTopic: "log_named_array(string,int256[])" - ): EventFragment; - getEvent( - nameOrSignatureOrTopic: "log_named_array(string,address[])" - ): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_bytes"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_bytes32"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_decimal_int"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_decimal_uint"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_int"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_string"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_uint"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_string"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_uint"): EventFragment; - getEvent(nameOrSignatureOrTopic: "logs"): EventFragment; -} - -export interface Call_address_bytes_bytes_EventObject { - sender: string; - receiver: string; - message: string; -} -export type Call_address_bytes_bytes_Event = TypedEvent< - [string, string, string], - Call_address_bytes_bytes_EventObject ->; - -export type Call_address_bytes_bytes_EventFilter = - TypedEventFilter; - -export interface Call_address_address_bytes_EventObject { - sender: string; - receiver: string; - payload: string; -} -export type Call_address_address_bytes_Event = TypedEvent< - [string, string, string], - Call_address_address_bytes_EventObject ->; - -export type Call_address_address_bytes_EventFilter = - TypedEventFilter; - -export interface DepositEventObject { - sender: string; - receiver: string; - amount: BigNumber; - asset: string; - payload: string; -} -export type DepositEvent = TypedEvent< - [string, string, BigNumber, string, string], - DepositEventObject ->; - -export type DepositEventFilter = TypedEventFilter; - -export interface ExecutedEventObject { - destination: string; - value: BigNumber; - data: string; -} -export type ExecutedEvent = TypedEvent< - [string, BigNumber, string], - ExecutedEventObject ->; - -export type ExecutedEventFilter = TypedEventFilter; - -export interface ExecutedWithERC20EventObject { - token: string; - to: string; - amount: BigNumber; - data: string; -} -export type ExecutedWithERC20Event = TypedEvent< - [string, string, BigNumber, string], - ExecutedWithERC20EventObject ->; - -export type ExecutedWithERC20EventFilter = - TypedEventFilter; - -export interface ReceivedERC20EventObject { - sender: string; - amount: BigNumber; - token: string; - destination: string; -} -export type ReceivedERC20Event = TypedEvent< - [string, BigNumber, string, string], - ReceivedERC20EventObject ->; - -export type ReceivedERC20EventFilter = TypedEventFilter; - -export interface ReceivedNoParamsEventObject { - sender: string; -} -export type ReceivedNoParamsEvent = TypedEvent< - [string], - ReceivedNoParamsEventObject ->; - -export type ReceivedNoParamsEventFilter = - TypedEventFilter; - -export interface ReceivedNonPayableEventObject { - sender: string; - strs: string[]; - nums: BigNumber[]; - flag: boolean; -} -export type ReceivedNonPayableEvent = TypedEvent< - [string, string[], BigNumber[], boolean], - ReceivedNonPayableEventObject ->; - -export type ReceivedNonPayableEventFilter = - TypedEventFilter; - -export interface ReceivedPayableEventObject { - sender: string; - value: BigNumber; - str: string; - num: BigNumber; - flag: boolean; -} -export type ReceivedPayableEvent = TypedEvent< - [string, BigNumber, string, BigNumber, boolean], - ReceivedPayableEventObject ->; - -export type ReceivedPayableEventFilter = TypedEventFilter; - -export interface WithdrawalEventObject { - from: string; - to: string; - value: BigNumber; - gasfee: BigNumber; - protocolFlatFee: BigNumber; - message: string; -} -export type WithdrawalEvent = TypedEvent< - [string, string, BigNumber, BigNumber, BigNumber, string], - WithdrawalEventObject ->; - -export type WithdrawalEventFilter = TypedEventFilter; - -export interface logEventObject { - arg0: string; -} -export type logEvent = TypedEvent<[string], logEventObject>; - -export type logEventFilter = TypedEventFilter; - -export interface log_addressEventObject { - arg0: string; -} -export type log_addressEvent = TypedEvent<[string], log_addressEventObject>; - -export type log_addressEventFilter = TypedEventFilter; - -export interface log_array_uint256_array_EventObject { - val: BigNumber[]; -} -export type log_array_uint256_array_Event = TypedEvent< - [BigNumber[]], - log_array_uint256_array_EventObject ->; - -export type log_array_uint256_array_EventFilter = - TypedEventFilter; - -export interface log_array_int256_array_EventObject { - val: BigNumber[]; -} -export type log_array_int256_array_Event = TypedEvent< - [BigNumber[]], - log_array_int256_array_EventObject ->; - -export type log_array_int256_array_EventFilter = - TypedEventFilter; - -export interface log_array_address_array_EventObject { - val: string[]; -} -export type log_array_address_array_Event = TypedEvent< - [string[]], - log_array_address_array_EventObject ->; - -export type log_array_address_array_EventFilter = - TypedEventFilter; - -export interface log_bytesEventObject { - arg0: string; -} -export type log_bytesEvent = TypedEvent<[string], log_bytesEventObject>; - -export type log_bytesEventFilter = TypedEventFilter; - -export interface log_bytes32EventObject { - arg0: string; -} -export type log_bytes32Event = TypedEvent<[string], log_bytes32EventObject>; - -export type log_bytes32EventFilter = TypedEventFilter; - -export interface log_intEventObject { - arg0: BigNumber; -} -export type log_intEvent = TypedEvent<[BigNumber], log_intEventObject>; - -export type log_intEventFilter = TypedEventFilter; - -export interface log_named_addressEventObject { - key: string; - val: string; -} -export type log_named_addressEvent = TypedEvent< - [string, string], - log_named_addressEventObject ->; - -export type log_named_addressEventFilter = - TypedEventFilter; - -export interface log_named_array_string_uint256_array_EventObject { - key: string; - val: BigNumber[]; -} -export type log_named_array_string_uint256_array_Event = TypedEvent< - [string, BigNumber[]], - log_named_array_string_uint256_array_EventObject ->; - -export type log_named_array_string_uint256_array_EventFilter = - TypedEventFilter; - -export interface log_named_array_string_int256_array_EventObject { - key: string; - val: BigNumber[]; -} -export type log_named_array_string_int256_array_Event = TypedEvent< - [string, BigNumber[]], - log_named_array_string_int256_array_EventObject ->; - -export type log_named_array_string_int256_array_EventFilter = - TypedEventFilter; - -export interface log_named_array_string_address_array_EventObject { - key: string; - val: string[]; -} -export type log_named_array_string_address_array_Event = TypedEvent< - [string, string[]], - log_named_array_string_address_array_EventObject ->; - -export type log_named_array_string_address_array_EventFilter = - TypedEventFilter; - -export interface log_named_bytesEventObject { - key: string; - val: string; -} -export type log_named_bytesEvent = TypedEvent< - [string, string], - log_named_bytesEventObject ->; - -export type log_named_bytesEventFilter = TypedEventFilter; - -export interface log_named_bytes32EventObject { - key: string; - val: string; -} -export type log_named_bytes32Event = TypedEvent< - [string, string], - log_named_bytes32EventObject ->; - -export type log_named_bytes32EventFilter = - TypedEventFilter; - -export interface log_named_decimal_intEventObject { - key: string; - val: BigNumber; - decimals: BigNumber; -} -export type log_named_decimal_intEvent = TypedEvent< - [string, BigNumber, BigNumber], - log_named_decimal_intEventObject ->; - -export type log_named_decimal_intEventFilter = - TypedEventFilter; - -export interface log_named_decimal_uintEventObject { - key: string; - val: BigNumber; - decimals: BigNumber; -} -export type log_named_decimal_uintEvent = TypedEvent< - [string, BigNumber, BigNumber], - log_named_decimal_uintEventObject ->; - -export type log_named_decimal_uintEventFilter = - TypedEventFilter; - -export interface log_named_intEventObject { - key: string; - val: BigNumber; -} -export type log_named_intEvent = TypedEvent< - [string, BigNumber], - log_named_intEventObject ->; - -export type log_named_intEventFilter = TypedEventFilter; - -export interface log_named_stringEventObject { - key: string; - val: string; -} -export type log_named_stringEvent = TypedEvent< - [string, string], - log_named_stringEventObject ->; - -export type log_named_stringEventFilter = - TypedEventFilter; - -export interface log_named_uintEventObject { - key: string; - val: BigNumber; -} -export type log_named_uintEvent = TypedEvent< - [string, BigNumber], - log_named_uintEventObject ->; - -export type log_named_uintEventFilter = TypedEventFilter; - -export interface log_stringEventObject { - arg0: string; -} -export type log_stringEvent = TypedEvent<[string], log_stringEventObject>; - -export type log_stringEventFilter = TypedEventFilter; - -export interface log_uintEventObject { - arg0: BigNumber; -} -export type log_uintEvent = TypedEvent<[BigNumber], log_uintEventObject>; - -export type log_uintEventFilter = TypedEventFilter; - -export interface logsEventObject { - arg0: string; -} -export type logsEvent = TypedEvent<[string], logsEventObject>; - -export type logsEventFilter = TypedEventFilter; - -export interface GatewayIntegrationTest extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: GatewayIntegrationTestInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - IS_TEST(overrides?: CallOverrides): Promise<[boolean]>; - - excludeArtifacts( - overrides?: CallOverrides - ): Promise<[string[]] & { excludedArtifacts_: string[] }>; - - excludeContracts( - overrides?: CallOverrides - ): Promise<[string[]] & { excludedContracts_: string[] }>; - - excludeSelectors( - overrides?: CallOverrides - ): Promise< - [StdInvariant.FuzzSelectorStructOutput[]] & { - excludedSelectors_: StdInvariant.FuzzSelectorStructOutput[]; - } - >; - - excludeSenders( - overrides?: CallOverrides - ): Promise<[string[]] & { excludedSenders_: string[] }>; - - failed(overrides?: CallOverrides): Promise<[boolean]>; - - setUp( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - targetArtifactSelectors( - overrides?: CallOverrides - ): Promise< - [StdInvariant.FuzzArtifactSelectorStructOutput[]] & { - targetedArtifactSelectors_: StdInvariant.FuzzArtifactSelectorStructOutput[]; - } - >; - - targetArtifacts( - overrides?: CallOverrides - ): Promise<[string[]] & { targetedArtifacts_: string[] }>; - - targetContracts( - overrides?: CallOverrides - ): Promise<[string[]] & { targetedContracts_: string[] }>; - - targetInterfaces( - overrides?: CallOverrides - ): Promise< - [StdInvariant.FuzzInterfaceStructOutput[]] & { - targetedInterfaces_: StdInvariant.FuzzInterfaceStructOutput[]; - } - >; - - targetSelectors( - overrides?: CallOverrides - ): Promise< - [StdInvariant.FuzzSelectorStructOutput[]] & { - targetedSelectors_: StdInvariant.FuzzSelectorStructOutput[]; - } - >; - - targetSenders( - overrides?: CallOverrides - ): Promise<[string[]] & { targetedSenders_: string[] }>; - - testCallReceiverEVMFromZEVM( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - IS_TEST(overrides?: CallOverrides): Promise; - - excludeArtifacts(overrides?: CallOverrides): Promise; - - excludeContracts(overrides?: CallOverrides): Promise; - - excludeSelectors( - overrides?: CallOverrides - ): Promise; - - excludeSenders(overrides?: CallOverrides): Promise; - - failed(overrides?: CallOverrides): Promise; - - setUp( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - targetArtifactSelectors( - overrides?: CallOverrides - ): Promise; - - targetArtifacts(overrides?: CallOverrides): Promise; - - targetContracts(overrides?: CallOverrides): Promise; - - targetInterfaces( - overrides?: CallOverrides - ): Promise; - - targetSelectors( - overrides?: CallOverrides - ): Promise; - - targetSenders(overrides?: CallOverrides): Promise; - - testCallReceiverEVMFromZEVM( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - IS_TEST(overrides?: CallOverrides): Promise; - - excludeArtifacts(overrides?: CallOverrides): Promise; - - excludeContracts(overrides?: CallOverrides): Promise; - - excludeSelectors( - overrides?: CallOverrides - ): Promise; - - excludeSenders(overrides?: CallOverrides): Promise; - - failed(overrides?: CallOverrides): Promise; - - setUp(overrides?: CallOverrides): Promise; - - targetArtifactSelectors( - overrides?: CallOverrides - ): Promise; - - targetArtifacts(overrides?: CallOverrides): Promise; - - targetContracts(overrides?: CallOverrides): Promise; - - targetInterfaces( - overrides?: CallOverrides - ): Promise; - - targetSelectors( - overrides?: CallOverrides - ): Promise; - - targetSenders(overrides?: CallOverrides): Promise; - - testCallReceiverEVMFromZEVM(overrides?: CallOverrides): Promise; - }; - - filters: { - "Call(address,bytes,bytes)"( - sender?: PromiseOrValue | null, - receiver?: null, - message?: null - ): Call_address_bytes_bytes_EventFilter; - "Call(address,address,bytes)"( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - payload?: null - ): Call_address_address_bytes_EventFilter; - - "Deposit(address,address,uint256,address,bytes)"( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - amount?: null, - asset?: null, - payload?: null - ): DepositEventFilter; - Deposit( - sender?: PromiseOrValue | null, - receiver?: PromiseOrValue | null, - amount?: null, - asset?: null, - payload?: null - ): DepositEventFilter; - - "Executed(address,uint256,bytes)"( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): ExecutedEventFilter; - Executed( - destination?: PromiseOrValue | null, - value?: null, - data?: null - ): ExecutedEventFilter; - - "ExecutedWithERC20(address,address,uint256,bytes)"( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): ExecutedWithERC20EventFilter; - ExecutedWithERC20( - token?: PromiseOrValue | null, - to?: PromiseOrValue | null, - amount?: null, - data?: null - ): ExecutedWithERC20EventFilter; - - "ReceivedERC20(address,uint256,address,address)"( - sender?: null, - amount?: null, - token?: null, - destination?: null - ): ReceivedERC20EventFilter; - ReceivedERC20( - sender?: null, - amount?: null, - token?: null, - destination?: null - ): ReceivedERC20EventFilter; - - "ReceivedNoParams(address)"(sender?: null): ReceivedNoParamsEventFilter; - ReceivedNoParams(sender?: null): ReceivedNoParamsEventFilter; - - "ReceivedNonPayable(address,string[],uint256[],bool)"( - sender?: null, - strs?: null, - nums?: null, - flag?: null - ): ReceivedNonPayableEventFilter; - ReceivedNonPayable( - sender?: null, - strs?: null, - nums?: null, - flag?: null - ): ReceivedNonPayableEventFilter; - - "ReceivedPayable(address,uint256,string,uint256,bool)"( - sender?: null, - value?: null, - str?: null, - num?: null, - flag?: null - ): ReceivedPayableEventFilter; - ReceivedPayable( - sender?: null, - value?: null, - str?: null, - num?: null, - flag?: null - ): ReceivedPayableEventFilter; - - "Withdrawal(address,bytes,uint256,uint256,uint256,bytes)"( - from?: PromiseOrValue | null, - to?: null, - value?: null, - gasfee?: null, - protocolFlatFee?: null, - message?: null - ): WithdrawalEventFilter; - Withdrawal( - from?: PromiseOrValue | null, - to?: null, - value?: null, - gasfee?: null, - protocolFlatFee?: null, - message?: null - ): WithdrawalEventFilter; - - "log(string)"(arg0?: null): logEventFilter; - log(arg0?: null): logEventFilter; - - "log_address(address)"(arg0?: null): log_addressEventFilter; - log_address(arg0?: null): log_addressEventFilter; - - "log_array(uint256[])"(val?: null): log_array_uint256_array_EventFilter; - "log_array(int256[])"(val?: null): log_array_int256_array_EventFilter; - "log_array(address[])"(val?: null): log_array_address_array_EventFilter; - - "log_bytes(bytes)"(arg0?: null): log_bytesEventFilter; - log_bytes(arg0?: null): log_bytesEventFilter; - - "log_bytes32(bytes32)"(arg0?: null): log_bytes32EventFilter; - log_bytes32(arg0?: null): log_bytes32EventFilter; - - "log_int(int256)"(arg0?: null): log_intEventFilter; - log_int(arg0?: null): log_intEventFilter; - - "log_named_address(string,address)"( - key?: null, - val?: null - ): log_named_addressEventFilter; - log_named_address(key?: null, val?: null): log_named_addressEventFilter; - - "log_named_array(string,uint256[])"( - key?: null, - val?: null - ): log_named_array_string_uint256_array_EventFilter; - "log_named_array(string,int256[])"( - key?: null, - val?: null - ): log_named_array_string_int256_array_EventFilter; - "log_named_array(string,address[])"( - key?: null, - val?: null - ): log_named_array_string_address_array_EventFilter; - - "log_named_bytes(string,bytes)"( - key?: null, - val?: null - ): log_named_bytesEventFilter; - log_named_bytes(key?: null, val?: null): log_named_bytesEventFilter; - - "log_named_bytes32(string,bytes32)"( - key?: null, - val?: null - ): log_named_bytes32EventFilter; - log_named_bytes32(key?: null, val?: null): log_named_bytes32EventFilter; - - "log_named_decimal_int(string,int256,uint256)"( - key?: null, - val?: null, - decimals?: null - ): log_named_decimal_intEventFilter; - log_named_decimal_int( - key?: null, - val?: null, - decimals?: null - ): log_named_decimal_intEventFilter; - - "log_named_decimal_uint(string,uint256,uint256)"( - key?: null, - val?: null, - decimals?: null - ): log_named_decimal_uintEventFilter; - log_named_decimal_uint( - key?: null, - val?: null, - decimals?: null - ): log_named_decimal_uintEventFilter; - - "log_named_int(string,int256)"( - key?: null, - val?: null - ): log_named_intEventFilter; - log_named_int(key?: null, val?: null): log_named_intEventFilter; - - "log_named_string(string,string)"( - key?: null, - val?: null - ): log_named_stringEventFilter; - log_named_string(key?: null, val?: null): log_named_stringEventFilter; - - "log_named_uint(string,uint256)"( - key?: null, - val?: null - ): log_named_uintEventFilter; - log_named_uint(key?: null, val?: null): log_named_uintEventFilter; - - "log_string(string)"(arg0?: null): log_stringEventFilter; - log_string(arg0?: null): log_stringEventFilter; - - "log_uint(uint256)"(arg0?: null): log_uintEventFilter; - log_uint(arg0?: null): log_uintEventFilter; - - "logs(bytes)"(arg0?: null): logsEventFilter; - logs(arg0?: null): logsEventFilter; - }; - - estimateGas: { - IS_TEST(overrides?: CallOverrides): Promise; - - excludeArtifacts(overrides?: CallOverrides): Promise; - - excludeContracts(overrides?: CallOverrides): Promise; - - excludeSelectors(overrides?: CallOverrides): Promise; - - excludeSenders(overrides?: CallOverrides): Promise; - - failed(overrides?: CallOverrides): Promise; - - setUp( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - targetArtifactSelectors(overrides?: CallOverrides): Promise; - - targetArtifacts(overrides?: CallOverrides): Promise; - - targetContracts(overrides?: CallOverrides): Promise; - - targetInterfaces(overrides?: CallOverrides): Promise; - - targetSelectors(overrides?: CallOverrides): Promise; - - targetSenders(overrides?: CallOverrides): Promise; - - testCallReceiverEVMFromZEVM( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - IS_TEST(overrides?: CallOverrides): Promise; - - excludeArtifacts(overrides?: CallOverrides): Promise; - - excludeContracts(overrides?: CallOverrides): Promise; - - excludeSelectors(overrides?: CallOverrides): Promise; - - excludeSenders(overrides?: CallOverrides): Promise; - - failed(overrides?: CallOverrides): Promise; - - setUp( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - targetArtifactSelectors( - overrides?: CallOverrides - ): Promise; - - targetArtifacts(overrides?: CallOverrides): Promise; - - targetContracts(overrides?: CallOverrides): Promise; - - targetInterfaces(overrides?: CallOverrides): Promise; - - targetSelectors(overrides?: CallOverrides): Promise; - - targetSenders(overrides?: CallOverrides): Promise; - - testCallReceiverEVMFromZEVM( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/test/GatewayZEVM.t.sol/GatewayZEVMInboundTest.ts b/typechain-types/contracts/prototypes/test/GatewayZEVM.t.sol/GatewayZEVMInboundTest.ts deleted file mode 100644 index ab4a8e54..00000000 --- a/typechain-types/contracts/prototypes/test/GatewayZEVM.t.sol/GatewayZEVMInboundTest.ts +++ /dev/null @@ -1,918 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../../common"; - -export declare namespace StdInvariant { - export type FuzzSelectorStruct = { - addr: PromiseOrValue; - selectors: PromiseOrValue[]; - }; - - export type FuzzSelectorStructOutput = [string, string[]] & { - addr: string; - selectors: string[]; - }; - - export type FuzzArtifactSelectorStruct = { - artifact: PromiseOrValue; - selectors: PromiseOrValue[]; - }; - - export type FuzzArtifactSelectorStructOutput = [string, string[]] & { - artifact: string; - selectors: string[]; - }; - - export type FuzzInterfaceStruct = { - addr: PromiseOrValue; - artifacts: PromiseOrValue[]; - }; - - export type FuzzInterfaceStructOutput = [string, string[]] & { - addr: string; - artifacts: string[]; - }; -} - -export interface GatewayZEVMInboundTestInterface extends utils.Interface { - functions: { - "IS_TEST()": FunctionFragment; - "excludeArtifacts()": FunctionFragment; - "excludeContracts()": FunctionFragment; - "excludeSelectors()": FunctionFragment; - "excludeSenders()": FunctionFragment; - "failed()": FunctionFragment; - "setUp()": FunctionFragment; - "targetArtifactSelectors()": FunctionFragment; - "targetArtifacts()": FunctionFragment; - "targetContracts()": FunctionFragment; - "targetInterfaces()": FunctionFragment; - "targetSelectors()": FunctionFragment; - "targetSenders()": FunctionFragment; - "testCall()": FunctionFragment; - "testWithdrawZRC20()": FunctionFragment; - "testWithdrawZRC20WithMessage()": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "IS_TEST" - | "excludeArtifacts" - | "excludeContracts" - | "excludeSelectors" - | "excludeSenders" - | "failed" - | "setUp" - | "targetArtifactSelectors" - | "targetArtifacts" - | "targetContracts" - | "targetInterfaces" - | "targetSelectors" - | "targetSenders" - | "testCall" - | "testWithdrawZRC20" - | "testWithdrawZRC20WithMessage" - ): FunctionFragment; - - 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: "setUp", 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; - encodeFunctionData(functionFragment: "testCall", values?: undefined): string; - encodeFunctionData( - functionFragment: "testWithdrawZRC20", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "testWithdrawZRC20WithMessage", - 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: "setUp", 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; - decodeFunctionResult(functionFragment: "testCall", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "testWithdrawZRC20", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "testWithdrawZRC20WithMessage", - data: BytesLike - ): Result; - - events: { - "Call(address,bytes,bytes)": EventFragment; - "Withdrawal(address,bytes,uint256,uint256,uint256,bytes)": EventFragment; - "log(string)": EventFragment; - "log_address(address)": EventFragment; - "log_array(uint256[])": EventFragment; - "log_array(int256[])": EventFragment; - "log_array(address[])": EventFragment; - "log_bytes(bytes)": EventFragment; - "log_bytes32(bytes32)": EventFragment; - "log_int(int256)": EventFragment; - "log_named_address(string,address)": EventFragment; - "log_named_array(string,uint256[])": EventFragment; - "log_named_array(string,int256[])": EventFragment; - "log_named_array(string,address[])": EventFragment; - "log_named_bytes(string,bytes)": EventFragment; - "log_named_bytes32(string,bytes32)": EventFragment; - "log_named_decimal_int(string,int256,uint256)": EventFragment; - "log_named_decimal_uint(string,uint256,uint256)": EventFragment; - "log_named_int(string,int256)": EventFragment; - "log_named_string(string,string)": EventFragment; - "log_named_uint(string,uint256)": EventFragment; - "log_string(string)": EventFragment; - "log_uint(uint256)": EventFragment; - "logs(bytes)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Call"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Withdrawal"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_address"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_array(uint256[])"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_array(int256[])"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_array(address[])"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_bytes"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_bytes32"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_int"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_address"): EventFragment; - getEvent( - nameOrSignatureOrTopic: "log_named_array(string,uint256[])" - ): EventFragment; - getEvent( - nameOrSignatureOrTopic: "log_named_array(string,int256[])" - ): EventFragment; - getEvent( - nameOrSignatureOrTopic: "log_named_array(string,address[])" - ): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_bytes"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_bytes32"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_decimal_int"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_decimal_uint"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_int"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_string"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_uint"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_string"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_uint"): EventFragment; - getEvent(nameOrSignatureOrTopic: "logs"): EventFragment; -} - -export interface CallEventObject { - sender: string; - receiver: string; - message: string; -} -export type CallEvent = TypedEvent<[string, string, string], CallEventObject>; - -export type CallEventFilter = TypedEventFilter; - -export interface WithdrawalEventObject { - from: string; - to: string; - value: BigNumber; - gasfee: BigNumber; - protocolFlatFee: BigNumber; - message: string; -} -export type WithdrawalEvent = TypedEvent< - [string, string, BigNumber, BigNumber, BigNumber, string], - WithdrawalEventObject ->; - -export type WithdrawalEventFilter = TypedEventFilter; - -export interface logEventObject { - arg0: string; -} -export type logEvent = TypedEvent<[string], logEventObject>; - -export type logEventFilter = TypedEventFilter; - -export interface log_addressEventObject { - arg0: string; -} -export type log_addressEvent = TypedEvent<[string], log_addressEventObject>; - -export type log_addressEventFilter = TypedEventFilter; - -export interface log_array_uint256_array_EventObject { - val: BigNumber[]; -} -export type log_array_uint256_array_Event = TypedEvent< - [BigNumber[]], - log_array_uint256_array_EventObject ->; - -export type log_array_uint256_array_EventFilter = - TypedEventFilter; - -export interface log_array_int256_array_EventObject { - val: BigNumber[]; -} -export type log_array_int256_array_Event = TypedEvent< - [BigNumber[]], - log_array_int256_array_EventObject ->; - -export type log_array_int256_array_EventFilter = - TypedEventFilter; - -export interface log_array_address_array_EventObject { - val: string[]; -} -export type log_array_address_array_Event = TypedEvent< - [string[]], - log_array_address_array_EventObject ->; - -export type log_array_address_array_EventFilter = - TypedEventFilter; - -export interface log_bytesEventObject { - arg0: string; -} -export type log_bytesEvent = TypedEvent<[string], log_bytesEventObject>; - -export type log_bytesEventFilter = TypedEventFilter; - -export interface log_bytes32EventObject { - arg0: string; -} -export type log_bytes32Event = TypedEvent<[string], log_bytes32EventObject>; - -export type log_bytes32EventFilter = TypedEventFilter; - -export interface log_intEventObject { - arg0: BigNumber; -} -export type log_intEvent = TypedEvent<[BigNumber], log_intEventObject>; - -export type log_intEventFilter = TypedEventFilter; - -export interface log_named_addressEventObject { - key: string; - val: string; -} -export type log_named_addressEvent = TypedEvent< - [string, string], - log_named_addressEventObject ->; - -export type log_named_addressEventFilter = - TypedEventFilter; - -export interface log_named_array_string_uint256_array_EventObject { - key: string; - val: BigNumber[]; -} -export type log_named_array_string_uint256_array_Event = TypedEvent< - [string, BigNumber[]], - log_named_array_string_uint256_array_EventObject ->; - -export type log_named_array_string_uint256_array_EventFilter = - TypedEventFilter; - -export interface log_named_array_string_int256_array_EventObject { - key: string; - val: BigNumber[]; -} -export type log_named_array_string_int256_array_Event = TypedEvent< - [string, BigNumber[]], - log_named_array_string_int256_array_EventObject ->; - -export type log_named_array_string_int256_array_EventFilter = - TypedEventFilter; - -export interface log_named_array_string_address_array_EventObject { - key: string; - val: string[]; -} -export type log_named_array_string_address_array_Event = TypedEvent< - [string, string[]], - log_named_array_string_address_array_EventObject ->; - -export type log_named_array_string_address_array_EventFilter = - TypedEventFilter; - -export interface log_named_bytesEventObject { - key: string; - val: string; -} -export type log_named_bytesEvent = TypedEvent< - [string, string], - log_named_bytesEventObject ->; - -export type log_named_bytesEventFilter = TypedEventFilter; - -export interface log_named_bytes32EventObject { - key: string; - val: string; -} -export type log_named_bytes32Event = TypedEvent< - [string, string], - log_named_bytes32EventObject ->; - -export type log_named_bytes32EventFilter = - TypedEventFilter; - -export interface log_named_decimal_intEventObject { - key: string; - val: BigNumber; - decimals: BigNumber; -} -export type log_named_decimal_intEvent = TypedEvent< - [string, BigNumber, BigNumber], - log_named_decimal_intEventObject ->; - -export type log_named_decimal_intEventFilter = - TypedEventFilter; - -export interface log_named_decimal_uintEventObject { - key: string; - val: BigNumber; - decimals: BigNumber; -} -export type log_named_decimal_uintEvent = TypedEvent< - [string, BigNumber, BigNumber], - log_named_decimal_uintEventObject ->; - -export type log_named_decimal_uintEventFilter = - TypedEventFilter; - -export interface log_named_intEventObject { - key: string; - val: BigNumber; -} -export type log_named_intEvent = TypedEvent< - [string, BigNumber], - log_named_intEventObject ->; - -export type log_named_intEventFilter = TypedEventFilter; - -export interface log_named_stringEventObject { - key: string; - val: string; -} -export type log_named_stringEvent = TypedEvent< - [string, string], - log_named_stringEventObject ->; - -export type log_named_stringEventFilter = - TypedEventFilter; - -export interface log_named_uintEventObject { - key: string; - val: BigNumber; -} -export type log_named_uintEvent = TypedEvent< - [string, BigNumber], - log_named_uintEventObject ->; - -export type log_named_uintEventFilter = TypedEventFilter; - -export interface log_stringEventObject { - arg0: string; -} -export type log_stringEvent = TypedEvent<[string], log_stringEventObject>; - -export type log_stringEventFilter = TypedEventFilter; - -export interface log_uintEventObject { - arg0: BigNumber; -} -export type log_uintEvent = TypedEvent<[BigNumber], log_uintEventObject>; - -export type log_uintEventFilter = TypedEventFilter; - -export interface logsEventObject { - arg0: string; -} -export type logsEvent = TypedEvent<[string], logsEventObject>; - -export type logsEventFilter = TypedEventFilter; - -export interface GatewayZEVMInboundTest extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: GatewayZEVMInboundTestInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - IS_TEST(overrides?: CallOverrides): Promise<[boolean]>; - - excludeArtifacts( - overrides?: CallOverrides - ): Promise<[string[]] & { excludedArtifacts_: string[] }>; - - excludeContracts( - overrides?: CallOverrides - ): Promise<[string[]] & { excludedContracts_: string[] }>; - - excludeSelectors( - overrides?: CallOverrides - ): Promise< - [StdInvariant.FuzzSelectorStructOutput[]] & { - excludedSelectors_: StdInvariant.FuzzSelectorStructOutput[]; - } - >; - - excludeSenders( - overrides?: CallOverrides - ): Promise<[string[]] & { excludedSenders_: string[] }>; - - failed(overrides?: CallOverrides): Promise<[boolean]>; - - setUp( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - targetArtifactSelectors( - overrides?: CallOverrides - ): Promise< - [StdInvariant.FuzzArtifactSelectorStructOutput[]] & { - targetedArtifactSelectors_: StdInvariant.FuzzArtifactSelectorStructOutput[]; - } - >; - - targetArtifacts( - overrides?: CallOverrides - ): Promise<[string[]] & { targetedArtifacts_: string[] }>; - - targetContracts( - overrides?: CallOverrides - ): Promise<[string[]] & { targetedContracts_: string[] }>; - - targetInterfaces( - overrides?: CallOverrides - ): Promise< - [StdInvariant.FuzzInterfaceStructOutput[]] & { - targetedInterfaces_: StdInvariant.FuzzInterfaceStructOutput[]; - } - >; - - targetSelectors( - overrides?: CallOverrides - ): Promise< - [StdInvariant.FuzzSelectorStructOutput[]] & { - targetedSelectors_: StdInvariant.FuzzSelectorStructOutput[]; - } - >; - - targetSenders( - overrides?: CallOverrides - ): Promise<[string[]] & { targetedSenders_: string[] }>; - - testCall( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testWithdrawZRC20( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testWithdrawZRC20WithMessage( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - IS_TEST(overrides?: CallOverrides): Promise; - - excludeArtifacts(overrides?: CallOverrides): Promise; - - excludeContracts(overrides?: CallOverrides): Promise; - - excludeSelectors( - overrides?: CallOverrides - ): Promise; - - excludeSenders(overrides?: CallOverrides): Promise; - - failed(overrides?: CallOverrides): Promise; - - setUp( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - targetArtifactSelectors( - overrides?: CallOverrides - ): Promise; - - targetArtifacts(overrides?: CallOverrides): Promise; - - targetContracts(overrides?: CallOverrides): Promise; - - targetInterfaces( - overrides?: CallOverrides - ): Promise; - - targetSelectors( - overrides?: CallOverrides - ): Promise; - - targetSenders(overrides?: CallOverrides): Promise; - - testCall( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testWithdrawZRC20( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testWithdrawZRC20WithMessage( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - IS_TEST(overrides?: CallOverrides): Promise; - - excludeArtifacts(overrides?: CallOverrides): Promise; - - excludeContracts(overrides?: CallOverrides): Promise; - - excludeSelectors( - overrides?: CallOverrides - ): Promise; - - excludeSenders(overrides?: CallOverrides): Promise; - - failed(overrides?: CallOverrides): Promise; - - setUp(overrides?: CallOverrides): Promise; - - targetArtifactSelectors( - overrides?: CallOverrides - ): Promise; - - targetArtifacts(overrides?: CallOverrides): Promise; - - targetContracts(overrides?: CallOverrides): Promise; - - targetInterfaces( - overrides?: CallOverrides - ): Promise; - - targetSelectors( - overrides?: CallOverrides - ): Promise; - - targetSenders(overrides?: CallOverrides): Promise; - - testCall(overrides?: CallOverrides): Promise; - - testWithdrawZRC20(overrides?: CallOverrides): Promise; - - testWithdrawZRC20WithMessage(overrides?: CallOverrides): Promise; - }; - - filters: { - "Call(address,bytes,bytes)"( - sender?: PromiseOrValue | null, - receiver?: null, - message?: null - ): CallEventFilter; - Call( - sender?: PromiseOrValue | null, - receiver?: null, - message?: null - ): CallEventFilter; - - "Withdrawal(address,bytes,uint256,uint256,uint256,bytes)"( - from?: PromiseOrValue | null, - to?: null, - value?: null, - gasfee?: null, - protocolFlatFee?: null, - message?: null - ): WithdrawalEventFilter; - Withdrawal( - from?: PromiseOrValue | null, - to?: null, - value?: null, - gasfee?: null, - protocolFlatFee?: null, - message?: null - ): WithdrawalEventFilter; - - "log(string)"(arg0?: null): logEventFilter; - log(arg0?: null): logEventFilter; - - "log_address(address)"(arg0?: null): log_addressEventFilter; - log_address(arg0?: null): log_addressEventFilter; - - "log_array(uint256[])"(val?: null): log_array_uint256_array_EventFilter; - "log_array(int256[])"(val?: null): log_array_int256_array_EventFilter; - "log_array(address[])"(val?: null): log_array_address_array_EventFilter; - - "log_bytes(bytes)"(arg0?: null): log_bytesEventFilter; - log_bytes(arg0?: null): log_bytesEventFilter; - - "log_bytes32(bytes32)"(arg0?: null): log_bytes32EventFilter; - log_bytes32(arg0?: null): log_bytes32EventFilter; - - "log_int(int256)"(arg0?: null): log_intEventFilter; - log_int(arg0?: null): log_intEventFilter; - - "log_named_address(string,address)"( - key?: null, - val?: null - ): log_named_addressEventFilter; - log_named_address(key?: null, val?: null): log_named_addressEventFilter; - - "log_named_array(string,uint256[])"( - key?: null, - val?: null - ): log_named_array_string_uint256_array_EventFilter; - "log_named_array(string,int256[])"( - key?: null, - val?: null - ): log_named_array_string_int256_array_EventFilter; - "log_named_array(string,address[])"( - key?: null, - val?: null - ): log_named_array_string_address_array_EventFilter; - - "log_named_bytes(string,bytes)"( - key?: null, - val?: null - ): log_named_bytesEventFilter; - log_named_bytes(key?: null, val?: null): log_named_bytesEventFilter; - - "log_named_bytes32(string,bytes32)"( - key?: null, - val?: null - ): log_named_bytes32EventFilter; - log_named_bytes32(key?: null, val?: null): log_named_bytes32EventFilter; - - "log_named_decimal_int(string,int256,uint256)"( - key?: null, - val?: null, - decimals?: null - ): log_named_decimal_intEventFilter; - log_named_decimal_int( - key?: null, - val?: null, - decimals?: null - ): log_named_decimal_intEventFilter; - - "log_named_decimal_uint(string,uint256,uint256)"( - key?: null, - val?: null, - decimals?: null - ): log_named_decimal_uintEventFilter; - log_named_decimal_uint( - key?: null, - val?: null, - decimals?: null - ): log_named_decimal_uintEventFilter; - - "log_named_int(string,int256)"( - key?: null, - val?: null - ): log_named_intEventFilter; - log_named_int(key?: null, val?: null): log_named_intEventFilter; - - "log_named_string(string,string)"( - key?: null, - val?: null - ): log_named_stringEventFilter; - log_named_string(key?: null, val?: null): log_named_stringEventFilter; - - "log_named_uint(string,uint256)"( - key?: null, - val?: null - ): log_named_uintEventFilter; - log_named_uint(key?: null, val?: null): log_named_uintEventFilter; - - "log_string(string)"(arg0?: null): log_stringEventFilter; - log_string(arg0?: null): log_stringEventFilter; - - "log_uint(uint256)"(arg0?: null): log_uintEventFilter; - log_uint(arg0?: null): log_uintEventFilter; - - "logs(bytes)"(arg0?: null): logsEventFilter; - logs(arg0?: null): logsEventFilter; - }; - - estimateGas: { - IS_TEST(overrides?: CallOverrides): Promise; - - excludeArtifacts(overrides?: CallOverrides): Promise; - - excludeContracts(overrides?: CallOverrides): Promise; - - excludeSelectors(overrides?: CallOverrides): Promise; - - excludeSenders(overrides?: CallOverrides): Promise; - - failed(overrides?: CallOverrides): Promise; - - setUp( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - targetArtifactSelectors(overrides?: CallOverrides): Promise; - - targetArtifacts(overrides?: CallOverrides): Promise; - - targetContracts(overrides?: CallOverrides): Promise; - - targetInterfaces(overrides?: CallOverrides): Promise; - - targetSelectors(overrides?: CallOverrides): Promise; - - targetSenders(overrides?: CallOverrides): Promise; - - testCall( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testWithdrawZRC20( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testWithdrawZRC20WithMessage( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - IS_TEST(overrides?: CallOverrides): Promise; - - excludeArtifacts(overrides?: CallOverrides): Promise; - - excludeContracts(overrides?: CallOverrides): Promise; - - excludeSelectors(overrides?: CallOverrides): Promise; - - excludeSenders(overrides?: CallOverrides): Promise; - - failed(overrides?: CallOverrides): Promise; - - setUp( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - targetArtifactSelectors( - overrides?: CallOverrides - ): Promise; - - targetArtifacts(overrides?: CallOverrides): Promise; - - targetContracts(overrides?: CallOverrides): Promise; - - targetInterfaces(overrides?: CallOverrides): Promise; - - targetSelectors(overrides?: CallOverrides): Promise; - - targetSenders(overrides?: CallOverrides): Promise; - - testCall( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testWithdrawZRC20( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testWithdrawZRC20WithMessage( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/test/GatewayZEVM.t.sol/GatewayZEVMOutboundTest.ts b/typechain-types/contracts/prototypes/test/GatewayZEVM.t.sol/GatewayZEVMOutboundTest.ts deleted file mode 100644 index 5957605b..00000000 --- a/typechain-types/contracts/prototypes/test/GatewayZEVM.t.sol/GatewayZEVMOutboundTest.ts +++ /dev/null @@ -1,955 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../../common"; - -export declare namespace StdInvariant { - export type FuzzSelectorStruct = { - addr: PromiseOrValue; - selectors: PromiseOrValue[]; - }; - - export type FuzzSelectorStructOutput = [string, string[]] & { - addr: string; - selectors: string[]; - }; - - export type FuzzArtifactSelectorStruct = { - artifact: PromiseOrValue; - selectors: PromiseOrValue[]; - }; - - export type FuzzArtifactSelectorStructOutput = [string, string[]] & { - artifact: string; - selectors: string[]; - }; - - export type FuzzInterfaceStruct = { - addr: PromiseOrValue; - artifacts: PromiseOrValue[]; - }; - - export type FuzzInterfaceStructOutput = [string, string[]] & { - addr: string; - artifacts: string[]; - }; -} - -export interface GatewayZEVMOutboundTestInterface extends utils.Interface { - functions: { - "IS_TEST()": FunctionFragment; - "excludeArtifacts()": FunctionFragment; - "excludeContracts()": FunctionFragment; - "excludeSelectors()": FunctionFragment; - "excludeSenders()": FunctionFragment; - "failed()": FunctionFragment; - "setUp()": FunctionFragment; - "targetArtifactSelectors()": FunctionFragment; - "targetArtifacts()": FunctionFragment; - "targetContracts()": FunctionFragment; - "targetInterfaces()": FunctionFragment; - "targetSelectors()": FunctionFragment; - "targetSenders()": FunctionFragment; - "testDeposit()": FunctionFragment; - "testDepositAndCallZContract()": FunctionFragment; - "testExecuteZContract()": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "IS_TEST" - | "excludeArtifacts" - | "excludeContracts" - | "excludeSelectors" - | "excludeSenders" - | "failed" - | "setUp" - | "targetArtifactSelectors" - | "targetArtifacts" - | "targetContracts" - | "targetInterfaces" - | "targetSelectors" - | "targetSenders" - | "testDeposit" - | "testDepositAndCallZContract" - | "testExecuteZContract" - ): FunctionFragment; - - 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: "setUp", 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; - encodeFunctionData( - functionFragment: "testDeposit", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "testDepositAndCallZContract", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "testExecuteZContract", - 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: "setUp", 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; - decodeFunctionResult( - functionFragment: "testDeposit", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "testDepositAndCallZContract", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "testExecuteZContract", - data: BytesLike - ): Result; - - events: { - "Call(address,bytes,bytes)": EventFragment; - "ContextData(bytes,address,uint256,address,string)": EventFragment; - "Withdrawal(address,bytes,uint256,uint256,uint256,bytes)": EventFragment; - "log(string)": EventFragment; - "log_address(address)": EventFragment; - "log_array(uint256[])": EventFragment; - "log_array(int256[])": EventFragment; - "log_array(address[])": EventFragment; - "log_bytes(bytes)": EventFragment; - "log_bytes32(bytes32)": EventFragment; - "log_int(int256)": EventFragment; - "log_named_address(string,address)": EventFragment; - "log_named_array(string,uint256[])": EventFragment; - "log_named_array(string,int256[])": EventFragment; - "log_named_array(string,address[])": EventFragment; - "log_named_bytes(string,bytes)": EventFragment; - "log_named_bytes32(string,bytes32)": EventFragment; - "log_named_decimal_int(string,int256,uint256)": EventFragment; - "log_named_decimal_uint(string,uint256,uint256)": EventFragment; - "log_named_int(string,int256)": EventFragment; - "log_named_string(string,string)": EventFragment; - "log_named_uint(string,uint256)": EventFragment; - "log_string(string)": EventFragment; - "log_uint(uint256)": EventFragment; - "logs(bytes)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Call"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ContextData"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Withdrawal"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_address"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_array(uint256[])"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_array(int256[])"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_array(address[])"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_bytes"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_bytes32"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_int"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_address"): EventFragment; - getEvent( - nameOrSignatureOrTopic: "log_named_array(string,uint256[])" - ): EventFragment; - getEvent( - nameOrSignatureOrTopic: "log_named_array(string,int256[])" - ): EventFragment; - getEvent( - nameOrSignatureOrTopic: "log_named_array(string,address[])" - ): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_bytes"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_bytes32"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_decimal_int"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_decimal_uint"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_int"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_string"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_uint"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_string"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_uint"): EventFragment; - getEvent(nameOrSignatureOrTopic: "logs"): EventFragment; -} - -export interface CallEventObject { - sender: string; - receiver: string; - message: string; -} -export type CallEvent = TypedEvent<[string, string, string], CallEventObject>; - -export type CallEventFilter = TypedEventFilter; - -export interface ContextDataEventObject { - origin: string; - sender: string; - chainID: BigNumber; - msgSender: string; - message: string; -} -export type ContextDataEvent = TypedEvent< - [string, string, BigNumber, string, string], - ContextDataEventObject ->; - -export type ContextDataEventFilter = TypedEventFilter; - -export interface WithdrawalEventObject { - from: string; - to: string; - value: BigNumber; - gasfee: BigNumber; - protocolFlatFee: BigNumber; - message: string; -} -export type WithdrawalEvent = TypedEvent< - [string, string, BigNumber, BigNumber, BigNumber, string], - WithdrawalEventObject ->; - -export type WithdrawalEventFilter = TypedEventFilter; - -export interface logEventObject { - arg0: string; -} -export type logEvent = TypedEvent<[string], logEventObject>; - -export type logEventFilter = TypedEventFilter; - -export interface log_addressEventObject { - arg0: string; -} -export type log_addressEvent = TypedEvent<[string], log_addressEventObject>; - -export type log_addressEventFilter = TypedEventFilter; - -export interface log_array_uint256_array_EventObject { - val: BigNumber[]; -} -export type log_array_uint256_array_Event = TypedEvent< - [BigNumber[]], - log_array_uint256_array_EventObject ->; - -export type log_array_uint256_array_EventFilter = - TypedEventFilter; - -export interface log_array_int256_array_EventObject { - val: BigNumber[]; -} -export type log_array_int256_array_Event = TypedEvent< - [BigNumber[]], - log_array_int256_array_EventObject ->; - -export type log_array_int256_array_EventFilter = - TypedEventFilter; - -export interface log_array_address_array_EventObject { - val: string[]; -} -export type log_array_address_array_Event = TypedEvent< - [string[]], - log_array_address_array_EventObject ->; - -export type log_array_address_array_EventFilter = - TypedEventFilter; - -export interface log_bytesEventObject { - arg0: string; -} -export type log_bytesEvent = TypedEvent<[string], log_bytesEventObject>; - -export type log_bytesEventFilter = TypedEventFilter; - -export interface log_bytes32EventObject { - arg0: string; -} -export type log_bytes32Event = TypedEvent<[string], log_bytes32EventObject>; - -export type log_bytes32EventFilter = TypedEventFilter; - -export interface log_intEventObject { - arg0: BigNumber; -} -export type log_intEvent = TypedEvent<[BigNumber], log_intEventObject>; - -export type log_intEventFilter = TypedEventFilter; - -export interface log_named_addressEventObject { - key: string; - val: string; -} -export type log_named_addressEvent = TypedEvent< - [string, string], - log_named_addressEventObject ->; - -export type log_named_addressEventFilter = - TypedEventFilter; - -export interface log_named_array_string_uint256_array_EventObject { - key: string; - val: BigNumber[]; -} -export type log_named_array_string_uint256_array_Event = TypedEvent< - [string, BigNumber[]], - log_named_array_string_uint256_array_EventObject ->; - -export type log_named_array_string_uint256_array_EventFilter = - TypedEventFilter; - -export interface log_named_array_string_int256_array_EventObject { - key: string; - val: BigNumber[]; -} -export type log_named_array_string_int256_array_Event = TypedEvent< - [string, BigNumber[]], - log_named_array_string_int256_array_EventObject ->; - -export type log_named_array_string_int256_array_EventFilter = - TypedEventFilter; - -export interface log_named_array_string_address_array_EventObject { - key: string; - val: string[]; -} -export type log_named_array_string_address_array_Event = TypedEvent< - [string, string[]], - log_named_array_string_address_array_EventObject ->; - -export type log_named_array_string_address_array_EventFilter = - TypedEventFilter; - -export interface log_named_bytesEventObject { - key: string; - val: string; -} -export type log_named_bytesEvent = TypedEvent< - [string, string], - log_named_bytesEventObject ->; - -export type log_named_bytesEventFilter = TypedEventFilter; - -export interface log_named_bytes32EventObject { - key: string; - val: string; -} -export type log_named_bytes32Event = TypedEvent< - [string, string], - log_named_bytes32EventObject ->; - -export type log_named_bytes32EventFilter = - TypedEventFilter; - -export interface log_named_decimal_intEventObject { - key: string; - val: BigNumber; - decimals: BigNumber; -} -export type log_named_decimal_intEvent = TypedEvent< - [string, BigNumber, BigNumber], - log_named_decimal_intEventObject ->; - -export type log_named_decimal_intEventFilter = - TypedEventFilter; - -export interface log_named_decimal_uintEventObject { - key: string; - val: BigNumber; - decimals: BigNumber; -} -export type log_named_decimal_uintEvent = TypedEvent< - [string, BigNumber, BigNumber], - log_named_decimal_uintEventObject ->; - -export type log_named_decimal_uintEventFilter = - TypedEventFilter; - -export interface log_named_intEventObject { - key: string; - val: BigNumber; -} -export type log_named_intEvent = TypedEvent< - [string, BigNumber], - log_named_intEventObject ->; - -export type log_named_intEventFilter = TypedEventFilter; - -export interface log_named_stringEventObject { - key: string; - val: string; -} -export type log_named_stringEvent = TypedEvent< - [string, string], - log_named_stringEventObject ->; - -export type log_named_stringEventFilter = - TypedEventFilter; - -export interface log_named_uintEventObject { - key: string; - val: BigNumber; -} -export type log_named_uintEvent = TypedEvent< - [string, BigNumber], - log_named_uintEventObject ->; - -export type log_named_uintEventFilter = TypedEventFilter; - -export interface log_stringEventObject { - arg0: string; -} -export type log_stringEvent = TypedEvent<[string], log_stringEventObject>; - -export type log_stringEventFilter = TypedEventFilter; - -export interface log_uintEventObject { - arg0: BigNumber; -} -export type log_uintEvent = TypedEvent<[BigNumber], log_uintEventObject>; - -export type log_uintEventFilter = TypedEventFilter; - -export interface logsEventObject { - arg0: string; -} -export type logsEvent = TypedEvent<[string], logsEventObject>; - -export type logsEventFilter = TypedEventFilter; - -export interface GatewayZEVMOutboundTest extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: GatewayZEVMOutboundTestInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - IS_TEST(overrides?: CallOverrides): Promise<[boolean]>; - - excludeArtifacts( - overrides?: CallOverrides - ): Promise<[string[]] & { excludedArtifacts_: string[] }>; - - excludeContracts( - overrides?: CallOverrides - ): Promise<[string[]] & { excludedContracts_: string[] }>; - - excludeSelectors( - overrides?: CallOverrides - ): Promise< - [StdInvariant.FuzzSelectorStructOutput[]] & { - excludedSelectors_: StdInvariant.FuzzSelectorStructOutput[]; - } - >; - - excludeSenders( - overrides?: CallOverrides - ): Promise<[string[]] & { excludedSenders_: string[] }>; - - failed(overrides?: CallOverrides): Promise<[boolean]>; - - setUp( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - targetArtifactSelectors( - overrides?: CallOverrides - ): Promise< - [StdInvariant.FuzzArtifactSelectorStructOutput[]] & { - targetedArtifactSelectors_: StdInvariant.FuzzArtifactSelectorStructOutput[]; - } - >; - - targetArtifacts( - overrides?: CallOverrides - ): Promise<[string[]] & { targetedArtifacts_: string[] }>; - - targetContracts( - overrides?: CallOverrides - ): Promise<[string[]] & { targetedContracts_: string[] }>; - - targetInterfaces( - overrides?: CallOverrides - ): Promise< - [StdInvariant.FuzzInterfaceStructOutput[]] & { - targetedInterfaces_: StdInvariant.FuzzInterfaceStructOutput[]; - } - >; - - targetSelectors( - overrides?: CallOverrides - ): Promise< - [StdInvariant.FuzzSelectorStructOutput[]] & { - targetedSelectors_: StdInvariant.FuzzSelectorStructOutput[]; - } - >; - - targetSenders( - overrides?: CallOverrides - ): Promise<[string[]] & { targetedSenders_: string[] }>; - - testDeposit( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testDepositAndCallZContract( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testExecuteZContract( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - IS_TEST(overrides?: CallOverrides): Promise; - - excludeArtifacts(overrides?: CallOverrides): Promise; - - excludeContracts(overrides?: CallOverrides): Promise; - - excludeSelectors( - overrides?: CallOverrides - ): Promise; - - excludeSenders(overrides?: CallOverrides): Promise; - - failed(overrides?: CallOverrides): Promise; - - setUp( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - targetArtifactSelectors( - overrides?: CallOverrides - ): Promise; - - targetArtifacts(overrides?: CallOverrides): Promise; - - targetContracts(overrides?: CallOverrides): Promise; - - targetInterfaces( - overrides?: CallOverrides - ): Promise; - - targetSelectors( - overrides?: CallOverrides - ): Promise; - - targetSenders(overrides?: CallOverrides): Promise; - - testDeposit( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testDepositAndCallZContract( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testExecuteZContract( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - IS_TEST(overrides?: CallOverrides): Promise; - - excludeArtifacts(overrides?: CallOverrides): Promise; - - excludeContracts(overrides?: CallOverrides): Promise; - - excludeSelectors( - overrides?: CallOverrides - ): Promise; - - excludeSenders(overrides?: CallOverrides): Promise; - - failed(overrides?: CallOverrides): Promise; - - setUp(overrides?: CallOverrides): Promise; - - targetArtifactSelectors( - overrides?: CallOverrides - ): Promise; - - targetArtifacts(overrides?: CallOverrides): Promise; - - targetContracts(overrides?: CallOverrides): Promise; - - targetInterfaces( - overrides?: CallOverrides - ): Promise; - - targetSelectors( - overrides?: CallOverrides - ): Promise; - - targetSenders(overrides?: CallOverrides): Promise; - - testDeposit(overrides?: CallOverrides): Promise; - - testDepositAndCallZContract(overrides?: CallOverrides): Promise; - - testExecuteZContract(overrides?: CallOverrides): Promise; - }; - - filters: { - "Call(address,bytes,bytes)"( - sender?: PromiseOrValue | null, - receiver?: null, - message?: null - ): CallEventFilter; - Call( - sender?: PromiseOrValue | null, - receiver?: null, - message?: null - ): CallEventFilter; - - "ContextData(bytes,address,uint256,address,string)"( - origin?: null, - sender?: null, - chainID?: null, - msgSender?: null, - message?: null - ): ContextDataEventFilter; - ContextData( - origin?: null, - sender?: null, - chainID?: null, - msgSender?: null, - message?: null - ): ContextDataEventFilter; - - "Withdrawal(address,bytes,uint256,uint256,uint256,bytes)"( - from?: PromiseOrValue | null, - to?: null, - value?: null, - gasfee?: null, - protocolFlatFee?: null, - message?: null - ): WithdrawalEventFilter; - Withdrawal( - from?: PromiseOrValue | null, - to?: null, - value?: null, - gasfee?: null, - protocolFlatFee?: null, - message?: null - ): WithdrawalEventFilter; - - "log(string)"(arg0?: null): logEventFilter; - log(arg0?: null): logEventFilter; - - "log_address(address)"(arg0?: null): log_addressEventFilter; - log_address(arg0?: null): log_addressEventFilter; - - "log_array(uint256[])"(val?: null): log_array_uint256_array_EventFilter; - "log_array(int256[])"(val?: null): log_array_int256_array_EventFilter; - "log_array(address[])"(val?: null): log_array_address_array_EventFilter; - - "log_bytes(bytes)"(arg0?: null): log_bytesEventFilter; - log_bytes(arg0?: null): log_bytesEventFilter; - - "log_bytes32(bytes32)"(arg0?: null): log_bytes32EventFilter; - log_bytes32(arg0?: null): log_bytes32EventFilter; - - "log_int(int256)"(arg0?: null): log_intEventFilter; - log_int(arg0?: null): log_intEventFilter; - - "log_named_address(string,address)"( - key?: null, - val?: null - ): log_named_addressEventFilter; - log_named_address(key?: null, val?: null): log_named_addressEventFilter; - - "log_named_array(string,uint256[])"( - key?: null, - val?: null - ): log_named_array_string_uint256_array_EventFilter; - "log_named_array(string,int256[])"( - key?: null, - val?: null - ): log_named_array_string_int256_array_EventFilter; - "log_named_array(string,address[])"( - key?: null, - val?: null - ): log_named_array_string_address_array_EventFilter; - - "log_named_bytes(string,bytes)"( - key?: null, - val?: null - ): log_named_bytesEventFilter; - log_named_bytes(key?: null, val?: null): log_named_bytesEventFilter; - - "log_named_bytes32(string,bytes32)"( - key?: null, - val?: null - ): log_named_bytes32EventFilter; - log_named_bytes32(key?: null, val?: null): log_named_bytes32EventFilter; - - "log_named_decimal_int(string,int256,uint256)"( - key?: null, - val?: null, - decimals?: null - ): log_named_decimal_intEventFilter; - log_named_decimal_int( - key?: null, - val?: null, - decimals?: null - ): log_named_decimal_intEventFilter; - - "log_named_decimal_uint(string,uint256,uint256)"( - key?: null, - val?: null, - decimals?: null - ): log_named_decimal_uintEventFilter; - log_named_decimal_uint( - key?: null, - val?: null, - decimals?: null - ): log_named_decimal_uintEventFilter; - - "log_named_int(string,int256)"( - key?: null, - val?: null - ): log_named_intEventFilter; - log_named_int(key?: null, val?: null): log_named_intEventFilter; - - "log_named_string(string,string)"( - key?: null, - val?: null - ): log_named_stringEventFilter; - log_named_string(key?: null, val?: null): log_named_stringEventFilter; - - "log_named_uint(string,uint256)"( - key?: null, - val?: null - ): log_named_uintEventFilter; - log_named_uint(key?: null, val?: null): log_named_uintEventFilter; - - "log_string(string)"(arg0?: null): log_stringEventFilter; - log_string(arg0?: null): log_stringEventFilter; - - "log_uint(uint256)"(arg0?: null): log_uintEventFilter; - log_uint(arg0?: null): log_uintEventFilter; - - "logs(bytes)"(arg0?: null): logsEventFilter; - logs(arg0?: null): logsEventFilter; - }; - - estimateGas: { - IS_TEST(overrides?: CallOverrides): Promise; - - excludeArtifacts(overrides?: CallOverrides): Promise; - - excludeContracts(overrides?: CallOverrides): Promise; - - excludeSelectors(overrides?: CallOverrides): Promise; - - excludeSenders(overrides?: CallOverrides): Promise; - - failed(overrides?: CallOverrides): Promise; - - setUp( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - targetArtifactSelectors(overrides?: CallOverrides): Promise; - - targetArtifacts(overrides?: CallOverrides): Promise; - - targetContracts(overrides?: CallOverrides): Promise; - - targetInterfaces(overrides?: CallOverrides): Promise; - - targetSelectors(overrides?: CallOverrides): Promise; - - targetSenders(overrides?: CallOverrides): Promise; - - testDeposit( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testDepositAndCallZContract( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testExecuteZContract( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - IS_TEST(overrides?: CallOverrides): Promise; - - excludeArtifacts(overrides?: CallOverrides): Promise; - - excludeContracts(overrides?: CallOverrides): Promise; - - excludeSelectors(overrides?: CallOverrides): Promise; - - excludeSenders(overrides?: CallOverrides): Promise; - - failed(overrides?: CallOverrides): Promise; - - setUp( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - targetArtifactSelectors( - overrides?: CallOverrides - ): Promise; - - targetArtifacts(overrides?: CallOverrides): Promise; - - targetContracts(overrides?: CallOverrides): Promise; - - targetInterfaces(overrides?: CallOverrides): Promise; - - targetSelectors(overrides?: CallOverrides): Promise; - - targetSenders(overrides?: CallOverrides): Promise; - - testDeposit( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testDepositAndCallZContract( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - testExecuteZContract( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/test/GatewayZEVM.t.sol/index.ts b/typechain-types/contracts/prototypes/test/GatewayZEVM.t.sol/index.ts deleted file mode 100644 index 684be4ec..00000000 --- a/typechain-types/contracts/prototypes/test/GatewayZEVM.t.sol/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { GatewayZEVMInboundTest } from "./GatewayZEVMInboundTest"; -export type { GatewayZEVMOutboundTest } from "./GatewayZEVMOutboundTest"; diff --git a/typechain-types/contracts/prototypes/test/index.ts b/typechain-types/contracts/prototypes/test/index.ts deleted file mode 100644 index 03c36b6c..00000000 --- a/typechain-types/contracts/prototypes/test/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as gatewayEvmTSol from "./GatewayEVM.t.sol"; -export type { gatewayEvmTSol }; -import type * as gatewayEvmzevmTSol from "./GatewayEVMZEVM.t.sol"; -export type { gatewayEvmzevmTSol }; -import type * as gatewayZevmTSol from "./GatewayZEVM.t.sol"; -export type { gatewayZevmTSol }; diff --git a/typechain-types/contracts/prototypes/zevm/GatewayZEVM.ts b/typechain-types/contracts/prototypes/zevm/GatewayZEVM.ts deleted file mode 100644 index 4779aa74..00000000 --- a/typechain-types/contracts/prototypes/zevm/GatewayZEVM.ts +++ /dev/null @@ -1,1051 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PayableOverrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../common"; - -export type ZContextStruct = { - origin: PromiseOrValue; - sender: PromiseOrValue; - chainID: PromiseOrValue; -}; - -export type ZContextStructOutput = [string, string, BigNumber] & { - origin: string; - sender: string; - chainID: BigNumber; -}; - -export type RevertContextStruct = { - origin: PromiseOrValue; - sender: PromiseOrValue; - chainID: PromiseOrValue; -}; - -export type RevertContextStructOutput = [string, string, BigNumber] & { - origin: string; - sender: string; - chainID: BigNumber; -}; - -export interface GatewayZEVMInterface extends utils.Interface { - functions: { - "FUNGIBLE_MODULE_ADDRESS()": FunctionFragment; - "call(bytes,bytes)": FunctionFragment; - "deposit(address,uint256,address)": FunctionFragment; - "depositAndCall((bytes,address,uint256),uint256,address,bytes)": FunctionFragment; - "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)": FunctionFragment; - "depositAndRevert((bytes,address,uint256),address,uint256,address,bytes)": FunctionFragment; - "execute((bytes,address,uint256),address,uint256,address,bytes)": FunctionFragment; - "executeRevert((bytes,address,uint256),address,uint256,address,bytes)": FunctionFragment; - "initialize(address)": FunctionFragment; - "owner()": FunctionFragment; - "proxiableUUID()": FunctionFragment; - "renounceOwnership()": FunctionFragment; - "transferOwnership(address)": FunctionFragment; - "upgradeTo(address)": FunctionFragment; - "upgradeToAndCall(address,bytes)": FunctionFragment; - "withdraw(bytes,uint256,address)": FunctionFragment; - "withdraw(uint256)": FunctionFragment; - "withdrawAndCall(uint256,bytes)": FunctionFragment; - "withdrawAndCall(bytes,uint256,address,bytes)": FunctionFragment; - "zetaToken()": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "FUNGIBLE_MODULE_ADDRESS" - | "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" - | "upgradeTo" - | "upgradeToAndCall" - | "withdraw(bytes,uint256,address)" - | "withdraw(uint256)" - | "withdrawAndCall(uint256,bytes)" - | "withdrawAndCall(bytes,uint256,address,bytes)" - | "zetaToken" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "FUNGIBLE_MODULE_ADDRESS", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "call", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "deposit", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "depositAndCall((bytes,address,uint256),uint256,address,bytes)", - values: [ - ZContextStruct, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)", - values: [ - ZContextStruct, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "depositAndRevert", - values: [ - RevertContextStruct, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "execute", - values: [ - ZContextStruct, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "executeRevert", - values: [ - RevertContextStruct, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "initialize", - values: [PromiseOrValue] - ): string; - encodeFunctionData(functionFragment: "owner", values?: undefined): string; - encodeFunctionData( - functionFragment: "proxiableUUID", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "renounceOwnership", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transferOwnership", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "upgradeTo", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "upgradeToAndCall", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "withdraw(bytes,uint256,address)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "withdraw(uint256)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "withdrawAndCall(uint256,bytes)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "withdrawAndCall(bytes,uint256,address,bytes)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData(functionFragment: "zetaToken", values?: undefined): string; - - decodeFunctionResult( - functionFragment: "FUNGIBLE_MODULE_ADDRESS", - 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: "upgradeTo", 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; - - events: { - "AdminChanged(address,address)": EventFragment; - "BeaconUpgraded(address)": EventFragment; - "Call(address,bytes,bytes)": EventFragment; - "Initialized(uint8)": EventFragment; - "OwnershipTransferred(address,address)": EventFragment; - "Upgraded(address)": EventFragment; - "Withdrawal(address,address,bytes,uint256,uint256,uint256,bytes)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "AdminChanged"): EventFragment; - getEvent(nameOrSignatureOrTopic: "BeaconUpgraded"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Call"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment; - getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Upgraded"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Withdrawal"): EventFragment; -} - -export interface AdminChangedEventObject { - previousAdmin: string; - newAdmin: string; -} -export type AdminChangedEvent = TypedEvent< - [string, string], - AdminChangedEventObject ->; - -export type AdminChangedEventFilter = TypedEventFilter; - -export interface BeaconUpgradedEventObject { - beacon: string; -} -export type BeaconUpgradedEvent = TypedEvent< - [string], - BeaconUpgradedEventObject ->; - -export type BeaconUpgradedEventFilter = TypedEventFilter; - -export interface CallEventObject { - sender: string; - receiver: string; - message: string; -} -export type CallEvent = TypedEvent<[string, string, string], CallEventObject>; - -export type CallEventFilter = TypedEventFilter; - -export interface InitializedEventObject { - version: number; -} -export type InitializedEvent = TypedEvent<[number], InitializedEventObject>; - -export type InitializedEventFilter = TypedEventFilter; - -export interface OwnershipTransferredEventObject { - previousOwner: string; - newOwner: string; -} -export type OwnershipTransferredEvent = TypedEvent< - [string, string], - OwnershipTransferredEventObject ->; - -export type OwnershipTransferredEventFilter = - TypedEventFilter; - -export interface UpgradedEventObject { - implementation: string; -} -export type UpgradedEvent = TypedEvent<[string], UpgradedEventObject>; - -export type UpgradedEventFilter = TypedEventFilter; - -export interface WithdrawalEventObject { - from: string; - zrc20: string; - to: string; - value: BigNumber; - gasfee: BigNumber; - protocolFlatFee: BigNumber; - message: string; -} -export type WithdrawalEvent = TypedEvent< - [string, string, string, BigNumber, BigNumber, BigNumber, string], - WithdrawalEventObject ->; - -export type WithdrawalEventFilter = TypedEventFilter; - -export interface GatewayZEVM extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: GatewayZEVMInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - FUNGIBLE_MODULE_ADDRESS(overrides?: CallOverrides): Promise<[string]>; - - call( - receiver: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - deposit( - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "depositAndCall((bytes,address,uint256),uint256,address,bytes)"( - context: ZContextStruct, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)"( - context: ZContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - depositAndRevert( - context: RevertContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - execute( - context: ZContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - executeRevert( - context: RevertContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - _zetaToken: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise<[string]>; - - proxiableUUID(overrides?: CallOverrides): Promise<[string]>; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "withdraw(bytes,uint256,address)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - zrc20: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "withdraw(uint256)"( - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "withdrawAndCall(uint256,bytes)"( - amount: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "withdrawAndCall(bytes,uint256,address,bytes)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - zrc20: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - zetaToken(overrides?: CallOverrides): Promise<[string]>; - }; - - FUNGIBLE_MODULE_ADDRESS(overrides?: CallOverrides): Promise; - - call( - receiver: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - deposit( - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "depositAndCall((bytes,address,uint256),uint256,address,bytes)"( - context: ZContextStruct, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)"( - context: ZContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - depositAndRevert( - context: RevertContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - execute( - context: ZContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - executeRevert( - context: RevertContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - _zetaToken: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "withdraw(bytes,uint256,address)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - zrc20: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "withdraw(uint256)"( - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "withdrawAndCall(uint256,bytes)"( - amount: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "withdrawAndCall(bytes,uint256,address,bytes)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - zrc20: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - zetaToken(overrides?: CallOverrides): Promise; - - callStatic: { - FUNGIBLE_MODULE_ADDRESS(overrides?: CallOverrides): Promise; - - call( - receiver: PromiseOrValue, - message: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - deposit( - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "depositAndCall((bytes,address,uint256),uint256,address,bytes)"( - context: ZContextStruct, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)"( - context: ZContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - depositAndRevert( - context: RevertContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - execute( - context: ZContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - executeRevert( - context: RevertContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - initialize( - _zetaToken: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership(overrides?: CallOverrides): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "withdraw(bytes,uint256,address)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - zrc20: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "withdraw(uint256)"( - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "withdrawAndCall(uint256,bytes)"( - amount: PromiseOrValue, - message: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "withdrawAndCall(bytes,uint256,address,bytes)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - zrc20: PromiseOrValue, - message: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - zetaToken(overrides?: CallOverrides): Promise; - }; - - filters: { - "AdminChanged(address,address)"( - previousAdmin?: null, - newAdmin?: null - ): AdminChangedEventFilter; - AdminChanged( - previousAdmin?: null, - newAdmin?: null - ): AdminChangedEventFilter; - - "BeaconUpgraded(address)"( - beacon?: PromiseOrValue | null - ): BeaconUpgradedEventFilter; - BeaconUpgraded( - beacon?: PromiseOrValue | null - ): BeaconUpgradedEventFilter; - - "Call(address,bytes,bytes)"( - sender?: PromiseOrValue | null, - receiver?: null, - message?: null - ): CallEventFilter; - Call( - sender?: PromiseOrValue | null, - receiver?: null, - message?: null - ): CallEventFilter; - - "Initialized(uint8)"(version?: null): InitializedEventFilter; - Initialized(version?: null): InitializedEventFilter; - - "OwnershipTransferred(address,address)"( - previousOwner?: PromiseOrValue | null, - newOwner?: PromiseOrValue | null - ): OwnershipTransferredEventFilter; - OwnershipTransferred( - previousOwner?: PromiseOrValue | null, - newOwner?: PromiseOrValue | null - ): OwnershipTransferredEventFilter; - - "Upgraded(address)"( - implementation?: PromiseOrValue | null - ): UpgradedEventFilter; - Upgraded( - implementation?: PromiseOrValue | null - ): UpgradedEventFilter; - - "Withdrawal(address,address,bytes,uint256,uint256,uint256,bytes)"( - from?: PromiseOrValue | null, - zrc20?: null, - to?: null, - value?: null, - gasfee?: null, - protocolFlatFee?: null, - message?: null - ): WithdrawalEventFilter; - Withdrawal( - from?: PromiseOrValue | null, - zrc20?: null, - to?: null, - value?: null, - gasfee?: null, - protocolFlatFee?: null, - message?: null - ): WithdrawalEventFilter; - }; - - estimateGas: { - FUNGIBLE_MODULE_ADDRESS(overrides?: CallOverrides): Promise; - - call( - receiver: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - deposit( - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "depositAndCall((bytes,address,uint256),uint256,address,bytes)"( - context: ZContextStruct, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)"( - context: ZContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - depositAndRevert( - context: RevertContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - execute( - context: ZContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - executeRevert( - context: RevertContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - _zetaToken: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "withdraw(bytes,uint256,address)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - zrc20: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "withdraw(uint256)"( - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "withdrawAndCall(uint256,bytes)"( - amount: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "withdrawAndCall(bytes,uint256,address,bytes)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - zrc20: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - zetaToken(overrides?: CallOverrides): Promise; - }; - - populateTransaction: { - FUNGIBLE_MODULE_ADDRESS( - overrides?: CallOverrides - ): Promise; - - call( - receiver: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - deposit( - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "depositAndCall((bytes,address,uint256),uint256,address,bytes)"( - context: ZContextStruct, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)"( - context: ZContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - depositAndRevert( - context: RevertContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - execute( - context: ZContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - executeRevert( - context: RevertContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - initialize( - _zetaToken: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - owner(overrides?: CallOverrides): Promise; - - proxiableUUID(overrides?: CallOverrides): Promise; - - renounceOwnership( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferOwnership( - newOwner: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeTo( - newImplementation: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - upgradeToAndCall( - newImplementation: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "withdraw(bytes,uint256,address)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - zrc20: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "withdraw(uint256)"( - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "withdrawAndCall(uint256,bytes)"( - amount: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "withdrawAndCall(bytes,uint256,address,bytes)"( - receiver: PromiseOrValue, - amount: PromiseOrValue, - zrc20: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - zetaToken(overrides?: CallOverrides): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/zevm/IGatewayZEVM.sol/IGatewayZEVM.ts b/typechain-types/contracts/prototypes/zevm/IGatewayZEVM.sol/IGatewayZEVM.ts deleted file mode 100644 index 12f1fa68..00000000 --- a/typechain-types/contracts/prototypes/zevm/IGatewayZEVM.sol/IGatewayZEVM.ts +++ /dev/null @@ -1,389 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { FunctionFragment, Result } from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../../common"; - -export type ZContextStruct = { - origin: PromiseOrValue; - sender: PromiseOrValue; - chainID: PromiseOrValue; -}; - -export type ZContextStructOutput = [string, string, BigNumber] & { - origin: string; - sender: string; - chainID: BigNumber; -}; - -export interface IGatewayZEVMInterface extends utils.Interface { - functions: { - "call(bytes,bytes)": FunctionFragment; - "deposit(address,uint256,address)": FunctionFragment; - "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)": FunctionFragment; - "execute((bytes,address,uint256),address,uint256,address,bytes)": FunctionFragment; - "withdraw(bytes,uint256,address)": FunctionFragment; - "withdrawAndCall(bytes,uint256,address,bytes)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "call" - | "deposit" - | "depositAndCall" - | "execute" - | "withdraw" - | "withdrawAndCall" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "call", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "deposit", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "depositAndCall", - values: [ - ZContextStruct, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "execute", - values: [ - ZContextStruct, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "withdraw", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "withdrawAndCall", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): 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; - - events: {}; -} - -export interface IGatewayZEVM extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: IGatewayZEVMInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - call( - receiver: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - deposit( - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - depositAndCall( - context: ZContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - execute( - context: ZContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdraw( - receiver: PromiseOrValue, - amount: PromiseOrValue, - zrc20: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndCall( - receiver: PromiseOrValue, - amount: PromiseOrValue, - zrc20: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - call( - receiver: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - deposit( - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - depositAndCall( - context: ZContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - execute( - context: ZContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdraw( - receiver: PromiseOrValue, - amount: PromiseOrValue, - zrc20: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndCall( - receiver: PromiseOrValue, - amount: PromiseOrValue, - zrc20: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - call( - receiver: PromiseOrValue, - message: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - deposit( - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - depositAndCall( - context: ZContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - execute( - context: ZContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - withdraw( - receiver: PromiseOrValue, - amount: PromiseOrValue, - zrc20: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - withdrawAndCall( - receiver: PromiseOrValue, - amount: PromiseOrValue, - zrc20: PromiseOrValue, - message: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: {}; - - estimateGas: { - call( - receiver: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - deposit( - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - depositAndCall( - context: ZContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - execute( - context: ZContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdraw( - receiver: PromiseOrValue, - amount: PromiseOrValue, - zrc20: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndCall( - receiver: PromiseOrValue, - amount: PromiseOrValue, - zrc20: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - call( - receiver: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - deposit( - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - depositAndCall( - context: ZContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - execute( - context: ZContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdraw( - receiver: PromiseOrValue, - amount: PromiseOrValue, - zrc20: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndCall( - receiver: PromiseOrValue, - amount: PromiseOrValue, - zrc20: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/zevm/IGatewayZEVM.sol/IGatewayZEVMErrors.ts b/typechain-types/contracts/prototypes/zevm/IGatewayZEVM.sol/IGatewayZEVMErrors.ts deleted file mode 100644 index 74cfd7ba..00000000 --- a/typechain-types/contracts/prototypes/zevm/IGatewayZEVM.sol/IGatewayZEVMErrors.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { BaseContract, Signer, utils } from "ethers"; - -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../../common"; - -export interface IGatewayZEVMErrorsInterface extends utils.Interface { - functions: {}; - - events: {}; -} - -export interface IGatewayZEVMErrors extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: IGatewayZEVMErrorsInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: {}; - - callStatic: {}; - - filters: {}; - - estimateGas: {}; - - populateTransaction: {}; -} diff --git a/typechain-types/contracts/prototypes/zevm/IGatewayZEVM.sol/IGatewayZEVMEvents.ts b/typechain-types/contracts/prototypes/zevm/IGatewayZEVM.sol/IGatewayZEVMEvents.ts deleted file mode 100644 index 829208d9..00000000 --- a/typechain-types/contracts/prototypes/zevm/IGatewayZEVM.sol/IGatewayZEVMEvents.ts +++ /dev/null @@ -1,117 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { BaseContract, BigNumber, Signer, utils } from "ethers"; -import type { EventFragment } from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../../common"; - -export interface IGatewayZEVMEventsInterface extends utils.Interface { - functions: {}; - - events: { - "Call(address,bytes,bytes)": EventFragment; - "Withdrawal(address,address,bytes,uint256,uint256,uint256,bytes)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Call"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Withdrawal"): EventFragment; -} - -export interface CallEventObject { - sender: string; - receiver: string; - message: string; -} -export type CallEvent = TypedEvent<[string, string, string], CallEventObject>; - -export type CallEventFilter = TypedEventFilter; - -export interface WithdrawalEventObject { - from: string; - zrc20: string; - to: string; - value: BigNumber; - gasfee: BigNumber; - protocolFlatFee: BigNumber; - message: string; -} -export type WithdrawalEvent = TypedEvent< - [string, string, string, BigNumber, BigNumber, BigNumber, string], - WithdrawalEventObject ->; - -export type WithdrawalEventFilter = TypedEventFilter; - -export interface IGatewayZEVMEvents extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: IGatewayZEVMEventsInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: {}; - - callStatic: {}; - - filters: { - "Call(address,bytes,bytes)"( - sender?: PromiseOrValue | null, - receiver?: null, - message?: null - ): CallEventFilter; - Call( - sender?: PromiseOrValue | null, - receiver?: null, - message?: null - ): CallEventFilter; - - "Withdrawal(address,address,bytes,uint256,uint256,uint256,bytes)"( - from?: PromiseOrValue | null, - zrc20?: null, - to?: null, - value?: null, - gasfee?: null, - protocolFlatFee?: null, - message?: null - ): WithdrawalEventFilter; - Withdrawal( - from?: PromiseOrValue | null, - zrc20?: null, - to?: null, - value?: null, - gasfee?: null, - protocolFlatFee?: null, - message?: null - ): WithdrawalEventFilter; - }; - - estimateGas: {}; - - populateTransaction: {}; -} diff --git a/typechain-types/contracts/prototypes/zevm/Sender.ts b/typechain-types/contracts/prototypes/zevm/Sender.ts deleted file mode 100644 index 35786b7c..00000000 --- a/typechain-types/contracts/prototypes/zevm/Sender.ts +++ /dev/null @@ -1,210 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { FunctionFragment, Result } from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../common"; - -export interface SenderInterface extends utils.Interface { - functions: { - "callReceiver(bytes,string,uint256,bool)": FunctionFragment; - "gateway()": FunctionFragment; - "withdrawAndCallReceiver(bytes,uint256,address,string,uint256,bool)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "callReceiver" - | "gateway" - | "withdrawAndCallReceiver" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "callReceiver", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData(functionFragment: "gateway", values?: undefined): string; - encodeFunctionData( - functionFragment: "withdrawAndCallReceiver", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - - decodeFunctionResult( - functionFragment: "callReceiver", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "gateway", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "withdrawAndCallReceiver", - data: BytesLike - ): Result; - - events: {}; -} - -export interface Sender extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: SenderInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - callReceiver( - receiver: PromiseOrValue, - str: PromiseOrValue, - num: PromiseOrValue, - flag: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - gateway(overrides?: CallOverrides): Promise<[string]>; - - withdrawAndCallReceiver( - receiver: PromiseOrValue, - amount: PromiseOrValue, - zrc20: PromiseOrValue, - str: PromiseOrValue, - num: PromiseOrValue, - flag: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - callReceiver( - receiver: PromiseOrValue, - str: PromiseOrValue, - num: PromiseOrValue, - flag: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - gateway(overrides?: CallOverrides): Promise; - - withdrawAndCallReceiver( - receiver: PromiseOrValue, - amount: PromiseOrValue, - zrc20: PromiseOrValue, - str: PromiseOrValue, - num: PromiseOrValue, - flag: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - callReceiver( - receiver: PromiseOrValue, - str: PromiseOrValue, - num: PromiseOrValue, - flag: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - gateway(overrides?: CallOverrides): Promise; - - withdrawAndCallReceiver( - receiver: PromiseOrValue, - amount: PromiseOrValue, - zrc20: PromiseOrValue, - str: PromiseOrValue, - num: PromiseOrValue, - flag: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: {}; - - estimateGas: { - callReceiver( - receiver: PromiseOrValue, - str: PromiseOrValue, - num: PromiseOrValue, - flag: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - gateway(overrides?: CallOverrides): Promise; - - withdrawAndCallReceiver( - receiver: PromiseOrValue, - amount: PromiseOrValue, - zrc20: PromiseOrValue, - str: PromiseOrValue, - num: PromiseOrValue, - flag: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - callReceiver( - receiver: PromiseOrValue, - str: PromiseOrValue, - num: PromiseOrValue, - flag: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - gateway(overrides?: CallOverrides): Promise; - - withdrawAndCallReceiver( - receiver: PromiseOrValue, - amount: PromiseOrValue, - zrc20: PromiseOrValue, - str: PromiseOrValue, - num: PromiseOrValue, - flag: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/zevm/SenderZEVM.ts b/typechain-types/contracts/prototypes/zevm/SenderZEVM.ts deleted file mode 100644 index 26711238..00000000 --- a/typechain-types/contracts/prototypes/zevm/SenderZEVM.ts +++ /dev/null @@ -1,210 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { FunctionFragment, Result } from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../common"; - -export interface SenderZEVMInterface extends utils.Interface { - functions: { - "callReceiver(bytes,string,uint256,bool)": FunctionFragment; - "gateway()": FunctionFragment; - "withdrawAndCallReceiver(bytes,uint256,address,string,uint256,bool)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "callReceiver" - | "gateway" - | "withdrawAndCallReceiver" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "callReceiver", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData(functionFragment: "gateway", values?: undefined): string; - encodeFunctionData( - functionFragment: "withdrawAndCallReceiver", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - - decodeFunctionResult( - functionFragment: "callReceiver", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "gateway", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "withdrawAndCallReceiver", - data: BytesLike - ): Result; - - events: {}; -} - -export interface SenderZEVM extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: SenderZEVMInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - callReceiver( - receiver: PromiseOrValue, - str: PromiseOrValue, - num: PromiseOrValue, - flag: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - gateway(overrides?: CallOverrides): Promise<[string]>; - - withdrawAndCallReceiver( - receiver: PromiseOrValue, - amount: PromiseOrValue, - zrc20: PromiseOrValue, - str: PromiseOrValue, - num: PromiseOrValue, - flag: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - callReceiver( - receiver: PromiseOrValue, - str: PromiseOrValue, - num: PromiseOrValue, - flag: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - gateway(overrides?: CallOverrides): Promise; - - withdrawAndCallReceiver( - receiver: PromiseOrValue, - amount: PromiseOrValue, - zrc20: PromiseOrValue, - str: PromiseOrValue, - num: PromiseOrValue, - flag: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - callReceiver( - receiver: PromiseOrValue, - str: PromiseOrValue, - num: PromiseOrValue, - flag: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - gateway(overrides?: CallOverrides): Promise; - - withdrawAndCallReceiver( - receiver: PromiseOrValue, - amount: PromiseOrValue, - zrc20: PromiseOrValue, - str: PromiseOrValue, - num: PromiseOrValue, - flag: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: {}; - - estimateGas: { - callReceiver( - receiver: PromiseOrValue, - str: PromiseOrValue, - num: PromiseOrValue, - flag: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - gateway(overrides?: CallOverrides): Promise; - - withdrawAndCallReceiver( - receiver: PromiseOrValue, - amount: PromiseOrValue, - zrc20: PromiseOrValue, - str: PromiseOrValue, - num: PromiseOrValue, - flag: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - callReceiver( - receiver: PromiseOrValue, - str: PromiseOrValue, - num: PromiseOrValue, - flag: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - gateway(overrides?: CallOverrides): Promise; - - withdrawAndCallReceiver( - receiver: PromiseOrValue, - amount: PromiseOrValue, - zrc20: PromiseOrValue, - str: PromiseOrValue, - num: PromiseOrValue, - flag: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/zevm/TestZContract.ts b/typechain-types/contracts/prototypes/zevm/TestZContract.ts deleted file mode 100644 index 52795556..00000000 --- a/typechain-types/contracts/prototypes/zevm/TestZContract.ts +++ /dev/null @@ -1,272 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../common"; - -export type ZContextStruct = { - origin: PromiseOrValue; - sender: PromiseOrValue; - chainID: PromiseOrValue; -}; - -export type ZContextStructOutput = [string, string, BigNumber] & { - origin: string; - sender: string; - chainID: BigNumber; -}; - -export type RevertContextStruct = { - origin: PromiseOrValue; - sender: PromiseOrValue; - chainID: PromiseOrValue; -}; - -export type RevertContextStructOutput = [string, string, BigNumber] & { - origin: string; - sender: string; - chainID: BigNumber; -}; - -export interface TestZContractInterface extends utils.Interface { - functions: { - "onCrossChainCall((bytes,address,uint256),address,uint256,bytes)": FunctionFragment; - "onRevert((bytes,address,uint256),address,uint256,bytes)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: "onCrossChainCall" | "onRevert" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "onCrossChainCall", - values: [ - ZContextStruct, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "onRevert", - values: [ - RevertContextStruct, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - - decodeFunctionResult( - functionFragment: "onCrossChainCall", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "onRevert", data: BytesLike): Result; - - events: { - "ContextData(bytes,address,uint256,address,string)": EventFragment; - "ContextDataRevert(bytes,address,uint256,address,string)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "ContextData"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ContextDataRevert"): EventFragment; -} - -export interface ContextDataEventObject { - origin: string; - sender: string; - chainID: BigNumber; - msgSender: string; - message: string; -} -export type ContextDataEvent = TypedEvent< - [string, string, BigNumber, string, string], - ContextDataEventObject ->; - -export type ContextDataEventFilter = TypedEventFilter; - -export interface ContextDataRevertEventObject { - origin: string; - sender: string; - chainID: BigNumber; - msgSender: string; - message: string; -} -export type ContextDataRevertEvent = TypedEvent< - [string, string, BigNumber, string, string], - ContextDataRevertEventObject ->; - -export type ContextDataRevertEventFilter = - TypedEventFilter; - -export interface TestZContract extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: TestZContractInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - onCrossChainCall( - context: ZContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - onRevert( - context: RevertContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - onCrossChainCall( - context: ZContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - onRevert( - context: RevertContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - onCrossChainCall( - context: ZContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - message: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - onRevert( - context: RevertContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - message: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "ContextData(bytes,address,uint256,address,string)"( - origin?: null, - sender?: null, - chainID?: null, - msgSender?: null, - message?: null - ): ContextDataEventFilter; - ContextData( - origin?: null, - sender?: null, - chainID?: null, - msgSender?: null, - message?: null - ): ContextDataEventFilter; - - "ContextDataRevert(bytes,address,uint256,address,string)"( - origin?: null, - sender?: null, - chainID?: null, - msgSender?: null, - message?: null - ): ContextDataRevertEventFilter; - ContextDataRevert( - origin?: null, - sender?: null, - chainID?: null, - msgSender?: null, - message?: null - ): ContextDataRevertEventFilter; - }; - - estimateGas: { - onCrossChainCall( - context: ZContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - onRevert( - context: RevertContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - onCrossChainCall( - context: ZContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - onRevert( - context: RevertContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/zevm/ZRC20New.sol/ZRC20Errors.ts b/typechain-types/contracts/prototypes/zevm/ZRC20New.sol/ZRC20Errors.ts deleted file mode 100644 index 097645d4..00000000 --- a/typechain-types/contracts/prototypes/zevm/ZRC20New.sol/ZRC20Errors.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { BaseContract, Signer, utils } from "ethers"; - -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../../common"; - -export interface ZRC20ErrorsInterface extends utils.Interface { - functions: {}; - - events: {}; -} - -export interface ZRC20Errors extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: ZRC20ErrorsInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: {}; - - callStatic: {}; - - filters: {}; - - estimateGas: {}; - - populateTransaction: {}; -} diff --git a/typechain-types/contracts/prototypes/zevm/ZRC20New.sol/ZRC20New.ts b/typechain-types/contracts/prototypes/zevm/ZRC20New.sol/ZRC20New.ts deleted file mode 100644 index 7acc65b2..00000000 --- a/typechain-types/contracts/prototypes/zevm/ZRC20New.sol/ZRC20New.ts +++ /dev/null @@ -1,854 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../../common"; - -export interface ZRC20NewInterface extends utils.Interface { - functions: { - "CHAIN_ID()": FunctionFragment; - "COIN_TYPE()": FunctionFragment; - "FUNGIBLE_MODULE_ADDRESS()": FunctionFragment; - "GAS_LIMIT()": FunctionFragment; - "GATEWAY_CONTRACT_ADDRESS()": FunctionFragment; - "PROTOCOL_FLAT_FEE()": FunctionFragment; - "SYSTEM_CONTRACT_ADDRESS()": FunctionFragment; - "allowance(address,address)": FunctionFragment; - "approve(address,uint256)": FunctionFragment; - "balanceOf(address)": FunctionFragment; - "burn(uint256)": FunctionFragment; - "decimals()": FunctionFragment; - "deposit(address,uint256)": FunctionFragment; - "name()": FunctionFragment; - "symbol()": FunctionFragment; - "totalSupply()": FunctionFragment; - "transfer(address,uint256)": FunctionFragment; - "transferFrom(address,address,uint256)": FunctionFragment; - "updateGasLimit(uint256)": FunctionFragment; - "updateProtocolFlatFee(uint256)": FunctionFragment; - "updateSystemContractAddress(address)": FunctionFragment; - "withdraw(bytes,uint256)": FunctionFragment; - "withdrawGasFee()": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "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; - - 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: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "burn", - values: [PromiseOrValue] - ): string; - encodeFunctionData(functionFragment: "decimals", values?: undefined): string; - encodeFunctionData( - functionFragment: "deposit", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData(functionFragment: "name", values?: undefined): string; - encodeFunctionData(functionFragment: "symbol", values?: undefined): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "updateGasLimit", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "updateProtocolFlatFee", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "updateSystemContractAddress", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "withdraw", - values: [PromiseOrValue, PromiseOrValue] - ): 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; - - events: { - "Approval(address,address,uint256)": EventFragment; - "Deposit(bytes,address,uint256)": EventFragment; - "Transfer(address,address,uint256)": EventFragment; - "UpdatedGasLimit(uint256)": EventFragment; - "UpdatedProtocolFlatFee(uint256)": EventFragment; - "UpdatedSystemContract(address)": EventFragment; - "Withdrawal(address,bytes,uint256,uint256,uint256)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Deposit"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment; - getEvent(nameOrSignatureOrTopic: "UpdatedGasLimit"): EventFragment; - getEvent(nameOrSignatureOrTopic: "UpdatedProtocolFlatFee"): EventFragment; - getEvent(nameOrSignatureOrTopic: "UpdatedSystemContract"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Withdrawal"): EventFragment; -} - -export interface ApprovalEventObject { - owner: string; - spender: string; - value: BigNumber; -} -export type ApprovalEvent = TypedEvent< - [string, string, BigNumber], - ApprovalEventObject ->; - -export type ApprovalEventFilter = TypedEventFilter; - -export interface DepositEventObject { - from: string; - to: string; - value: BigNumber; -} -export type DepositEvent = TypedEvent< - [string, string, BigNumber], - DepositEventObject ->; - -export type DepositEventFilter = TypedEventFilter; - -export interface TransferEventObject { - from: string; - to: string; - value: BigNumber; -} -export type TransferEvent = TypedEvent< - [string, string, BigNumber], - TransferEventObject ->; - -export type TransferEventFilter = TypedEventFilter; - -export interface UpdatedGasLimitEventObject { - gasLimit: BigNumber; -} -export type UpdatedGasLimitEvent = TypedEvent< - [BigNumber], - UpdatedGasLimitEventObject ->; - -export type UpdatedGasLimitEventFilter = TypedEventFilter; - -export interface UpdatedProtocolFlatFeeEventObject { - protocolFlatFee: BigNumber; -} -export type UpdatedProtocolFlatFeeEvent = TypedEvent< - [BigNumber], - UpdatedProtocolFlatFeeEventObject ->; - -export type UpdatedProtocolFlatFeeEventFilter = - TypedEventFilter; - -export interface UpdatedSystemContractEventObject { - systemContract: string; -} -export type UpdatedSystemContractEvent = TypedEvent< - [string], - UpdatedSystemContractEventObject ->; - -export type UpdatedSystemContractEventFilter = - TypedEventFilter; - -export interface WithdrawalEventObject { - from: string; - to: string; - value: BigNumber; - gasfee: BigNumber; - protocolFlatFee: BigNumber; -} -export type WithdrawalEvent = TypedEvent< - [string, string, BigNumber, BigNumber, BigNumber], - WithdrawalEventObject ->; - -export type WithdrawalEventFilter = TypedEventFilter; - -export interface ZRC20New extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: ZRC20NewInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - CHAIN_ID(overrides?: CallOverrides): Promise<[BigNumber]>; - - COIN_TYPE(overrides?: CallOverrides): Promise<[number]>; - - FUNGIBLE_MODULE_ADDRESS(overrides?: CallOverrides): Promise<[string]>; - - GAS_LIMIT(overrides?: CallOverrides): Promise<[BigNumber]>; - - GATEWAY_CONTRACT_ADDRESS(overrides?: CallOverrides): Promise<[string]>; - - PROTOCOL_FLAT_FEE(overrides?: CallOverrides): Promise<[BigNumber]>; - - SYSTEM_CONTRACT_ADDRESS(overrides?: CallOverrides): Promise<[string]>; - - allowance( - owner: PromiseOrValue, - spender: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - approve( - spender: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - burn( - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - decimals(overrides?: CallOverrides): Promise<[number]>; - - deposit( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - name(overrides?: CallOverrides): Promise<[string]>; - - symbol(overrides?: CallOverrides): Promise<[string]>; - - totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>; - - transfer( - recipient: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferFrom( - sender: PromiseOrValue, - recipient: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - updateGasLimit( - gasLimit: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - updateProtocolFlatFee( - protocolFlatFee: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - updateSystemContractAddress( - addr: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdraw( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawGasFee(overrides?: CallOverrides): Promise<[string, BigNumber]>; - }; - - CHAIN_ID(overrides?: CallOverrides): Promise; - - COIN_TYPE(overrides?: CallOverrides): Promise; - - FUNGIBLE_MODULE_ADDRESS(overrides?: CallOverrides): Promise; - - GAS_LIMIT(overrides?: CallOverrides): Promise; - - GATEWAY_CONTRACT_ADDRESS(overrides?: CallOverrides): Promise; - - PROTOCOL_FLAT_FEE(overrides?: CallOverrides): Promise; - - SYSTEM_CONTRACT_ADDRESS(overrides?: CallOverrides): Promise; - - allowance( - owner: PromiseOrValue, - spender: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - approve( - spender: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - burn( - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - deposit( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - recipient: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferFrom( - sender: PromiseOrValue, - recipient: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - updateGasLimit( - gasLimit: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - updateProtocolFlatFee( - protocolFlatFee: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - updateSystemContractAddress( - addr: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdraw( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawGasFee(overrides?: CallOverrides): Promise<[string, BigNumber]>; - - callStatic: { - CHAIN_ID(overrides?: CallOverrides): Promise; - - COIN_TYPE(overrides?: CallOverrides): Promise; - - FUNGIBLE_MODULE_ADDRESS(overrides?: CallOverrides): Promise; - - GAS_LIMIT(overrides?: CallOverrides): Promise; - - GATEWAY_CONTRACT_ADDRESS(overrides?: CallOverrides): Promise; - - PROTOCOL_FLAT_FEE(overrides?: CallOverrides): Promise; - - SYSTEM_CONTRACT_ADDRESS(overrides?: CallOverrides): Promise; - - allowance( - owner: PromiseOrValue, - spender: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - approve( - spender: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - balanceOf( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - burn( - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - deposit( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - recipient: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - transferFrom( - sender: PromiseOrValue, - recipient: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - updateGasLimit( - gasLimit: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - updateProtocolFlatFee( - protocolFlatFee: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - updateSystemContractAddress( - addr: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - withdraw( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - withdrawGasFee(overrides?: CallOverrides): Promise<[string, BigNumber]>; - }; - - filters: { - "Approval(address,address,uint256)"( - owner?: PromiseOrValue | null, - spender?: PromiseOrValue | null, - value?: null - ): ApprovalEventFilter; - Approval( - owner?: PromiseOrValue | null, - spender?: PromiseOrValue | null, - value?: null - ): ApprovalEventFilter; - - "Deposit(bytes,address,uint256)"( - from?: null, - to?: PromiseOrValue | null, - value?: null - ): DepositEventFilter; - Deposit( - from?: null, - to?: PromiseOrValue | null, - value?: null - ): DepositEventFilter; - - "Transfer(address,address,uint256)"( - from?: PromiseOrValue | null, - to?: PromiseOrValue | null, - value?: null - ): TransferEventFilter; - Transfer( - from?: PromiseOrValue | null, - to?: PromiseOrValue | null, - value?: null - ): TransferEventFilter; - - "UpdatedGasLimit(uint256)"(gasLimit?: null): UpdatedGasLimitEventFilter; - UpdatedGasLimit(gasLimit?: null): UpdatedGasLimitEventFilter; - - "UpdatedProtocolFlatFee(uint256)"( - protocolFlatFee?: null - ): UpdatedProtocolFlatFeeEventFilter; - UpdatedProtocolFlatFee( - protocolFlatFee?: null - ): UpdatedProtocolFlatFeeEventFilter; - - "UpdatedSystemContract(address)"( - systemContract?: null - ): UpdatedSystemContractEventFilter; - UpdatedSystemContract( - systemContract?: null - ): UpdatedSystemContractEventFilter; - - "Withdrawal(address,bytes,uint256,uint256,uint256)"( - from?: PromiseOrValue | null, - to?: null, - value?: null, - gasfee?: null, - protocolFlatFee?: null - ): WithdrawalEventFilter; - Withdrawal( - from?: PromiseOrValue | null, - to?: null, - value?: null, - gasfee?: null, - protocolFlatFee?: null - ): WithdrawalEventFilter; - }; - - estimateGas: { - CHAIN_ID(overrides?: CallOverrides): Promise; - - COIN_TYPE(overrides?: CallOverrides): Promise; - - FUNGIBLE_MODULE_ADDRESS(overrides?: CallOverrides): Promise; - - GAS_LIMIT(overrides?: CallOverrides): Promise; - - GATEWAY_CONTRACT_ADDRESS(overrides?: CallOverrides): Promise; - - PROTOCOL_FLAT_FEE(overrides?: CallOverrides): Promise; - - SYSTEM_CONTRACT_ADDRESS(overrides?: CallOverrides): Promise; - - allowance( - owner: PromiseOrValue, - spender: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - approve( - spender: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - burn( - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - deposit( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - recipient: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferFrom( - sender: PromiseOrValue, - recipient: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - updateGasLimit( - gasLimit: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - updateProtocolFlatFee( - protocolFlatFee: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - updateSystemContractAddress( - addr: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdraw( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawGasFee(overrides?: CallOverrides): Promise; - }; - - populateTransaction: { - CHAIN_ID(overrides?: CallOverrides): Promise; - - COIN_TYPE(overrides?: CallOverrides): Promise; - - FUNGIBLE_MODULE_ADDRESS( - overrides?: CallOverrides - ): Promise; - - GAS_LIMIT(overrides?: CallOverrides): Promise; - - GATEWAY_CONTRACT_ADDRESS( - overrides?: CallOverrides - ): Promise; - - PROTOCOL_FLAT_FEE(overrides?: CallOverrides): Promise; - - SYSTEM_CONTRACT_ADDRESS( - overrides?: CallOverrides - ): Promise; - - allowance( - owner: PromiseOrValue, - spender: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - approve( - spender: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - burn( - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - deposit( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - recipient: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferFrom( - sender: PromiseOrValue, - recipient: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - updateGasLimit( - gasLimit: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - updateProtocolFlatFee( - protocolFlatFee: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - updateSystemContractAddress( - addr: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdraw( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawGasFee(overrides?: CallOverrides): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/zevm/index.ts b/typechain-types/contracts/prototypes/zevm/index.ts deleted file mode 100644 index edbfa71c..00000000 --- a/typechain-types/contracts/prototypes/zevm/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as iGatewayZevmSol from "./IGatewayZEVM.sol"; -export type { iGatewayZevmSol }; -export type { GatewayZEVM } from "./GatewayZEVM"; -export type { SenderZEVM } from "./SenderZEVM"; -export type { TestZContract } from "./TestZContract"; diff --git a/typechain-types/contracts/prototypes/zevm/interfaces.sol/IGatewayZEVM.ts b/typechain-types/contracts/prototypes/zevm/interfaces.sol/IGatewayZEVM.ts deleted file mode 100644 index 12f1fa68..00000000 --- a/typechain-types/contracts/prototypes/zevm/interfaces.sol/IGatewayZEVM.ts +++ /dev/null @@ -1,389 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { FunctionFragment, Result } from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../../common"; - -export type ZContextStruct = { - origin: PromiseOrValue; - sender: PromiseOrValue; - chainID: PromiseOrValue; -}; - -export type ZContextStructOutput = [string, string, BigNumber] & { - origin: string; - sender: string; - chainID: BigNumber; -}; - -export interface IGatewayZEVMInterface extends utils.Interface { - functions: { - "call(bytes,bytes)": FunctionFragment; - "deposit(address,uint256,address)": FunctionFragment; - "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)": FunctionFragment; - "execute((bytes,address,uint256),address,uint256,address,bytes)": FunctionFragment; - "withdraw(bytes,uint256,address)": FunctionFragment; - "withdrawAndCall(bytes,uint256,address,bytes)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "call" - | "deposit" - | "depositAndCall" - | "execute" - | "withdraw" - | "withdrawAndCall" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "call", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "deposit", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "depositAndCall", - values: [ - ZContextStruct, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "execute", - values: [ - ZContextStruct, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "withdraw", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "withdrawAndCall", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): 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; - - events: {}; -} - -export interface IGatewayZEVM extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: IGatewayZEVMInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - call( - receiver: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - deposit( - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - depositAndCall( - context: ZContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - execute( - context: ZContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdraw( - receiver: PromiseOrValue, - amount: PromiseOrValue, - zrc20: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndCall( - receiver: PromiseOrValue, - amount: PromiseOrValue, - zrc20: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - call( - receiver: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - deposit( - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - depositAndCall( - context: ZContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - execute( - context: ZContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdraw( - receiver: PromiseOrValue, - amount: PromiseOrValue, - zrc20: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndCall( - receiver: PromiseOrValue, - amount: PromiseOrValue, - zrc20: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - call( - receiver: PromiseOrValue, - message: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - deposit( - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - depositAndCall( - context: ZContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - execute( - context: ZContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - withdraw( - receiver: PromiseOrValue, - amount: PromiseOrValue, - zrc20: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - withdrawAndCall( - receiver: PromiseOrValue, - amount: PromiseOrValue, - zrc20: PromiseOrValue, - message: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: {}; - - estimateGas: { - call( - receiver: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - deposit( - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - depositAndCall( - context: ZContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - execute( - context: ZContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdraw( - receiver: PromiseOrValue, - amount: PromiseOrValue, - zrc20: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndCall( - receiver: PromiseOrValue, - amount: PromiseOrValue, - zrc20: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - call( - receiver: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - deposit( - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - depositAndCall( - context: ZContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - execute( - context: ZContextStruct, - zrc20: PromiseOrValue, - amount: PromiseOrValue, - target: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdraw( - receiver: PromiseOrValue, - amount: PromiseOrValue, - zrc20: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawAndCall( - receiver: PromiseOrValue, - amount: PromiseOrValue, - zrc20: PromiseOrValue, - message: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/contracts/prototypes/zevm/interfaces.sol/IGatewayZEVMErrors.ts b/typechain-types/contracts/prototypes/zevm/interfaces.sol/IGatewayZEVMErrors.ts deleted file mode 100644 index 74cfd7ba..00000000 --- a/typechain-types/contracts/prototypes/zevm/interfaces.sol/IGatewayZEVMErrors.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { BaseContract, Signer, utils } from "ethers"; - -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../../common"; - -export interface IGatewayZEVMErrorsInterface extends utils.Interface { - functions: {}; - - events: {}; -} - -export interface IGatewayZEVMErrors extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: IGatewayZEVMErrorsInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: {}; - - callStatic: {}; - - filters: {}; - - estimateGas: {}; - - populateTransaction: {}; -} diff --git a/typechain-types/contracts/prototypes/zevm/interfaces.sol/IGatewayZEVMEvents.ts b/typechain-types/contracts/prototypes/zevm/interfaces.sol/IGatewayZEVMEvents.ts deleted file mode 100644 index 829208d9..00000000 --- a/typechain-types/contracts/prototypes/zevm/interfaces.sol/IGatewayZEVMEvents.ts +++ /dev/null @@ -1,117 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { BaseContract, BigNumber, Signer, utils } from "ethers"; -import type { EventFragment } from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../../common"; - -export interface IGatewayZEVMEventsInterface extends utils.Interface { - functions: {}; - - events: { - "Call(address,bytes,bytes)": EventFragment; - "Withdrawal(address,address,bytes,uint256,uint256,uint256,bytes)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Call"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Withdrawal"): EventFragment; -} - -export interface CallEventObject { - sender: string; - receiver: string; - message: string; -} -export type CallEvent = TypedEvent<[string, string, string], CallEventObject>; - -export type CallEventFilter = TypedEventFilter; - -export interface WithdrawalEventObject { - from: string; - zrc20: string; - to: string; - value: BigNumber; - gasfee: BigNumber; - protocolFlatFee: BigNumber; - message: string; -} -export type WithdrawalEvent = TypedEvent< - [string, string, string, BigNumber, BigNumber, BigNumber, string], - WithdrawalEventObject ->; - -export type WithdrawalEventFilter = TypedEventFilter; - -export interface IGatewayZEVMEvents extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: IGatewayZEVMEventsInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: {}; - - callStatic: {}; - - filters: { - "Call(address,bytes,bytes)"( - sender?: PromiseOrValue | null, - receiver?: null, - message?: null - ): CallEventFilter; - Call( - sender?: PromiseOrValue | null, - receiver?: null, - message?: null - ): CallEventFilter; - - "Withdrawal(address,address,bytes,uint256,uint256,uint256,bytes)"( - from?: PromiseOrValue | null, - zrc20?: null, - to?: null, - value?: null, - gasfee?: null, - protocolFlatFee?: null, - message?: null - ): WithdrawalEventFilter; - Withdrawal( - from?: PromiseOrValue | null, - zrc20?: null, - to?: null, - value?: null, - gasfee?: null, - protocolFlatFee?: null, - message?: null - ): WithdrawalEventFilter; - }; - - estimateGas: {}; - - populateTransaction: {}; -} diff --git a/typechain-types/contracts/prototypes/zevm/interfaces.sol/index.ts b/typechain-types/contracts/prototypes/zevm/interfaces.sol/index.ts deleted file mode 100644 index 736bdfc6..00000000 --- a/typechain-types/contracts/prototypes/zevm/interfaces.sol/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* 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/typechain-types/contracts/zevm/ZRC20New.sol/ZRC20Errors.ts b/typechain-types/contracts/zevm/ZRC20New.sol/ZRC20Errors.ts deleted file mode 100644 index fd71e53f..00000000 --- a/typechain-types/contracts/zevm/ZRC20New.sol/ZRC20Errors.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { BaseContract, Signer, utils } from "ethers"; - -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../common"; - -export interface ZRC20ErrorsInterface extends utils.Interface { - functions: {}; - - events: {}; -} - -export interface ZRC20Errors extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: ZRC20ErrorsInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: {}; - - callStatic: {}; - - filters: {}; - - estimateGas: {}; - - populateTransaction: {}; -} diff --git a/typechain-types/contracts/zevm/ZRC20New.sol/ZRC20New.ts b/typechain-types/contracts/zevm/ZRC20New.sol/ZRC20New.ts deleted file mode 100644 index 926c4c54..00000000 --- a/typechain-types/contracts/zevm/ZRC20New.sol/ZRC20New.ts +++ /dev/null @@ -1,854 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../common"; - -export interface ZRC20NewInterface extends utils.Interface { - functions: { - "CHAIN_ID()": FunctionFragment; - "COIN_TYPE()": FunctionFragment; - "FUNGIBLE_MODULE_ADDRESS()": FunctionFragment; - "GAS_LIMIT()": FunctionFragment; - "GATEWAY_CONTRACT_ADDRESS()": FunctionFragment; - "PROTOCOL_FLAT_FEE()": FunctionFragment; - "SYSTEM_CONTRACT_ADDRESS()": FunctionFragment; - "allowance(address,address)": FunctionFragment; - "approve(address,uint256)": FunctionFragment; - "balanceOf(address)": FunctionFragment; - "burn(uint256)": FunctionFragment; - "decimals()": FunctionFragment; - "deposit(address,uint256)": FunctionFragment; - "name()": FunctionFragment; - "symbol()": FunctionFragment; - "totalSupply()": FunctionFragment; - "transfer(address,uint256)": FunctionFragment; - "transferFrom(address,address,uint256)": FunctionFragment; - "updateGasLimit(uint256)": FunctionFragment; - "updateProtocolFlatFee(uint256)": FunctionFragment; - "updateSystemContractAddress(address)": FunctionFragment; - "withdraw(bytes,uint256)": FunctionFragment; - "withdrawGasFee()": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "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; - - 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: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "burn", - values: [PromiseOrValue] - ): string; - encodeFunctionData(functionFragment: "decimals", values?: undefined): string; - encodeFunctionData( - functionFragment: "deposit", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData(functionFragment: "name", values?: undefined): string; - encodeFunctionData(functionFragment: "symbol", values?: undefined): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "updateGasLimit", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "updateProtocolFlatFee", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "updateSystemContractAddress", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "withdraw", - values: [PromiseOrValue, PromiseOrValue] - ): 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; - - events: { - "Approval(address,address,uint256)": EventFragment; - "Deposit(bytes,address,uint256)": EventFragment; - "Transfer(address,address,uint256)": EventFragment; - "UpdatedGasLimit(uint256)": EventFragment; - "UpdatedProtocolFlatFee(uint256)": EventFragment; - "UpdatedSystemContract(address)": EventFragment; - "Withdrawal(address,bytes,uint256,uint256,uint256)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Deposit"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment; - getEvent(nameOrSignatureOrTopic: "UpdatedGasLimit"): EventFragment; - getEvent(nameOrSignatureOrTopic: "UpdatedProtocolFlatFee"): EventFragment; - getEvent(nameOrSignatureOrTopic: "UpdatedSystemContract"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Withdrawal"): EventFragment; -} - -export interface ApprovalEventObject { - owner: string; - spender: string; - value: BigNumber; -} -export type ApprovalEvent = TypedEvent< - [string, string, BigNumber], - ApprovalEventObject ->; - -export type ApprovalEventFilter = TypedEventFilter; - -export interface DepositEventObject { - from: string; - to: string; - value: BigNumber; -} -export type DepositEvent = TypedEvent< - [string, string, BigNumber], - DepositEventObject ->; - -export type DepositEventFilter = TypedEventFilter; - -export interface TransferEventObject { - from: string; - to: string; - value: BigNumber; -} -export type TransferEvent = TypedEvent< - [string, string, BigNumber], - TransferEventObject ->; - -export type TransferEventFilter = TypedEventFilter; - -export interface UpdatedGasLimitEventObject { - gasLimit: BigNumber; -} -export type UpdatedGasLimitEvent = TypedEvent< - [BigNumber], - UpdatedGasLimitEventObject ->; - -export type UpdatedGasLimitEventFilter = TypedEventFilter; - -export interface UpdatedProtocolFlatFeeEventObject { - protocolFlatFee: BigNumber; -} -export type UpdatedProtocolFlatFeeEvent = TypedEvent< - [BigNumber], - UpdatedProtocolFlatFeeEventObject ->; - -export type UpdatedProtocolFlatFeeEventFilter = - TypedEventFilter; - -export interface UpdatedSystemContractEventObject { - systemContract: string; -} -export type UpdatedSystemContractEvent = TypedEvent< - [string], - UpdatedSystemContractEventObject ->; - -export type UpdatedSystemContractEventFilter = - TypedEventFilter; - -export interface WithdrawalEventObject { - from: string; - to: string; - value: BigNumber; - gasFee: BigNumber; - protocolFlatFee: BigNumber; -} -export type WithdrawalEvent = TypedEvent< - [string, string, BigNumber, BigNumber, BigNumber], - WithdrawalEventObject ->; - -export type WithdrawalEventFilter = TypedEventFilter; - -export interface ZRC20New extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: ZRC20NewInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - CHAIN_ID(overrides?: CallOverrides): Promise<[BigNumber]>; - - COIN_TYPE(overrides?: CallOverrides): Promise<[number]>; - - FUNGIBLE_MODULE_ADDRESS(overrides?: CallOverrides): Promise<[string]>; - - GAS_LIMIT(overrides?: CallOverrides): Promise<[BigNumber]>; - - GATEWAY_CONTRACT_ADDRESS(overrides?: CallOverrides): Promise<[string]>; - - PROTOCOL_FLAT_FEE(overrides?: CallOverrides): Promise<[BigNumber]>; - - SYSTEM_CONTRACT_ADDRESS(overrides?: CallOverrides): Promise<[string]>; - - allowance( - owner: PromiseOrValue, - spender: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - approve( - spender: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - burn( - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - decimals(overrides?: CallOverrides): Promise<[number]>; - - deposit( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - name(overrides?: CallOverrides): Promise<[string]>; - - symbol(overrides?: CallOverrides): Promise<[string]>; - - totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>; - - transfer( - recipient: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferFrom( - sender: PromiseOrValue, - recipient: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - updateGasLimit( - gasLimit: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - updateProtocolFlatFee( - protocolFlatFee: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - updateSystemContractAddress( - addr: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdraw( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawGasFee(overrides?: CallOverrides): Promise<[string, BigNumber]>; - }; - - CHAIN_ID(overrides?: CallOverrides): Promise; - - COIN_TYPE(overrides?: CallOverrides): Promise; - - FUNGIBLE_MODULE_ADDRESS(overrides?: CallOverrides): Promise; - - GAS_LIMIT(overrides?: CallOverrides): Promise; - - GATEWAY_CONTRACT_ADDRESS(overrides?: CallOverrides): Promise; - - PROTOCOL_FLAT_FEE(overrides?: CallOverrides): Promise; - - SYSTEM_CONTRACT_ADDRESS(overrides?: CallOverrides): Promise; - - allowance( - owner: PromiseOrValue, - spender: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - approve( - spender: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - burn( - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - deposit( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - recipient: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferFrom( - sender: PromiseOrValue, - recipient: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - updateGasLimit( - gasLimit: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - updateProtocolFlatFee( - protocolFlatFee: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - updateSystemContractAddress( - addr: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdraw( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawGasFee(overrides?: CallOverrides): Promise<[string, BigNumber]>; - - callStatic: { - CHAIN_ID(overrides?: CallOverrides): Promise; - - COIN_TYPE(overrides?: CallOverrides): Promise; - - FUNGIBLE_MODULE_ADDRESS(overrides?: CallOverrides): Promise; - - GAS_LIMIT(overrides?: CallOverrides): Promise; - - GATEWAY_CONTRACT_ADDRESS(overrides?: CallOverrides): Promise; - - PROTOCOL_FLAT_FEE(overrides?: CallOverrides): Promise; - - SYSTEM_CONTRACT_ADDRESS(overrides?: CallOverrides): Promise; - - allowance( - owner: PromiseOrValue, - spender: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - approve( - spender: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - balanceOf( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - burn( - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - deposit( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - recipient: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - transferFrom( - sender: PromiseOrValue, - recipient: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - updateGasLimit( - gasLimit: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - updateProtocolFlatFee( - protocolFlatFee: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - updateSystemContractAddress( - addr: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - withdraw( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - withdrawGasFee(overrides?: CallOverrides): Promise<[string, BigNumber]>; - }; - - filters: { - "Approval(address,address,uint256)"( - owner?: PromiseOrValue | null, - spender?: PromiseOrValue | null, - value?: null - ): ApprovalEventFilter; - Approval( - owner?: PromiseOrValue | null, - spender?: PromiseOrValue | null, - value?: null - ): ApprovalEventFilter; - - "Deposit(bytes,address,uint256)"( - from?: null, - to?: PromiseOrValue | null, - value?: null - ): DepositEventFilter; - Deposit( - from?: null, - to?: PromiseOrValue | null, - value?: null - ): DepositEventFilter; - - "Transfer(address,address,uint256)"( - from?: PromiseOrValue | null, - to?: PromiseOrValue | null, - value?: null - ): TransferEventFilter; - Transfer( - from?: PromiseOrValue | null, - to?: PromiseOrValue | null, - value?: null - ): TransferEventFilter; - - "UpdatedGasLimit(uint256)"(gasLimit?: null): UpdatedGasLimitEventFilter; - UpdatedGasLimit(gasLimit?: null): UpdatedGasLimitEventFilter; - - "UpdatedProtocolFlatFee(uint256)"( - protocolFlatFee?: null - ): UpdatedProtocolFlatFeeEventFilter; - UpdatedProtocolFlatFee( - protocolFlatFee?: null - ): UpdatedProtocolFlatFeeEventFilter; - - "UpdatedSystemContract(address)"( - systemContract?: null - ): UpdatedSystemContractEventFilter; - UpdatedSystemContract( - systemContract?: null - ): UpdatedSystemContractEventFilter; - - "Withdrawal(address,bytes,uint256,uint256,uint256)"( - from?: PromiseOrValue | null, - to?: null, - value?: null, - gasFee?: null, - protocolFlatFee?: null - ): WithdrawalEventFilter; - Withdrawal( - from?: PromiseOrValue | null, - to?: null, - value?: null, - gasFee?: null, - protocolFlatFee?: null - ): WithdrawalEventFilter; - }; - - estimateGas: { - CHAIN_ID(overrides?: CallOverrides): Promise; - - COIN_TYPE(overrides?: CallOverrides): Promise; - - FUNGIBLE_MODULE_ADDRESS(overrides?: CallOverrides): Promise; - - GAS_LIMIT(overrides?: CallOverrides): Promise; - - GATEWAY_CONTRACT_ADDRESS(overrides?: CallOverrides): Promise; - - PROTOCOL_FLAT_FEE(overrides?: CallOverrides): Promise; - - SYSTEM_CONTRACT_ADDRESS(overrides?: CallOverrides): Promise; - - allowance( - owner: PromiseOrValue, - spender: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - approve( - spender: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - burn( - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - deposit( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - recipient: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferFrom( - sender: PromiseOrValue, - recipient: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - updateGasLimit( - gasLimit: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - updateProtocolFlatFee( - protocolFlatFee: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - updateSystemContractAddress( - addr: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdraw( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawGasFee(overrides?: CallOverrides): Promise; - }; - - populateTransaction: { - CHAIN_ID(overrides?: CallOverrides): Promise; - - COIN_TYPE(overrides?: CallOverrides): Promise; - - FUNGIBLE_MODULE_ADDRESS( - overrides?: CallOverrides - ): Promise; - - GAS_LIMIT(overrides?: CallOverrides): Promise; - - GATEWAY_CONTRACT_ADDRESS( - overrides?: CallOverrides - ): Promise; - - PROTOCOL_FLAT_FEE(overrides?: CallOverrides): Promise; - - SYSTEM_CONTRACT_ADDRESS( - overrides?: CallOverrides - ): Promise; - - allowance( - owner: PromiseOrValue, - spender: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - approve( - spender: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - burn( - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - deposit( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - recipient: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferFrom( - sender: PromiseOrValue, - recipient: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - updateGasLimit( - gasLimit: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - updateProtocolFlatFee( - protocolFlatFee: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - updateSystemContractAddress( - addr: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdraw( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - withdrawGasFee(overrides?: CallOverrides): Promise; - }; -} diff --git a/typechain-types/contracts/zevm/ZRC20New.sol/index.ts b/typechain-types/contracts/zevm/ZRC20New.sol/index.ts deleted file mode 100644 index ea6138df..00000000 --- a/typechain-types/contracts/zevm/ZRC20New.sol/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { ZRC20Errors } from "./ZRC20Errors"; -export type { ZRC20New } from "./ZRC20New"; diff --git a/typechain-types/factories/@openzeppelin/index.ts b/typechain-types/factories/@openzeppelin/index.ts deleted file mode 100644 index 6923c15a..00000000 --- a/typechain-types/factories/@openzeppelin/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as contracts from "./contracts"; -export * as contractsUpgradeable from "./contracts-upgradeable"; diff --git a/typechain-types/factories/contracts/index.ts b/typechain-types/factories/contracts/index.ts deleted file mode 100644 index bcdd9858..00000000 --- a/typechain-types/factories/contracts/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as evm from "./evm"; -export * as prototypes from "./prototypes"; -export * as zevm from "./zevm"; diff --git a/typechain-types/factories/contracts/prototypes/ERC20CustodyNew__factory.ts b/typechain-types/factories/contracts/prototypes/ERC20CustodyNew__factory.ts deleted file mode 100644 index 8dc23c23..00000000 --- a/typechain-types/factories/contracts/prototypes/ERC20CustodyNew__factory.ts +++ /dev/null @@ -1,196 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../common"; -import type { - ERC20CustodyNew, - ERC20CustodyNewInterface, -} from "../../../contracts/prototypes/ERC20CustodyNew"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "_gateway", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "constructor", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "Withdraw", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "WithdrawAndCall", - type: "event", - }, - { - inputs: [], - name: "gateway", - outputs: [ - { - internalType: "contract IGateway", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "withdraw", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "withdrawAndCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -const _bytecode = - "0x608060405234801561001057600080fd5b50604051610a66380380610a668339818101604052810190610032919061008d565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610108565b600081519050610087816100f1565b92915050565b6000602082840312156100a3576100a26100ec565b5b60006100b184828501610078565b91505092915050565b60006100c5826100cc565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6100fa816100ba565b811461010557600080fd5b50565b61094f806101176000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063116191b61461004657806321fc65f214610064578063d9caed1214610080575b600080fd5b61004e61009c565b60405161005b91906106b6565b60405180910390f35b61007e600480360381019061007991906104e7565b6100c0565b005b61009a60048036038101906100959190610494565b610297565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b8473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b815260040161011b92919061068d565b602060405180830381600087803b15801561013557600080fd5b505af1158015610149573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061016d919061056f565b5060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635131ab5986868686866040518663ffffffff1660e01b81526004016101cf95949392919061063f565b600060405180830381600087803b1580156101e957600080fd5b505af11580156101fd573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610226919061059c565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e858585604051610288939291906106ec565b60405180910390a35050505050565b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b81526004016102d292919061068d565b602060405180830381600087803b1580156102ec57600080fd5b505af1158015610300573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610324919061056f565b508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb8360405161038291906106d1565b60405180910390a3505050565b60006103a261039d84610743565b61071e565b9050828152602081018484840111156103be576103bd6108b4565b5b6103c9848285610812565b509392505050565b6000813590506103e0816108d4565b92915050565b6000815190506103f5816108eb565b92915050565b60008083601f840112610411576104106108aa565b5b8235905067ffffffffffffffff81111561042e5761042d6108a5565b5b60208301915083600182028301111561044a576104496108af565b5b9250929050565b600082601f830112610466576104656108aa565b5b815161047684826020860161038f565b91505092915050565b60008135905061048e81610902565b92915050565b6000806000606084860312156104ad576104ac6108be565b5b60006104bb868287016103d1565b93505060206104cc868287016103d1565b92505060406104dd8682870161047f565b9150509250925092565b600080600080600060808688031215610503576105026108be565b5b6000610511888289016103d1565b9550506020610522888289016103d1565b94505060406105338882890161047f565b935050606086013567ffffffffffffffff811115610554576105536108b9565b5b610560888289016103fb565b92509250509295509295909350565b600060208284031215610585576105846108be565b5b6000610593848285016103e6565b91505092915050565b6000602082840312156105b2576105b16108be565b5b600082015167ffffffffffffffff8111156105d0576105cf6108b9565b5b6105dc84828501610451565b91505092915050565b6105ee81610785565b82525050565b60006106008385610774565b935061060d838584610803565b610616836108c3565b840190509392505050565b61062a816107cd565b82525050565b610639816107c3565b82525050565b600060808201905061065460008301886105e5565b61066160208301876105e5565b61066e6040830186610630565b81810360608301526106818184866105f4565b90509695505050505050565b60006040820190506106a260008301856105e5565b6106af6020830184610630565b9392505050565b60006020820190506106cb6000830184610621565b92915050565b60006020820190506106e66000830184610630565b92915050565b60006040820190506107016000830186610630565b81810360208301526107148184866105f4565b9050949350505050565b6000610728610739565b90506107348282610845565b919050565b6000604051905090565b600067ffffffffffffffff82111561075e5761075d610876565b5b610767826108c3565b9050602081019050919050565b600082825260208201905092915050565b6000610790826107a3565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006107d8826107df565b9050919050565b60006107ea826107f1565b9050919050565b60006107fc826107a3565b9050919050565b82818337600083830152505050565b60005b83811015610830578082015181840152602081019050610815565b8381111561083f576000848401525b50505050565b61084e826108c3565b810181811067ffffffffffffffff8211171561086d5761086c610876565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b6108dd81610785565b81146108e857600080fd5b50565b6108f481610797565b81146108ff57600080fd5b50565b61090b816107c3565b811461091657600080fd5b5056fea26469706673582212203656518e4aa8f541dde5a4d09490f8b82b1ab5258bd18825341fe0e14e94eab164736f6c63430008070033"; - -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 deploy( - _gateway: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy(_gateway, overrides || {}) as Promise; - } - override getDeployTransaction( - _gateway: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction(_gateway, overrides || {}); - } - override attach(address: string): ERC20CustodyNew { - return super.attach(address) as ERC20CustodyNew; - } - override connect(signer: Signer): ERC20CustodyNew__factory { - return super.connect(signer) as ERC20CustodyNew__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): ERC20CustodyNewInterface { - return new utils.Interface(_abi) as ERC20CustodyNewInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): ERC20CustodyNew { - return new Contract(address, _abi, signerOrProvider) as ERC20CustodyNew; - } -} diff --git a/typechain-types/factories/contracts/prototypes/ERC20Custody__factory.ts b/typechain-types/factories/contracts/prototypes/ERC20Custody__factory.ts deleted file mode 100644 index ab89fca7..00000000 --- a/typechain-types/factories/contracts/prototypes/ERC20Custody__factory.ts +++ /dev/null @@ -1,196 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../common"; -import type { - ERC20Custody, - ERC20CustodyInterface, -} from "../../../contracts/prototypes/ERC20Custody"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "_gateway", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "constructor", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "Withdraw", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "WithdrawAndCall", - type: "event", - }, - { - inputs: [], - name: "gateway", - outputs: [ - { - internalType: "contract Gateway", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "withdraw", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "withdrawAndCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -const _bytecode = - "0x608060405234801561001057600080fd5b50604051610a66380380610a668339818101604052810190610032919061008d565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610108565b600081519050610087816100f1565b92915050565b6000602082840312156100a3576100a26100ec565b5b60006100b184828501610078565b91505092915050565b60006100c5826100cc565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6100fa816100ba565b811461010557600080fd5b50565b61094f806101176000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063116191b61461004657806321fc65f214610064578063d9caed1214610080575b600080fd5b61004e61009c565b60405161005b91906106b6565b60405180910390f35b61007e600480360381019061007991906104e7565b6100c0565b005b61009a60048036038101906100959190610494565b610297565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b8473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b815260040161011b92919061068d565b602060405180830381600087803b15801561013557600080fd5b505af1158015610149573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061016d919061056f565b5060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635131ab5986868686866040518663ffffffff1660e01b81526004016101cf95949392919061063f565b600060405180830381600087803b1580156101e957600080fd5b505af11580156101fd573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610226919061059c565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e858585604051610288939291906106ec565b60405180910390a35050505050565b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b81526004016102d292919061068d565b602060405180830381600087803b1580156102ec57600080fd5b505af1158015610300573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610324919061056f565b508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb8360405161038291906106d1565b60405180910390a3505050565b60006103a261039d84610743565b61071e565b9050828152602081018484840111156103be576103bd6108b4565b5b6103c9848285610812565b509392505050565b6000813590506103e0816108d4565b92915050565b6000815190506103f5816108eb565b92915050565b60008083601f840112610411576104106108aa565b5b8235905067ffffffffffffffff81111561042e5761042d6108a5565b5b60208301915083600182028301111561044a576104496108af565b5b9250929050565b600082601f830112610466576104656108aa565b5b815161047684826020860161038f565b91505092915050565b60008135905061048e81610902565b92915050565b6000806000606084860312156104ad576104ac6108be565b5b60006104bb868287016103d1565b93505060206104cc868287016103d1565b92505060406104dd8682870161047f565b9150509250925092565b600080600080600060808688031215610503576105026108be565b5b6000610511888289016103d1565b9550506020610522888289016103d1565b94505060406105338882890161047f565b935050606086013567ffffffffffffffff811115610554576105536108b9565b5b610560888289016103fb565b92509250509295509295909350565b600060208284031215610585576105846108be565b5b6000610593848285016103e6565b91505092915050565b6000602082840312156105b2576105b16108be565b5b600082015167ffffffffffffffff8111156105d0576105cf6108b9565b5b6105dc84828501610451565b91505092915050565b6105ee81610785565b82525050565b60006106008385610774565b935061060d838584610803565b610616836108c3565b840190509392505050565b61062a816107cd565b82525050565b610639816107c3565b82525050565b600060808201905061065460008301886105e5565b61066160208301876105e5565b61066e6040830186610630565b81810360608301526106818184866105f4565b90509695505050505050565b60006040820190506106a260008301856105e5565b6106af6020830184610630565b9392505050565b60006020820190506106cb6000830184610621565b92915050565b60006020820190506106e66000830184610630565b92915050565b60006040820190506107016000830186610630565b81810360208301526107148184866105f4565b9050949350505050565b6000610728610739565b90506107348282610845565b919050565b6000604051905090565b600067ffffffffffffffff82111561075e5761075d610876565b5b610767826108c3565b9050602081019050919050565b600082825260208201905092915050565b6000610790826107a3565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006107d8826107df565b9050919050565b60006107ea826107f1565b9050919050565b60006107fc826107a3565b9050919050565b82818337600083830152505050565b60005b83811015610830578082015181840152602081019050610815565b8381111561083f576000848401525b50505050565b61084e826108c3565b810181811067ffffffffffffffff8211171561086d5761086c610876565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b6108dd81610785565b81146108e857600080fd5b50565b6108f481610797565b81146108ff57600080fd5b50565b61090b816107c3565b811461091657600080fd5b5056fea2646970667358221220cb809fd2ac9895fe37c1796ed199ed89d6354f2770a02612b93ed2e3ae0dab2864736f6c63430008070033"; - -type ERC20CustodyConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: ERC20CustodyConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class ERC20Custody__factory extends ContractFactory { - constructor(...args: ERC20CustodyConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override deploy( - _gateway: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy(_gateway, overrides || {}) as Promise; - } - override getDeployTransaction( - _gateway: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction(_gateway, overrides || {}); - } - override attach(address: string): ERC20Custody { - return super.attach(address) as ERC20Custody; - } - override connect(signer: Signer): ERC20Custody__factory { - return super.connect(signer) as ERC20Custody__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): ERC20CustodyInterface { - return new utils.Interface(_abi) as ERC20CustodyInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): ERC20Custody { - return new Contract(address, _abi, signerOrProvider) as ERC20Custody; - } -} diff --git a/typechain-types/factories/contracts/prototypes/GatewayUpgradeTest__factory.ts b/typechain-types/factories/contracts/prototypes/GatewayUpgradeTest__factory.ts deleted file mode 100644 index 09a34d87..00000000 --- a/typechain-types/factories/contracts/prototypes/GatewayUpgradeTest__factory.ts +++ /dev/null @@ -1,374 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../common"; -import type { - GatewayUpgradeTest, - GatewayUpgradeTestInterface, -} from "../../../contracts/prototypes/GatewayUpgradeTest"; - -const _abi = [ - { - inputs: [], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [], - name: "ExecutionFailed", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "previousAdmin", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "newAdmin", - type: "address", - }, - ], - name: "AdminChanged", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "beacon", - type: "address", - }, - ], - name: "BeaconUpgraded", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "destination", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "ExecutedV2", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "ExecutedWithERC20V2", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint8", - name: "version", - type: "uint8", - }, - ], - name: "Initialized", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "previousOwner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "newOwner", - type: "address", - }, - ], - name: "OwnershipTransferred", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "implementation", - type: "address", - }, - ], - name: "Upgraded", - type: "event", - }, - { - inputs: [], - name: "custody", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "destination", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "execute", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "executeWithERC20", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "initialize", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "owner", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "proxiableUUID", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "renounceOwnership", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_custody", - type: "address", - }, - ], - name: "setCustody", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newOwner", - type: "address", - }, - ], - name: "transferOwnership", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newImplementation", - type: "address", - }, - ], - name: "upgradeTo", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newImplementation", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "upgradeToAndCall", - outputs: [], - stateMutability: "payable", - type: "function", - }, -] as const; - -const _bytecode = - "0x60a06040523073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152503480156200004757600080fd5b50620000586200005e60201b60201c565b62000208565b600060019054906101000a900460ff1615620000b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000a8906200015c565b60405180910390fd5b60ff801660008054906101000a900460ff1660ff1614620001225760ff6000806101000a81548160ff021916908360ff1602179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860ff6040516200011991906200017e565b60405180910390a15b565b6000620001336027836200019b565b91506200014082620001b9565b604082019050919050565b6200015681620001ac565b82525050565b60006020820190508181036000830152620001778162000124565b9050919050565b60006020820190506200019560008301846200014b565b92915050565b600082825260208201905092915050565b600060ff82169050919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320696e69746960008201527f616c697a696e6700000000000000000000000000000000000000000000000000602082015250565b60805160601c6121c062000243600039600081816102c4015281816103530152818161044d015281816104dc015261087801526121c06000f3fe60806040526004361061009c5760003560e01c8063715018a611610064578063715018a61461017e5780638129fc1c146101955780638da5cb5b146101ac578063ae7a3a6f146101d7578063dda79b7514610200578063f2fde38b1461022b5761009c565b80631cff79cd146100a15780633659cfe6146100d15780634f1ef286146100fa5780635131ab591461011657806352d1902d14610153575b600080fd5b6100bb60048036038101906100b69190611554565b610254565b6040516100c89190611a10565b60405180910390f35b3480156100dd57600080fd5b506100f860048036038101906100f3919061149f565b6102c2565b005b610114600480360381019061010f91906115b4565b61044b565b005b34801561012257600080fd5b5061013d600480360381019061013891906114cc565b610588565b60405161014a9190611a10565b60405180910390f35b34801561015f57600080fd5b50610168610874565b60405161017591906119f5565b60405180910390f35b34801561018a57600080fd5b5061019361092d565b005b3480156101a157600080fd5b506101aa610941565b005b3480156101b857600080fd5b506101c1610a87565b6040516101ce9190611988565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f9919061149f565b610ab1565b005b34801561020c57600080fd5b50610215610af5565b6040516102229190611988565b60405180910390f35b34801561023757600080fd5b50610252600480360381019061024d919061149f565b610b1b565b005b60606000610263858585610b9f565b90508473ffffffffffffffffffffffffffffffffffffffff167f373df382b9c587826f3de13f16d67f8d99f28ee947fc0924c6ef2d6d2c7e85463486866040516102af93929190611bcf565b60405180910390a2809150509392505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610351576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161034890611a8f565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610390610c56565b73ffffffffffffffffffffffffffffffffffffffff16146103e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103dd90611aaf565b60405180910390fd5b6103ef81610cad565b61044881600067ffffffffffffffff81111561040e5761040d611d90565b5b6040519080825280601f01601f1916602001820160405280156104405781602001600182028036833780820191505090505b506000610cb8565b50565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614156104da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d190611a8f565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610519610c56565b73ffffffffffffffffffffffffffffffffffffffff161461056f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056690611aaf565b60405180910390fd5b61057882610cad565b61058482826001610cb8565b5050565b60608573ffffffffffffffffffffffffffffffffffffffff1663095ea7b386866040518363ffffffff1660e01b81526004016105c59291906119cc565b602060405180830381600087803b1580156105df57600080fd5b505af11580156105f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106179190611610565b506000610625868585610b9f565b90508673ffffffffffffffffffffffffffffffffffffffff1663095ea7b38760006040518363ffffffff1660e01b81526004016106639291906119a3565b602060405180830381600087803b15801561067d57600080fd5b505af1158015610691573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b59190611610565b5060008773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106f19190611988565b60206040518083038186803b15801561070957600080fd5b505afa15801561071d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610741919061166a565b905060008111156107fd578773ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016107a99291906119cc565b602060405180830381600087803b1580156107c357600080fd5b505af11580156107d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107fb9190611610565b505b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f887e0acc3616142401641abfc50d7d7ae169b6ce55d8dc06ff5e21501ddb341b88888860405161085e93929190611bcf565b60405180910390a3819250505095945050505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614610904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fb90611acf565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b905090565b610935610e35565b61093f6000610eb3565b565b60008060019054906101000a900460ff161590508080156109725750600160008054906101000a900460ff1660ff16105b8061099f575061098130610f79565b15801561099e5750600160008054906101000a900460ff1660ff16145b5b6109de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d590611b0f565b60405180910390fd5b60016000806101000a81548160ff021916908360ff1602179055508015610a1b576001600060016101000a81548160ff0219169083151502179055505b610a23610f9c565b610a2b610ff5565b8015610a845760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986001604051610a7b9190611a32565b60405180910390a15b50565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8060c960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b23610e35565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610b93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8a90611a6f565b60405180910390fd5b610b9c81610eb3565b50565b60606000808573ffffffffffffffffffffffffffffffffffffffff16348686604051610bcc929190611958565b60006040518083038185875af1925050503d8060008114610c09576040519150601f19603f3d011682016040523d82523d6000602084013e610c0e565b606091505b509150915081610c4a576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80925050509392505050565b6000610c847f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b611046565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610cb5610e35565b50565b610ce47f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914360001b611050565b60000160009054906101000a900460ff1615610d0857610d038361105a565b610e30565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b158015610d4e57600080fd5b505afa925050508015610d7f57506040513d601f19601f82011682018060405250810190610d7c919061163d565b60015b610dbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db590611b2f565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b8114610e23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1a90611aef565b60405180910390fd5b50610e2f838383611113565b5b505050565b610e3d61113f565b73ffffffffffffffffffffffffffffffffffffffff16610e5b610a87565b73ffffffffffffffffffffffffffffffffffffffff1614610eb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea890611b6f565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16610feb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe290611baf565b60405180910390fd5b610ff3611147565b565b600060019054906101000a900460ff16611044576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103b90611baf565b60405180910390fd5b565b6000819050919050565b6000819050919050565b61106381610f79565b6110a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109990611b4f565b60405180910390fd5b806110cf7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b611046565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61111c836111a8565b6000825111806111295750805b1561113a5761113883836111f7565b505b505050565b600033905090565b600060019054906101000a900460ff16611196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118d90611baf565b60405180910390fd5b6111a66111a161113f565b610eb3565b565b6111b18161105a565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b606061121c838360405180606001604052806027815260200161216460279139611224565b905092915050565b60606000808573ffffffffffffffffffffffffffffffffffffffff168560405161124e9190611971565b600060405180830381855af49150503d8060008114611289576040519150601f19603f3d011682016040523d82523d6000602084013e61128e565b606091505b509150915061129f868383876112aa565b925050509392505050565b6060831561130d57600083511415611305576112c585610f79565b611304576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fb90611b8f565b60405180910390fd5b5b829050611318565b6113178383611320565b5b949350505050565b6000825111156113335781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113679190611a4d565b60405180910390fd5b600061138361137e84611c26565b611c01565b90508281526020810184848401111561139f5761139e611dce565b5b6113aa848285611d1d565b509392505050565b6000813590506113c181612107565b92915050565b6000815190506113d68161211e565b92915050565b6000815190506113eb81612135565b92915050565b60008083601f84011261140757611406611dc4565b5b8235905067ffffffffffffffff81111561142457611423611dbf565b5b6020830191508360018202830111156114405761143f611dc9565b5b9250929050565b600082601f83011261145c5761145b611dc4565b5b813561146c848260208601611370565b91505092915050565b6000813590506114848161214c565b92915050565b6000815190506114998161214c565b92915050565b6000602082840312156114b5576114b4611dd8565b5b60006114c3848285016113b2565b91505092915050565b6000806000806000608086880312156114e8576114e7611dd8565b5b60006114f6888289016113b2565b9550506020611507888289016113b2565b945050604061151888828901611475565b935050606086013567ffffffffffffffff81111561153957611538611dd3565b5b611545888289016113f1565b92509250509295509295909350565b60008060006040848603121561156d5761156c611dd8565b5b600061157b868287016113b2565b935050602084013567ffffffffffffffff81111561159c5761159b611dd3565b5b6115a8868287016113f1565b92509250509250925092565b600080604083850312156115cb576115ca611dd8565b5b60006115d9858286016113b2565b925050602083013567ffffffffffffffff8111156115fa576115f9611dd3565b5b61160685828601611447565b9150509250929050565b60006020828403121561162657611625611dd8565b5b6000611634848285016113c7565b91505092915050565b60006020828403121561165357611652611dd8565b5b6000611661848285016113dc565b91505092915050565b6000602082840312156116805761167f611dd8565b5b600061168e8482850161148a565b91505092915050565b6116a081611c9a565b82525050565b6116af81611cb8565b82525050565b60006116c18385611c6d565b93506116ce838584611d1d565b6116d783611ddd565b840190509392505050565b60006116ee8385611c7e565b93506116fb838584611d1d565b82840190509392505050565b600061171282611c57565b61171c8185611c6d565b935061172c818560208601611d2c565b61173581611ddd565b840191505092915050565b600061174b82611c57565b6117558185611c7e565b9350611765818560208601611d2c565b80840191505092915050565b61177a81611cf9565b82525050565b61178981611d0b565b82525050565b600061179a82611c62565b6117a48185611c89565b93506117b4818560208601611d2c565b6117bd81611ddd565b840191505092915050565b60006117d5602683611c89565b91506117e082611dee565b604082019050919050565b60006117f8602c83611c89565b915061180382611e3d565b604082019050919050565b600061181b602c83611c89565b915061182682611e8c565b604082019050919050565b600061183e603883611c89565b915061184982611edb565b604082019050919050565b6000611861602983611c89565b915061186c82611f2a565b604082019050919050565b6000611884602e83611c89565b915061188f82611f79565b604082019050919050565b60006118a7602e83611c89565b91506118b282611fc8565b604082019050919050565b60006118ca602d83611c89565b91506118d582612017565b604082019050919050565b60006118ed602083611c89565b91506118f882612066565b602082019050919050565b6000611910601d83611c89565b915061191b8261208f565b602082019050919050565b6000611933602b83611c89565b915061193e826120b8565b604082019050919050565b61195281611ce2565b82525050565b60006119658284866116e2565b91508190509392505050565b600061197d8284611740565b915081905092915050565b600060208201905061199d6000830184611697565b92915050565b60006040820190506119b86000830185611697565b6119c56020830184611771565b9392505050565b60006040820190506119e16000830185611697565b6119ee6020830184611949565b9392505050565b6000602082019050611a0a60008301846116a6565b92915050565b60006020820190508181036000830152611a2a8184611707565b905092915050565b6000602082019050611a476000830184611780565b92915050565b60006020820190508181036000830152611a67818461178f565b905092915050565b60006020820190508181036000830152611a88816117c8565b9050919050565b60006020820190508181036000830152611aa8816117eb565b9050919050565b60006020820190508181036000830152611ac88161180e565b9050919050565b60006020820190508181036000830152611ae881611831565b9050919050565b60006020820190508181036000830152611b0881611854565b9050919050565b60006020820190508181036000830152611b2881611877565b9050919050565b60006020820190508181036000830152611b488161189a565b9050919050565b60006020820190508181036000830152611b68816118bd565b9050919050565b60006020820190508181036000830152611b88816118e0565b9050919050565b60006020820190508181036000830152611ba881611903565b9050919050565b60006020820190508181036000830152611bc881611926565b9050919050565b6000604082019050611be46000830186611949565b8181036020830152611bf78184866116b5565b9050949350505050565b6000611c0b611c1c565b9050611c178282611d5f565b919050565b6000604051905090565b600067ffffffffffffffff821115611c4157611c40611d90565b5b611c4a82611ddd565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000611ca582611cc2565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000611d0482611ce2565b9050919050565b6000611d1682611cec565b9050919050565b82818337600083830152505050565b60005b83811015611d4a578082015181840152602081019050611d2f565b83811115611d59576000848401525b50505050565b611d6882611ddd565b810181811067ffffffffffffffff82111715611d8757611d86611d90565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f64656c656761746563616c6c0000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f6163746976652070726f78790000000000000000000000000000000000000000602082015250565b7f555550535570677261646561626c653a206d757374206e6f742062652063616c60008201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000602082015250565b7f45524331393637557067726164653a20756e737570706f727465642070726f7860008201527f6961626c65555549440000000000000000000000000000000000000000000000602082015250565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f45524331393637557067726164653a206e657720696d706c656d656e7461746960008201527f6f6e206973206e6f742055555053000000000000000000000000000000000000602082015250565b7f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60008201527f6f74206120636f6e747261637400000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b61211081611c9a565b811461211b57600080fd5b50565b61212781611cac565b811461213257600080fd5b50565b61213e81611cb8565b811461214957600080fd5b50565b61215581611ce2565b811461216057600080fd5b5056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212202a6bc713190b6dd8d6ca2e7230a1fbf1a51901427e8b2269756c2b4888fc2cd164736f6c63430008070033"; - -type GatewayUpgradeTestConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: GatewayUpgradeTestConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class GatewayUpgradeTest__factory extends ContractFactory { - constructor(...args: GatewayUpgradeTestConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override deploy( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy(overrides || {}) as Promise; - } - override getDeployTransaction( - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); - } - override attach(address: string): GatewayUpgradeTest { - return super.attach(address) as GatewayUpgradeTest; - } - override connect(signer: Signer): GatewayUpgradeTest__factory { - return super.connect(signer) as GatewayUpgradeTest__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): GatewayUpgradeTestInterface { - return new utils.Interface(_abi) as GatewayUpgradeTestInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): GatewayUpgradeTest { - return new Contract(address, _abi, signerOrProvider) as GatewayUpgradeTest; - } -} diff --git a/typechain-types/factories/contracts/prototypes/GatewayV2.sol/GatewayV2__factory.ts b/typechain-types/factories/contracts/prototypes/GatewayV2.sol/GatewayV2__factory.ts deleted file mode 100644 index 9f8e5fb0..00000000 --- a/typechain-types/factories/contracts/prototypes/GatewayV2.sol/GatewayV2__factory.ts +++ /dev/null @@ -1,374 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../../common"; -import type { - GatewayV2, - GatewayV2Interface, -} from "../../../../contracts/prototypes/GatewayV2.sol/GatewayV2"; - -const _abi = [ - { - inputs: [], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [], - name: "ExecutionFailed", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "previousAdmin", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "newAdmin", - type: "address", - }, - ], - name: "AdminChanged", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "beacon", - type: "address", - }, - ], - name: "BeaconUpgraded", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "destination", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "ExecutedV2", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "ExecutedWithERC20V2", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint8", - name: "version", - type: "uint8", - }, - ], - name: "Initialized", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "previousOwner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "newOwner", - type: "address", - }, - ], - name: "OwnershipTransferred", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "implementation", - type: "address", - }, - ], - name: "Upgraded", - type: "event", - }, - { - inputs: [], - name: "custody", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "destination", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "execute", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "executeWithERC20", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "initialize", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "owner", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "proxiableUUID", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "renounceOwnership", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_custody", - type: "address", - }, - ], - name: "setCustody", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newOwner", - type: "address", - }, - ], - name: "transferOwnership", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newImplementation", - type: "address", - }, - ], - name: "upgradeTo", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newImplementation", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "upgradeToAndCall", - outputs: [], - stateMutability: "payable", - type: "function", - }, -] as const; - -const _bytecode = - "0x60a06040523073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152503480156200004757600080fd5b50620000586200005e60201b60201c565b62000208565b600060019054906101000a900460ff1615620000b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000a8906200015c565b60405180910390fd5b60ff801660008054906101000a900460ff1660ff1614620001225760ff6000806101000a81548160ff021916908360ff1602179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860ff6040516200011991906200017e565b60405180910390a15b565b6000620001336027836200019b565b91506200014082620001b9565b604082019050919050565b6200015681620001ac565b82525050565b60006020820190508181036000830152620001778162000124565b9050919050565b60006020820190506200019560008301846200014b565b92915050565b600082825260208201905092915050565b600060ff82169050919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320696e69746960008201527f616c697a696e6700000000000000000000000000000000000000000000000000602082015250565b60805160601c6121c062000243600039600081816102c4015281816103530152818161044d015281816104dc015261087801526121c06000f3fe60806040526004361061009c5760003560e01c8063715018a611610064578063715018a61461017e5780638129fc1c146101955780638da5cb5b146101ac578063ae7a3a6f146101d7578063dda79b7514610200578063f2fde38b1461022b5761009c565b80631cff79cd146100a15780633659cfe6146100d15780634f1ef286146100fa5780635131ab591461011657806352d1902d14610153575b600080fd5b6100bb60048036038101906100b69190611554565b610254565b6040516100c89190611a10565b60405180910390f35b3480156100dd57600080fd5b506100f860048036038101906100f3919061149f565b6102c2565b005b610114600480360381019061010f91906115b4565b61044b565b005b34801561012257600080fd5b5061013d600480360381019061013891906114cc565b610588565b60405161014a9190611a10565b60405180910390f35b34801561015f57600080fd5b50610168610874565b60405161017591906119f5565b60405180910390f35b34801561018a57600080fd5b5061019361092d565b005b3480156101a157600080fd5b506101aa610941565b005b3480156101b857600080fd5b506101c1610a87565b6040516101ce9190611988565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f9919061149f565b610ab1565b005b34801561020c57600080fd5b50610215610af5565b6040516102229190611988565b60405180910390f35b34801561023757600080fd5b50610252600480360381019061024d919061149f565b610b1b565b005b60606000610263858585610b9f565b90508473ffffffffffffffffffffffffffffffffffffffff167f373df382b9c587826f3de13f16d67f8d99f28ee947fc0924c6ef2d6d2c7e85463486866040516102af93929190611bcf565b60405180910390a2809150509392505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610351576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161034890611a8f565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610390610c56565b73ffffffffffffffffffffffffffffffffffffffff16146103e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103dd90611aaf565b60405180910390fd5b6103ef81610cad565b61044881600067ffffffffffffffff81111561040e5761040d611d90565b5b6040519080825280601f01601f1916602001820160405280156104405781602001600182028036833780820191505090505b506000610cb8565b50565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614156104da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d190611a8f565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610519610c56565b73ffffffffffffffffffffffffffffffffffffffff161461056f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056690611aaf565b60405180910390fd5b61057882610cad565b61058482826001610cb8565b5050565b60608573ffffffffffffffffffffffffffffffffffffffff1663095ea7b386866040518363ffffffff1660e01b81526004016105c59291906119cc565b602060405180830381600087803b1580156105df57600080fd5b505af11580156105f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106179190611610565b506000610625868585610b9f565b90508673ffffffffffffffffffffffffffffffffffffffff1663095ea7b38760006040518363ffffffff1660e01b81526004016106639291906119a3565b602060405180830381600087803b15801561067d57600080fd5b505af1158015610691573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b59190611610565b5060008773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106f19190611988565b60206040518083038186803b15801561070957600080fd5b505afa15801561071d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610741919061166a565b905060008111156107fd578773ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016107a99291906119cc565b602060405180830381600087803b1580156107c357600080fd5b505af11580156107d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107fb9190611610565b505b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f887e0acc3616142401641abfc50d7d7ae169b6ce55d8dc06ff5e21501ddb341b88888860405161085e93929190611bcf565b60405180910390a3819250505095945050505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614610904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fb90611acf565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b905090565b610935610e35565b61093f6000610eb3565b565b60008060019054906101000a900460ff161590508080156109725750600160008054906101000a900460ff1660ff16105b8061099f575061098130610f79565b15801561099e5750600160008054906101000a900460ff1660ff16145b5b6109de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d590611b0f565b60405180910390fd5b60016000806101000a81548160ff021916908360ff1602179055508015610a1b576001600060016101000a81548160ff0219169083151502179055505b610a23610f9c565b610a2b610ff5565b8015610a845760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986001604051610a7b9190611a32565b60405180910390a15b50565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8060c960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b23610e35565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610b93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8a90611a6f565b60405180910390fd5b610b9c81610eb3565b50565b60606000808573ffffffffffffffffffffffffffffffffffffffff16348686604051610bcc929190611958565b60006040518083038185875af1925050503d8060008114610c09576040519150601f19603f3d011682016040523d82523d6000602084013e610c0e565b606091505b509150915081610c4a576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80925050509392505050565b6000610c847f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b611046565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610cb5610e35565b50565b610ce47f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914360001b611050565b60000160009054906101000a900460ff1615610d0857610d038361105a565b610e30565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b158015610d4e57600080fd5b505afa925050508015610d7f57506040513d601f19601f82011682018060405250810190610d7c919061163d565b60015b610dbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db590611b2f565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b8114610e23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1a90611aef565b60405180910390fd5b50610e2f838383611113565b5b505050565b610e3d61113f565b73ffffffffffffffffffffffffffffffffffffffff16610e5b610a87565b73ffffffffffffffffffffffffffffffffffffffff1614610eb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea890611b6f565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16610feb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe290611baf565b60405180910390fd5b610ff3611147565b565b600060019054906101000a900460ff16611044576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103b90611baf565b60405180910390fd5b565b6000819050919050565b6000819050919050565b61106381610f79565b6110a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109990611b4f565b60405180910390fd5b806110cf7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b611046565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61111c836111a8565b6000825111806111295750805b1561113a5761113883836111f7565b505b505050565b600033905090565b600060019054906101000a900460ff16611196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118d90611baf565b60405180910390fd5b6111a66111a161113f565b610eb3565b565b6111b18161105a565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b606061121c838360405180606001604052806027815260200161216460279139611224565b905092915050565b60606000808573ffffffffffffffffffffffffffffffffffffffff168560405161124e9190611971565b600060405180830381855af49150503d8060008114611289576040519150601f19603f3d011682016040523d82523d6000602084013e61128e565b606091505b509150915061129f868383876112aa565b925050509392505050565b6060831561130d57600083511415611305576112c585610f79565b611304576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fb90611b8f565b60405180910390fd5b5b829050611318565b6113178383611320565b5b949350505050565b6000825111156113335781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113679190611a4d565b60405180910390fd5b600061138361137e84611c26565b611c01565b90508281526020810184848401111561139f5761139e611dce565b5b6113aa848285611d1d565b509392505050565b6000813590506113c181612107565b92915050565b6000815190506113d68161211e565b92915050565b6000815190506113eb81612135565b92915050565b60008083601f84011261140757611406611dc4565b5b8235905067ffffffffffffffff81111561142457611423611dbf565b5b6020830191508360018202830111156114405761143f611dc9565b5b9250929050565b600082601f83011261145c5761145b611dc4565b5b813561146c848260208601611370565b91505092915050565b6000813590506114848161214c565b92915050565b6000815190506114998161214c565b92915050565b6000602082840312156114b5576114b4611dd8565b5b60006114c3848285016113b2565b91505092915050565b6000806000806000608086880312156114e8576114e7611dd8565b5b60006114f6888289016113b2565b9550506020611507888289016113b2565b945050604061151888828901611475565b935050606086013567ffffffffffffffff81111561153957611538611dd3565b5b611545888289016113f1565b92509250509295509295909350565b60008060006040848603121561156d5761156c611dd8565b5b600061157b868287016113b2565b935050602084013567ffffffffffffffff81111561159c5761159b611dd3565b5b6115a8868287016113f1565b92509250509250925092565b600080604083850312156115cb576115ca611dd8565b5b60006115d9858286016113b2565b925050602083013567ffffffffffffffff8111156115fa576115f9611dd3565b5b61160685828601611447565b9150509250929050565b60006020828403121561162657611625611dd8565b5b6000611634848285016113c7565b91505092915050565b60006020828403121561165357611652611dd8565b5b6000611661848285016113dc565b91505092915050565b6000602082840312156116805761167f611dd8565b5b600061168e8482850161148a565b91505092915050565b6116a081611c9a565b82525050565b6116af81611cb8565b82525050565b60006116c18385611c6d565b93506116ce838584611d1d565b6116d783611ddd565b840190509392505050565b60006116ee8385611c7e565b93506116fb838584611d1d565b82840190509392505050565b600061171282611c57565b61171c8185611c6d565b935061172c818560208601611d2c565b61173581611ddd565b840191505092915050565b600061174b82611c57565b6117558185611c7e565b9350611765818560208601611d2c565b80840191505092915050565b61177a81611cf9565b82525050565b61178981611d0b565b82525050565b600061179a82611c62565b6117a48185611c89565b93506117b4818560208601611d2c565b6117bd81611ddd565b840191505092915050565b60006117d5602683611c89565b91506117e082611dee565b604082019050919050565b60006117f8602c83611c89565b915061180382611e3d565b604082019050919050565b600061181b602c83611c89565b915061182682611e8c565b604082019050919050565b600061183e603883611c89565b915061184982611edb565b604082019050919050565b6000611861602983611c89565b915061186c82611f2a565b604082019050919050565b6000611884602e83611c89565b915061188f82611f79565b604082019050919050565b60006118a7602e83611c89565b91506118b282611fc8565b604082019050919050565b60006118ca602d83611c89565b91506118d582612017565b604082019050919050565b60006118ed602083611c89565b91506118f882612066565b602082019050919050565b6000611910601d83611c89565b915061191b8261208f565b602082019050919050565b6000611933602b83611c89565b915061193e826120b8565b604082019050919050565b61195281611ce2565b82525050565b60006119658284866116e2565b91508190509392505050565b600061197d8284611740565b915081905092915050565b600060208201905061199d6000830184611697565b92915050565b60006040820190506119b86000830185611697565b6119c56020830184611771565b9392505050565b60006040820190506119e16000830185611697565b6119ee6020830184611949565b9392505050565b6000602082019050611a0a60008301846116a6565b92915050565b60006020820190508181036000830152611a2a8184611707565b905092915050565b6000602082019050611a476000830184611780565b92915050565b60006020820190508181036000830152611a67818461178f565b905092915050565b60006020820190508181036000830152611a88816117c8565b9050919050565b60006020820190508181036000830152611aa8816117eb565b9050919050565b60006020820190508181036000830152611ac88161180e565b9050919050565b60006020820190508181036000830152611ae881611831565b9050919050565b60006020820190508181036000830152611b0881611854565b9050919050565b60006020820190508181036000830152611b2881611877565b9050919050565b60006020820190508181036000830152611b488161189a565b9050919050565b60006020820190508181036000830152611b68816118bd565b9050919050565b60006020820190508181036000830152611b88816118e0565b9050919050565b60006020820190508181036000830152611ba881611903565b9050919050565b60006020820190508181036000830152611bc881611926565b9050919050565b6000604082019050611be46000830186611949565b8181036020830152611bf78184866116b5565b9050949350505050565b6000611c0b611c1c565b9050611c178282611d5f565b919050565b6000604051905090565b600067ffffffffffffffff821115611c4157611c40611d90565b5b611c4a82611ddd565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000611ca582611cc2565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000611d0482611ce2565b9050919050565b6000611d1682611cec565b9050919050565b82818337600083830152505050565b60005b83811015611d4a578082015181840152602081019050611d2f565b83811115611d59576000848401525b50505050565b611d6882611ddd565b810181811067ffffffffffffffff82111715611d8757611d86611d90565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f64656c656761746563616c6c0000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f6163746976652070726f78790000000000000000000000000000000000000000602082015250565b7f555550535570677261646561626c653a206d757374206e6f742062652063616c60008201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000602082015250565b7f45524331393637557067726164653a20756e737570706f727465642070726f7860008201527f6961626c65555549440000000000000000000000000000000000000000000000602082015250565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f45524331393637557067726164653a206e657720696d706c656d656e7461746960008201527f6f6e206973206e6f742055555053000000000000000000000000000000000000602082015250565b7f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60008201527f6f74206120636f6e747261637400000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b61211081611c9a565b811461211b57600080fd5b50565b61212781611cac565b811461213257600080fd5b50565b61213e81611cb8565b811461214957600080fd5b50565b61215581611ce2565b811461216057600080fd5b5056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a349306a7d1588b676f5b6e95783cf1d798266d946f8cdd77432870e89cdcd4f64736f6c63430008070033"; - -type GatewayV2ConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: GatewayV2ConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class GatewayV2__factory extends ContractFactory { - constructor(...args: GatewayV2ConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override deploy( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy(overrides || {}) as Promise; - } - override getDeployTransaction( - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); - } - override attach(address: string): GatewayV2 { - return super.attach(address) as GatewayV2; - } - override connect(signer: Signer): GatewayV2__factory { - return super.connect(signer) as GatewayV2__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): GatewayV2Interface { - return new utils.Interface(_abi) as GatewayV2Interface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): GatewayV2 { - return new Contract(address, _abi, signerOrProvider) as GatewayV2; - } -} diff --git a/typechain-types/factories/contracts/prototypes/GatewayV2.sol/Gateway__factory.ts b/typechain-types/factories/contracts/prototypes/GatewayV2.sol/Gateway__factory.ts deleted file mode 100644 index 509a9f46..00000000 --- a/typechain-types/factories/contracts/prototypes/GatewayV2.sol/Gateway__factory.ts +++ /dev/null @@ -1,374 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../../common"; -import type { - Gateway, - GatewayInterface, -} from "../../../../contracts/prototypes/GatewayV2.sol/Gateway"; - -const _abi = [ - { - inputs: [], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [], - name: "ExecutionFailed", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "previousAdmin", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "newAdmin", - type: "address", - }, - ], - name: "AdminChanged", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "beacon", - type: "address", - }, - ], - name: "BeaconUpgraded", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "destination", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "ExecutedV2", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "ExecutedWithERC20V2", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint8", - name: "version", - type: "uint8", - }, - ], - name: "Initialized", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "previousOwner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "newOwner", - type: "address", - }, - ], - name: "OwnershipTransferred", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "implementation", - type: "address", - }, - ], - name: "Upgraded", - type: "event", - }, - { - inputs: [], - name: "custody", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "destination", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "execute", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "executeWithERC20", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "initialize", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "owner", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "proxiableUUID", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "renounceOwnership", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_custody", - type: "address", - }, - ], - name: "setCustody", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newOwner", - type: "address", - }, - ], - name: "transferOwnership", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newImplementation", - type: "address", - }, - ], - name: "upgradeTo", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newImplementation", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "upgradeToAndCall", - outputs: [], - stateMutability: "payable", - type: "function", - }, -] as const; - -const _bytecode = - "0x60a06040523073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152503480156200004757600080fd5b50620000586200005e60201b60201c565b62000208565b600060019054906101000a900460ff1615620000b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000a8906200015c565b60405180910390fd5b60ff801660008054906101000a900460ff1660ff1614620001225760ff6000806101000a81548160ff021916908360ff1602179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860ff6040516200011991906200017e565b60405180910390a15b565b6000620001336027836200019b565b91506200014082620001b9565b604082019050919050565b6200015681620001ac565b82525050565b60006020820190508181036000830152620001778162000124565b9050919050565b60006020820190506200019560008301846200014b565b92915050565b600082825260208201905092915050565b600060ff82169050919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320696e69746960008201527f616c697a696e6700000000000000000000000000000000000000000000000000602082015250565b60805160601c6121c062000243600039600081816102c4015281816103530152818161044d015281816104dc015261087801526121c06000f3fe60806040526004361061009c5760003560e01c8063715018a611610064578063715018a61461017e5780638129fc1c146101955780638da5cb5b146101ac578063ae7a3a6f146101d7578063dda79b7514610200578063f2fde38b1461022b5761009c565b80631cff79cd146100a15780633659cfe6146100d15780634f1ef286146100fa5780635131ab591461011657806352d1902d14610153575b600080fd5b6100bb60048036038101906100b69190611554565b610254565b6040516100c89190611a10565b60405180910390f35b3480156100dd57600080fd5b506100f860048036038101906100f3919061149f565b6102c2565b005b610114600480360381019061010f91906115b4565b61044b565b005b34801561012257600080fd5b5061013d600480360381019061013891906114cc565b610588565b60405161014a9190611a10565b60405180910390f35b34801561015f57600080fd5b50610168610874565b60405161017591906119f5565b60405180910390f35b34801561018a57600080fd5b5061019361092d565b005b3480156101a157600080fd5b506101aa610941565b005b3480156101b857600080fd5b506101c1610a87565b6040516101ce9190611988565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f9919061149f565b610ab1565b005b34801561020c57600080fd5b50610215610af5565b6040516102229190611988565b60405180910390f35b34801561023757600080fd5b50610252600480360381019061024d919061149f565b610b1b565b005b60606000610263858585610b9f565b90508473ffffffffffffffffffffffffffffffffffffffff167f373df382b9c587826f3de13f16d67f8d99f28ee947fc0924c6ef2d6d2c7e85463486866040516102af93929190611bcf565b60405180910390a2809150509392505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610351576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161034890611a8f565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610390610c56565b73ffffffffffffffffffffffffffffffffffffffff16146103e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103dd90611aaf565b60405180910390fd5b6103ef81610cad565b61044881600067ffffffffffffffff81111561040e5761040d611d90565b5b6040519080825280601f01601f1916602001820160405280156104405781602001600182028036833780820191505090505b506000610cb8565b50565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614156104da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d190611a8f565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610519610c56565b73ffffffffffffffffffffffffffffffffffffffff161461056f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056690611aaf565b60405180910390fd5b61057882610cad565b61058482826001610cb8565b5050565b60608573ffffffffffffffffffffffffffffffffffffffff1663095ea7b386866040518363ffffffff1660e01b81526004016105c59291906119cc565b602060405180830381600087803b1580156105df57600080fd5b505af11580156105f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106179190611610565b506000610625868585610b9f565b90508673ffffffffffffffffffffffffffffffffffffffff1663095ea7b38760006040518363ffffffff1660e01b81526004016106639291906119a3565b602060405180830381600087803b15801561067d57600080fd5b505af1158015610691573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b59190611610565b5060008773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106f19190611988565b60206040518083038186803b15801561070957600080fd5b505afa15801561071d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610741919061166a565b905060008111156107fd578773ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016107a99291906119cc565b602060405180830381600087803b1580156107c357600080fd5b505af11580156107d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107fb9190611610565b505b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f887e0acc3616142401641abfc50d7d7ae169b6ce55d8dc06ff5e21501ddb341b88888860405161085e93929190611bcf565b60405180910390a3819250505095945050505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614610904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fb90611acf565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b905090565b610935610e35565b61093f6000610eb3565b565b60008060019054906101000a900460ff161590508080156109725750600160008054906101000a900460ff1660ff16105b8061099f575061098130610f79565b15801561099e5750600160008054906101000a900460ff1660ff16145b5b6109de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d590611b0f565b60405180910390fd5b60016000806101000a81548160ff021916908360ff1602179055508015610a1b576001600060016101000a81548160ff0219169083151502179055505b610a23610f9c565b610a2b610ff5565b8015610a845760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986001604051610a7b9190611a32565b60405180910390a15b50565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8060c960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b23610e35565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610b93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8a90611a6f565b60405180910390fd5b610b9c81610eb3565b50565b60606000808573ffffffffffffffffffffffffffffffffffffffff16348686604051610bcc929190611958565b60006040518083038185875af1925050503d8060008114610c09576040519150601f19603f3d011682016040523d82523d6000602084013e610c0e565b606091505b509150915081610c4a576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80925050509392505050565b6000610c847f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b611046565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610cb5610e35565b50565b610ce47f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914360001b611050565b60000160009054906101000a900460ff1615610d0857610d038361105a565b610e30565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b158015610d4e57600080fd5b505afa925050508015610d7f57506040513d601f19601f82011682018060405250810190610d7c919061163d565b60015b610dbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db590611b2f565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b8114610e23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1a90611aef565b60405180910390fd5b50610e2f838383611113565b5b505050565b610e3d61113f565b73ffffffffffffffffffffffffffffffffffffffff16610e5b610a87565b73ffffffffffffffffffffffffffffffffffffffff1614610eb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea890611b6f565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16610feb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe290611baf565b60405180910390fd5b610ff3611147565b565b600060019054906101000a900460ff16611044576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103b90611baf565b60405180910390fd5b565b6000819050919050565b6000819050919050565b61106381610f79565b6110a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109990611b4f565b60405180910390fd5b806110cf7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b611046565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61111c836111a8565b6000825111806111295750805b1561113a5761113883836111f7565b505b505050565b600033905090565b600060019054906101000a900460ff16611196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118d90611baf565b60405180910390fd5b6111a66111a161113f565b610eb3565b565b6111b18161105a565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b606061121c838360405180606001604052806027815260200161216460279139611224565b905092915050565b60606000808573ffffffffffffffffffffffffffffffffffffffff168560405161124e9190611971565b600060405180830381855af49150503d8060008114611289576040519150601f19603f3d011682016040523d82523d6000602084013e61128e565b606091505b509150915061129f868383876112aa565b925050509392505050565b6060831561130d57600083511415611305576112c585610f79565b611304576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fb90611b8f565b60405180910390fd5b5b829050611318565b6113178383611320565b5b949350505050565b6000825111156113335781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113679190611a4d565b60405180910390fd5b600061138361137e84611c26565b611c01565b90508281526020810184848401111561139f5761139e611dce565b5b6113aa848285611d1d565b509392505050565b6000813590506113c181612107565b92915050565b6000815190506113d68161211e565b92915050565b6000815190506113eb81612135565b92915050565b60008083601f84011261140757611406611dc4565b5b8235905067ffffffffffffffff81111561142457611423611dbf565b5b6020830191508360018202830111156114405761143f611dc9565b5b9250929050565b600082601f83011261145c5761145b611dc4565b5b813561146c848260208601611370565b91505092915050565b6000813590506114848161214c565b92915050565b6000815190506114998161214c565b92915050565b6000602082840312156114b5576114b4611dd8565b5b60006114c3848285016113b2565b91505092915050565b6000806000806000608086880312156114e8576114e7611dd8565b5b60006114f6888289016113b2565b9550506020611507888289016113b2565b945050604061151888828901611475565b935050606086013567ffffffffffffffff81111561153957611538611dd3565b5b611545888289016113f1565b92509250509295509295909350565b60008060006040848603121561156d5761156c611dd8565b5b600061157b868287016113b2565b935050602084013567ffffffffffffffff81111561159c5761159b611dd3565b5b6115a8868287016113f1565b92509250509250925092565b600080604083850312156115cb576115ca611dd8565b5b60006115d9858286016113b2565b925050602083013567ffffffffffffffff8111156115fa576115f9611dd3565b5b61160685828601611447565b9150509250929050565b60006020828403121561162657611625611dd8565b5b6000611634848285016113c7565b91505092915050565b60006020828403121561165357611652611dd8565b5b6000611661848285016113dc565b91505092915050565b6000602082840312156116805761167f611dd8565b5b600061168e8482850161148a565b91505092915050565b6116a081611c9a565b82525050565b6116af81611cb8565b82525050565b60006116c18385611c6d565b93506116ce838584611d1d565b6116d783611ddd565b840190509392505050565b60006116ee8385611c7e565b93506116fb838584611d1d565b82840190509392505050565b600061171282611c57565b61171c8185611c6d565b935061172c818560208601611d2c565b61173581611ddd565b840191505092915050565b600061174b82611c57565b6117558185611c7e565b9350611765818560208601611d2c565b80840191505092915050565b61177a81611cf9565b82525050565b61178981611d0b565b82525050565b600061179a82611c62565b6117a48185611c89565b93506117b4818560208601611d2c565b6117bd81611ddd565b840191505092915050565b60006117d5602683611c89565b91506117e082611dee565b604082019050919050565b60006117f8602c83611c89565b915061180382611e3d565b604082019050919050565b600061181b602c83611c89565b915061182682611e8c565b604082019050919050565b600061183e603883611c89565b915061184982611edb565b604082019050919050565b6000611861602983611c89565b915061186c82611f2a565b604082019050919050565b6000611884602e83611c89565b915061188f82611f79565b604082019050919050565b60006118a7602e83611c89565b91506118b282611fc8565b604082019050919050565b60006118ca602d83611c89565b91506118d582612017565b604082019050919050565b60006118ed602083611c89565b91506118f882612066565b602082019050919050565b6000611910601d83611c89565b915061191b8261208f565b602082019050919050565b6000611933602b83611c89565b915061193e826120b8565b604082019050919050565b61195281611ce2565b82525050565b60006119658284866116e2565b91508190509392505050565b600061197d8284611740565b915081905092915050565b600060208201905061199d6000830184611697565b92915050565b60006040820190506119b86000830185611697565b6119c56020830184611771565b9392505050565b60006040820190506119e16000830185611697565b6119ee6020830184611949565b9392505050565b6000602082019050611a0a60008301846116a6565b92915050565b60006020820190508181036000830152611a2a8184611707565b905092915050565b6000602082019050611a476000830184611780565b92915050565b60006020820190508181036000830152611a67818461178f565b905092915050565b60006020820190508181036000830152611a88816117c8565b9050919050565b60006020820190508181036000830152611aa8816117eb565b9050919050565b60006020820190508181036000830152611ac88161180e565b9050919050565b60006020820190508181036000830152611ae881611831565b9050919050565b60006020820190508181036000830152611b0881611854565b9050919050565b60006020820190508181036000830152611b2881611877565b9050919050565b60006020820190508181036000830152611b488161189a565b9050919050565b60006020820190508181036000830152611b68816118bd565b9050919050565b60006020820190508181036000830152611b88816118e0565b9050919050565b60006020820190508181036000830152611ba881611903565b9050919050565b60006020820190508181036000830152611bc881611926565b9050919050565b6000604082019050611be46000830186611949565b8181036020830152611bf78184866116b5565b9050949350505050565b6000611c0b611c1c565b9050611c178282611d5f565b919050565b6000604051905090565b600067ffffffffffffffff821115611c4157611c40611d90565b5b611c4a82611ddd565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000611ca582611cc2565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000611d0482611ce2565b9050919050565b6000611d1682611cec565b9050919050565b82818337600083830152505050565b60005b83811015611d4a578082015181840152602081019050611d2f565b83811115611d59576000848401525b50505050565b611d6882611ddd565b810181811067ffffffffffffffff82111715611d8757611d86611d90565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f64656c656761746563616c6c0000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f6163746976652070726f78790000000000000000000000000000000000000000602082015250565b7f555550535570677261646561626c653a206d757374206e6f742062652063616c60008201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000602082015250565b7f45524331393637557067726164653a20756e737570706f727465642070726f7860008201527f6961626c65555549440000000000000000000000000000000000000000000000602082015250565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f45524331393637557067726164653a206e657720696d706c656d656e7461746960008201527f6f6e206973206e6f742055555053000000000000000000000000000000000000602082015250565b7f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60008201527f6f74206120636f6e747261637400000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b61211081611c9a565b811461211b57600080fd5b50565b61212781611cac565b811461213257600080fd5b50565b61213e81611cb8565b811461214957600080fd5b50565b61215581611ce2565b811461216057600080fd5b5056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220213f444e22fb8d2fd03bb477d5cc3358e8755ef51e023e5b9d5f77bcc506f84f64736f6c63430008070033"; - -type GatewayConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: GatewayConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class Gateway__factory extends ContractFactory { - constructor(...args: GatewayConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override deploy( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy(overrides || {}) as Promise; - } - override getDeployTransaction( - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); - } - override attach(address: string): Gateway { - return super.attach(address) as Gateway; - } - override connect(signer: Signer): Gateway__factory { - return super.connect(signer) as Gateway__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): GatewayInterface { - return new utils.Interface(_abi) as GatewayInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): Gateway { - return new Contract(address, _abi, signerOrProvider) as Gateway; - } -} diff --git a/typechain-types/factories/contracts/prototypes/GatewayV2.sol/index.ts b/typechain-types/factories/contracts/prototypes/GatewayV2.sol/index.ts deleted file mode 100644 index 3e3376ed..00000000 --- a/typechain-types/factories/contracts/prototypes/GatewayV2.sol/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { Gateway__factory } from "./Gateway__factory"; -export { GatewayV2__factory } from "./GatewayV2__factory"; diff --git a/typechain-types/factories/contracts/prototypes/GatewayV2__factory.ts b/typechain-types/factories/contracts/prototypes/GatewayV2__factory.ts deleted file mode 100644 index b07067d2..00000000 --- a/typechain-types/factories/contracts/prototypes/GatewayV2__factory.ts +++ /dev/null @@ -1,374 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../common"; -import type { - GatewayV2, - GatewayV2Interface, -} from "../../../contracts/prototypes/GatewayV2"; - -const _abi = [ - { - inputs: [], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [], - name: "ExecutionFailed", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "previousAdmin", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "newAdmin", - type: "address", - }, - ], - name: "AdminChanged", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "beacon", - type: "address", - }, - ], - name: "BeaconUpgraded", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "destination", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "ExecutedV2", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "ExecutedWithERC20V2", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint8", - name: "version", - type: "uint8", - }, - ], - name: "Initialized", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "previousOwner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "newOwner", - type: "address", - }, - ], - name: "OwnershipTransferred", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "implementation", - type: "address", - }, - ], - name: "Upgraded", - type: "event", - }, - { - inputs: [], - name: "custody", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "destination", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "execute", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "executeWithERC20", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "initialize", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "owner", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "proxiableUUID", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "renounceOwnership", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_custody", - type: "address", - }, - ], - name: "setCustody", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newOwner", - type: "address", - }, - ], - name: "transferOwnership", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newImplementation", - type: "address", - }, - ], - name: "upgradeTo", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newImplementation", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "upgradeToAndCall", - outputs: [], - stateMutability: "payable", - type: "function", - }, -] as const; - -const _bytecode = - "0x60a06040523073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152503480156200004757600080fd5b50620000586200005e60201b60201c565b62000208565b600060019054906101000a900460ff1615620000b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000a8906200015c565b60405180910390fd5b60ff801660008054906101000a900460ff1660ff1614620001225760ff6000806101000a81548160ff021916908360ff1602179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860ff6040516200011991906200017e565b60405180910390a15b565b6000620001336027836200019b565b91506200014082620001b9565b604082019050919050565b6200015681620001ac565b82525050565b60006020820190508181036000830152620001778162000124565b9050919050565b60006020820190506200019560008301846200014b565b92915050565b600082825260208201905092915050565b600060ff82169050919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320696e69746960008201527f616c697a696e6700000000000000000000000000000000000000000000000000602082015250565b60805160601c6121c062000243600039600081816102c4015281816103530152818161044d015281816104dc015261087801526121c06000f3fe60806040526004361061009c5760003560e01c8063715018a611610064578063715018a61461017e5780638129fc1c146101955780638da5cb5b146101ac578063ae7a3a6f146101d7578063dda79b7514610200578063f2fde38b1461022b5761009c565b80631cff79cd146100a15780633659cfe6146100d15780634f1ef286146100fa5780635131ab591461011657806352d1902d14610153575b600080fd5b6100bb60048036038101906100b69190611554565b610254565b6040516100c89190611a10565b60405180910390f35b3480156100dd57600080fd5b506100f860048036038101906100f3919061149f565b6102c2565b005b610114600480360381019061010f91906115b4565b61044b565b005b34801561012257600080fd5b5061013d600480360381019061013891906114cc565b610588565b60405161014a9190611a10565b60405180910390f35b34801561015f57600080fd5b50610168610874565b60405161017591906119f5565b60405180910390f35b34801561018a57600080fd5b5061019361092d565b005b3480156101a157600080fd5b506101aa610941565b005b3480156101b857600080fd5b506101c1610a87565b6040516101ce9190611988565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f9919061149f565b610ab1565b005b34801561020c57600080fd5b50610215610af5565b6040516102229190611988565b60405180910390f35b34801561023757600080fd5b50610252600480360381019061024d919061149f565b610b1b565b005b60606000610263858585610b9f565b90508473ffffffffffffffffffffffffffffffffffffffff167f373df382b9c587826f3de13f16d67f8d99f28ee947fc0924c6ef2d6d2c7e85463486866040516102af93929190611bcf565b60405180910390a2809150509392505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610351576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161034890611a8f565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610390610c56565b73ffffffffffffffffffffffffffffffffffffffff16146103e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103dd90611aaf565b60405180910390fd5b6103ef81610cad565b61044881600067ffffffffffffffff81111561040e5761040d611d90565b5b6040519080825280601f01601f1916602001820160405280156104405781602001600182028036833780820191505090505b506000610cb8565b50565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614156104da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d190611a8f565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610519610c56565b73ffffffffffffffffffffffffffffffffffffffff161461056f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056690611aaf565b60405180910390fd5b61057882610cad565b61058482826001610cb8565b5050565b60608573ffffffffffffffffffffffffffffffffffffffff1663095ea7b386866040518363ffffffff1660e01b81526004016105c59291906119cc565b602060405180830381600087803b1580156105df57600080fd5b505af11580156105f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106179190611610565b506000610625868585610b9f565b90508673ffffffffffffffffffffffffffffffffffffffff1663095ea7b38760006040518363ffffffff1660e01b81526004016106639291906119a3565b602060405180830381600087803b15801561067d57600080fd5b505af1158015610691573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b59190611610565b5060008773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106f19190611988565b60206040518083038186803b15801561070957600080fd5b505afa15801561071d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610741919061166a565b905060008111156107fd578773ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016107a99291906119cc565b602060405180830381600087803b1580156107c357600080fd5b505af11580156107d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107fb9190611610565b505b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f887e0acc3616142401641abfc50d7d7ae169b6ce55d8dc06ff5e21501ddb341b88888860405161085e93929190611bcf565b60405180910390a3819250505095945050505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614610904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fb90611acf565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b905090565b610935610e35565b61093f6000610eb3565b565b60008060019054906101000a900460ff161590508080156109725750600160008054906101000a900460ff1660ff16105b8061099f575061098130610f79565b15801561099e5750600160008054906101000a900460ff1660ff16145b5b6109de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d590611b0f565b60405180910390fd5b60016000806101000a81548160ff021916908360ff1602179055508015610a1b576001600060016101000a81548160ff0219169083151502179055505b610a23610f9c565b610a2b610ff5565b8015610a845760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986001604051610a7b9190611a32565b60405180910390a15b50565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8060c960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b23610e35565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610b93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8a90611a6f565b60405180910390fd5b610b9c81610eb3565b50565b60606000808573ffffffffffffffffffffffffffffffffffffffff16348686604051610bcc929190611958565b60006040518083038185875af1925050503d8060008114610c09576040519150601f19603f3d011682016040523d82523d6000602084013e610c0e565b606091505b509150915081610c4a576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80925050509392505050565b6000610c847f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b611046565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610cb5610e35565b50565b610ce47f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914360001b611050565b60000160009054906101000a900460ff1615610d0857610d038361105a565b610e30565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b158015610d4e57600080fd5b505afa925050508015610d7f57506040513d601f19601f82011682018060405250810190610d7c919061163d565b60015b610dbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db590611b2f565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b8114610e23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1a90611aef565b60405180910390fd5b50610e2f838383611113565b5b505050565b610e3d61113f565b73ffffffffffffffffffffffffffffffffffffffff16610e5b610a87565b73ffffffffffffffffffffffffffffffffffffffff1614610eb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea890611b6f565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16610feb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe290611baf565b60405180910390fd5b610ff3611147565b565b600060019054906101000a900460ff16611044576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103b90611baf565b60405180910390fd5b565b6000819050919050565b6000819050919050565b61106381610f79565b6110a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109990611b4f565b60405180910390fd5b806110cf7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b611046565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61111c836111a8565b6000825111806111295750805b1561113a5761113883836111f7565b505b505050565b600033905090565b600060019054906101000a900460ff16611196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118d90611baf565b60405180910390fd5b6111a66111a161113f565b610eb3565b565b6111b18161105a565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b606061121c838360405180606001604052806027815260200161216460279139611224565b905092915050565b60606000808573ffffffffffffffffffffffffffffffffffffffff168560405161124e9190611971565b600060405180830381855af49150503d8060008114611289576040519150601f19603f3d011682016040523d82523d6000602084013e61128e565b606091505b509150915061129f868383876112aa565b925050509392505050565b6060831561130d57600083511415611305576112c585610f79565b611304576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fb90611b8f565b60405180910390fd5b5b829050611318565b6113178383611320565b5b949350505050565b6000825111156113335781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113679190611a4d565b60405180910390fd5b600061138361137e84611c26565b611c01565b90508281526020810184848401111561139f5761139e611dce565b5b6113aa848285611d1d565b509392505050565b6000813590506113c181612107565b92915050565b6000815190506113d68161211e565b92915050565b6000815190506113eb81612135565b92915050565b60008083601f84011261140757611406611dc4565b5b8235905067ffffffffffffffff81111561142457611423611dbf565b5b6020830191508360018202830111156114405761143f611dc9565b5b9250929050565b600082601f83011261145c5761145b611dc4565b5b813561146c848260208601611370565b91505092915050565b6000813590506114848161214c565b92915050565b6000815190506114998161214c565b92915050565b6000602082840312156114b5576114b4611dd8565b5b60006114c3848285016113b2565b91505092915050565b6000806000806000608086880312156114e8576114e7611dd8565b5b60006114f6888289016113b2565b9550506020611507888289016113b2565b945050604061151888828901611475565b935050606086013567ffffffffffffffff81111561153957611538611dd3565b5b611545888289016113f1565b92509250509295509295909350565b60008060006040848603121561156d5761156c611dd8565b5b600061157b868287016113b2565b935050602084013567ffffffffffffffff81111561159c5761159b611dd3565b5b6115a8868287016113f1565b92509250509250925092565b600080604083850312156115cb576115ca611dd8565b5b60006115d9858286016113b2565b925050602083013567ffffffffffffffff8111156115fa576115f9611dd3565b5b61160685828601611447565b9150509250929050565b60006020828403121561162657611625611dd8565b5b6000611634848285016113c7565b91505092915050565b60006020828403121561165357611652611dd8565b5b6000611661848285016113dc565b91505092915050565b6000602082840312156116805761167f611dd8565b5b600061168e8482850161148a565b91505092915050565b6116a081611c9a565b82525050565b6116af81611cb8565b82525050565b60006116c18385611c6d565b93506116ce838584611d1d565b6116d783611ddd565b840190509392505050565b60006116ee8385611c7e565b93506116fb838584611d1d565b82840190509392505050565b600061171282611c57565b61171c8185611c6d565b935061172c818560208601611d2c565b61173581611ddd565b840191505092915050565b600061174b82611c57565b6117558185611c7e565b9350611765818560208601611d2c565b80840191505092915050565b61177a81611cf9565b82525050565b61178981611d0b565b82525050565b600061179a82611c62565b6117a48185611c89565b93506117b4818560208601611d2c565b6117bd81611ddd565b840191505092915050565b60006117d5602683611c89565b91506117e082611dee565b604082019050919050565b60006117f8602c83611c89565b915061180382611e3d565b604082019050919050565b600061181b602c83611c89565b915061182682611e8c565b604082019050919050565b600061183e603883611c89565b915061184982611edb565b604082019050919050565b6000611861602983611c89565b915061186c82611f2a565b604082019050919050565b6000611884602e83611c89565b915061188f82611f79565b604082019050919050565b60006118a7602e83611c89565b91506118b282611fc8565b604082019050919050565b60006118ca602d83611c89565b91506118d582612017565b604082019050919050565b60006118ed602083611c89565b91506118f882612066565b602082019050919050565b6000611910601d83611c89565b915061191b8261208f565b602082019050919050565b6000611933602b83611c89565b915061193e826120b8565b604082019050919050565b61195281611ce2565b82525050565b60006119658284866116e2565b91508190509392505050565b600061197d8284611740565b915081905092915050565b600060208201905061199d6000830184611697565b92915050565b60006040820190506119b86000830185611697565b6119c56020830184611771565b9392505050565b60006040820190506119e16000830185611697565b6119ee6020830184611949565b9392505050565b6000602082019050611a0a60008301846116a6565b92915050565b60006020820190508181036000830152611a2a8184611707565b905092915050565b6000602082019050611a476000830184611780565b92915050565b60006020820190508181036000830152611a67818461178f565b905092915050565b60006020820190508181036000830152611a88816117c8565b9050919050565b60006020820190508181036000830152611aa8816117eb565b9050919050565b60006020820190508181036000830152611ac88161180e565b9050919050565b60006020820190508181036000830152611ae881611831565b9050919050565b60006020820190508181036000830152611b0881611854565b9050919050565b60006020820190508181036000830152611b2881611877565b9050919050565b60006020820190508181036000830152611b488161189a565b9050919050565b60006020820190508181036000830152611b68816118bd565b9050919050565b60006020820190508181036000830152611b88816118e0565b9050919050565b60006020820190508181036000830152611ba881611903565b9050919050565b60006020820190508181036000830152611bc881611926565b9050919050565b6000604082019050611be46000830186611949565b8181036020830152611bf78184866116b5565b9050949350505050565b6000611c0b611c1c565b9050611c178282611d5f565b919050565b6000604051905090565b600067ffffffffffffffff821115611c4157611c40611d90565b5b611c4a82611ddd565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000611ca582611cc2565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000611d0482611ce2565b9050919050565b6000611d1682611cec565b9050919050565b82818337600083830152505050565b60005b83811015611d4a578082015181840152602081019050611d2f565b83811115611d59576000848401525b50505050565b611d6882611ddd565b810181811067ffffffffffffffff82111715611d8757611d86611d90565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f64656c656761746563616c6c0000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f6163746976652070726f78790000000000000000000000000000000000000000602082015250565b7f555550535570677261646561626c653a206d757374206e6f742062652063616c60008201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000602082015250565b7f45524331393637557067726164653a20756e737570706f727465642070726f7860008201527f6961626c65555549440000000000000000000000000000000000000000000000602082015250565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f45524331393637557067726164653a206e657720696d706c656d656e7461746960008201527f6f6e206973206e6f742055555053000000000000000000000000000000000000602082015250565b7f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60008201527f6f74206120636f6e747261637400000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b61211081611c9a565b811461211b57600080fd5b50565b61212781611cac565b811461213257600080fd5b50565b61213e81611cb8565b811461214957600080fd5b50565b61215581611ce2565b811461216057600080fd5b5056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a349306a7d1588b676f5b6e95783cf1d798266d946f8cdd77432870e89cdcd4f64736f6c63430008070033"; - -type GatewayV2ConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: GatewayV2ConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class GatewayV2__factory extends ContractFactory { - constructor(...args: GatewayV2ConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override deploy( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy(overrides || {}) as Promise; - } - override getDeployTransaction( - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); - } - override attach(address: string): GatewayV2 { - return super.attach(address) as GatewayV2; - } - override connect(signer: Signer): GatewayV2__factory { - return super.connect(signer) as GatewayV2__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): GatewayV2Interface { - return new utils.Interface(_abi) as GatewayV2Interface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): GatewayV2 { - return new Contract(address, _abi, signerOrProvider) as GatewayV2; - } -} diff --git a/typechain-types/factories/contracts/prototypes/Gateway__factory.ts b/typechain-types/factories/contracts/prototypes/Gateway__factory.ts deleted file mode 100644 index ff914666..00000000 --- a/typechain-types/factories/contracts/prototypes/Gateway__factory.ts +++ /dev/null @@ -1,560 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../common"; -import type { - Gateway, - GatewayInterface, -} from "../../../contracts/prototypes/Gateway"; - -const _abi = [ - { - inputs: [], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [], - name: "ExecutionFailed", - type: "error", - }, - { - inputs: [], - name: "InsufficientETHAmount", - type: "error", - }, - { - inputs: [], - name: "SendFailed", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "previousAdmin", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "newAdmin", - type: "address", - }, - ], - name: "AdminChanged", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "beacon", - type: "address", - }, - ], - name: "BeaconUpgraded", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "previousAdmin", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "newAdmin", - type: "address", - }, - ], - name: "AdminChanged", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "beacon", - type: "address", - }, - ], - name: "BeaconUpgraded", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "destination", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "Executed", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "ExecutedWithERC20", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint8", - name: "version", - type: "uint8", - }, - ], - name: "Initialized", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "previousOwner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "newOwner", - type: "address", - }, - ], - name: "OwnershipTransferred", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "recipient", - type: "bytes", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "Send", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "recipient", - type: "bytes", - }, - { - indexed: true, - internalType: "address", - name: "asset", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "SendERC20", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "implementation", - type: "address", - }, - ], - name: "Upgraded", - type: "event", - }, - { - inputs: [], - name: "custody", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "destination", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "execute", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "executeWithERC20", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "initialize", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "owner", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "proxiableUUID", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "renounceOwnership", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_tssAddress", - type: "address", - }, - ], - name: "initialize", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "owner", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "proxiableUUID", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "renounceOwnership", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "recipient", - type: "bytes", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "send", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "recipient", - type: "bytes", - }, - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "sendERC20", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_custody", - type: "address", - }, - ], - name: "setCustody", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newOwner", - type: "address", - }, - ], - name: "transferOwnership", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "tssAddress", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newImplementation", - type: "address", - }, - ], - name: "upgradeTo", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newImplementation", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "upgradeToAndCall", - outputs: [], - stateMutability: "payable", - type: "function", - }, -] as const; - -const _bytecode = - "0x60a06040523073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152503480156200004757600080fd5b50620000586200005e60201b60201c565b62000208565b600060019054906101000a900460ff1615620000b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000a8906200015c565b60405180910390fd5b60ff801660008054906101000a900460ff1660ff1614620001225760ff6000806101000a81548160ff021916908360ff1602179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860ff6040516200011991906200017e565b60405180910390a15b565b6000620001336027836200019b565b91506200014082620001b9565b604082019050919050565b6200015681620001ac565b82525050565b60006020820190508181036000830152620001778162000124565b9050919050565b60006020820190506200019560008301846200014b565b92915050565b600082825260208201905092915050565b600060ff82169050919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320696e69746960008201527f616c697a696e6700000000000000000000000000000000000000000000000000602082015250565b60805160601c6126b5620002436000396000818161038701528181610416015281816105100152818161059f015261093b01526126b56000f3fe6080604052600436106100dd5760003560e01c80638da5cb5b1161007f578063c4d66de811610059578063c4d66de814610271578063cb0271ed1461029a578063dda79b75146102c3578063f2fde38b146102ee576100dd565b80638da5cb5b146102015780639372c4ab1461022c578063ae7a3a6f14610248576100dd565b80635131ab59116100bb5780635131ab591461015757806352d1902d146101945780635b112591146101bf578063715018a6146101ea576100dd565b80631cff79cd146100e25780633659cfe6146101125780634f1ef2861461013b575b600080fd5b6100fc60048036038101906100f791906118d1565b610317565b6040516101099190611f02565b60405180910390f35b34801561011e57600080fd5b506101396004803603810190610134919061181c565b610385565b005b61015560048036038101906101509190611931565b61050e565b005b34801561016357600080fd5b5061017e60048036038101906101799190611849565b61064b565b60405161018b9190611f02565b60405180910390f35b3480156101a057600080fd5b506101a9610937565b6040516101b69190611eb5565b60405180910390f35b3480156101cb57600080fd5b506101d46109f0565b6040516101e19190611e11565b60405180910390f35b3480156101f657600080fd5b506101ff610a16565b005b34801561020d57600080fd5b50610216610a2a565b6040516102239190611e11565b60405180910390f35b61024660048036038101906102419190611a5b565b610a54565b005b34801561025457600080fd5b5061026f600480360381019061026a919061181c565b610b9c565b005b34801561027d57600080fd5b506102986004803603810190610293919061181c565b610be0565b005b3480156102a657600080fd5b506102c160048036038101906102bc91906119e7565b610d68565b005b3480156102cf57600080fd5b506102d8610e72565b6040516102e59190611e11565b60405180910390f35b3480156102fa57600080fd5b506103156004803603810190610310919061181c565b610e98565b005b60606000610326858585610f1c565b90508473ffffffffffffffffffffffffffffffffffffffff167fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f348686604051610372939291906120c1565b60405180910390a2809150509392505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610414576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040b90611f81565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610453610fd3565b73ffffffffffffffffffffffffffffffffffffffff16146104a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a090611fa1565b60405180910390fd5b6104b28161102a565b61050b81600067ffffffffffffffff8111156104d1576104d0612282565b5b6040519080825280601f01601f1916602001820160405280156105035781602001600182028036833780820191505090505b506000611035565b50565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16141561059d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161059490611f81565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166105dc610fd3565b73ffffffffffffffffffffffffffffffffffffffff1614610632576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062990611fa1565b60405180910390fd5b61063b8261102a565b61064782826001611035565b5050565b60608573ffffffffffffffffffffffffffffffffffffffff1663095ea7b386866040518363ffffffff1660e01b8152600401610688929190611e8c565b602060405180830381600087803b1580156106a257600080fd5b505af11580156106b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106da919061198d565b5060006106e8868585610f1c565b90508673ffffffffffffffffffffffffffffffffffffffff1663095ea7b38760006040518363ffffffff1660e01b8152600401610726929190611e63565b602060405180830381600087803b15801561074057600080fd5b505af1158015610754573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610778919061198d565b5060008773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107b49190611e11565b60206040518083038186803b1580156107cc57600080fd5b505afa1580156107e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108049190611abb565b905060008111156108c0578773ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161086c929190611e8c565b602060405180830381600087803b15801561088657600080fd5b505af115801561089a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108be919061198d565b505b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382888888604051610921939291906120c1565b60405180910390a3819250505095945050505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16146109c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109be90611fc1565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b905090565b60ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a1e6111b2565b610a286000611230565b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b80341015610a8e576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051610ad690611dfc565b60006040518083038185875af1925050503d8060008114610b13576040519150601f19603f3d011682016040523d82523d6000602084013e610b18565b606091505b50509050600015158115151415610b5b576040517f81063e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fa93afc57f3be4641cf20c7165d11856f3b46dd376108e5fffb06f73f2b2a6d58848484604051610b8e93929190611ed0565b60405180910390a150505050565b8060c960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060019054906101000a900460ff16159050808015610c115750600160008054906101000a900460ff1660ff16105b80610c3e5750610c20306112f6565b158015610c3d5750600160008054906101000a900460ff1660ff16145b5b610c7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7490612001565b60405180910390fd5b60016000806101000a81548160ff021916908360ff1602179055508015610cba576001600060016101000a81548160ff0219169083151502179055505b610cc2611319565b610cca611372565b8160ca60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508015610d645760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986001604051610d5b9190611f24565b60405180910390a15b5050565b8173ffffffffffffffffffffffffffffffffffffffff166323b872dd3360c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b8152600401610dc793929190611e2c565b602060405180830381600087803b158015610de157600080fd5b505af1158015610df5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e19919061198d565b508173ffffffffffffffffffffffffffffffffffffffff167f35fb30ed1b8e81eb91001dad742b13b1491a67c722e8c593a886a18500f7d9af858584604051610e6493929190611ed0565b60405180910390a250505050565b60c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610ea06111b2565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0790611f61565b60405180910390fd5b610f1981611230565b50565b60606000808573ffffffffffffffffffffffffffffffffffffffff16348686604051610f49929190611dcc565b60006040518083038185875af1925050503d8060008114610f86576040519150601f19603f3d011682016040523d82523d6000602084013e610f8b565b606091505b509150915081610fc7576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80925050509392505050565b60006110017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6113c3565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6110326111b2565b50565b6110617f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914360001b6113cd565b60000160009054906101000a900460ff161561108557611080836113d7565b6111ad565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156110cb57600080fd5b505afa9250505080156110fc57506040513d601f19601f820116820180604052508101906110f991906119ba565b60015b61113b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113290612021565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b81146111a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119790611fe1565b60405180910390fd5b506111ac838383611490565b5b505050565b6111ba6114bc565b73ffffffffffffffffffffffffffffffffffffffff166111d8610a2a565b73ffffffffffffffffffffffffffffffffffffffff161461122e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122590612061565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16611368576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135f906120a1565b60405180910390fd5b6113706114c4565b565b600060019054906101000a900460ff166113c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b8906120a1565b60405180910390fd5b565b6000819050919050565b6000819050919050565b6113e0816112f6565b61141f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141690612041565b60405180910390fd5b8061144c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6113c3565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61149983611525565b6000825111806114a65750805b156114b7576114b58383611574565b505b505050565b600033905090565b600060019054906101000a900460ff16611513576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150a906120a1565b60405180910390fd5b61152361151e6114bc565b611230565b565b61152e816113d7565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b60606115998383604051806060016040528060278152602001612659602791396115a1565b905092915050565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516115cb9190611de5565b600060405180830381855af49150503d8060008114611606576040519150601f19603f3d011682016040523d82523d6000602084013e61160b565b606091505b509150915061161c86838387611627565b925050509392505050565b6060831561168a5760008351141561168257611642856112f6565b611681576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167890612081565b60405180910390fd5b5b829050611695565b611694838361169d565b5b949350505050565b6000825111156116b05781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e49190611f3f565b60405180910390fd5b60006117006116fb84612118565b6120f3565b90508281526020810184848401111561171c5761171b6122c0565b5b61172784828561220f565b509392505050565b60008135905061173e816125fc565b92915050565b60008151905061175381612613565b92915050565b6000815190506117688161262a565b92915050565b60008083601f840112611784576117836122b6565b5b8235905067ffffffffffffffff8111156117a1576117a06122b1565b5b6020830191508360018202830111156117bd576117bc6122bb565b5b9250929050565b600082601f8301126117d9576117d86122b6565b5b81356117e98482602086016116ed565b91505092915050565b60008135905061180181612641565b92915050565b60008151905061181681612641565b92915050565b600060208284031215611832576118316122ca565b5b60006118408482850161172f565b91505092915050565b600080600080600060808688031215611865576118646122ca565b5b60006118738882890161172f565b95505060206118848882890161172f565b9450506040611895888289016117f2565b935050606086013567ffffffffffffffff8111156118b6576118b56122c5565b5b6118c28882890161176e565b92509250509295509295909350565b6000806000604084860312156118ea576118e96122ca565b5b60006118f88682870161172f565b935050602084013567ffffffffffffffff811115611919576119186122c5565b5b6119258682870161176e565b92509250509250925092565b60008060408385031215611948576119476122ca565b5b60006119568582860161172f565b925050602083013567ffffffffffffffff811115611977576119766122c5565b5b611983858286016117c4565b9150509250929050565b6000602082840312156119a3576119a26122ca565b5b60006119b184828501611744565b91505092915050565b6000602082840312156119d0576119cf6122ca565b5b60006119de84828501611759565b91505092915050565b60008060008060608587031215611a0157611a006122ca565b5b600085013567ffffffffffffffff811115611a1f57611a1e6122c5565b5b611a2b8782880161176e565b94509450506020611a3e8782880161172f565b9250506040611a4f878288016117f2565b91505092959194509250565b600080600060408486031215611a7457611a736122ca565b5b600084013567ffffffffffffffff811115611a9257611a916122c5565b5b611a9e8682870161176e565b93509350506020611ab1868287016117f2565b9150509250925092565b600060208284031215611ad157611ad06122ca565b5b6000611adf84828501611807565b91505092915050565b611af18161218c565b82525050565b611b00816121aa565b82525050565b6000611b12838561215f565b9350611b1f83858461220f565b611b28836122cf565b840190509392505050565b6000611b3f8385612170565b9350611b4c83858461220f565b82840190509392505050565b6000611b6382612149565b611b6d818561215f565b9350611b7d81856020860161221e565b611b86816122cf565b840191505092915050565b6000611b9c82612149565b611ba68185612170565b9350611bb681856020860161221e565b80840191505092915050565b611bcb816121eb565b82525050565b611bda816121fd565b82525050565b6000611beb82612154565b611bf5818561217b565b9350611c0581856020860161221e565b611c0e816122cf565b840191505092915050565b6000611c2660268361217b565b9150611c31826122e0565b604082019050919050565b6000611c49602c8361217b565b9150611c548261232f565b604082019050919050565b6000611c6c602c8361217b565b9150611c778261237e565b604082019050919050565b6000611c8f60388361217b565b9150611c9a826123cd565b604082019050919050565b6000611cb260298361217b565b9150611cbd8261241c565b604082019050919050565b6000611cd5602e8361217b565b9150611ce08261246b565b604082019050919050565b6000611cf8602e8361217b565b9150611d03826124ba565b604082019050919050565b6000611d1b602d8361217b565b9150611d2682612509565b604082019050919050565b6000611d3e60208361217b565b9150611d4982612558565b602082019050919050565b6000611d61600083612170565b9150611d6c82612581565b600082019050919050565b6000611d84601d8361217b565b9150611d8f82612584565b602082019050919050565b6000611da7602b8361217b565b9150611db2826125ad565b604082019050919050565b611dc6816121d4565b82525050565b6000611dd9828486611b33565b91508190509392505050565b6000611df18284611b91565b915081905092915050565b6000611e0782611d54565b9150819050919050565b6000602082019050611e266000830184611ae8565b92915050565b6000606082019050611e416000830186611ae8565b611e4e6020830185611ae8565b611e5b6040830184611dbd565b949350505050565b6000604082019050611e786000830185611ae8565b611e856020830184611bc2565b9392505050565b6000604082019050611ea16000830185611ae8565b611eae6020830184611dbd565b9392505050565b6000602082019050611eca6000830184611af7565b92915050565b60006040820190508181036000830152611eeb818587611b06565b9050611efa6020830184611dbd565b949350505050565b60006020820190508181036000830152611f1c8184611b58565b905092915050565b6000602082019050611f396000830184611bd1565b92915050565b60006020820190508181036000830152611f598184611be0565b905092915050565b60006020820190508181036000830152611f7a81611c19565b9050919050565b60006020820190508181036000830152611f9a81611c3c565b9050919050565b60006020820190508181036000830152611fba81611c5f565b9050919050565b60006020820190508181036000830152611fda81611c82565b9050919050565b60006020820190508181036000830152611ffa81611ca5565b9050919050565b6000602082019050818103600083015261201a81611cc8565b9050919050565b6000602082019050818103600083015261203a81611ceb565b9050919050565b6000602082019050818103600083015261205a81611d0e565b9050919050565b6000602082019050818103600083015261207a81611d31565b9050919050565b6000602082019050818103600083015261209a81611d77565b9050919050565b600060208201905081810360008301526120ba81611d9a565b9050919050565b60006040820190506120d66000830186611dbd565b81810360208301526120e9818486611b06565b9050949350505050565b60006120fd61210e565b90506121098282612251565b919050565b6000604051905090565b600067ffffffffffffffff82111561213357612132612282565b5b61213c826122cf565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000612197826121b4565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006121f6826121d4565b9050919050565b6000612208826121de565b9050919050565b82818337600083830152505050565b60005b8381101561223c578082015181840152602081019050612221565b8381111561224b576000848401525b50505050565b61225a826122cf565b810181811067ffffffffffffffff8211171561227957612278612282565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f64656c656761746563616c6c0000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f6163746976652070726f78790000000000000000000000000000000000000000602082015250565b7f555550535570677261646561626c653a206d757374206e6f742062652063616c60008201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000602082015250565b7f45524331393637557067726164653a20756e737570706f727465642070726f7860008201527f6961626c65555549440000000000000000000000000000000000000000000000602082015250565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f45524331393637557067726164653a206e657720696d706c656d656e7461746960008201527f6f6e206973206e6f742055555053000000000000000000000000000000000000602082015250565b7f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60008201527f6f74206120636f6e747261637400000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b6126058161218c565b811461261057600080fd5b50565b61261c8161219e565b811461262757600080fd5b50565b612633816121aa565b811461263e57600080fd5b50565b61264a816121d4565b811461265557600080fd5b5056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212201e7cbd929e55cc43e5cdc66ed6524d47d8a9264ddfb58047ebf2e1dd71bfa92e64736f6c63430008070033"; - -type GatewayConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: GatewayConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class Gateway__factory extends ContractFactory { - constructor(...args: GatewayConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override deploy( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy(overrides || {}) as Promise; - } - override getDeployTransaction( - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); - } - override attach(address: string): Gateway { - return super.attach(address) as Gateway; - } - override connect(signer: Signer): Gateway__factory { - return super.connect(signer) as Gateway__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): GatewayInterface { - return new utils.Interface(_abi) as GatewayInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): Gateway { - return new Contract(address, _abi, signerOrProvider) as Gateway; - } -} diff --git a/typechain-types/factories/contracts/prototypes/Receiver__factory.ts b/typechain-types/factories/contracts/prototypes/Receiver__factory.ts deleted file mode 100644 index bd3f76e9..00000000 --- a/typechain-types/factories/contracts/prototypes/Receiver__factory.ts +++ /dev/null @@ -1,251 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../common"; -import type { - Receiver, - ReceiverInterface, -} from "../../../contracts/prototypes/Receiver"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "string", - name: "str", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "num", - type: "uint256", - }, - { - indexed: false, - internalType: "bool", - name: "flag", - type: "bool", - }, - ], - name: "ReceivedA", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "string[]", - name: "strs", - type: "string[]", - }, - { - indexed: false, - internalType: "uint256[]", - name: "nums", - type: "uint256[]", - }, - { - indexed: false, - internalType: "bool", - name: "flag", - type: "bool", - }, - ], - name: "ReceivedB", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "destination", - type: "address", - }, - ], - name: "ReceivedC", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "ReceivedD", - type: "event", - }, - { - inputs: [ - { - internalType: "string", - name: "str", - type: "string", - }, - { - internalType: "uint256", - name: "num", - type: "uint256", - }, - { - internalType: "bool", - name: "flag", - type: "bool", - }, - ], - name: "receiveA", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "string[]", - name: "strs", - type: "string[]", - }, - { - internalType: "uint256[]", - name: "nums", - type: "uint256[]", - }, - { - internalType: "bool", - name: "flag", - type: "bool", - }, - ], - name: "receiveB", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "destination", - type: "address", - }, - ], - name: "receiveC", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "receiveD", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -const _bytecode = - "0x608060405234801561001057600080fd5b50610bbf806100206000396000f3fe60806040526004361061003f5760003560e01c806352df08b6146100445780636fa220ad1461006d57806386c4519214610089578063f5db6b39146100a0575b600080fd5b34801561005057600080fd5b5061006b6004803603810190610066919061059f565b6100c9565b005b61008760048036038101906100829190610530565b61019b565b005b34801561009557600080fd5b5061009e6101df565b005b3480156100ac57600080fd5b506100c760048036038101906100c29190610478565b610218565b005b8173ffffffffffffffffffffffffffffffffffffffff166323b872dd3383866040518463ffffffff1660e01b8152600401610106939291906107ba565b602060405180830381600087803b15801561012057600080fd5b505af1158015610134573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101589190610503565b507fe8077791e8d0f63b9e4c0b6d386cbbf6c65e1acb2a103019edba9d1cc0b329003384848460405161018e9493929190610844565b60405180910390a1505050565b7f87d67858b5cc03bdd16a3fcc56773bd59410e946cff7193cf374402c6e8fb6ee33348585856040516101d2959493929190610889565b60405180910390a1505050565b7fcf0e6f18d967cb5a3ca7781d74b1d66411d1b8984e2dd2a066709c204a66d8623360405161020e919061079f565b60405180910390a1565b7f463b3e5d6969d17b19e10c4ca95f5f1b6fdef8678f980af98071bd38f0d885c23384848460405161024d94939291906107f1565b60405180910390a1505050565b600061026d61026884610908565b6108e3565b905080838252602082019050828560208602820111156102905761028f610b1f565b5b60005b858110156102de57813567ffffffffffffffff8111156102b6576102b5610b1a565b5b8086016102c38982610435565b85526020850194506020840193505050600181019050610293565b5050509392505050565b60006102fb6102f684610934565b6108e3565b9050808382526020820190508285602086028201111561031e5761031d610b1f565b5b60005b8581101561034e57816103348882610463565b845260208401935060208301925050600181019050610321565b5050509392505050565b600061036b61036684610960565b6108e3565b90508281526020810184848401111561038757610386610b24565b5b610392848285610a78565b509392505050565b6000813590506103a981610b44565b92915050565b600082601f8301126103c4576103c3610b1a565b5b81356103d484826020860161025a565b91505092915050565b600082601f8301126103f2576103f1610b1a565b5b81356104028482602086016102e8565b91505092915050565b60008135905061041a81610b5b565b92915050565b60008151905061042f81610b5b565b92915050565b600082601f83011261044a57610449610b1a565b5b813561045a848260208601610358565b91505092915050565b60008135905061047281610b72565b92915050565b60008060006060848603121561049157610490610b2e565b5b600084013567ffffffffffffffff8111156104af576104ae610b29565b5b6104bb868287016103af565b935050602084013567ffffffffffffffff8111156104dc576104db610b29565b5b6104e8868287016103dd565b92505060406104f98682870161040b565b9150509250925092565b60006020828403121561051957610518610b2e565b5b600061052784828501610420565b91505092915050565b60008060006060848603121561054957610548610b2e565b5b600084013567ffffffffffffffff81111561056757610566610b29565b5b61057386828701610435565b935050602061058486828701610463565b92505060406105958682870161040b565b9150509250925092565b6000806000606084860312156105b8576105b7610b2e565b5b60006105c686828701610463565b93505060206105d78682870161039a565b92505060406105e88682870161039a565b9150509250925092565b60006105fe838361070f565b905092915050565b60006106128383610781565b60208301905092915050565b61062781610a30565b82525050565b6000610638826109b1565b61064281856109ec565b93508360208202850161065485610991565b8060005b85811015610690578484038952815161067185826105f2565b945061067c836109d2565b925060208a01995050600181019050610658565b50829750879550505050505092915050565b60006106ad826109bc565b6106b781856109fd565b93506106c2836109a1565b8060005b838110156106f35781516106da8882610606565b97506106e5836109df565b9250506001810190506106c6565b5085935050505092915050565b61070981610a42565b82525050565b600061071a826109c7565b6107248185610a0e565b9350610734818560208601610a87565b61073d81610b33565b840191505092915050565b6000610753826109c7565b61075d8185610a1f565b935061076d818560208601610a87565b61077681610b33565b840191505092915050565b61078a81610a6e565b82525050565b61079981610a6e565b82525050565b60006020820190506107b4600083018461061e565b92915050565b60006060820190506107cf600083018661061e565b6107dc602083018561061e565b6107e96040830184610790565b949350505050565b6000608082019050610806600083018761061e565b8181036020830152610818818661062d565b9050818103604083015261082c81856106a2565b905061083b6060830184610700565b95945050505050565b6000608082019050610859600083018761061e565b6108666020830186610790565b610873604083018561061e565b610880606083018461061e565b95945050505050565b600060a08201905061089e600083018861061e565b6108ab6020830187610790565b81810360408301526108bd8186610748565b90506108cc6060830185610790565b6108d96080830184610700565b9695505050505050565b60006108ed6108fe565b90506108f98282610aba565b919050565b6000604051905090565b600067ffffffffffffffff82111561092357610922610aeb565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561094f5761094e610aeb565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561097b5761097a610aeb565b5b61098482610b33565b9050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000610a3b82610a4e565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015610aa5578082015181840152602081019050610a8a565b83811115610ab4576000848401525b50505050565b610ac382610b33565b810181811067ffffffffffffffff82111715610ae257610ae1610aeb565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b610b4d81610a30565b8114610b5857600080fd5b50565b610b6481610a42565b8114610b6f57600080fd5b50565b610b7b81610a6e565b8114610b8657600080fd5b5056fea264697066735822122071e33ff7a639cea7ba0e3fa2cb4106a312f1b8080d32e972b0ef4823ad974cf264736f6c63430008070033"; - -type ReceiverConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: ReceiverConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class Receiver__factory extends ContractFactory { - constructor(...args: ReceiverConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override deploy( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy(overrides || {}) as Promise; - } - override getDeployTransaction( - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); - } - override attach(address: string): Receiver { - return super.attach(address) as Receiver; - } - override connect(signer: Signer): Receiver__factory { - return super.connect(signer) as Receiver__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): ReceiverInterface { - return new utils.Interface(_abi) as ReceiverInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): Receiver { - return new Contract(address, _abi, signerOrProvider) as Receiver; - } -} diff --git a/typechain-types/factories/contracts/prototypes/TestERC20__factory.ts b/typechain-types/factories/contracts/prototypes/TestERC20__factory.ts deleted file mode 100644 index f5181c5f..00000000 --- a/typechain-types/factories/contracts/prototypes/TestERC20__factory.ts +++ /dev/null @@ -1,371 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../common"; -import type { - TestERC20, - TestERC20Interface, -} from "../../../contracts/prototypes/TestERC20"; - -const _abi = [ - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "constructor", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "owner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "spender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "allowance", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "approve", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "balanceOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "decimals", - outputs: [ - { - internalType: "uint8", - name: "", - type: "uint8", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "subtractedValue", - type: "uint256", - }, - ], - name: "decreaseAllowance", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "addedValue", - type: "uint256", - }, - ], - name: "increaseAllowance", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "mint", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "name", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "symbol", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "totalSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -const _bytecode = - "0x60806040523480156200001157600080fd5b5060405162001813380380620018138339818101604052810190620000379190620001a3565b818181600390805190602001906200005192919062000075565b5080600490805190602001906200006a92919062000075565b5050505050620003ac565b8280546200008390620002bd565b90600052602060002090601f016020900481019282620000a75760008555620000f3565b82601f10620000c257805160ff1916838001178555620000f3565b82800160010185558215620000f3579182015b82811115620000f2578251825591602001919060010190620000d5565b5b50905062000102919062000106565b5090565b5b808211156200012157600081600090555060010162000107565b5090565b60006200013c620001368462000251565b62000228565b9050828152602081018484840111156200015b576200015a6200038c565b5b6200016884828562000287565b509392505050565b600082601f83011262000188576200018762000387565b5b81516200019a84826020860162000125565b91505092915050565b60008060408385031215620001bd57620001bc62000396565b5b600083015167ffffffffffffffff811115620001de57620001dd62000391565b5b620001ec8582860162000170565b925050602083015167ffffffffffffffff81111562000210576200020f62000391565b5b6200021e8582860162000170565b9150509250929050565b60006200023462000247565b9050620002428282620002f3565b919050565b6000604051905090565b600067ffffffffffffffff8211156200026f576200026e62000358565b5b6200027a826200039b565b9050602081019050919050565b60005b83811015620002a75780820151818401526020810190506200028a565b83811115620002b7576000848401525b50505050565b60006002820490506001821680620002d657607f821691505b60208210811415620002ed57620002ec62000329565b5b50919050565b620002fe826200039b565b810181811067ffffffffffffffff8211171562000320576200031f62000358565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b61145780620003bc6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806340c10f191161007157806340c10f19146101a357806370a08231146101bf57806395d89b41146101ef578063a457c2d71461020d578063a9059cbb1461023d578063dd62ed3e1461026d576100b4565b806306fdde03146100b9578063095ea7b3146100d757806318160ddd1461010757806323b872dd14610125578063313ce567146101555780633950935114610173575b600080fd5b6100c161029d565b6040516100ce9190610ecf565b60405180910390f35b6100f160048036038101906100ec9190610cf6565b61032f565b6040516100fe9190610eb4565b60405180910390f35b61010f610352565b60405161011c9190610ff1565b60405180910390f35b61013f600480360381019061013a9190610ca3565b61035c565b60405161014c9190610eb4565b60405180910390f35b61015d61038b565b60405161016a919061100c565b60405180910390f35b61018d60048036038101906101889190610cf6565b610394565b60405161019a9190610eb4565b60405180910390f35b6101bd60048036038101906101b89190610cf6565b6103cb565b005b6101d960048036038101906101d49190610c36565b6103d9565b6040516101e69190610ff1565b60405180910390f35b6101f7610421565b6040516102049190610ecf565b60405180910390f35b61022760048036038101906102229190610cf6565b6104b3565b6040516102349190610eb4565b60405180910390f35b61025760048036038101906102529190610cf6565b61052a565b6040516102649190610eb4565b60405180910390f35b61028760048036038101906102829190610c63565b61054d565b6040516102949190610ff1565b60405180910390f35b6060600380546102ac90611121565b80601f01602080910402602001604051908101604052809291908181526020018280546102d890611121565b80156103255780601f106102fa57610100808354040283529160200191610325565b820191906000526020600020905b81548152906001019060200180831161030857829003601f168201915b5050505050905090565b60008061033a6105d4565b90506103478185856105dc565b600191505092915050565b6000600254905090565b6000806103676105d4565b90506103748582856107a7565b61037f858585610833565b60019150509392505050565b60006012905090565b60008061039f6105d4565b90506103c08185856103b1858961054d565b6103bb9190611043565b6105dc565b600191505092915050565b6103d58282610aab565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461043090611121565b80601f016020809104026020016040519081016040528092919081815260200182805461045c90611121565b80156104a95780601f1061047e576101008083540402835291602001916104a9565b820191906000526020600020905b81548152906001019060200180831161048c57829003601f168201915b5050505050905090565b6000806104be6105d4565b905060006104cc828661054d565b905083811015610511576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050890610fb1565b60405180910390fd5b61051e82868684036105dc565b60019250505092915050565b6000806105356105d4565b9050610542818585610833565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561064c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064390610f91565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156106bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b390610f11565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161079a9190610ff1565b60405180910390a3505050565b60006107b3848461054d565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461082d578181101561081f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081690610f31565b60405180910390fd5b61082c84848484036105dc565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156108a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089a90610f71565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090a90610ef1565b60405180910390fd5b61091e838383610c02565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156109a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099b90610f51565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a929190610ff1565b60405180910390a3610aa5848484610c07565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1290610fd1565b60405180910390fd5b610b2760008383610c02565b8060026000828254610b399190611043565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610bea9190610ff1565b60405180910390a3610bfe60008383610c07565b5050565b505050565b505050565b600081359050610c1b816113f3565b92915050565b600081359050610c308161140a565b92915050565b600060208284031215610c4c57610c4b6111b1565b5b6000610c5a84828501610c0c565b91505092915050565b60008060408385031215610c7a57610c796111b1565b5b6000610c8885828601610c0c565b9250506020610c9985828601610c0c565b9150509250929050565b600080600060608486031215610cbc57610cbb6111b1565b5b6000610cca86828701610c0c565b9350506020610cdb86828701610c0c565b9250506040610cec86828701610c21565b9150509250925092565b60008060408385031215610d0d57610d0c6111b1565b5b6000610d1b85828601610c0c565b9250506020610d2c85828601610c21565b9150509250929050565b610d3f816110ab565b82525050565b6000610d5082611027565b610d5a8185611032565b9350610d6a8185602086016110ee565b610d73816111b6565b840191505092915050565b6000610d8b602383611032565b9150610d96826111c7565b604082019050919050565b6000610dae602283611032565b9150610db982611216565b604082019050919050565b6000610dd1601d83611032565b9150610ddc82611265565b602082019050919050565b6000610df4602683611032565b9150610dff8261128e565b604082019050919050565b6000610e17602583611032565b9150610e22826112dd565b604082019050919050565b6000610e3a602483611032565b9150610e458261132c565b604082019050919050565b6000610e5d602583611032565b9150610e688261137b565b604082019050919050565b6000610e80601f83611032565b9150610e8b826113ca565b602082019050919050565b610e9f816110d7565b82525050565b610eae816110e1565b82525050565b6000602082019050610ec96000830184610d36565b92915050565b60006020820190508181036000830152610ee98184610d45565b905092915050565b60006020820190508181036000830152610f0a81610d7e565b9050919050565b60006020820190508181036000830152610f2a81610da1565b9050919050565b60006020820190508181036000830152610f4a81610dc4565b9050919050565b60006020820190508181036000830152610f6a81610de7565b9050919050565b60006020820190508181036000830152610f8a81610e0a565b9050919050565b60006020820190508181036000830152610faa81610e2d565b9050919050565b60006020820190508181036000830152610fca81610e50565b9050919050565b60006020820190508181036000830152610fea81610e73565b9050919050565b60006020820190506110066000830184610e96565b92915050565b60006020820190506110216000830184610ea5565b92915050565b600081519050919050565b600082825260208201905092915050565b600061104e826110d7565b9150611059836110d7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561108e5761108d611153565b5b828201905092915050565b60006110a4826110b7565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101561110c5780820151818401526020810190506110f1565b8381111561111b576000848401525b50505050565b6000600282049050600182168061113957607f821691505b6020821081141561114d5761114c611182565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6113fc81611099565b811461140757600080fd5b50565b611413816110d7565b811461141e57600080fd5b5056fea2646970667358221220fbf11f91cf796c0a9cb08e9bb25ad1c8c2a857df80f7507d9fd3d5493eb4f35a64736f6c63430008070033"; - -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 deploy( - name: PromiseOrValue, - symbol: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy(name, symbol, overrides || {}) as Promise; - } - override getDeployTransaction( - name: PromiseOrValue, - symbol: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction(name, symbol, overrides || {}); - } - override attach(address: string): TestERC20 { - return super.attach(address) as TestERC20; - } - override connect(signer: Signer): TestERC20__factory { - return super.connect(signer) as TestERC20__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): TestERC20Interface { - return new utils.Interface(_abi) as TestERC20Interface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): TestERC20 { - return new Contract(address, _abi, signerOrProvider) as TestERC20; - } -} diff --git a/typechain-types/factories/contracts/prototypes/WETH9__factory.ts b/typechain-types/factories/contracts/prototypes/WETH9__factory.ts deleted file mode 100644 index 756734af..00000000 --- a/typechain-types/factories/contracts/prototypes/WETH9__factory.ts +++ /dev/null @@ -1,340 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../common"; -import type { - WETH9, - WETH9Interface, -} from "../../../contracts/prototypes/WETH9"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "src", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "guy", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "wad", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "dst", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "wad", - type: "uint256", - }, - ], - name: "Deposit", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "src", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "dst", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "wad", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "src", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "wad", - type: "uint256", - }, - ], - name: "Withdrawal", - type: "event", - }, - { - inputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - { - internalType: "address", - name: "", - type: "address", - }, - ], - name: "allowance", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "guy", - type: "address", - }, - { - internalType: "uint256", - name: "wad", - type: "uint256", - }, - ], - name: "approve", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - name: "balanceOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "decimals", - outputs: [ - { - internalType: "uint8", - name: "", - type: "uint8", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "deposit", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [], - name: "name", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "symbol", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "totalSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "dst", - type: "address", - }, - { - internalType: "uint256", - name: "wad", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "src", - type: "address", - }, - { - internalType: "address", - name: "dst", - type: "address", - }, - { - internalType: "uint256", - name: "wad", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "wad", - type: "uint256", - }, - ], - name: "withdraw", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -const _bytecode = - "0x60c0604052600d60808190526c2bb930b83832b21022ba3432b960991b60a090815261002e916000919061007a565b50604080518082019091526004808252630ae8aa8960e31b602090920191825261005a9160019161007a565b506002805460ff1916601217905534801561007457600080fd5b50610115565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100bb57805160ff19168380011785556100e8565b828001600101855582156100e8579182015b828111156100e85782518255916020019190600101906100cd565b506100f49291506100f8565b5090565b61011291905b808211156100f457600081556001016100fe565b90565b6108b3806101246000396000f3fe6080604052600436106100bc5760003560e01c8063313ce56711610074578063a9059cbb1161004e578063a9059cbb146102c8578063d0e30db01461030e578063dd62ed3e14610316576100bc565b8063313ce5671461024857806370a082311461027357806395d89b41146102b3576100bc565b806318160ddd116100a557806318160ddd146101a557806323b872dd146101cc5780632e1a7d4d1461021c576100bc565b806306fdde03146100c1578063095ea7b31461014b575b600080fd5b3480156100cd57600080fd5b506100d661035e565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101105781810151838201526020016100f8565b50505050905090810190601f16801561013d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015757600080fd5b506101916004803603604081101561016e57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561040a565b604080519115158252519081900360200190f35b3480156101b157600080fd5b506101ba61047d565b60408051918252519081900360200190f35b3480156101d857600080fd5b50610191600480360360608110156101ef57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610481565b34801561022857600080fd5b506102466004803603602081101561023f57600080fd5b5035610699565b005b34801561025457600080fd5b5061025d61076a565b6040805160ff9092168252519081900360200190f35b34801561027f57600080fd5b506101ba6004803603602081101561029657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610773565b3480156102bf57600080fd5b506100d6610785565b3480156102d457600080fd5b50610191600480360360408110156102eb57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356107fd565b610246610811565b34801561032257600080fd5b506101ba6004803603604081101561033957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610860565b6000805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156104025780601f106103d757610100808354040283529160200191610402565b820191906000526020600020905b8154815290600101906020018083116103e557829003601f168201915b505050505081565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b4790565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600360205260408120548211156104ef57604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526000602482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff84163314801590610565575073ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14155b1561061b5773ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020548211156105e357604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526000602482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020805483900390555b73ffffffffffffffffffffffffffffffffffffffff808516600081815260036020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060019392505050565b336000908152600360205260409020548111156106f157604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526000602482015290519081900360640190fd5b33600081815260036020526040808220805485900390555183156108fc0291849190818181858888f19350505050158015610730573d6000803e3d6000fd5b5060408051828152905133917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a250565b60025460ff1681565b60036020526000908152604090205481565b60018054604080516020600284861615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156104025780601f106103d757610100808354040283529160200191610402565b600061080a338484610481565b9392505050565b33600081815260036020908152604091829020805434908101909155825190815291517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9281900390910190a2565b60046020908152600092835260408084209091529082529020548156fea264697066735822122099293912112e50e68e1ad037d9f6a633955e9c0d7bc152fdf5024d741236eb3b64736f6c63430006060033"; - -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 deploy( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy(overrides || {}) as Promise; - } - override getDeployTransaction( - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); - } - override attach(address: string): WETH9 { - return super.attach(address) as WETH9; - } - override connect(signer: Signer): WETH9__factory { - return super.connect(signer) as WETH9__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): WETH9Interface { - return new utils.Interface(_abi) as WETH9Interface; - } - static connect(address: string, signerOrProvider: Signer | Provider): WETH9 { - return new Contract(address, _abi, signerOrProvider) as WETH9; - } -} diff --git a/typechain-types/factories/contracts/prototypes/evm/ERC20CustodyNewEchidnaTest__factory.ts b/typechain-types/factories/contracts/prototypes/evm/ERC20CustodyNewEchidnaTest__factory.ts deleted file mode 100644 index 498c7549..00000000 --- a/typechain-types/factories/contracts/prototypes/evm/ERC20CustodyNewEchidnaTest__factory.ts +++ /dev/null @@ -1,246 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../../common"; -import type { - ERC20CustodyNewEchidnaTest, - ERC20CustodyNewEchidnaTestInterface, -} from "../../../../contracts/prototypes/evm/ERC20CustodyNewEchidnaTest"; - -const _abi = [ - { - inputs: [], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "Withdraw", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "WithdrawAndCall", - type: "event", - }, - { - inputs: [], - name: "echidnaCaller", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "gateway", - outputs: [ - { - internalType: "contract IGatewayEVM", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "testERC20", - outputs: [ - { - internalType: "contract TestERC20", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "testWithdrawAndCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "withdraw", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "withdrawAndCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -const _bytecode = - "0x608060405233600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051620000539062000355565b604051809103906000f08015801562000070573d6000803e3d6000fd5b50600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015620000be57600080fd5b50600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001600081905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141562000152576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c4d66de8600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401620002139190620003d0565b600060405180830381600087803b1580156200022e57600080fd5b505af115801562000243573d6000803e3d6000fd5b50505050604051620002559062000363565b6200026090620003ed565b604051809103906000f0801580156200027d573d6000803e3d6000fd5b50600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ae7a3a6f306040518263ffffffff1660e01b81526004016200031b9190620003d0565b600060405180830381600087803b1580156200033657600080fd5b505af11580156200034b573d6000803e3d6000fd5b50505050620004bb565b6131a4806200191083390190565b6118138062004ab483390190565b6200037c8162000435565b82525050565b60006200039160048362000424565b91506200039e8262000469565b602082019050919050565b6000620003b860048362000424565b9150620003c58262000492565b602082019050919050565b6000602082019050620003e7600083018462000371565b92915050565b600060408201905081810360008301526200040881620003a9565b905081810360208301526200041d8162000382565b9050919050565b600082825260208201905092915050565b6000620004428262000449565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b7f5445535400000000000000000000000000000000000000000000000000000000600082015250565b7f7465737400000000000000000000000000000000000000000000000000000000600082015250565b61144580620004cb6000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c8063116191b61461006757806321fc65f2146100855780633c2f05a8146100a15780636133b4bb146100bf57806381100bf0146100db578063d9caed12146100f9575b600080fd5b61006f610115565b60405161007c9190610ef5565b60405180910390f35b61009f600480360381019061009a9190610b16565b61013b565b005b6100a96102c3565b6040516100b69190610f10565b60405180910390f35b6100d960048036038101906100d49190610b9e565b6102e9565b005b6100e3610569565b6040516100f09190610e3a565b60405180910390f35b610113600480360381019061010e9190610ac3565b61058f565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610143610634565b610190600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848773ffffffffffffffffffffffffffffffffffffffff166106849092919063ffffffff16565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635131ab5986868686866040518663ffffffff1660e01b81526004016101f3959493929190610e55565b600060405180830381600087803b15801561020d57600080fd5b505af1158015610221573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061024a9190610c3f565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e8585856040516102ac93929190610fe8565b60405180910390a36102bc61070a565b5050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f193060058661033591906110b3565b6040518363ffffffff1660e01b8152600401610352929190610ecc565b600060405180830381600087803b15801561036c57600080fd5b505af1158015610380573d6000803e3d6000fd5b50505050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660056040518363ffffffff1660e01b8152600401610404929190610ea3565b602060405180830381600087803b15801561041e57600080fd5b505af1158015610432573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104569190610c12565b50610486600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168585858561013b565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016105059190610e3a565b60206040518083038186803b15801561051d57600080fd5b505afa158015610531573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105559190610c88565b146105635761056261121e565b5b50505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610597610634565b6105c282828573ffffffffffffffffffffffffffffffffffffffff166106849092919063ffffffff16565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb8360405161061f9190610fcd565b60405180910390a361062f61070a565b505050565b6002600054141561067a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067190610fad565b60405180910390fd5b6002600081905550565b6107058363a9059cbb60e01b84846040516024016106a3929190610ecc565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610714565b505050565b6001600081905550565b6000610776826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166107db9092919063ffffffff16565b90506000815111156107d657808060200190518101906107969190610c12565b6107d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107cc90610f8d565b60405180910390fd5b5b505050565b60606107ea84846000856107f3565b90509392505050565b606082471015610838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082f90610f4d565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516108619190610e23565b60006040518083038185875af1925050503d806000811461089e576040519150601f19603f3d011682016040523d82523d6000602084013e6108a3565b606091505b50915091506108b4878383876108c0565b92505050949350505050565b606083156109235760008351141561091b576108db85610936565b61091a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091190610f6d565b60405180910390fd5b5b82905061092e565b61092d8383610959565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60008251111561096c5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a09190610f2b565b60405180910390fd5b60006109bc6109b78461103f565b61101a565b9050828152602081018484840111156109d8576109d76112ba565b5b6109e38482856111ba565b509392505050565b6000813590506109fa816113ca565b92915050565b600081519050610a0f816113e1565b92915050565b60008083601f840112610a2b57610a2a6112b0565b5b8235905067ffffffffffffffff811115610a4857610a476112ab565b5b602083019150836001820283011115610a6457610a636112b5565b5b9250929050565b600082601f830112610a8057610a7f6112b0565b5b8151610a908482602086016109a9565b91505092915050565b600081359050610aa8816113f8565b92915050565b600081519050610abd816113f8565b92915050565b600080600060608486031215610adc57610adb6112c4565b5b6000610aea868287016109eb565b9350506020610afb868287016109eb565b9250506040610b0c86828701610a99565b9150509250925092565b600080600080600060808688031215610b3257610b316112c4565b5b6000610b40888289016109eb565b9550506020610b51888289016109eb565b9450506040610b6288828901610a99565b935050606086013567ffffffffffffffff811115610b8357610b826112bf565b5b610b8f88828901610a15565b92509250509295509295909350565b60008060008060608587031215610bb857610bb76112c4565b5b6000610bc6878288016109eb565b9450506020610bd787828801610a99565b935050604085013567ffffffffffffffff811115610bf857610bf76112bf565b5b610c0487828801610a15565b925092505092959194509250565b600060208284031215610c2857610c276112c4565b5b6000610c3684828501610a00565b91505092915050565b600060208284031215610c5557610c546112c4565b5b600082015167ffffffffffffffff811115610c7357610c726112bf565b5b610c7f84828501610a6b565b91505092915050565b600060208284031215610c9e57610c9d6112c4565b5b6000610cac84828501610aae565b91505092915050565b610cbe81611109565b82525050565b6000610cd08385611086565b9350610cdd8385846111ab565b610ce6836112c9565b840190509392505050565b6000610cfc82611070565b610d068185611097565b9350610d168185602086016111ba565b80840191505092915050565b610d2b81611151565b82525050565b610d3a81611163565b82525050565b610d4981611175565b82525050565b6000610d5a8261107b565b610d6481856110a2565b9350610d748185602086016111ba565b610d7d816112c9565b840191505092915050565b6000610d956026836110a2565b9150610da0826112da565b604082019050919050565b6000610db8601d836110a2565b9150610dc382611329565b602082019050919050565b6000610ddb602a836110a2565b9150610de682611352565b604082019050919050565b6000610dfe601f836110a2565b9150610e09826113a1565b602082019050919050565b610e1d81611147565b82525050565b6000610e2f8284610cf1565b915081905092915050565b6000602082019050610e4f6000830184610cb5565b92915050565b6000608082019050610e6a6000830188610cb5565b610e776020830187610cb5565b610e846040830186610e14565b8181036060830152610e97818486610cc4565b90509695505050505050565b6000604082019050610eb86000830185610cb5565b610ec56020830184610d40565b9392505050565b6000604082019050610ee16000830185610cb5565b610eee6020830184610e14565b9392505050565b6000602082019050610f0a6000830184610d22565b92915050565b6000602082019050610f256000830184610d31565b92915050565b60006020820190508181036000830152610f458184610d4f565b905092915050565b60006020820190508181036000830152610f6681610d88565b9050919050565b60006020820190508181036000830152610f8681610dab565b9050919050565b60006020820190508181036000830152610fa681610dce565b9050919050565b60006020820190508181036000830152610fc681610df1565b9050919050565b6000602082019050610fe26000830184610e14565b92915050565b6000604082019050610ffd6000830186610e14565b8181036020830152611010818486610cc4565b9050949350505050565b6000611024611035565b905061103082826111ed565b919050565b6000604051905090565b600067ffffffffffffffff82111561105a5761105961127c565b5b611063826112c9565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006110be82611147565b91506110c983611147565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156110fe576110fd61124d565b5b828201905092915050565b600061111482611127565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061115c82611187565b9050919050565b600061116e82611187565b9050919050565b600061118082611147565b9050919050565b600061119282611199565b9050919050565b60006111a482611127565b9050919050565b82818337600083830152505050565b60005b838110156111d85780820151818401526020810190506111bd565b838111156111e7576000848401525b50505050565b6111f6826112c9565b810181811067ffffffffffffffff821117156112155761121461127c565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6113d381611109565b81146113de57600080fd5b50565b6113ea8161111b565b81146113f557600080fd5b50565b61140181611147565b811461140c57600080fd5b5056fea2646970667358221220f417d4334eb699326c25c4fc9a8ab62d25be219ba070b670d3e9b5d877dbcfb464736f6c6343000807003360a06040523073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b81525034801561004657600080fd5b5060805160601c613123610081600039600081816105fc0152818161068b01528181610785015281816108140152610bae01526131236000f3fe6080604052600436106100fe5760003560e01c8063715018a611610095578063c4d66de811610064578063c4d66de8146102e4578063dda79b751461030d578063f2fde38b14610338578063f340fa0114610361578063f45346dc1461037d576100fe565b8063715018a6146102505780638c6f037f146102675780638da5cb5b14610290578063ae7a3a6f146102bb576100fe565b80634f1ef286116100d15780634f1ef286146101a15780635131ab59146101bd57806352d1902d146101fa5780635b11259114610225576100fe565b80631b8b921d146101035780631cff79cd1461012c57806329c59b5d1461015c5780633659cfe614610178575b600080fd5b34801561010f57600080fd5b5061012a60048036038101906101259190612183565b6103a6565b005b61014660048036038101906101419190612183565b610412565b6040516101539190612816565b60405180910390f35b61017660048036038101906101719190612183565b610480565b005b34801561018457600080fd5b5061019f600480360381019061019a91906120ce565b6105fa565b005b6101bb60048036038101906101b691906121e3565b610783565b005b3480156101c957600080fd5b506101e460048036038101906101df91906120fb565b6108c0565b6040516101f19190612816565b60405180910390f35b34801561020657600080fd5b5061020f610baa565b60405161021c91906127d7565b60405180910390f35b34801561023157600080fd5b5061023a610c63565b6040516102479190612733565b60405180910390f35b34801561025c57600080fd5b50610265610c89565b005b34801561027357600080fd5b5061028e60048036038101906102899190612292565b610c9d565b005b34801561029c57600080fd5b506102a5610d99565b6040516102b29190612733565b60405180910390f35b3480156102c757600080fd5b506102e260048036038101906102dd91906120ce565b610dc3565b005b3480156102f057600080fd5b5061030b600480360381019061030691906120ce565b610e8f565b005b34801561031957600080fd5b5061032261107e565b60405161032f9190612733565b60405180910390f35b34801561034457600080fd5b5061035f600480360381019061035a91906120ce565b6110a4565b005b61037b600480360381019061037691906120ce565b611128565b005b34801561038957600080fd5b506103a4600480360381019061039f919061223f565b61129c565b005b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde384846040516104059291906127f2565b60405180910390a3505050565b60606000610421858585611392565b90508473ffffffffffffffffffffffffffffffffffffffff167fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f34868660405161046d93929190612a91565b60405180910390a2809150509392505050565b60003414156104bb576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16346040516105039061271e565b60006040518083038185875af1925050503d8060008114610540576040519150601f19603f3d011682016040523d82523d6000602084013e610545565b606091505b50509050600015158115151415610588576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a434600087876040516105ec9493929190612a15565b60405180910390a350505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610689576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068090612895565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166106c8611449565b73ffffffffffffffffffffffffffffffffffffffff161461071e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610715906128b5565b60405180910390fd5b610727816114a0565b61078081600067ffffffffffffffff81111561074657610745612c52565b5b6040519080825280601f01601f1916602001820160405280156107785781602001600182028036833780820191505090505b5060006114ab565b50565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610812576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080990612895565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610851611449565b73ffffffffffffffffffffffffffffffffffffffff16146108a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089e906128b5565b60405180910390fd5b6108b0826114a0565b6108bc828260016114ab565b5050565b606060008414156108fd576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109078686611628565b61093d576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff1663095ea7b386866040518363ffffffff1660e01b81526004016109789291906127ae565b602060405180830381600087803b15801561099257600080fd5b505af11580156109a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ca919061231a565b610a00576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610a0d868585611392565b9050610a198787611628565b610a4f576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a8a9190612733565b60206040518083038186803b158015610aa257600080fd5b505afa158015610ab6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ada9190612374565b90506000811115610b3357610b3260c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828a73ffffffffffffffffffffffffffffffffffffffff166116c09092919063ffffffff16565b5b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382888888604051610b9493929190612a91565b60405180910390a3819250505095945050505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614610c3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c31906128f5565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b905090565b60ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c91611746565b610c9b60006117c4565b565b6000841415610cd8576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d273360c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16868673ffffffffffffffffffffffffffffffffffffffff1661188a909392919063ffffffff16565b8473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a486868686604051610d8a9493929190612a15565b60405180910390a35050505050565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff1660c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e4b576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060c960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060019054906101000a900460ff16159050808015610ec05750600160008054906101000a900460ff1660ff16105b80610eed5750610ecf30611913565b158015610eec5750600160008054906101000a900460ff1660ff16145b5b610f2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2390612935565b60405180910390fd5b60016000806101000a81548160ff021916908360ff1602179055508015610f69576001600060016101000a81548160ff0219169083151502179055505b610f71611936565b610f7961198f565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fe0576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8160ca60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550801561107a5760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860016040516110719190612838565b60405180910390a15b5050565b60c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6110ac611746565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561111c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111390612875565b60405180910390fd5b611125816117c4565b50565b6000341415611163576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16346040516111ab9061271e565b60006040518083038185875af1925050503d80600081146111e8576040519150601f19603f3d011682016040523d82523d6000602084013e6111ed565b606091505b50509050600015158115151415611230576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4346000604051611290929190612a55565b60405180910390a35050565b60008214156112d7576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113263360c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848473ffffffffffffffffffffffffffffffffffffffff1661188a909392919063ffffffff16565b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a48484604051611385929190612a55565b60405180910390a3505050565b60606000808573ffffffffffffffffffffffffffffffffffffffff163486866040516113bf9291906126ee565b60006040518083038185875af1925050503d80600081146113fc576040519150601f19603f3d011682016040523d82523d6000602084013e611401565b606091505b50915091508161143d576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80925050509392505050565b60006114777f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6119e0565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6114a8611746565b50565b6114d77f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914360001b6119ea565b60000160009054906101000a900460ff16156114fb576114f6836119f4565b611623565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561154157600080fd5b505afa92505050801561157257506040513d601f19601f8201168201806040525081019061156f9190612347565b60015b6115b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a890612955565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b8114611616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160d90612915565b60405180910390fd5b50611622838383611aad565b5b505050565b60008273ffffffffffffffffffffffffffffffffffffffff1663095ea7b38360006040518363ffffffff1660e01b8152600401611666929190612785565b602060405180830381600087803b15801561168057600080fd5b505af1158015611694573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b8919061231a565b905092915050565b6117418363a9059cbb60e01b84846040516024016116df9291906127ae565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611ad9565b505050565b61174e611ba0565b73ffffffffffffffffffffffffffffffffffffffff1661176c610d99565b73ffffffffffffffffffffffffffffffffffffffff16146117c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b990612995565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61190d846323b872dd60e01b8585856040516024016118ab9392919061274e565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611ad9565b50505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16611985576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197c906129d5565b60405180910390fd5b61198d611ba8565b565b600060019054906101000a900460ff166119de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d5906129d5565b60405180910390fd5b565b6000819050919050565b6000819050919050565b6119fd81611913565b611a3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3390612975565b60405180910390fd5b80611a697f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6119e0565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611ab683611c09565b600082511180611ac35750805b15611ad457611ad28383611c58565b505b505050565b6000611b3b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16611c859092919063ffffffff16565b9050600081511115611b9b5780806020019051810190611b5b919061231a565b611b9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b91906129f5565b60405180910390fd5b5b505050565b600033905090565b600060019054906101000a900460ff16611bf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bee906129d5565b60405180910390fd5b611c07611c02611ba0565b6117c4565b565b611c12816119f4565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b6060611c7d83836040518060600160405280602781526020016130c760279139611c9d565b905092915050565b6060611c948484600085611d23565b90509392505050565b60606000808573ffffffffffffffffffffffffffffffffffffffff1685604051611cc79190612707565b600060405180830381855af49150503d8060008114611d02576040519150601f19603f3d011682016040523d82523d6000602084013e611d07565b606091505b5091509150611d1886838387611df0565b925050509392505050565b606082471015611d68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5f906128d5565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051611d919190612707565b60006040518083038185875af1925050503d8060008114611dce576040519150601f19603f3d011682016040523d82523d6000602084013e611dd3565b606091505b5091509150611de487838387611e66565b92505050949350505050565b60608315611e5357600083511415611e4b57611e0b85611913565b611e4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e41906129b5565b60405180910390fd5b5b829050611e5e565b611e5d8383611edc565b5b949350505050565b60608315611ec957600083511415611ec157611e8185611f2c565b611ec0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb7906129b5565b60405180910390fd5b5b829050611ed4565b611ed38383611f4f565b5b949350505050565b600082511115611eef5781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f239190612853565b60405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600082511115611f625781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f969190612853565b60405180910390fd5b6000611fb2611fad84612ae8565b612ac3565b905082815260208101848484011115611fce57611fcd612c90565b5b611fd9848285612bdf565b509392505050565b600081359050611ff08161306a565b92915050565b60008151905061200581613081565b92915050565b60008151905061201a81613098565b92915050565b60008083601f84011261203657612035612c86565b5b8235905067ffffffffffffffff81111561205357612052612c81565b5b60208301915083600182028301111561206f5761206e612c8b565b5b9250929050565b600082601f83011261208b5761208a612c86565b5b813561209b848260208601611f9f565b91505092915050565b6000813590506120b3816130af565b92915050565b6000815190506120c8816130af565b92915050565b6000602082840312156120e4576120e3612c9a565b5b60006120f284828501611fe1565b91505092915050565b60008060008060006080868803121561211757612116612c9a565b5b600061212588828901611fe1565b955050602061213688828901611fe1565b9450506040612147888289016120a4565b935050606086013567ffffffffffffffff81111561216857612167612c95565b5b61217488828901612020565b92509250509295509295909350565b60008060006040848603121561219c5761219b612c9a565b5b60006121aa86828701611fe1565b935050602084013567ffffffffffffffff8111156121cb576121ca612c95565b5b6121d786828701612020565b92509250509250925092565b600080604083850312156121fa576121f9612c9a565b5b600061220885828601611fe1565b925050602083013567ffffffffffffffff81111561222957612228612c95565b5b61223585828601612076565b9150509250929050565b60008060006060848603121561225857612257612c9a565b5b600061226686828701611fe1565b9350506020612277868287016120a4565b925050604061228886828701611fe1565b9150509250925092565b6000806000806000608086880312156122ae576122ad612c9a565b5b60006122bc88828901611fe1565b95505060206122cd888289016120a4565b94505060406122de88828901611fe1565b935050606086013567ffffffffffffffff8111156122ff576122fe612c95565b5b61230b88828901612020565b92509250509295509295909350565b6000602082840312156123305761232f612c9a565b5b600061233e84828501611ff6565b91505092915050565b60006020828403121561235d5761235c612c9a565b5b600061236b8482850161200b565b91505092915050565b60006020828403121561238a57612389612c9a565b5b6000612398848285016120b9565b91505092915050565b6123aa81612b5c565b82525050565b6123b981612b7a565b82525050565b60006123cb8385612b2f565b93506123d8838584612bdf565b6123e183612c9f565b840190509392505050565b60006123f88385612b40565b9350612405838584612bdf565b82840190509392505050565b600061241c82612b19565b6124268185612b2f565b9350612436818560208601612bee565b61243f81612c9f565b840191505092915050565b600061245582612b19565b61245f8185612b40565b935061246f818560208601612bee565b80840191505092915050565b61248481612bbb565b82525050565b61249381612bcd565b82525050565b60006124a482612b24565b6124ae8185612b4b565b93506124be818560208601612bee565b6124c781612c9f565b840191505092915050565b60006124df602683612b4b565b91506124ea82612cb0565b604082019050919050565b6000612502602c83612b4b565b915061250d82612cff565b604082019050919050565b6000612525602c83612b4b565b915061253082612d4e565b604082019050919050565b6000612548602683612b4b565b915061255382612d9d565b604082019050919050565b600061256b603883612b4b565b915061257682612dec565b604082019050919050565b600061258e602983612b4b565b915061259982612e3b565b604082019050919050565b60006125b1602e83612b4b565b91506125bc82612e8a565b604082019050919050565b60006125d4602e83612b4b565b91506125df82612ed9565b604082019050919050565b60006125f7602d83612b4b565b915061260282612f28565b604082019050919050565b600061261a602083612b4b565b915061262582612f77565b602082019050919050565b600061263d600083612b2f565b915061264882612fa0565b600082019050919050565b6000612660600083612b40565b915061266b82612fa0565b600082019050919050565b6000612683601d83612b4b565b915061268e82612fa3565b602082019050919050565b60006126a6602b83612b4b565b91506126b182612fcc565b604082019050919050565b60006126c9602a83612b4b565b91506126d48261301b565b604082019050919050565b6126e881612ba4565b82525050565b60006126fb8284866123ec565b91508190509392505050565b6000612713828461244a565b915081905092915050565b600061272982612653565b9150819050919050565b600060208201905061274860008301846123a1565b92915050565b600060608201905061276360008301866123a1565b61277060208301856123a1565b61277d60408301846126df565b949350505050565b600060408201905061279a60008301856123a1565b6127a7602083018461247b565b9392505050565b60006040820190506127c360008301856123a1565b6127d060208301846126df565b9392505050565b60006020820190506127ec60008301846123b0565b92915050565b6000602082019050818103600083015261280d8184866123bf565b90509392505050565b600060208201905081810360008301526128308184612411565b905092915050565b600060208201905061284d600083018461248a565b92915050565b6000602082019050818103600083015261286d8184612499565b905092915050565b6000602082019050818103600083015261288e816124d2565b9050919050565b600060208201905081810360008301526128ae816124f5565b9050919050565b600060208201905081810360008301526128ce81612518565b9050919050565b600060208201905081810360008301526128ee8161253b565b9050919050565b6000602082019050818103600083015261290e8161255e565b9050919050565b6000602082019050818103600083015261292e81612581565b9050919050565b6000602082019050818103600083015261294e816125a4565b9050919050565b6000602082019050818103600083015261296e816125c7565b9050919050565b6000602082019050818103600083015261298e816125ea565b9050919050565b600060208201905081810360008301526129ae8161260d565b9050919050565b600060208201905081810360008301526129ce81612676565b9050919050565b600060208201905081810360008301526129ee81612699565b9050919050565b60006020820190508181036000830152612a0e816126bc565b9050919050565b6000606082019050612a2a60008301876126df565b612a3760208301866123a1565b8181036040830152612a4a8184866123bf565b905095945050505050565b6000606082019050612a6a60008301856126df565b612a7760208301846123a1565b8181036040830152612a8881612630565b90509392505050565b6000604082019050612aa660008301866126df565b8181036020830152612ab98184866123bf565b9050949350505050565b6000612acd612ade565b9050612ad98282612c21565b919050565b6000604051905090565b600067ffffffffffffffff821115612b0357612b02612c52565b5b612b0c82612c9f565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000612b6782612b84565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612bc682612ba4565b9050919050565b6000612bd882612bae565b9050919050565b82818337600083830152505050565b60005b83811015612c0c578082015181840152602081019050612bf1565b83811115612c1b576000848401525b50505050565b612c2a82612c9f565b810181811067ffffffffffffffff82111715612c4957612c48612c52565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f64656c656761746563616c6c0000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f6163746976652070726f78790000000000000000000000000000000000000000602082015250565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f555550535570677261646561626c653a206d757374206e6f742062652063616c60008201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000602082015250565b7f45524331393637557067726164653a20756e737570706f727465642070726f7860008201527f6961626c65555549440000000000000000000000000000000000000000000000602082015250565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f45524331393637557067726164653a206e657720696d706c656d656e7461746960008201527f6f6e206973206e6f742055555053000000000000000000000000000000000000602082015250565b7f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60008201527f6f74206120636f6e747261637400000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b61307381612b5c565b811461307e57600080fd5b50565b61308a81612b6e565b811461309557600080fd5b50565b6130a181612b7a565b81146130ac57600080fd5b50565b6130b881612ba4565b81146130c357600080fd5b5056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220abb4e7f2513bc503240d32330e252dd6afa03f582abbc890f23aff412f65551d64736f6c6343000807003360806040523480156200001157600080fd5b5060405162001813380380620018138339818101604052810190620000379190620001a3565b818181600390805190602001906200005192919062000075565b5080600490805190602001906200006a92919062000075565b5050505050620003ac565b8280546200008390620002bd565b90600052602060002090601f016020900481019282620000a75760008555620000f3565b82601f10620000c257805160ff1916838001178555620000f3565b82800160010185558215620000f3579182015b82811115620000f2578251825591602001919060010190620000d5565b5b50905062000102919062000106565b5090565b5b808211156200012157600081600090555060010162000107565b5090565b60006200013c620001368462000251565b62000228565b9050828152602081018484840111156200015b576200015a6200038c565b5b6200016884828562000287565b509392505050565b600082601f83011262000188576200018762000387565b5b81516200019a84826020860162000125565b91505092915050565b60008060408385031215620001bd57620001bc62000396565b5b600083015167ffffffffffffffff811115620001de57620001dd62000391565b5b620001ec8582860162000170565b925050602083015167ffffffffffffffff81111562000210576200020f62000391565b5b6200021e8582860162000170565b9150509250929050565b60006200023462000247565b9050620002428282620002f3565b919050565b6000604051905090565b600067ffffffffffffffff8211156200026f576200026e62000358565b5b6200027a826200039b565b9050602081019050919050565b60005b83811015620002a75780820151818401526020810190506200028a565b83811115620002b7576000848401525b50505050565b60006002820490506001821680620002d657607f821691505b60208210811415620002ed57620002ec62000329565b5b50919050565b620002fe826200039b565b810181811067ffffffffffffffff8211171562000320576200031f62000358565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b61145780620003bc6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806340c10f191161007157806340c10f19146101a357806370a08231146101bf57806395d89b41146101ef578063a457c2d71461020d578063a9059cbb1461023d578063dd62ed3e1461026d576100b4565b806306fdde03146100b9578063095ea7b3146100d757806318160ddd1461010757806323b872dd14610125578063313ce567146101555780633950935114610173575b600080fd5b6100c161029d565b6040516100ce9190610ecf565b60405180910390f35b6100f160048036038101906100ec9190610cf6565b61032f565b6040516100fe9190610eb4565b60405180910390f35b61010f610352565b60405161011c9190610ff1565b60405180910390f35b61013f600480360381019061013a9190610ca3565b61035c565b60405161014c9190610eb4565b60405180910390f35b61015d61038b565b60405161016a919061100c565b60405180910390f35b61018d60048036038101906101889190610cf6565b610394565b60405161019a9190610eb4565b60405180910390f35b6101bd60048036038101906101b89190610cf6565b6103cb565b005b6101d960048036038101906101d49190610c36565b6103d9565b6040516101e69190610ff1565b60405180910390f35b6101f7610421565b6040516102049190610ecf565b60405180910390f35b61022760048036038101906102229190610cf6565b6104b3565b6040516102349190610eb4565b60405180910390f35b61025760048036038101906102529190610cf6565b61052a565b6040516102649190610eb4565b60405180910390f35b61028760048036038101906102829190610c63565b61054d565b6040516102949190610ff1565b60405180910390f35b6060600380546102ac90611121565b80601f01602080910402602001604051908101604052809291908181526020018280546102d890611121565b80156103255780601f106102fa57610100808354040283529160200191610325565b820191906000526020600020905b81548152906001019060200180831161030857829003601f168201915b5050505050905090565b60008061033a6105d4565b90506103478185856105dc565b600191505092915050565b6000600254905090565b6000806103676105d4565b90506103748582856107a7565b61037f858585610833565b60019150509392505050565b60006012905090565b60008061039f6105d4565b90506103c08185856103b1858961054d565b6103bb9190611043565b6105dc565b600191505092915050565b6103d58282610aab565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461043090611121565b80601f016020809104026020016040519081016040528092919081815260200182805461045c90611121565b80156104a95780601f1061047e576101008083540402835291602001916104a9565b820191906000526020600020905b81548152906001019060200180831161048c57829003601f168201915b5050505050905090565b6000806104be6105d4565b905060006104cc828661054d565b905083811015610511576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050890610fb1565b60405180910390fd5b61051e82868684036105dc565b60019250505092915050565b6000806105356105d4565b9050610542818585610833565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561064c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064390610f91565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156106bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b390610f11565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161079a9190610ff1565b60405180910390a3505050565b60006107b3848461054d565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461082d578181101561081f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081690610f31565b60405180910390fd5b61082c84848484036105dc565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156108a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089a90610f71565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090a90610ef1565b60405180910390fd5b61091e838383610c02565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156109a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099b90610f51565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a929190610ff1565b60405180910390a3610aa5848484610c07565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1290610fd1565b60405180910390fd5b610b2760008383610c02565b8060026000828254610b399190611043565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610bea9190610ff1565b60405180910390a3610bfe60008383610c07565b5050565b505050565b505050565b600081359050610c1b816113f3565b92915050565b600081359050610c308161140a565b92915050565b600060208284031215610c4c57610c4b6111b1565b5b6000610c5a84828501610c0c565b91505092915050565b60008060408385031215610c7a57610c796111b1565b5b6000610c8885828601610c0c565b9250506020610c9985828601610c0c565b9150509250929050565b600080600060608486031215610cbc57610cbb6111b1565b5b6000610cca86828701610c0c565b9350506020610cdb86828701610c0c565b9250506040610cec86828701610c21565b9150509250925092565b60008060408385031215610d0d57610d0c6111b1565b5b6000610d1b85828601610c0c565b9250506020610d2c85828601610c21565b9150509250929050565b610d3f816110ab565b82525050565b6000610d5082611027565b610d5a8185611032565b9350610d6a8185602086016110ee565b610d73816111b6565b840191505092915050565b6000610d8b602383611032565b9150610d96826111c7565b604082019050919050565b6000610dae602283611032565b9150610db982611216565b604082019050919050565b6000610dd1601d83611032565b9150610ddc82611265565b602082019050919050565b6000610df4602683611032565b9150610dff8261128e565b604082019050919050565b6000610e17602583611032565b9150610e22826112dd565b604082019050919050565b6000610e3a602483611032565b9150610e458261132c565b604082019050919050565b6000610e5d602583611032565b9150610e688261137b565b604082019050919050565b6000610e80601f83611032565b9150610e8b826113ca565b602082019050919050565b610e9f816110d7565b82525050565b610eae816110e1565b82525050565b6000602082019050610ec96000830184610d36565b92915050565b60006020820190508181036000830152610ee98184610d45565b905092915050565b60006020820190508181036000830152610f0a81610d7e565b9050919050565b60006020820190508181036000830152610f2a81610da1565b9050919050565b60006020820190508181036000830152610f4a81610dc4565b9050919050565b60006020820190508181036000830152610f6a81610de7565b9050919050565b60006020820190508181036000830152610f8a81610e0a565b9050919050565b60006020820190508181036000830152610faa81610e2d565b9050919050565b60006020820190508181036000830152610fca81610e50565b9050919050565b60006020820190508181036000830152610fea81610e73565b9050919050565b60006020820190506110066000830184610e96565b92915050565b60006020820190506110216000830184610ea5565b92915050565b600081519050919050565b600082825260208201905092915050565b600061104e826110d7565b9150611059836110d7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561108e5761108d611153565b5b828201905092915050565b60006110a4826110b7565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101561110c5780820151818401526020810190506110f1565b8381111561111b576000848401525b50505050565b6000600282049050600182168061113957607f821691505b6020821081141561114d5761114c611182565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6113fc81611099565b811461140757600080fd5b50565b611413816110d7565b811461141e57600080fd5b5056fea2646970667358221220d4c96329400732e284f624232c8d7228fc90c00ee7b1a48a85080262107815d864736f6c63430008070033"; - -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 deploy( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy(overrides || {}) as Promise; - } - override getDeployTransaction( - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); - } - override attach(address: string): ERC20CustodyNewEchidnaTest { - return super.attach(address) as ERC20CustodyNewEchidnaTest; - } - override connect(signer: Signer): ERC20CustodyNewEchidnaTest__factory { - return super.connect(signer) as ERC20CustodyNewEchidnaTest__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): ERC20CustodyNewEchidnaTestInterface { - return new utils.Interface(_abi) as ERC20CustodyNewEchidnaTestInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): ERC20CustodyNewEchidnaTest { - return new Contract( - address, - _abi, - signerOrProvider - ) as ERC20CustodyNewEchidnaTest; - } -} diff --git a/typechain-types/factories/contracts/prototypes/evm/ERC20CustodyNew__factory.ts b/typechain-types/factories/contracts/prototypes/evm/ERC20CustodyNew__factory.ts deleted file mode 100644 index 8e29f895..00000000 --- a/typechain-types/factories/contracts/prototypes/evm/ERC20CustodyNew__factory.ts +++ /dev/null @@ -1,289 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../../common"; -import type { - ERC20CustodyNew, - ERC20CustodyNewInterface, -} from "../../../../contracts/prototypes/evm/ERC20CustodyNew"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "_gateway", - type: "address", - }, - { - internalType: "address", - name: "_tssAddress", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [], - name: "InvalidSender", - type: "error", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "Withdraw", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "WithdrawAndCall", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "WithdrawAndRevert", - type: "event", - }, - { - inputs: [], - name: "gateway", - outputs: [ - { - internalType: "contract IGatewayEVM", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "tssAddress", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "withdraw", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "withdrawAndCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "withdrawAndRevert", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -const _bytecode = - "0x60806040523480156200001157600080fd5b506040516200130d3803806200130d833981810160405281019062000037919062000180565b6001600081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480620000a75750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15620000df576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506200021a565b6000815190506200017a8162000200565b92915050565b600080604083850312156200019a5762000199620001fb565b5b6000620001aa8582860162000169565b9250506020620001bd8582860162000169565b9150509250929050565b6000620001d482620001db565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6200020b81620001c7565b81146200021757600080fd5b50565b6110e3806200022a6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063116191b61461005c57806321fc65f21461007a5780635b11259114610096578063c8a02362146100b4578063d9caed12146100d0575b600080fd5b6100646100ec565b6040516100719190610d41565b60405180910390f35b610094600480360381019061008f9190610a93565b610112565b005b61009e6102fb565b6040516100ab9190610caf565b60405180910390f35b6100ce60048036038101906100c99190610a93565b610321565b005b6100ea60048036038101906100e59190610a40565b61050a565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61011a610636565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101a1576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6101ee600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848773ffffffffffffffffffffffffffffffffffffffff166106869092919063ffffffff16565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635131ab5986868686866040518663ffffffff1660e01b8152600401610251959493929190610cca565b600060405180830381600087803b15801561026b57600080fd5b505af115801561027f573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e8585856040516102e493929190610e19565b60405180910390a36102f461070c565b5050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610329610636565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103b0576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103fd600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848773ffffffffffffffffffffffffffffffffffffffff166106869092919063ffffffff16565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b8969bd486868686866040518663ffffffff1660e01b8152600401610460959493929190610cca565b600060405180830381600087803b15801561047a57600080fd5b505af115801561048e573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c88585856040516104f393929190610e19565b60405180910390a361050361070c565b5050505050565b610512610636565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610599576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105c482828573ffffffffffffffffffffffffffffffffffffffff166106869092919063ffffffff16565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb836040516106219190610dfe565b60405180910390a361063161070c565b505050565b6002600054141561067c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067390610dde565b60405180910390fd5b6002600081905550565b6107078363a9059cbb60e01b84846040516024016106a5929190610d18565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610716565b505050565b6001600081905550565b6000610778826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166107dd9092919063ffffffff16565b90506000815111156107d857808060200190518101906107989190610b1b565b6107d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ce90610dbe565b60405180910390fd5b5b505050565b60606107ec84846000856107f5565b90509392505050565b60608247101561083a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083190610d7e565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516108639190610c98565b60006040518083038185875af1925050503d80600081146108a0576040519150601f19603f3d011682016040523d82523d6000602084013e6108a5565b606091505b50915091506108b6878383876108c2565b92505050949350505050565b606083156109255760008351141561091d576108dd85610938565b61091c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091390610d9e565b60405180910390fd5b5b829050610930565b61092f838361095b565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60008251111561096e5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a29190610d5c565b60405180910390fd5b6000813590506109ba81611068565b92915050565b6000815190506109cf8161107f565b92915050565b60008083601f8401126109eb576109ea610f53565b5b8235905067ffffffffffffffff811115610a0857610a07610f4e565b5b602083019150836001820283011115610a2457610a23610f58565b5b9250929050565b600081359050610a3a81611096565b92915050565b600080600060608486031215610a5957610a58610f62565b5b6000610a67868287016109ab565b9350506020610a78868287016109ab565b9250506040610a8986828701610a2b565b9150509250925092565b600080600080600060808688031215610aaf57610aae610f62565b5b6000610abd888289016109ab565b9550506020610ace888289016109ab565b9450506040610adf88828901610a2b565b935050606086013567ffffffffffffffff811115610b0057610aff610f5d565b5b610b0c888289016109d5565b92509250509295509295909350565b600060208284031215610b3157610b30610f62565b5b6000610b3f848285016109c0565b91505092915050565b610b5181610e8e565b82525050565b6000610b638385610e61565b9350610b70838584610f0c565b610b7983610f67565b840190509392505050565b6000610b8f82610e4b565b610b998185610e72565b9350610ba9818560208601610f1b565b80840191505092915050565b610bbe81610ed6565b82525050565b6000610bcf82610e56565b610bd98185610e7d565b9350610be9818560208601610f1b565b610bf281610f67565b840191505092915050565b6000610c0a602683610e7d565b9150610c1582610f78565b604082019050919050565b6000610c2d601d83610e7d565b9150610c3882610fc7565b602082019050919050565b6000610c50602a83610e7d565b9150610c5b82610ff0565b604082019050919050565b6000610c73601f83610e7d565b9150610c7e8261103f565b602082019050919050565b610c9281610ecc565b82525050565b6000610ca48284610b84565b915081905092915050565b6000602082019050610cc46000830184610b48565b92915050565b6000608082019050610cdf6000830188610b48565b610cec6020830187610b48565b610cf96040830186610c89565b8181036060830152610d0c818486610b57565b90509695505050505050565b6000604082019050610d2d6000830185610b48565b610d3a6020830184610c89565b9392505050565b6000602082019050610d566000830184610bb5565b92915050565b60006020820190508181036000830152610d768184610bc4565b905092915050565b60006020820190508181036000830152610d9781610bfd565b9050919050565b60006020820190508181036000830152610db781610c20565b9050919050565b60006020820190508181036000830152610dd781610c43565b9050919050565b60006020820190508181036000830152610df781610c66565b9050919050565b6000602082019050610e136000830184610c89565b92915050565b6000604082019050610e2e6000830186610c89565b8181036020830152610e41818486610b57565b9050949350505050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000610e9982610eac565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610ee182610ee8565b9050919050565b6000610ef382610efa565b9050919050565b6000610f0582610eac565b9050919050565b82818337600083830152505050565b60005b83811015610f39578082015181840152602081019050610f1e565b83811115610f48576000848401525b50505050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b61107181610e8e565b811461107c57600080fd5b50565b61108881610ea0565b811461109357600080fd5b50565b61109f81610ecc565b81146110aa57600080fd5b5056fea26469706673582212205340b8d5ae0d440bae0160f1fe56f515f5471e0710e9b5f33c8b948d4d8769e364736f6c63430008070033"; - -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 deploy( - _gateway: PromiseOrValue, - _tssAddress: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy( - _gateway, - _tssAddress, - overrides || {} - ) as Promise; - } - override getDeployTransaction( - _gateway: PromiseOrValue, - _tssAddress: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction(_gateway, _tssAddress, overrides || {}); - } - override attach(address: string): ERC20CustodyNew { - return super.attach(address) as ERC20CustodyNew; - } - override connect(signer: Signer): ERC20CustodyNew__factory { - return super.connect(signer) as ERC20CustodyNew__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): ERC20CustodyNewInterface { - return new utils.Interface(_abi) as ERC20CustodyNewInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): ERC20CustodyNew { - return new Contract(address, _abi, signerOrProvider) as ERC20CustodyNew; - } -} diff --git a/typechain-types/factories/contracts/prototypes/evm/GatewayEVM.sol/GatewayEVM__factory.ts b/typechain-types/factories/contracts/prototypes/evm/GatewayEVM.sol/GatewayEVM__factory.ts deleted file mode 100644 index f39562b3..00000000 --- a/typechain-types/factories/contracts/prototypes/evm/GatewayEVM.sol/GatewayEVM__factory.ts +++ /dev/null @@ -1,731 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../../../common"; -import type { - GatewayEVM, - GatewayEVMInterface, -} from "../../../../../contracts/prototypes/evm/GatewayEVM.sol/GatewayEVM"; - -const _abi = [ - { - inputs: [], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [], - name: "ApprovalFailed", - type: "error", - }, - { - inputs: [], - name: "CustodyInitialized", - type: "error", - }, - { - inputs: [], - name: "DepositFailed", - type: "error", - }, - { - inputs: [], - name: "ExecutionFailed", - type: "error", - }, - { - inputs: [], - name: "InsufficientERC20Amount", - type: "error", - }, - { - inputs: [], - name: "InsufficientETHAmount", - type: "error", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "previousAdmin", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "newAdmin", - type: "address", - }, - ], - name: "AdminChanged", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "beacon", - type: "address", - }, - ], - name: "BeaconUpgraded", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "receiver", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "payload", - type: "bytes", - }, - ], - name: "Call", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "receiver", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "asset", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "payload", - type: "bytes", - }, - ], - name: "Deposit", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "destination", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "Executed", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "ExecutedWithERC20", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint8", - name: "version", - type: "uint8", - }, - ], - name: "Initialized", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "previousOwner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "newOwner", - type: "address", - }, - ], - name: "OwnershipTransferred", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "destination", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "Reverted", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "RevertedWithERC20", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "implementation", - type: "address", - }, - ], - name: "Upgraded", - type: "event", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - { - internalType: "bytes", - name: "payload", - type: "bytes", - }, - ], - name: "call", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "custody", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - ], - name: "deposit", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - ], - name: "deposit", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - { - internalType: "bytes", - name: "payload", - type: "bytes", - }, - ], - name: "depositAndCall", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "bytes", - name: "payload", - type: "bytes", - }, - ], - name: "depositAndCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "destination", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "execute", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "destination", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "executeRevert", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "executeWithERC20", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_tssAddress", - type: "address", - }, - { - internalType: "address", - name: "_zeta", - type: "address", - }, - ], - name: "initialize", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "owner", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "proxiableUUID", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "renounceOwnership", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "revertWithERC20", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_zetaConnector", - type: "address", - }, - ], - name: "setConnector", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_custody", - type: "address", - }, - ], - name: "setCustody", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newOwner", - type: "address", - }, - ], - name: "transferOwnership", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "tssAddress", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newImplementation", - type: "address", - }, - ], - name: "upgradeTo", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newImplementation", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "upgradeToAndCall", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [], - name: "zeta", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "zetaConnector", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -const _bytecode = - "0x60a06040523073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152503480156200004757600080fd5b50620000586200005e60201b60201c565b62000208565b600060019054906101000a900460ff1615620000b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000a8906200015c565b60405180910390fd5b60ff801660008054906101000a900460ff1660ff1614620001225760ff6000806101000a81548160ff021916908360ff1602179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860ff6040516200011991906200017e565b60405180910390a15b565b6000620001336027836200019b565b91506200014082620001b9565b604082019050919050565b6200015681620001ac565b82525050565b60006020820190508181036000830152620001778162000124565b9050919050565b60006020820190506200019560008301846200014b565b92915050565b600082825260208201905092915050565b600060ff82169050919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320696e69746960008201527f616c697a696e6700000000000000000000000000000000000000000000000000602082015250565b60805160601c613a91620002436000396000818161099501528181610a2401528181610d8e01528181610e1d01526112490152613a916000f3fe6080604052600436106101355760003560e01c80635b112591116100ab578063b8969bd41161006f578063b8969bd4146103b4578063dda79b75146103dd578063e8f9cb3a14610408578063f2fde38b14610433578063f340fa011461045c578063f45346dc1461047857610135565b80635b112591146102f5578063715018a6146103205780638c6f037f146103375780638da5cb5b14610360578063ae7a3a6f1461038b57610135565b80633659cfe6116100fd5780633659cfe6146101f4578063485cc9551461021d5780634f1ef286146102465780635131ab591461026257806352d1902d1461029f57806357bec62f146102ca57610135565b806310188aef1461013a5780631b8b921d146101635780631cff79cd1461018c57806329c59b5d146101bc57806335c018db146101d8575b600080fd5b34801561014657600080fd5b50610161600480360381019061015c9190612990565b6104a1565b005b34801561016f57600080fd5b5061018a60048036038101906101859190612a85565b6105d4565b005b6101a660048036038101906101a19190612a85565b610640565b6040516101b3919061313b565b60405180910390f35b6101d660048036038101906101d19190612a85565b6106ae565b005b6101f260048036038101906101ed9190612a85565b610828565b005b34801561020057600080fd5b5061021b60048036038101906102169190612990565b610993565b005b34801561022957600080fd5b50610244600480360381019061023f91906129bd565b610b1c565b005b610260600480360381019061025b9190612ae5565b610d8c565b005b34801561026e57600080fd5b50610289600480360381019061028491906129fd565b610ec9565b604051610296919061313b565b60405180910390f35b3480156102ab57600080fd5b506102b4611245565b6040516102c191906130fc565b60405180910390f35b3480156102d657600080fd5b506102df6112fe565b6040516102ec9190613058565b60405180910390f35b34801561030157600080fd5b5061030a611324565b6040516103179190613058565b60405180910390f35b34801561032c57600080fd5b5061033561134a565b005b34801561034357600080fd5b5061035e60048036038101906103599190612b94565b61135e565b005b34801561036c57600080fd5b506103756114dc565b6040516103829190613058565b60405180910390f35b34801561039757600080fd5b506103b260048036038101906103ad9190612990565b611506565b005b3480156103c057600080fd5b506103db60048036038101906103d691906129fd565b611639565b005b3480156103e957600080fd5b506103f261178c565b6040516103ff9190613058565b60405180910390f35b34801561041457600080fd5b5061041d6117b2565b60405161042a9190613058565b60405180910390f35b34801561043f57600080fd5b5061045a60048036038101906104559190612990565b6117d8565b005b61047660048036038101906104719190612990565b61185c565b005b34801561048457600080fd5b5061049f600480360381019061049a9190612b41565b6119d0565b005b600073ffffffffffffffffffffffffffffffffffffffff1660fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610529576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610590576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060fd60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde38484604051610633929190613117565b60405180910390a3505050565b6060600061064f858585611b48565b90508473ffffffffffffffffffffffffffffffffffffffff167fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f34868660405161069b939291906133d6565b60405180910390a2809150509392505050565b60003414156106e9576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060fc60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163460405161073190613043565b60006040518083038185875af1925050503d806000811461076e576040519150601f19603f3d011682016040523d82523d6000602084013e610773565b606091505b505090506000151581151514156107b6576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4346000878760405161081a949392919061335a565b60405180910390a350505050565b6000808473ffffffffffffffffffffffffffffffffffffffff163460405161084f90613043565b60006040518083038185875af1925050503d806000811461088c576040519150601f19603f3d011682016040523d82523d6000602084013e610891565b606091505b5091509150816108cd576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff16638fcaa0b585856040518363ffffffff1660e01b8152600401610908929190613117565b600060405180830381600087803b15801561092257600080fd5b505af1158015610936573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff167fd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c348686604051610984939291906133d6565b60405180910390a25050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610a22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a19906131ba565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610a61611bff565b73ffffffffffffffffffffffffffffffffffffffff1614610ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aae906131da565b60405180910390fd5b610ac081611c56565b610b1981600067ffffffffffffffff811115610adf57610ade613597565b5b6040519080825280601f01601f191660200182016040528015610b115781602001600182028036833780820191505090505b506000611c61565b50565b60008060019054906101000a900460ff16159050808015610b4d5750600160008054906101000a900460ff1660ff16105b80610b7a5750610b5c30611dde565b158015610b795750600160008054906101000a900460ff1660ff16145b5b610bb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb09061325a565b60405180910390fd5b60016000806101000a81548160ff021916908360ff1602179055508015610bf6576001600060016101000a81548160ff0219169083151502179055505b610bfe611e01565b610c06611e5a565b610c0e611eab565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610c755750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15610cac576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8260fc60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160fe60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508015610d875760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986001604051610d7e919061315d565b60405180910390a15b505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610e1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e12906131ba565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610e5a611bff565b73ffffffffffffffffffffffffffffffffffffffff1614610eb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea7906131da565b60405180910390fd5b610eb982611c56565b610ec582826001611c61565b5050565b6060610ed3611f04565b6000841415610f0e576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f188686611f54565b610f4e576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff1663095ea7b386866040518363ffffffff1660e01b8152600401610f899291906130d3565b602060405180830381600087803b158015610fa357600080fd5b505af1158015610fb7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fdb9190612c1c565b611011576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061101e868585611b48565b905061102a8787611f54565b611060576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161109b9190613058565b60206040518083038186803b1580156110b357600080fd5b505afa1580156110c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110eb9190612c76565b905060008111156111c657600060fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060fe60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614156111995760fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b6111c481838b73ffffffffffffffffffffffffffffffffffffffff16611fec9092919063ffffffff16565b505b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382888888604051611227939291906133d6565b60405180910390a3819250505061123c612072565b95945050505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16146112d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cc9061321a565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b905090565b60fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60fc60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61135261207c565b61135c60006120fa565b565b6000841415611399576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060fe60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561143c5760fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b6114693382878773ffffffffffffffffffffffffffffffffffffffff166121c0909392919063ffffffff16565b8573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4878787876040516114cc949392919061335a565b60405180910390a3505050505050565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff1660fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461158e576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156115f5576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060fb60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611641611f04565b600083141561167c576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6116a784848773ffffffffffffffffffffffffffffffffffffffff16611fec9092919063ffffffff16565b8373ffffffffffffffffffffffffffffffffffffffff16638fcaa0b583836040518363ffffffff1660e01b81526004016116e2929190613117565b600060405180830381600087803b1580156116fc57600080fd5b505af1158015611710573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7858585604051611775939291906133d6565b60405180910390a3611785612072565b5050505050565b60fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60fe60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6117e061207c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611850576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118479061319a565b60405180910390fd5b611859816120fa565b50565b6000341415611897576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060fc60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16346040516118df90613043565b60006040518083038185875af1925050503d806000811461191c576040519150601f19603f3d011682016040523d82523d6000602084013e611921565b606091505b50509050600015158115151415611964576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a43460006040516119c492919061339a565b60405180910390a35050565b6000821415611a0b576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060fe60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611aae5760fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b611adb3382858573ffffffffffffffffffffffffffffffffffffffff166121c0909392919063ffffffff16565b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a48585604051611b3a92919061339a565b60405180910390a350505050565b60606000808573ffffffffffffffffffffffffffffffffffffffff16348686604051611b75929190613013565b60006040518083038185875af1925050503d8060008114611bb2576040519150601f19603f3d011682016040523d82523d6000602084013e611bb7565b606091505b509150915081611bf3576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80925050509392505050565b6000611c2d7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b612249565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611c5e61207c565b50565b611c8d7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914360001b612253565b60000160009054906101000a900460ff1615611cb157611cac8361225d565b611dd9565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611cf757600080fd5b505afa925050508015611d2857506040513d601f19601f82011682018060405250810190611d259190612c49565b60015b611d67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5e9061327a565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b8114611dcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc39061323a565b60405180910390fd5b50611dd8838383612316565b5b505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16611e50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e47906132fa565b60405180910390fd5b611e58612342565b565b600060019054906101000a900460ff16611ea9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea0906132fa565b60405180910390fd5b565b600060019054906101000a900460ff16611efa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef1906132fa565b60405180910390fd5b611f026123a3565b565b600260c9541415611f4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f419061333a565b60405180910390fd5b600260c981905550565b60008273ffffffffffffffffffffffffffffffffffffffff1663095ea7b38360006040518363ffffffff1660e01b8152600401611f929291906130aa565b602060405180830381600087803b158015611fac57600080fd5b505af1158015611fc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fe49190612c1c565b905092915050565b61206d8363a9059cbb60e01b848460405160240161200b9291906130d3565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506123fc565b505050565b600160c981905550565b6120846124c3565b73ffffffffffffffffffffffffffffffffffffffff166120a26114dc565b73ffffffffffffffffffffffffffffffffffffffff16146120f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ef906132ba565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b612243846323b872dd60e01b8585856040516024016121e193929190613073565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506123fc565b50505050565b6000819050919050565b6000819050919050565b61226681611dde565b6122a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229c9061329a565b60405180910390fd5b806122d27f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b612249565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61231f836124cb565b60008251118061232c5750805b1561233d5761233b838361251a565b505b505050565b600060019054906101000a900460ff16612391576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612388906132fa565b60405180910390fd5b6123a161239c6124c3565b6120fa565b565b600060019054906101000a900460ff166123f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e9906132fa565b60405180910390fd5b600160c981905550565b600061245e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166125479092919063ffffffff16565b90506000815111156124be578080602001905181019061247e9190612c1c565b6124bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b49061331a565b60405180910390fd5b5b505050565b600033905090565b6124d48161225d565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b606061253f8383604051806060016040528060278152602001613a356027913961255f565b905092915050565b606061255684846000856125e5565b90509392505050565b60606000808573ffffffffffffffffffffffffffffffffffffffff1685604051612589919061302c565b600060405180830381855af49150503d80600081146125c4576040519150601f19603f3d011682016040523d82523d6000602084013e6125c9565b606091505b50915091506125da868383876126b2565b925050509392505050565b60608247101561262a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612621906131fa565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051612653919061302c565b60006040518083038185875af1925050503d8060008114612690576040519150601f19603f3d011682016040523d82523d6000602084013e612695565b606091505b50915091506126a687838387612728565b92505050949350505050565b606083156127155760008351141561270d576126cd85611dde565b61270c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612703906132da565b60405180910390fd5b5b829050612720565b61271f838361279e565b5b949350505050565b6060831561278b5760008351141561278357612743856127ee565b612782576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612779906132da565b60405180910390fd5b5b829050612796565b6127958383612811565b5b949350505050565b6000825111156127b15781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e59190613178565b60405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156128245781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128589190613178565b60405180910390fd5b600061287461286f8461342d565b613408565b9050828152602081018484840111156128905761288f6135d5565b5b61289b848285613524565b509392505050565b6000813590506128b2816139d8565b92915050565b6000815190506128c7816139ef565b92915050565b6000815190506128dc81613a06565b92915050565b60008083601f8401126128f8576128f76135cb565b5b8235905067ffffffffffffffff811115612915576129146135c6565b5b602083019150836001820283011115612931576129306135d0565b5b9250929050565b600082601f83011261294d5761294c6135cb565b5b813561295d848260208601612861565b91505092915050565b60008135905061297581613a1d565b92915050565b60008151905061298a81613a1d565b92915050565b6000602082840312156129a6576129a56135df565b5b60006129b4848285016128a3565b91505092915050565b600080604083850312156129d4576129d36135df565b5b60006129e2858286016128a3565b92505060206129f3858286016128a3565b9150509250929050565b600080600080600060808688031215612a1957612a186135df565b5b6000612a27888289016128a3565b9550506020612a38888289016128a3565b9450506040612a4988828901612966565b935050606086013567ffffffffffffffff811115612a6a57612a696135da565b5b612a76888289016128e2565b92509250509295509295909350565b600080600060408486031215612a9e57612a9d6135df565b5b6000612aac868287016128a3565b935050602084013567ffffffffffffffff811115612acd57612acc6135da565b5b612ad9868287016128e2565b92509250509250925092565b60008060408385031215612afc57612afb6135df565b5b6000612b0a858286016128a3565b925050602083013567ffffffffffffffff811115612b2b57612b2a6135da565b5b612b3785828601612938565b9150509250929050565b600080600060608486031215612b5a57612b596135df565b5b6000612b68868287016128a3565b9350506020612b7986828701612966565b9250506040612b8a868287016128a3565b9150509250925092565b600080600080600060808688031215612bb057612baf6135df565b5b6000612bbe888289016128a3565b9550506020612bcf88828901612966565b9450506040612be0888289016128a3565b935050606086013567ffffffffffffffff811115612c0157612c006135da565b5b612c0d888289016128e2565b92509250509295509295909350565b600060208284031215612c3257612c316135df565b5b6000612c40848285016128b8565b91505092915050565b600060208284031215612c5f57612c5e6135df565b5b6000612c6d848285016128cd565b91505092915050565b600060208284031215612c8c57612c8b6135df565b5b6000612c9a8482850161297b565b91505092915050565b612cac816134a1565b82525050565b612cbb816134bf565b82525050565b6000612ccd8385613474565b9350612cda838584613524565b612ce3836135e4565b840190509392505050565b6000612cfa8385613485565b9350612d07838584613524565b82840190509392505050565b6000612d1e8261345e565b612d288185613474565b9350612d38818560208601613533565b612d41816135e4565b840191505092915050565b6000612d578261345e565b612d618185613485565b9350612d71818560208601613533565b80840191505092915050565b612d8681613500565b82525050565b612d9581613512565b82525050565b6000612da682613469565b612db08185613490565b9350612dc0818560208601613533565b612dc9816135e4565b840191505092915050565b6000612de1602683613490565b9150612dec826135f5565b604082019050919050565b6000612e04602c83613490565b9150612e0f82613644565b604082019050919050565b6000612e27602c83613490565b9150612e3282613693565b604082019050919050565b6000612e4a602683613490565b9150612e55826136e2565b604082019050919050565b6000612e6d603883613490565b9150612e7882613731565b604082019050919050565b6000612e90602983613490565b9150612e9b82613780565b604082019050919050565b6000612eb3602e83613490565b9150612ebe826137cf565b604082019050919050565b6000612ed6602e83613490565b9150612ee18261381e565b604082019050919050565b6000612ef9602d83613490565b9150612f048261386d565b604082019050919050565b6000612f1c602083613490565b9150612f27826138bc565b602082019050919050565b6000612f3f600083613474565b9150612f4a826138e5565b600082019050919050565b6000612f62600083613485565b9150612f6d826138e5565b600082019050919050565b6000612f85601d83613490565b9150612f90826138e8565b602082019050919050565b6000612fa8602b83613490565b9150612fb382613911565b604082019050919050565b6000612fcb602a83613490565b9150612fd682613960565b604082019050919050565b6000612fee601f83613490565b9150612ff9826139af565b602082019050919050565b61300d816134e9565b82525050565b6000613020828486612cee565b91508190509392505050565b60006130388284612d4c565b915081905092915050565b600061304e82612f55565b9150819050919050565b600060208201905061306d6000830184612ca3565b92915050565b60006060820190506130886000830186612ca3565b6130956020830185612ca3565b6130a26040830184613004565b949350505050565b60006040820190506130bf6000830185612ca3565b6130cc6020830184612d7d565b9392505050565b60006040820190506130e86000830185612ca3565b6130f56020830184613004565b9392505050565b60006020820190506131116000830184612cb2565b92915050565b60006020820190508181036000830152613132818486612cc1565b90509392505050565b600060208201905081810360008301526131558184612d13565b905092915050565b60006020820190506131726000830184612d8c565b92915050565b600060208201905081810360008301526131928184612d9b565b905092915050565b600060208201905081810360008301526131b381612dd4565b9050919050565b600060208201905081810360008301526131d381612df7565b9050919050565b600060208201905081810360008301526131f381612e1a565b9050919050565b6000602082019050818103600083015261321381612e3d565b9050919050565b6000602082019050818103600083015261323381612e60565b9050919050565b6000602082019050818103600083015261325381612e83565b9050919050565b6000602082019050818103600083015261327381612ea6565b9050919050565b6000602082019050818103600083015261329381612ec9565b9050919050565b600060208201905081810360008301526132b381612eec565b9050919050565b600060208201905081810360008301526132d381612f0f565b9050919050565b600060208201905081810360008301526132f381612f78565b9050919050565b6000602082019050818103600083015261331381612f9b565b9050919050565b6000602082019050818103600083015261333381612fbe565b9050919050565b6000602082019050818103600083015261335381612fe1565b9050919050565b600060608201905061336f6000830187613004565b61337c6020830186612ca3565b818103604083015261338f818486612cc1565b905095945050505050565b60006060820190506133af6000830185613004565b6133bc6020830184612ca3565b81810360408301526133cd81612f32565b90509392505050565b60006040820190506133eb6000830186613004565b81810360208301526133fe818486612cc1565b9050949350505050565b6000613412613423565b905061341e8282613566565b919050565b6000604051905090565b600067ffffffffffffffff82111561344857613447613597565b5b613451826135e4565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006134ac826134c9565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061350b826134e9565b9050919050565b600061351d826134f3565b9050919050565b82818337600083830152505050565b60005b83811015613551578082015181840152602081019050613536565b83811115613560576000848401525b50505050565b61356f826135e4565b810181811067ffffffffffffffff8211171561358e5761358d613597565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f64656c656761746563616c6c0000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f6163746976652070726f78790000000000000000000000000000000000000000602082015250565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f555550535570677261646561626c653a206d757374206e6f742062652063616c60008201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000602082015250565b7f45524331393637557067726164653a20756e737570706f727465642070726f7860008201527f6961626c65555549440000000000000000000000000000000000000000000000602082015250565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f45524331393637557067726164653a206e657720696d706c656d656e7461746960008201527f6f6e206973206e6f742055555053000000000000000000000000000000000000602082015250565b7f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60008201527f6f74206120636f6e747261637400000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6139e1816134a1565b81146139ec57600080fd5b50565b6139f8816134b3565b8114613a0357600080fd5b50565b613a0f816134bf565b8114613a1a57600080fd5b50565b613a26816134e9565b8114613a3157600080fd5b5056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220268b99b0ba9f89c2f88b0515815860e3b68f70e837bc82475662cd0a194f5f2464736f6c63430008070033"; - -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 deploy( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy(overrides || {}) as Promise; - } - override getDeployTransaction( - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); - } - override attach(address: string): GatewayEVM { - return super.attach(address) as GatewayEVM; - } - override connect(signer: Signer): GatewayEVM__factory { - return super.connect(signer) as GatewayEVM__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): GatewayEVMInterface { - return new utils.Interface(_abi) as GatewayEVMInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): GatewayEVM { - return new Contract(address, _abi, signerOrProvider) as GatewayEVM; - } -} diff --git a/typechain-types/factories/contracts/prototypes/evm/GatewayEVM.sol/index.ts b/typechain-types/factories/contracts/prototypes/evm/GatewayEVM.sol/index.ts deleted file mode 100644 index cfc1ca8c..00000000 --- a/typechain-types/factories/contracts/prototypes/evm/GatewayEVM.sol/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { GatewayEVM__factory } from "./GatewayEVM__factory"; -export { Revertable__factory } from "./Revertable__factory"; diff --git a/typechain-types/factories/contracts/prototypes/evm/GatewayEVM.t.sol/GatewayEVMTest__factory.ts b/typechain-types/factories/contracts/prototypes/evm/GatewayEVM.t.sol/GatewayEVMTest__factory.ts deleted file mode 100644 index b933279a..00000000 --- a/typechain-types/factories/contracts/prototypes/evm/GatewayEVM.t.sol/GatewayEVMTest__factory.ts +++ /dev/null @@ -1,910 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../../../common"; -import type { - GatewayEVMTest, - GatewayEVMTestInterface, -} from "../../../../../contracts/prototypes/evm/GatewayEVM.t.sol/GatewayEVMTest"; - -const _abi = [ - { - inputs: [], - name: "ApprovalFailed", - type: "error", - }, - { - inputs: [], - name: "CustodyInitialized", - type: "error", - }, - { - inputs: [], - name: "DepositFailed", - type: "error", - }, - { - inputs: [], - name: "ExecutionFailed", - type: "error", - }, - { - inputs: [], - name: "InsufficientERC20Amount", - type: "error", - }, - { - inputs: [], - name: "InsufficientETHAmount", - type: "error", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "receiver", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "payload", - type: "bytes", - }, - ], - name: "Call", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "receiver", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "asset", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "payload", - type: "bytes", - }, - ], - name: "Deposit", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "destination", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "Executed", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "ExecutedWithERC20", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "destination", - type: "address", - }, - ], - name: "ReceivedERC20", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "ReceivedNoParams", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "string[]", - name: "strs", - type: "string[]", - }, - { - indexed: false, - internalType: "uint256[]", - name: "nums", - type: "uint256[]", - }, - { - indexed: false, - internalType: "bool", - name: "flag", - type: "bool", - }, - ], - name: "ReceivedNonPayable", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "string", - name: "str", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "num", - type: "uint256", - }, - { - indexed: false, - internalType: "bool", - name: "flag", - type: "bool", - }, - ], - name: "ReceivedPayable", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "", - type: "string", - }, - ], - name: "log", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "", - type: "address", - }, - ], - name: "log_address", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256[]", - name: "val", - type: "uint256[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "int256[]", - name: "val", - type: "int256[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address[]", - name: "val", - type: "address[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - name: "log_bytes", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - name: "log_bytes32", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "int256", - name: "", - type: "int256", - }, - ], - name: "log_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "address", - name: "val", - type: "address", - }, - ], - name: "log_named_address", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256[]", - name: "val", - type: "uint256[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256[]", - name: "val", - type: "int256[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "address[]", - name: "val", - type: "address[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "bytes", - name: "val", - type: "bytes", - }, - ], - name: "log_named_bytes", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "bytes32", - name: "val", - type: "bytes32", - }, - ], - name: "log_named_bytes32", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256", - name: "val", - type: "int256", - }, - { - indexed: false, - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "log_named_decimal_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "val", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "log_named_decimal_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256", - name: "val", - type: "int256", - }, - ], - name: "log_named_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "string", - name: "val", - type: "string", - }, - ], - name: "log_named_string", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "val", - type: "uint256", - }, - ], - name: "log_named_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "", - type: "string", - }, - ], - name: "log_string", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "log_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - name: "logs", - type: "event", - }, - { - inputs: [], - name: "IS_TEST", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeArtifacts", - outputs: [ - { - internalType: "string[]", - name: "excludedArtifacts_", - type: "string[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeContracts", - outputs: [ - { - internalType: "address[]", - name: "excludedContracts_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeSelectors", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzSelector[]", - name: "excludedSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeSenders", - outputs: [ - { - internalType: "address[]", - name: "excludedSenders_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "failed", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "setUp", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "targetArtifactSelectors", - outputs: [ - { - components: [ - { - internalType: "string", - name: "artifact", - type: "string", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzArtifactSelector[]", - name: "targetedArtifactSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetArtifacts", - outputs: [ - { - internalType: "string[]", - name: "targetedArtifacts_", - type: "string[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetContracts", - outputs: [ - { - internalType: "address[]", - name: "targetedContracts_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetInterfaces", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "string[]", - name: "artifacts", - type: "string[]", - }, - ], - internalType: "struct StdInvariant.FuzzInterface[]", - name: "targetedInterfaces_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetSelectors", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzSelector[]", - name: "targetedSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetSenders", - outputs: [ - { - internalType: "address[]", - name: "targetedSenders_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "testForwardCallToReceivePayable", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -const _bytecode = - "0x60806040526001600c60006101000a81548160ff0219169083151502179055506001601f60006101000a81548160ff02191690831515021790555034801561004657600080fd5b5061807d806100566000396000f3fe60806040523480156200001157600080fd5b5060043610620001005760003560e01c8063916a17c61162000099578063ba414fa6116200006f578063ba414fa61462000243578063e20c9f711462000265578063fa7626d41462000287578063fe7bdbb214620002a95762000100565b8063916a17c614620001dd578063b0464fdc14620001ff578063b5508aa914620002215762000100565b80633e5e3c2311620000db5780633e5e3c2314620001555780633f7286f4146200017757806366d9a9a0146200019957806385226c8114620001bb5762000100565b80630a9254e414620001055780631ed7831c14620001115780632ade38801462000133575b600080fd5b6200010f620002b5565b005b6200011b620007f5565b6040516200012a919062001fc1565b60405180910390f35b6200013d62000885565b6040516200014c91906200202d565b60405180910390f35b6200015f62000a1f565b6040516200016e919062001fc1565b60405180910390f35b6200018162000aaf565b60405162000190919062001fc1565b60405180910390f35b620001a362000b3f565b604051620001b2919062002009565b60405180910390f35b620001c562000cd6565b604051620001d4919062001fe5565b60405180910390f35b620001e762000db9565b604051620001f6919062002051565b60405180910390f35b6200020962000f0c565b60405162000218919062002051565b60405180910390f35b6200022b6200105f565b6040516200023a919062001fe5565b60405180910390f35b6200024d62001142565b6040516200025c919062002075565b60405180910390f35b6200026f62001275565b6040516200027e919062001fc1565b60405180910390f35b6200029162001305565b604051620002a0919062002075565b60405180910390f35b620002b362001318565b005b30602360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611234602460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550615678602560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040516200038a90620016d2565b620003959062002133565b604051809103906000f080158015620003b2573d6000803e3d6000fd5b50602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040516200040190620016e0565b604051809103906000f0801580156200041e573d6000803e3d6000fd5b50601f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516200049090620016ee565b6200049c919062001ea5565b604051809103906000f080158015620004b9573d6000803e3d6000fd5b50602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c4d66de8602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040162000579919062001ea5565b600060405180830381600087803b1580156200059457600080fd5b505af1158015620005a9573d6000803e3d6000fd5b50505050601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ae7a3a6f602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016200062c919062001ea5565b600060405180830381600087803b1580156200064757600080fd5b505af11580156200065c573d6000803e3d6000fd5b50505050602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f19602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620f42406040518363ffffffff1660e01b8152600401620006e492919062001f23565b600060405180830381600087803b158015620006ff57600080fd5b505af115801562000714573d6000803e3d6000fd5b50505050602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166207a1206040518363ffffffff1660e01b81526004016200079c92919062001f50565b602060405180830381600087803b158015620007b757600080fd5b505af1158015620007cc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007f29190620017a8565b50565b606060168054806020026020016040519081016040528092919081815260200182805480156200087b57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831162000830575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020016000905b8282101562000a1657838290600052602060002090600202016040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020016000905b82821015620009fe5783829060005260206000200180546200096a906200248b565b80601f016020809104026020016040519081016040528092919081815260200182805462000998906200248b565b8015620009e95780601f10620009bd57610100808354040283529160200191620009e9565b820191906000526020600020905b815481529060010190602001808311620009cb57829003601f168201915b50505050508152602001906001019062000948565b505050508152505081526020019060010190620008a9565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000aa557602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831162000a5a575b5050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000b3557602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831162000aea575b5050505050905090565b6060601b805480602002602001604051908101604052809291908181526020016000905b8282101562000ccd578382906000526020600020906002020160405180604001604052908160008201805462000b99906200248b565b80601f016020809104026020016040519081016040528092919081815260200182805462000bc7906200248b565b801562000c185780601f1062000bec5761010080835404028352916020019162000c18565b820191906000526020600020905b81548152906001019060200180831162000bfa57829003601f168201915b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801562000cb457602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000c605790505b5050505050815250508152602001906001019062000b63565b50505050905090565b6060601a805480602002602001604051908101604052809291908181526020016000905b8282101562000db057838290600052602060002001805462000d1c906200248b565b80601f016020809104026020016040519081016040528092919081815260200182805462000d4a906200248b565b801562000d9b5780601f1062000d6f5761010080835404028352916020019162000d9b565b820191906000526020600020905b81548152906001019060200180831162000d7d57829003601f168201915b50505050508152602001906001019062000cfa565b50505050905090565b6060601d805480602002602001604051908101604052809291908181526020016000905b8282101562000f0357838290600052602060002090600202016040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820180548060200260200160405190810160405280929190818152602001828054801562000eea57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e965790505b5050505050815250508152602001906001019062000ddd565b50505050905090565b6060601c805480602002602001604051908101604052809291908181526020016000905b828210156200105657838290600052602060002090600202016040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054806020026020016040519081016040528092919081815260200182805480156200103d57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000fe95790505b5050505050815250508152602001906001019062000f30565b50505050905090565b60606019805480602002602001604051908101604052809291908181526020016000905b8282101562001139578382906000526020600020018054620010a5906200248b565b80601f0160208091040260200160405190810160405280929190818152602001828054620010d3906200248b565b8015620011245780601f10620010f85761010080835404028352916020019162001124565b820191906000526020600020905b8154815290600101906020018083116200110657829003601f168201915b50505050508152602001906001019062001083565b50505050905090565b6000600860009054906101000a900460ff16156200117257600860009054906101000a900460ff16905062001272565b6000801b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff1663667f9d707f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c7f6661696c656400000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b81526004016200121992919062001ec2565b60206040518083038186803b1580156200123257600080fd5b505afa15801562001247573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200126d9190620017da565b141590505b90565b60606015805480602002602001604051908101604052809291908181526020018280548015620012fb57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311620012b0575b5050505050905090565b601f60009054906101000a900460ff1681565b60006040518060400160405280600f81526020017f48656c6c6f2c20466f756e64727921000000000000000000000000000000000081525090506000602a90506000600190506000670de0b6b3a7640000905060008484846040516024016200138493929190620020ef565b6040516020818303038152906040527fe04d4f97000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff1663f30c7ba3602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684846040518463ffffffff1660e01b8152600401620014879392919062001f7d565b600060405180830381600087803b158015620014a257600080fd5b505af1158015620014b7573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff166381bad6f3600180600180601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518663ffffffff1660e01b81526004016200154595949392919062002092565b600060405180830381600087803b1580156200156057600080fd5b505af115801562001575573d6000803e3d6000fd5b50505050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f8383604051620015e59291906200216a565b60405180910390a2601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631cff79cd83602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b81526004016200166f92919062001eef565b6000604051808303818588803b1580156200168957600080fd5b505af11580156200169e573d6000803e3d6000fd5b50505050506040513d6000823e3d601f19601f82011682018060405250810190620016ca91906200180c565b505050505050565b611813806200260183390190565b6131a48062003e1483390190565b6110908062006fb883390190565b6000620017136200170d84620021c7565b6200219e565b9050828152602081018484840111156200173257620017316200255a565b5b6200173f84828562002455565b509392505050565b6000815190506200175881620025cc565b92915050565b6000815190506200176f81620025e6565b92915050565b600082601f8301126200178d576200178c62002555565b5b81516200179f848260208601620016fc565b91505092915050565b600060208284031215620017c157620017c062002564565b5b6000620017d18482850162001747565b91505092915050565b600060208284031215620017f357620017f262002564565b5b600062001803848285016200175e565b91505092915050565b60006020828403121562001825576200182462002564565b5b600082015167ffffffffffffffff8111156200184657620018456200255f565b5b620018548482850162001775565b91505092915050565b60006200186b8383620018e9565b60208301905092915050565b600062001885838362001c86565b60208301905092915050565b60006200189f838362001cfa565b905092915050565b6000620018b5838362001dca565b905092915050565b6000620018cb838362001e12565b905092915050565b6000620018e1838362001e53565b905092915050565b620018f481620023ad565b82525050565b6200190581620023ad565b82525050565b600062001918826200225d565b62001924818562002303565b93506200193183620021fd565b8060005b83811015620019685781516200194c88826200185d565b97506200195983620022b5565b92505060018101905062001935565b5085935050505092915050565b6000620019828262002268565b6200198e818562002314565b93506200199b836200220d565b8060005b83811015620019d2578151620019b6888262001877565b9750620019c383620022c2565b9250506001810190506200199f565b5085935050505092915050565b6000620019ec8262002273565b620019f8818562002325565b93508360208202850162001a0c856200221d565b8060005b8581101562001a4e578484038952815162001a2c858262001891565b945062001a3983620022cf565b925060208a0199505060018101905062001a10565b50829750879550505050505092915050565b600062001a6d8262002273565b62001a79818562002336565b93508360208202850162001a8d856200221d565b8060005b8581101562001acf578484038952815162001aad858262001891565b945062001aba83620022cf565b925060208a0199505060018101905062001a91565b50829750879550505050505092915050565b600062001aee826200227e565b62001afa818562002347565b93508360208202850162001b0e856200222d565b8060005b8581101562001b50578484038952815162001b2e8582620018a7565b945062001b3b83620022dc565b925060208a0199505060018101905062001b12565b50829750879550505050505092915050565b600062001b6f8262002289565b62001b7b818562002358565b93508360208202850162001b8f856200223d565b8060005b8581101562001bd1578484038952815162001baf8582620018bd565b945062001bbc83620022e9565b925060208a0199505060018101905062001b93565b50829750879550505050505092915050565b600062001bf08262002294565b62001bfc818562002369565b93508360208202850162001c10856200224d565b8060005b8581101562001c52578484038952815162001c308582620018d3565b945062001c3d83620022f6565b925060208a0199505060018101905062001c14565b50829750879550505050505092915050565b62001c6f81620023c1565b82525050565b62001c8081620023cd565b82525050565b62001c9181620023d7565b82525050565b600062001ca4826200229f565b62001cb081856200237a565b935062001cc281856020860162002455565b62001ccd8162002569565b840191505092915050565b62001ce3816200242d565b82525050565b62001cf48162002441565b82525050565b600062001d0782620022aa565b62001d1381856200238b565b935062001d2581856020860162002455565b62001d308162002569565b840191505092915050565b600062001d4882620022aa565b62001d5481856200239c565b935062001d6681856020860162002455565b62001d718162002569565b840191505092915050565b600062001d8b6003836200239c565b915062001d98826200257a565b602082019050919050565b600062001db26004836200239c565b915062001dbf82620025a3565b602082019050919050565b6000604083016000830151848203600086015262001de9828262001cfa565b9150506020830151848203602086015262001e05828262001975565b9150508091505092915050565b600060408301600083015162001e2c6000860182620018e9565b506020830151848203602086015262001e468282620019df565b9150508091505092915050565b600060408301600083015162001e6d6000860182620018e9565b506020830151848203602086015262001e87828262001975565b9150508091505092915050565b62001e9f8162002423565b82525050565b600060208201905062001ebc6000830184620018fa565b92915050565b600060408201905062001ed96000830185620018fa565b62001ee8602083018462001c75565b9392505050565b600060408201905062001f066000830185620018fa565b818103602083015262001f1a818462001c97565b90509392505050565b600060408201905062001f3a6000830185620018fa565b62001f49602083018462001cd8565b9392505050565b600060408201905062001f676000830185620018fa565b62001f76602083018462001ce9565b9392505050565b600060608201905062001f946000830186620018fa565b62001fa3602083018562001e94565b818103604083015262001fb7818462001c97565b9050949350505050565b6000602082019050818103600083015262001fdd81846200190b565b905092915050565b6000602082019050818103600083015262002001818462001a60565b905092915050565b6000602082019050818103600083015262002025818462001ae1565b905092915050565b6000602082019050818103600083015262002049818462001b62565b905092915050565b600060208201905081810360008301526200206d818462001be3565b905092915050565b60006020820190506200208c600083018462001c64565b92915050565b600060a082019050620020a9600083018862001c64565b620020b8602083018762001c64565b620020c7604083018662001c64565b620020d6606083018562001c64565b620020e56080830184620018fa565b9695505050505050565b600060608201905081810360008301526200210b818662001d3b565b90506200211c602083018562001e94565b6200212b604083018462001c64565b949350505050565b600060408201905081810360008301526200214e8162001da3565b90508181036020830152620021638162001d7c565b9050919050565b600060408201905062002181600083018562001e94565b818103602083015262002195818462001c97565b90509392505050565b6000620021aa620021bd565b9050620021b88282620024c1565b919050565b6000604051905090565b600067ffffffffffffffff821115620021e557620021e462002526565b5b620021f08262002569565b9050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000620023ba8262002403565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006200243a8262002423565b9050919050565b60006200244e8262002423565b9050919050565b60005b838110156200247557808201518184015260208101905062002458565b8381111562002485576000848401525b50505050565b60006002820490506001821680620024a457607f821691505b60208210811415620024bb57620024ba620024f7565b5b50919050565b620024cc8262002569565b810181811067ffffffffffffffff82111715620024ee57620024ed62002526565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f54544b0000000000000000000000000000000000000000000000000000000000600082015250565b7f7465737400000000000000000000000000000000000000000000000000000000600082015250565b620025d781620023c1565b8114620025e357600080fd5b50565b620025f181620023cd565b8114620025fd57600080fd5b5056fe60806040523480156200001157600080fd5b5060405162001813380380620018138339818101604052810190620000379190620001a3565b818181600390805190602001906200005192919062000075565b5080600490805190602001906200006a92919062000075565b5050505050620003ac565b8280546200008390620002bd565b90600052602060002090601f016020900481019282620000a75760008555620000f3565b82601f10620000c257805160ff1916838001178555620000f3565b82800160010185558215620000f3579182015b82811115620000f2578251825591602001919060010190620000d5565b5b50905062000102919062000106565b5090565b5b808211156200012157600081600090555060010162000107565b5090565b60006200013c620001368462000251565b62000228565b9050828152602081018484840111156200015b576200015a6200038c565b5b6200016884828562000287565b509392505050565b600082601f83011262000188576200018762000387565b5b81516200019a84826020860162000125565b91505092915050565b60008060408385031215620001bd57620001bc62000396565b5b600083015167ffffffffffffffff811115620001de57620001dd62000391565b5b620001ec8582860162000170565b925050602083015167ffffffffffffffff81111562000210576200020f62000391565b5b6200021e8582860162000170565b9150509250929050565b60006200023462000247565b9050620002428282620002f3565b919050565b6000604051905090565b600067ffffffffffffffff8211156200026f576200026e62000358565b5b6200027a826200039b565b9050602081019050919050565b60005b83811015620002a75780820151818401526020810190506200028a565b83811115620002b7576000848401525b50505050565b60006002820490506001821680620002d657607f821691505b60208210811415620002ed57620002ec62000329565b5b50919050565b620002fe826200039b565b810181811067ffffffffffffffff8211171562000320576200031f62000358565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b61145780620003bc6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806340c10f191161007157806340c10f19146101a357806370a08231146101bf57806395d89b41146101ef578063a457c2d71461020d578063a9059cbb1461023d578063dd62ed3e1461026d576100b4565b806306fdde03146100b9578063095ea7b3146100d757806318160ddd1461010757806323b872dd14610125578063313ce567146101555780633950935114610173575b600080fd5b6100c161029d565b6040516100ce9190610ecf565b60405180910390f35b6100f160048036038101906100ec9190610cf6565b61032f565b6040516100fe9190610eb4565b60405180910390f35b61010f610352565b60405161011c9190610ff1565b60405180910390f35b61013f600480360381019061013a9190610ca3565b61035c565b60405161014c9190610eb4565b60405180910390f35b61015d61038b565b60405161016a919061100c565b60405180910390f35b61018d60048036038101906101889190610cf6565b610394565b60405161019a9190610eb4565b60405180910390f35b6101bd60048036038101906101b89190610cf6565b6103cb565b005b6101d960048036038101906101d49190610c36565b6103d9565b6040516101e69190610ff1565b60405180910390f35b6101f7610421565b6040516102049190610ecf565b60405180910390f35b61022760048036038101906102229190610cf6565b6104b3565b6040516102349190610eb4565b60405180910390f35b61025760048036038101906102529190610cf6565b61052a565b6040516102649190610eb4565b60405180910390f35b61028760048036038101906102829190610c63565b61054d565b6040516102949190610ff1565b60405180910390f35b6060600380546102ac90611121565b80601f01602080910402602001604051908101604052809291908181526020018280546102d890611121565b80156103255780601f106102fa57610100808354040283529160200191610325565b820191906000526020600020905b81548152906001019060200180831161030857829003601f168201915b5050505050905090565b60008061033a6105d4565b90506103478185856105dc565b600191505092915050565b6000600254905090565b6000806103676105d4565b90506103748582856107a7565b61037f858585610833565b60019150509392505050565b60006012905090565b60008061039f6105d4565b90506103c08185856103b1858961054d565b6103bb9190611043565b6105dc565b600191505092915050565b6103d58282610aab565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461043090611121565b80601f016020809104026020016040519081016040528092919081815260200182805461045c90611121565b80156104a95780601f1061047e576101008083540402835291602001916104a9565b820191906000526020600020905b81548152906001019060200180831161048c57829003601f168201915b5050505050905090565b6000806104be6105d4565b905060006104cc828661054d565b905083811015610511576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050890610fb1565b60405180910390fd5b61051e82868684036105dc565b60019250505092915050565b6000806105356105d4565b9050610542818585610833565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561064c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064390610f91565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156106bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b390610f11565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161079a9190610ff1565b60405180910390a3505050565b60006107b3848461054d565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461082d578181101561081f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081690610f31565b60405180910390fd5b61082c84848484036105dc565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156108a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089a90610f71565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090a90610ef1565b60405180910390fd5b61091e838383610c02565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156109a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099b90610f51565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a929190610ff1565b60405180910390a3610aa5848484610c07565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1290610fd1565b60405180910390fd5b610b2760008383610c02565b8060026000828254610b399190611043565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610bea9190610ff1565b60405180910390a3610bfe60008383610c07565b5050565b505050565b505050565b600081359050610c1b816113f3565b92915050565b600081359050610c308161140a565b92915050565b600060208284031215610c4c57610c4b6111b1565b5b6000610c5a84828501610c0c565b91505092915050565b60008060408385031215610c7a57610c796111b1565b5b6000610c8885828601610c0c565b9250506020610c9985828601610c0c565b9150509250929050565b600080600060608486031215610cbc57610cbb6111b1565b5b6000610cca86828701610c0c565b9350506020610cdb86828701610c0c565b9250506040610cec86828701610c21565b9150509250925092565b60008060408385031215610d0d57610d0c6111b1565b5b6000610d1b85828601610c0c565b9250506020610d2c85828601610c21565b9150509250929050565b610d3f816110ab565b82525050565b6000610d5082611027565b610d5a8185611032565b9350610d6a8185602086016110ee565b610d73816111b6565b840191505092915050565b6000610d8b602383611032565b9150610d96826111c7565b604082019050919050565b6000610dae602283611032565b9150610db982611216565b604082019050919050565b6000610dd1601d83611032565b9150610ddc82611265565b602082019050919050565b6000610df4602683611032565b9150610dff8261128e565b604082019050919050565b6000610e17602583611032565b9150610e22826112dd565b604082019050919050565b6000610e3a602483611032565b9150610e458261132c565b604082019050919050565b6000610e5d602583611032565b9150610e688261137b565b604082019050919050565b6000610e80601f83611032565b9150610e8b826113ca565b602082019050919050565b610e9f816110d7565b82525050565b610eae816110e1565b82525050565b6000602082019050610ec96000830184610d36565b92915050565b60006020820190508181036000830152610ee98184610d45565b905092915050565b60006020820190508181036000830152610f0a81610d7e565b9050919050565b60006020820190508181036000830152610f2a81610da1565b9050919050565b60006020820190508181036000830152610f4a81610dc4565b9050919050565b60006020820190508181036000830152610f6a81610de7565b9050919050565b60006020820190508181036000830152610f8a81610e0a565b9050919050565b60006020820190508181036000830152610faa81610e2d565b9050919050565b60006020820190508181036000830152610fca81610e50565b9050919050565b60006020820190508181036000830152610fea81610e73565b9050919050565b60006020820190506110066000830184610e96565b92915050565b60006020820190506110216000830184610ea5565b92915050565b600081519050919050565b600082825260208201905092915050565b600061104e826110d7565b9150611059836110d7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561108e5761108d611153565b5b828201905092915050565b60006110a4826110b7565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101561110c5780820151818401526020810190506110f1565b8381111561111b576000848401525b50505050565b6000600282049050600182168061113957607f821691505b6020821081141561114d5761114c611182565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6113fc81611099565b811461140757600080fd5b50565b611413816110d7565b811461141e57600080fd5b5056fea2646970667358221220d4c96329400732e284f624232c8d7228fc90c00ee7b1a48a85080262107815d864736f6c6343000807003360a06040523073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b81525034801561004657600080fd5b5060805160601c613123610081600039600081816105fc0152818161068b01528181610785015281816108140152610bae01526131236000f3fe6080604052600436106100fe5760003560e01c8063715018a611610095578063c4d66de811610064578063c4d66de8146102e4578063dda79b751461030d578063f2fde38b14610338578063f340fa0114610361578063f45346dc1461037d576100fe565b8063715018a6146102505780638c6f037f146102675780638da5cb5b14610290578063ae7a3a6f146102bb576100fe565b80634f1ef286116100d15780634f1ef286146101a15780635131ab59146101bd57806352d1902d146101fa5780635b11259114610225576100fe565b80631b8b921d146101035780631cff79cd1461012c57806329c59b5d1461015c5780633659cfe614610178575b600080fd5b34801561010f57600080fd5b5061012a60048036038101906101259190612183565b6103a6565b005b61014660048036038101906101419190612183565b610412565b6040516101539190612816565b60405180910390f35b61017660048036038101906101719190612183565b610480565b005b34801561018457600080fd5b5061019f600480360381019061019a91906120ce565b6105fa565b005b6101bb60048036038101906101b691906121e3565b610783565b005b3480156101c957600080fd5b506101e460048036038101906101df91906120fb565b6108c0565b6040516101f19190612816565b60405180910390f35b34801561020657600080fd5b5061020f610baa565b60405161021c91906127d7565b60405180910390f35b34801561023157600080fd5b5061023a610c63565b6040516102479190612733565b60405180910390f35b34801561025c57600080fd5b50610265610c89565b005b34801561027357600080fd5b5061028e60048036038101906102899190612292565b610c9d565b005b34801561029c57600080fd5b506102a5610d99565b6040516102b29190612733565b60405180910390f35b3480156102c757600080fd5b506102e260048036038101906102dd91906120ce565b610dc3565b005b3480156102f057600080fd5b5061030b600480360381019061030691906120ce565b610e8f565b005b34801561031957600080fd5b5061032261107e565b60405161032f9190612733565b60405180910390f35b34801561034457600080fd5b5061035f600480360381019061035a91906120ce565b6110a4565b005b61037b600480360381019061037691906120ce565b611128565b005b34801561038957600080fd5b506103a4600480360381019061039f919061223f565b61129c565b005b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde384846040516104059291906127f2565b60405180910390a3505050565b60606000610421858585611392565b90508473ffffffffffffffffffffffffffffffffffffffff167fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f34868660405161046d93929190612a91565b60405180910390a2809150509392505050565b60003414156104bb576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16346040516105039061271e565b60006040518083038185875af1925050503d8060008114610540576040519150601f19603f3d011682016040523d82523d6000602084013e610545565b606091505b50509050600015158115151415610588576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a434600087876040516105ec9493929190612a15565b60405180910390a350505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610689576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068090612895565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166106c8611449565b73ffffffffffffffffffffffffffffffffffffffff161461071e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610715906128b5565b60405180910390fd5b610727816114a0565b61078081600067ffffffffffffffff81111561074657610745612c52565b5b6040519080825280601f01601f1916602001820160405280156107785781602001600182028036833780820191505090505b5060006114ab565b50565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610812576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080990612895565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610851611449565b73ffffffffffffffffffffffffffffffffffffffff16146108a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089e906128b5565b60405180910390fd5b6108b0826114a0565b6108bc828260016114ab565b5050565b606060008414156108fd576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109078686611628565b61093d576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff1663095ea7b386866040518363ffffffff1660e01b81526004016109789291906127ae565b602060405180830381600087803b15801561099257600080fd5b505af11580156109a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ca919061231a565b610a00576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610a0d868585611392565b9050610a198787611628565b610a4f576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a8a9190612733565b60206040518083038186803b158015610aa257600080fd5b505afa158015610ab6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ada9190612374565b90506000811115610b3357610b3260c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828a73ffffffffffffffffffffffffffffffffffffffff166116c09092919063ffffffff16565b5b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382888888604051610b9493929190612a91565b60405180910390a3819250505095945050505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614610c3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c31906128f5565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b905090565b60ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c91611746565b610c9b60006117c4565b565b6000841415610cd8576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d273360c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16868673ffffffffffffffffffffffffffffffffffffffff1661188a909392919063ffffffff16565b8473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a486868686604051610d8a9493929190612a15565b60405180910390a35050505050565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff1660c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e4b576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060c960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060019054906101000a900460ff16159050808015610ec05750600160008054906101000a900460ff1660ff16105b80610eed5750610ecf30611913565b158015610eec5750600160008054906101000a900460ff1660ff16145b5b610f2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2390612935565b60405180910390fd5b60016000806101000a81548160ff021916908360ff1602179055508015610f69576001600060016101000a81548160ff0219169083151502179055505b610f71611936565b610f7961198f565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fe0576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8160ca60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550801561107a5760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860016040516110719190612838565b60405180910390a15b5050565b60c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6110ac611746565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561111c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111390612875565b60405180910390fd5b611125816117c4565b50565b6000341415611163576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16346040516111ab9061271e565b60006040518083038185875af1925050503d80600081146111e8576040519150601f19603f3d011682016040523d82523d6000602084013e6111ed565b606091505b50509050600015158115151415611230576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4346000604051611290929190612a55565b60405180910390a35050565b60008214156112d7576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113263360c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848473ffffffffffffffffffffffffffffffffffffffff1661188a909392919063ffffffff16565b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a48484604051611385929190612a55565b60405180910390a3505050565b60606000808573ffffffffffffffffffffffffffffffffffffffff163486866040516113bf9291906126ee565b60006040518083038185875af1925050503d80600081146113fc576040519150601f19603f3d011682016040523d82523d6000602084013e611401565b606091505b50915091508161143d576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80925050509392505050565b60006114777f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6119e0565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6114a8611746565b50565b6114d77f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914360001b6119ea565b60000160009054906101000a900460ff16156114fb576114f6836119f4565b611623565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561154157600080fd5b505afa92505050801561157257506040513d601f19601f8201168201806040525081019061156f9190612347565b60015b6115b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a890612955565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b8114611616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160d90612915565b60405180910390fd5b50611622838383611aad565b5b505050565b60008273ffffffffffffffffffffffffffffffffffffffff1663095ea7b38360006040518363ffffffff1660e01b8152600401611666929190612785565b602060405180830381600087803b15801561168057600080fd5b505af1158015611694573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b8919061231a565b905092915050565b6117418363a9059cbb60e01b84846040516024016116df9291906127ae565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611ad9565b505050565b61174e611ba0565b73ffffffffffffffffffffffffffffffffffffffff1661176c610d99565b73ffffffffffffffffffffffffffffffffffffffff16146117c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b990612995565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61190d846323b872dd60e01b8585856040516024016118ab9392919061274e565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611ad9565b50505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16611985576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197c906129d5565b60405180910390fd5b61198d611ba8565b565b600060019054906101000a900460ff166119de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d5906129d5565b60405180910390fd5b565b6000819050919050565b6000819050919050565b6119fd81611913565b611a3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3390612975565b60405180910390fd5b80611a697f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6119e0565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611ab683611c09565b600082511180611ac35750805b15611ad457611ad28383611c58565b505b505050565b6000611b3b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16611c859092919063ffffffff16565b9050600081511115611b9b5780806020019051810190611b5b919061231a565b611b9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b91906129f5565b60405180910390fd5b5b505050565b600033905090565b600060019054906101000a900460ff16611bf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bee906129d5565b60405180910390fd5b611c07611c02611ba0565b6117c4565b565b611c12816119f4565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b6060611c7d83836040518060600160405280602781526020016130c760279139611c9d565b905092915050565b6060611c948484600085611d23565b90509392505050565b60606000808573ffffffffffffffffffffffffffffffffffffffff1685604051611cc79190612707565b600060405180830381855af49150503d8060008114611d02576040519150601f19603f3d011682016040523d82523d6000602084013e611d07565b606091505b5091509150611d1886838387611df0565b925050509392505050565b606082471015611d68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5f906128d5565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051611d919190612707565b60006040518083038185875af1925050503d8060008114611dce576040519150601f19603f3d011682016040523d82523d6000602084013e611dd3565b606091505b5091509150611de487838387611e66565b92505050949350505050565b60608315611e5357600083511415611e4b57611e0b85611913565b611e4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e41906129b5565b60405180910390fd5b5b829050611e5e565b611e5d8383611edc565b5b949350505050565b60608315611ec957600083511415611ec157611e8185611f2c565b611ec0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb7906129b5565b60405180910390fd5b5b829050611ed4565b611ed38383611f4f565b5b949350505050565b600082511115611eef5781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f239190612853565b60405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600082511115611f625781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f969190612853565b60405180910390fd5b6000611fb2611fad84612ae8565b612ac3565b905082815260208101848484011115611fce57611fcd612c90565b5b611fd9848285612bdf565b509392505050565b600081359050611ff08161306a565b92915050565b60008151905061200581613081565b92915050565b60008151905061201a81613098565b92915050565b60008083601f84011261203657612035612c86565b5b8235905067ffffffffffffffff81111561205357612052612c81565b5b60208301915083600182028301111561206f5761206e612c8b565b5b9250929050565b600082601f83011261208b5761208a612c86565b5b813561209b848260208601611f9f565b91505092915050565b6000813590506120b3816130af565b92915050565b6000815190506120c8816130af565b92915050565b6000602082840312156120e4576120e3612c9a565b5b60006120f284828501611fe1565b91505092915050565b60008060008060006080868803121561211757612116612c9a565b5b600061212588828901611fe1565b955050602061213688828901611fe1565b9450506040612147888289016120a4565b935050606086013567ffffffffffffffff81111561216857612167612c95565b5b61217488828901612020565b92509250509295509295909350565b60008060006040848603121561219c5761219b612c9a565b5b60006121aa86828701611fe1565b935050602084013567ffffffffffffffff8111156121cb576121ca612c95565b5b6121d786828701612020565b92509250509250925092565b600080604083850312156121fa576121f9612c9a565b5b600061220885828601611fe1565b925050602083013567ffffffffffffffff81111561222957612228612c95565b5b61223585828601612076565b9150509250929050565b60008060006060848603121561225857612257612c9a565b5b600061226686828701611fe1565b9350506020612277868287016120a4565b925050604061228886828701611fe1565b9150509250925092565b6000806000806000608086880312156122ae576122ad612c9a565b5b60006122bc88828901611fe1565b95505060206122cd888289016120a4565b94505060406122de88828901611fe1565b935050606086013567ffffffffffffffff8111156122ff576122fe612c95565b5b61230b88828901612020565b92509250509295509295909350565b6000602082840312156123305761232f612c9a565b5b600061233e84828501611ff6565b91505092915050565b60006020828403121561235d5761235c612c9a565b5b600061236b8482850161200b565b91505092915050565b60006020828403121561238a57612389612c9a565b5b6000612398848285016120b9565b91505092915050565b6123aa81612b5c565b82525050565b6123b981612b7a565b82525050565b60006123cb8385612b2f565b93506123d8838584612bdf565b6123e183612c9f565b840190509392505050565b60006123f88385612b40565b9350612405838584612bdf565b82840190509392505050565b600061241c82612b19565b6124268185612b2f565b9350612436818560208601612bee565b61243f81612c9f565b840191505092915050565b600061245582612b19565b61245f8185612b40565b935061246f818560208601612bee565b80840191505092915050565b61248481612bbb565b82525050565b61249381612bcd565b82525050565b60006124a482612b24565b6124ae8185612b4b565b93506124be818560208601612bee565b6124c781612c9f565b840191505092915050565b60006124df602683612b4b565b91506124ea82612cb0565b604082019050919050565b6000612502602c83612b4b565b915061250d82612cff565b604082019050919050565b6000612525602c83612b4b565b915061253082612d4e565b604082019050919050565b6000612548602683612b4b565b915061255382612d9d565b604082019050919050565b600061256b603883612b4b565b915061257682612dec565b604082019050919050565b600061258e602983612b4b565b915061259982612e3b565b604082019050919050565b60006125b1602e83612b4b565b91506125bc82612e8a565b604082019050919050565b60006125d4602e83612b4b565b91506125df82612ed9565b604082019050919050565b60006125f7602d83612b4b565b915061260282612f28565b604082019050919050565b600061261a602083612b4b565b915061262582612f77565b602082019050919050565b600061263d600083612b2f565b915061264882612fa0565b600082019050919050565b6000612660600083612b40565b915061266b82612fa0565b600082019050919050565b6000612683601d83612b4b565b915061268e82612fa3565b602082019050919050565b60006126a6602b83612b4b565b91506126b182612fcc565b604082019050919050565b60006126c9602a83612b4b565b91506126d48261301b565b604082019050919050565b6126e881612ba4565b82525050565b60006126fb8284866123ec565b91508190509392505050565b6000612713828461244a565b915081905092915050565b600061272982612653565b9150819050919050565b600060208201905061274860008301846123a1565b92915050565b600060608201905061276360008301866123a1565b61277060208301856123a1565b61277d60408301846126df565b949350505050565b600060408201905061279a60008301856123a1565b6127a7602083018461247b565b9392505050565b60006040820190506127c360008301856123a1565b6127d060208301846126df565b9392505050565b60006020820190506127ec60008301846123b0565b92915050565b6000602082019050818103600083015261280d8184866123bf565b90509392505050565b600060208201905081810360008301526128308184612411565b905092915050565b600060208201905061284d600083018461248a565b92915050565b6000602082019050818103600083015261286d8184612499565b905092915050565b6000602082019050818103600083015261288e816124d2565b9050919050565b600060208201905081810360008301526128ae816124f5565b9050919050565b600060208201905081810360008301526128ce81612518565b9050919050565b600060208201905081810360008301526128ee8161253b565b9050919050565b6000602082019050818103600083015261290e8161255e565b9050919050565b6000602082019050818103600083015261292e81612581565b9050919050565b6000602082019050818103600083015261294e816125a4565b9050919050565b6000602082019050818103600083015261296e816125c7565b9050919050565b6000602082019050818103600083015261298e816125ea565b9050919050565b600060208201905081810360008301526129ae8161260d565b9050919050565b600060208201905081810360008301526129ce81612676565b9050919050565b600060208201905081810360008301526129ee81612699565b9050919050565b60006020820190508181036000830152612a0e816126bc565b9050919050565b6000606082019050612a2a60008301876126df565b612a3760208301866123a1565b8181036040830152612a4a8184866123bf565b905095945050505050565b6000606082019050612a6a60008301856126df565b612a7760208301846123a1565b8181036040830152612a8881612630565b90509392505050565b6000604082019050612aa660008301866126df565b8181036020830152612ab98184866123bf565b9050949350505050565b6000612acd612ade565b9050612ad98282612c21565b919050565b6000604051905090565b600067ffffffffffffffff821115612b0357612b02612c52565b5b612b0c82612c9f565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000612b6782612b84565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612bc682612ba4565b9050919050565b6000612bd882612bae565b9050919050565b82818337600083830152505050565b60005b83811015612c0c578082015181840152602081019050612bf1565b83811115612c1b576000848401525b50505050565b612c2a82612c9f565b810181811067ffffffffffffffff82111715612c4957612c48612c52565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f64656c656761746563616c6c0000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f6163746976652070726f78790000000000000000000000000000000000000000602082015250565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f555550535570677261646561626c653a206d757374206e6f742062652063616c60008201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000602082015250565b7f45524331393637557067726164653a20756e737570706f727465642070726f7860008201527f6961626c65555549440000000000000000000000000000000000000000000000602082015250565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f45524331393637557067726164653a206e657720696d706c656d656e7461746960008201527f6f6e206973206e6f742055555053000000000000000000000000000000000000602082015250565b7f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60008201527f6f74206120636f6e747261637400000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b61307381612b5c565b811461307e57600080fd5b50565b61308a81612b6e565b811461309557600080fd5b50565b6130a181612b7a565b81146130ac57600080fd5b50565b6130b881612ba4565b81146130c357600080fd5b5056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220154452ab17b7ec6558ae20cf0777deee4780b8e192489db9d10e2ac9e3d689a364736f6c6343000807003360806040523480156200001157600080fd5b506040516200109038038062001090833981810160405281019062000037919062000106565b6001600081905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620000a7576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506200018b565b600081519050620001008162000171565b92915050565b6000602082840312156200011f576200011e6200016c565b5b60006200012f84828501620000ef565b91505092915050565b600062000145826200014c565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6200017c8162000138565b81146200018857600080fd5b50565b610ef5806200019b6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063116191b61461004657806321fc65f214610064578063d9caed1214610080575b600080fd5b61004e61009c565b60405161005b9190610a98565b60405180910390f35b61007e600480360381019061007991906107bc565b6100c2565b005b61009a60048036038101906100959190610769565b61024a565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6100ca6102ef565b610117600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848773ffffffffffffffffffffffffffffffffffffffff1661033f9092919063ffffffff16565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635131ab5986868686866040518663ffffffff1660e01b815260040161017a959493929190610a21565b600060405180830381600087803b15801561019457600080fd5b505af11580156101a8573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906101d19190610871565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e85858560405161023393929190610b70565b60405180910390a36102436103c5565b5050505050565b6102526102ef565b61027d82828573ffffffffffffffffffffffffffffffffffffffff1661033f9092919063ffffffff16565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb836040516102da9190610b55565b60405180910390a36102ea6103c5565b505050565b60026000541415610335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032c90610b35565b60405180910390fd5b6002600081905550565b6103c08363a9059cbb60e01b848460405160240161035e929190610a6f565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506103cf565b505050565b6001600081905550565b6000610431826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166104969092919063ffffffff16565b905060008151111561049157808060200190518101906104519190610844565b610490576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048790610b15565b60405180910390fd5b5b505050565b60606104a584846000856104ae565b90509392505050565b6060824710156104f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ea90610ad5565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161051c9190610a0a565b60006040518083038185875af1925050503d8060008114610559576040519150601f19603f3d011682016040523d82523d6000602084013e61055e565b606091505b509150915061056f8783838761057b565b92505050949350505050565b606083156105de576000835114156105d657610596856105f1565b6105d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105cc90610af5565b60405180910390fd5b5b8290506105e9565b6105e88383610614565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156106275781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065b9190610ab3565b60405180910390fd5b600061067761067284610bc7565b610ba2565b90508281526020810184848401111561069357610692610d6a565b5b61069e848285610cc8565b509392505050565b6000813590506106b581610e7a565b92915050565b6000815190506106ca81610e91565b92915050565b60008083601f8401126106e6576106e5610d60565b5b8235905067ffffffffffffffff81111561070357610702610d5b565b5b60208301915083600182028301111561071f5761071e610d65565b5b9250929050565b600082601f83011261073b5761073a610d60565b5b815161074b848260208601610664565b91505092915050565b60008135905061076381610ea8565b92915050565b60008060006060848603121561078257610781610d74565b5b6000610790868287016106a6565b93505060206107a1868287016106a6565b92505060406107b286828701610754565b9150509250925092565b6000806000806000608086880312156107d8576107d7610d74565b5b60006107e6888289016106a6565b95505060206107f7888289016106a6565b945050604061080888828901610754565b935050606086013567ffffffffffffffff81111561082957610828610d6f565b5b610835888289016106d0565b92509250509295509295909350565b60006020828403121561085a57610859610d74565b5b6000610868848285016106bb565b91505092915050565b60006020828403121561088757610886610d74565b5b600082015167ffffffffffffffff8111156108a5576108a4610d6f565b5b6108b184828501610726565b91505092915050565b6108c381610c3b565b82525050565b60006108d58385610c0e565b93506108e2838584610cb9565b6108eb83610d79565b840190509392505050565b600061090182610bf8565b61090b8185610c1f565b935061091b818560208601610cc8565b80840191505092915050565b61093081610c83565b82525050565b600061094182610c03565b61094b8185610c2a565b935061095b818560208601610cc8565b61096481610d79565b840191505092915050565b600061097c602683610c2a565b915061098782610d8a565b604082019050919050565b600061099f601d83610c2a565b91506109aa82610dd9565b602082019050919050565b60006109c2602a83610c2a565b91506109cd82610e02565b604082019050919050565b60006109e5601f83610c2a565b91506109f082610e51565b602082019050919050565b610a0481610c79565b82525050565b6000610a1682846108f6565b915081905092915050565b6000608082019050610a3660008301886108ba565b610a4360208301876108ba565b610a5060408301866109fb565b8181036060830152610a638184866108c9565b90509695505050505050565b6000604082019050610a8460008301856108ba565b610a9160208301846109fb565b9392505050565b6000602082019050610aad6000830184610927565b92915050565b60006020820190508181036000830152610acd8184610936565b905092915050565b60006020820190508181036000830152610aee8161096f565b9050919050565b60006020820190508181036000830152610b0e81610992565b9050919050565b60006020820190508181036000830152610b2e816109b5565b9050919050565b60006020820190508181036000830152610b4e816109d8565b9050919050565b6000602082019050610b6a60008301846109fb565b92915050565b6000604082019050610b8560008301866109fb565b8181036020830152610b988184866108c9565b9050949350505050565b6000610bac610bbd565b9050610bb88282610cfb565b919050565b6000604051905090565b600067ffffffffffffffff821115610be257610be1610d2c565b5b610beb82610d79565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000610c4682610c59565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610c8e82610c95565b9050919050565b6000610ca082610ca7565b9050919050565b6000610cb282610c59565b9050919050565b82818337600083830152505050565b60005b83811015610ce6578082015181840152602081019050610ccb565b83811115610cf5576000848401525b50505050565b610d0482610d79565b810181811067ffffffffffffffff82111715610d2357610d22610d2c565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b610e8381610c3b565b8114610e8e57600080fd5b50565b610e9a81610c4d565b8114610ea557600080fd5b50565b610eb181610c79565b8114610ebc57600080fd5b5056fea2646970667358221220c6f7c0f9935341aaaabcabf7504d01bbd38a0606132004742a97e6a200eb432564736f6c63430008070033a26469706673582212205276a06083a66336c3a9855d369b9661cebdc0d261752bda69a28038ccb1c94164736f6c63430008070033"; - -type GatewayEVMTestConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: GatewayEVMTestConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class GatewayEVMTest__factory extends ContractFactory { - constructor(...args: GatewayEVMTestConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override deploy( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy(overrides || {}) as Promise; - } - override getDeployTransaction( - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); - } - override attach(address: string): GatewayEVMTest { - return super.attach(address) as GatewayEVMTest; - } - override connect(signer: Signer): GatewayEVMTest__factory { - return super.connect(signer) as GatewayEVMTest__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): GatewayEVMTestInterface { - return new utils.Interface(_abi) as GatewayEVMTestInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): GatewayEVMTest { - return new Contract(address, _abi, signerOrProvider) as GatewayEVMTest; - } -} diff --git a/typechain-types/factories/contracts/prototypes/evm/GatewayEVM.t.sol/index.ts b/typechain-types/factories/contracts/prototypes/evm/GatewayEVM.t.sol/index.ts deleted file mode 100644 index 9427818e..00000000 --- a/typechain-types/factories/contracts/prototypes/evm/GatewayEVM.t.sol/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { GatewayEVMTest__factory } from "./GatewayEVMTest__factory"; diff --git a/typechain-types/factories/contracts/prototypes/evm/GatewayEVMEchidnaTest__factory.ts b/typechain-types/factories/contracts/prototypes/evm/GatewayEVMEchidnaTest__factory.ts deleted file mode 100644 index 8f1ef1a7..00000000 --- a/typechain-types/factories/contracts/prototypes/evm/GatewayEVMEchidnaTest__factory.ts +++ /dev/null @@ -1,638 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../../common"; -import type { - GatewayEVMEchidnaTest, - GatewayEVMEchidnaTestInterface, -} from "../../../../contracts/prototypes/evm/GatewayEVMEchidnaTest"; - -const _abi = [ - { - inputs: [], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [], - name: "ApprovalFailed", - type: "error", - }, - { - inputs: [], - name: "CustodyInitialized", - type: "error", - }, - { - inputs: [], - name: "DepositFailed", - type: "error", - }, - { - inputs: [], - name: "ExecutionFailed", - type: "error", - }, - { - inputs: [], - name: "InsufficientERC20Amount", - type: "error", - }, - { - inputs: [], - name: "InsufficientETHAmount", - type: "error", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "previousAdmin", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "newAdmin", - type: "address", - }, - ], - name: "AdminChanged", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "beacon", - type: "address", - }, - ], - name: "BeaconUpgraded", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "receiver", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "payload", - type: "bytes", - }, - ], - name: "Call", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "receiver", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "asset", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "payload", - type: "bytes", - }, - ], - name: "Deposit", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "destination", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "Executed", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "ExecutedWithERC20", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint8", - name: "version", - type: "uint8", - }, - ], - name: "Initialized", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "previousOwner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "newOwner", - type: "address", - }, - ], - name: "OwnershipTransferred", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "implementation", - type: "address", - }, - ], - name: "Upgraded", - type: "event", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - { - internalType: "bytes", - name: "payload", - type: "bytes", - }, - ], - name: "call", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "custody", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - ], - name: "deposit", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - ], - name: "deposit", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - { - internalType: "bytes", - name: "payload", - type: "bytes", - }, - ], - name: "depositAndCall", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "bytes", - name: "payload", - type: "bytes", - }, - ], - name: "depositAndCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "echidnaCaller", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "destination", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "execute", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "executeWithERC20", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_tssAddress", - type: "address", - }, - ], - name: "initialize", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "owner", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "proxiableUUID", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "renounceOwnership", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_custody", - type: "address", - }, - ], - name: "setCustody", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "testERC20", - outputs: [ - { - internalType: "contract TestERC20", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "testExecuteWithERC20", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newOwner", - type: "address", - }, - ], - name: "transferOwnership", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "tssAddress", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newImplementation", - type: "address", - }, - ], - name: "upgradeTo", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newImplementation", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "upgradeToAndCall", - outputs: [], - stateMutability: "payable", - type: "function", - }, -] as const; - -const _bytecode = - "0x60a06040523073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152503360cc60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200008857600080fd5b50620000bc60cc60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620001b260201b60201c565b604051620000ca90620005e6565b620000d5906200071c565b604051809103906000f080158015620000f2573d6000803e3d6000fd5b5060cb60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550306040516200014290620005f4565b6200014e9190620006c0565b604051809103906000f0801580156200016b573d6000803e3d6000fd5b5060c960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620008cb565b60008060019054906101000a900460ff16159050808015620001e45750600160008054906101000a900460ff1660ff16105b806200022057506200020130620003c960201b620015fe1760201c565b1580156200021f5750600160008054906101000a900460ff1660ff16145b5b62000262576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200025990620006fa565b60405180910390fd5b60016000806101000a81548160ff021916908360ff1602179055508015620002a0576001600060016101000a81548160ff0219169083151502179055505b620002b0620003ec60201b60201c565b620002c06200045060201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000328576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8160ca60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508015620003c55760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986001604051620003bc9190620006dd565b60405180910390a15b5050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff166200043e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004359062000753565b60405180910390fd5b6200044e620004a460201b60201c565b565b600060019054906101000a900460ff16620004a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004999062000753565b60405180910390fd5b565b600060019054906101000a900460ff16620004f6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004ed9062000753565b60405180910390fd5b620005166200050a6200051860201b60201c565b6200052060201b60201c565b565b600033905090565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6118138062003d9883390190565b61109080620055ab83390190565b6200060d8162000786565b82525050565b6200061e81620007c7565b82525050565b600062000633602e8362000775565b91506200064082620007db565b604082019050919050565b60006200065a60048362000775565b915062000667826200082a565b602082019050919050565b60006200068160048362000775565b91506200068e8262000853565b602082019050919050565b6000620006a8602b8362000775565b9150620006b5826200087c565b604082019050919050565b6000602082019050620006d7600083018462000602565b92915050565b6000602082019050620006f4600083018462000613565b92915050565b60006020820190508181036000830152620007158162000624565b9050919050565b60006040820190508181036000830152620007378162000672565b905081810360208301526200074c816200064b565b9050919050565b600060208201905081810360008301526200076e8162000699565b9050919050565b600082825260208201905092915050565b600062000793826200079a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600060ff82169050919050565b6000620007d482620007ba565b9050919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f5445535400000000000000000000000000000000000000000000000000000000600082015250565b7f7465737400000000000000000000000000000000000000000000000000000000600082015250565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b60805160601c613492620009066000396000818161069c0152818161072b0152818161084b015281816108da0152610c7401526134926000f3fe60806040526004361061011f5760003560e01c8063715018a6116100a0578063c4d66de811610064578063c4d66de814610384578063dda79b75146103ad578063f2fde38b146103d8578063f340fa0114610401578063f45346dc1461041d5761011f565b8063715018a6146102c557806381100bf0146102dc5780638c6f037f146103075780638da5cb5b14610330578063ae7a3a6f1461035b5761011f565b80634f1ef286116100e75780634f1ef286146101ed5780635131ab591461020957806352d1902d146102465780635b112591146102715780636ab90f9b1461029c5761011f565b80631b8b921d146101245780631cff79cd1461014d57806329c59b5d1461017d5780633659cfe6146101995780633c2f05a8146101c2575b600080fd5b34801561013057600080fd5b5061014b600480360381019061014691906123ef565b610446565b005b610167600480360381019061016291906123ef565b6104b2565b6040516101749190612b05565b60405180910390f35b610197600480360381019061019291906123ef565b610520565b005b3480156101a557600080fd5b506101c060048036038101906101bb919061233a565b61069a565b005b3480156101ce57600080fd5b506101d7610823565b6040516101e49190612b27565b60405180910390f35b6102076004803603810190610202919061244f565b610849565b005b34801561021557600080fd5b50610230600480360381019061022b9190612367565b610986565b60405161023d9190612b05565b60405180910390f35b34801561025257600080fd5b5061025b610c70565b6040516102689190612ac6565b60405180910390f35b34801561027d57600080fd5b50610286610d29565b6040516102939190612a22565b60405180910390f35b3480156102a857600080fd5b506102c360048036038101906102be9190612586565b610d4f565b005b3480156102d157600080fd5b506102da610ecf565b005b3480156102e857600080fd5b506102f1610ee3565b6040516102fe9190612a22565b60405180910390f35b34801561031357600080fd5b5061032e600480360381019061032991906124fe565b610f09565b005b34801561033c57600080fd5b50610345611005565b6040516103529190612a22565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d919061233a565b61102f565b005b34801561039057600080fd5b506103ab60048036038101906103a6919061233a565b6110fb565b005b3480156103b957600080fd5b506103c26112ea565b6040516103cf9190612a22565b60405180910390f35b3480156103e457600080fd5b506103ff60048036038101906103fa919061233a565b611310565b005b61041b6004803603810190610416919061233a565b611394565b005b34801561042957600080fd5b50610444600480360381019061043f91906124ab565b611508565b005b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde384846040516104a5929190612ae1565b60405180910390a3505050565b606060006104c1858585611621565b90508473ffffffffffffffffffffffffffffffffffffffff167fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f34868660405161050d93929190612d9b565b60405180910390a2809150509392505050565b600034141561055b576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16346040516105a390612a0d565b60006040518083038185875af1925050503d80600081146105e0576040519150601f19603f3d011682016040523d82523d6000602084013e6105e5565b606091505b50509050600015158115151415610628576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4346000878760405161068c9493929190612d1f565b60405180910390a350505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610729576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072090612b9f565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166107686116d8565b73ffffffffffffffffffffffffffffffffffffffff16146107be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b590612bbf565b60405180910390fd5b6107c78161172f565b61082081600067ffffffffffffffff8111156107e6576107e5612fc1565b5b6040519080825280601f01601f1916602001820160405280156108185781602001600182028036833780820191505090505b50600061173a565b50565b60cb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614156108d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108cf90612b9f565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166109176116d8565b73ffffffffffffffffffffffffffffffffffffffff161461096d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096490612bbf565b60405180910390fd5b6109768261172f565b6109828282600161173a565b5050565b606060008414156109c3576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109cd86866118b7565b610a03576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff1663095ea7b386866040518363ffffffff1660e01b8152600401610a3e929190612a9d565b602060405180830381600087803b158015610a5857600080fd5b505af1158015610a6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9091906125fa565b610ac6576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610ad3868585611621565b9050610adf87876118b7565b610b15576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610b509190612a22565b60206040518083038186803b158015610b6857600080fd5b505afa158015610b7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba09190612654565b90506000811115610bf957610bf860c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828a73ffffffffffffffffffffffffffffffffffffffff1661194f9092919063ffffffff16565b5b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382888888604051610c5a93929190612d9b565b60405180910390a3819250505095945050505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614610d00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf790612bff565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b905090565b60ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60cb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1930856040518363ffffffff1660e01b8152600401610dac929190612a9d565b600060405180830381600087803b158015610dc657600080fd5b505af1158015610dda573d6000803e3d6000fd5b50505050610e0d60cb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685858585610986565b50600060cb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610e6b9190612a22565b60206040518083038186803b158015610e8357600080fd5b505afa158015610e97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebb9190612654565b14610ec957610ec8612f92565b5b50505050565b610ed76119d5565b610ee16000611a53565b565b60cc60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000841415610f44576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f933360c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16868673ffffffffffffffffffffffffffffffffffffffff16611b19909392919063ffffffff16565b8473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a486868686604051610ff69493929190612d1f565b60405180910390a35050505050565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff1660c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b7576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060c960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060019054906101000a900460ff1615905080801561112c5750600160008054906101000a900460ff1660ff16105b80611159575061113b306115fe565b1580156111585750600160008054906101000a900460ff1660ff16145b5b611198576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118f90612c3f565b60405180910390fd5b60016000806101000a81548160ff021916908360ff16021790555080156111d5576001600060016101000a81548160ff0219169083151502179055505b6111dd611ba2565b6111e5611bfb565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561124c576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8160ca60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080156112e65760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860016040516112dd9190612b42565b60405180910390a15b5050565b60c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6113186119d5565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611388576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137f90612b7f565b60405180910390fd5b61139181611a53565b50565b60003414156113cf576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163460405161141790612a0d565b60006040518083038185875af1925050503d8060008114611454576040519150601f19603f3d011682016040523d82523d6000602084013e611459565b606091505b5050905060001515811515141561149c576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a43460006040516114fc929190612d5f565b60405180910390a35050565b6000821415611543576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6115923360c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848473ffffffffffffffffffffffffffffffffffffffff16611b19909392919063ffffffff16565b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a484846040516115f1929190612d5f565b60405180910390a3505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60606000808573ffffffffffffffffffffffffffffffffffffffff1634868660405161164e9291906129dd565b60006040518083038185875af1925050503d806000811461168b576040519150601f19603f3d011682016040523d82523d6000602084013e611690565b606091505b5091509150816116cc576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80925050509392505050565b60006117067f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b611c4c565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6117376119d5565b50565b6117667f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914360001b611c56565b60000160009054906101000a900460ff161561178a5761178583611c60565b6118b2565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156117d057600080fd5b505afa92505050801561180157506040513d601f19601f820116820180604052508101906117fe9190612627565b60015b611840576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183790612c5f565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b81146118a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189c90612c1f565b60405180910390fd5b506118b1838383611d19565b5b505050565b60008273ffffffffffffffffffffffffffffffffffffffff1663095ea7b38360006040518363ffffffff1660e01b81526004016118f5929190612a74565b602060405180830381600087803b15801561190f57600080fd5b505af1158015611923573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194791906125fa565b905092915050565b6119d08363a9059cbb60e01b848460405160240161196e929190612a9d565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611d45565b505050565b6119dd611e0c565b73ffffffffffffffffffffffffffffffffffffffff166119fb611005565b73ffffffffffffffffffffffffffffffffffffffff1614611a51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4890612c9f565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611b9c846323b872dd60e01b858585604051602401611b3a93929190612a3d565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611d45565b50505050565b600060019054906101000a900460ff16611bf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be890612cdf565b60405180910390fd5b611bf9611e14565b565b600060019054906101000a900460ff16611c4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4190612cdf565b60405180910390fd5b565b6000819050919050565b6000819050919050565b611c69816115fe565b611ca8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9f90612c7f565b60405180910390fd5b80611cd57f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b611c4c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611d2283611e75565b600082511180611d2f5750805b15611d4057611d3e8383611ec4565b505b505050565b6000611da7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16611ef19092919063ffffffff16565b9050600081511115611e075780806020019051810190611dc791906125fa565b611e06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfd90612cff565b60405180910390fd5b5b505050565b600033905090565b600060019054906101000a900460ff16611e63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5a90612cdf565b60405180910390fd5b611e73611e6e611e0c565b611a53565b565b611e7e81611c60565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b6060611ee9838360405180606001604052806027815260200161343660279139611f09565b905092915050565b6060611f008484600085611f8f565b90509392505050565b60606000808573ffffffffffffffffffffffffffffffffffffffff1685604051611f3391906129f6565b600060405180830381855af49150503d8060008114611f6e576040519150601f19603f3d011682016040523d82523d6000602084013e611f73565b606091505b5091509150611f848683838761205c565b925050509392505050565b606082471015611fd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fcb90612bdf565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051611ffd91906129f6565b60006040518083038185875af1925050503d806000811461203a576040519150601f19603f3d011682016040523d82523d6000602084013e61203f565b606091505b5091509150612050878383876120d2565b92505050949350505050565b606083156120bf576000835114156120b757612077856115fe565b6120b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ad90612cbf565b60405180910390fd5b5b8290506120ca565b6120c98383612148565b5b949350505050565b606083156121355760008351141561212d576120ed85612198565b61212c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212390612cbf565b60405180910390fd5b5b829050612140565b61213f83836121bb565b5b949350505050565b60008251111561215b5781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218f9190612b5d565b60405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156121ce5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122029190612b5d565b60405180910390fd5b600061221e61221984612df2565b612dcd565b90508281526020810184848401111561223a57612239612fff565b5b612245848285612f1f565b509392505050565b60008135905061225c816133d9565b92915050565b600081519050612271816133f0565b92915050565b60008151905061228681613407565b92915050565b60008083601f8401126122a2576122a1612ff5565b5b8235905067ffffffffffffffff8111156122bf576122be612ff0565b5b6020830191508360018202830111156122db576122da612ffa565b5b9250929050565b600082601f8301126122f7576122f6612ff5565b5b813561230784826020860161220b565b91505092915050565b60008135905061231f8161341e565b92915050565b6000815190506123348161341e565b92915050565b6000602082840312156123505761234f613009565b5b600061235e8482850161224d565b91505092915050565b60008060008060006080868803121561238357612382613009565b5b60006123918882890161224d565b95505060206123a28882890161224d565b94505060406123b388828901612310565b935050606086013567ffffffffffffffff8111156123d4576123d3613004565b5b6123e08882890161228c565b92509250509295509295909350565b60008060006040848603121561240857612407613009565b5b60006124168682870161224d565b935050602084013567ffffffffffffffff81111561243757612436613004565b5b6124438682870161228c565b92509250509250925092565b6000806040838503121561246657612465613009565b5b60006124748582860161224d565b925050602083013567ffffffffffffffff81111561249557612494613004565b5b6124a1858286016122e2565b9150509250929050565b6000806000606084860312156124c4576124c3613009565b5b60006124d28682870161224d565b93505060206124e386828701612310565b92505060406124f48682870161224d565b9150509250925092565b60008060008060006080868803121561251a57612519613009565b5b60006125288882890161224d565b955050602061253988828901612310565b945050604061254a8882890161224d565b935050606086013567ffffffffffffffff81111561256b5761256a613004565b5b6125778882890161228c565b92509250509295509295909350565b600080600080606085870312156125a05761259f613009565b5b60006125ae8782880161224d565b94505060206125bf87828801612310565b935050604085013567ffffffffffffffff8111156125e0576125df613004565b5b6125ec8782880161228c565b925092505092959194509250565b6000602082840312156126105761260f613009565b5b600061261e84828501612262565b91505092915050565b60006020828403121561263d5761263c613009565b5b600061264b84828501612277565b91505092915050565b60006020828403121561266a57612669613009565b5b600061267884828501612325565b91505092915050565b61268a81612e66565b82525050565b61269981612e84565b82525050565b60006126ab8385612e39565b93506126b8838584612f1f565b6126c18361300e565b840190509392505050565b60006126d88385612e4a565b93506126e5838584612f1f565b82840190509392505050565b60006126fc82612e23565b6127068185612e39565b9350612716818560208601612f2e565b61271f8161300e565b840191505092915050565b600061273582612e23565b61273f8185612e4a565b935061274f818560208601612f2e565b80840191505092915050565b61276481612ec5565b82525050565b61277381612ed7565b82525050565b61278281612ee9565b82525050565b600061279382612e2e565b61279d8185612e55565b93506127ad818560208601612f2e565b6127b68161300e565b840191505092915050565b60006127ce602683612e55565b91506127d98261301f565b604082019050919050565b60006127f1602c83612e55565b91506127fc8261306e565b604082019050919050565b6000612814602c83612e55565b915061281f826130bd565b604082019050919050565b6000612837602683612e55565b91506128428261310c565b604082019050919050565b600061285a603883612e55565b91506128658261315b565b604082019050919050565b600061287d602983612e55565b9150612888826131aa565b604082019050919050565b60006128a0602e83612e55565b91506128ab826131f9565b604082019050919050565b60006128c3602e83612e55565b91506128ce82613248565b604082019050919050565b60006128e6602d83612e55565b91506128f182613297565b604082019050919050565b6000612909602083612e55565b9150612914826132e6565b602082019050919050565b600061292c600083612e39565b91506129378261330f565b600082019050919050565b600061294f600083612e4a565b915061295a8261330f565b600082019050919050565b6000612972601d83612e55565b915061297d82613312565b602082019050919050565b6000612995602b83612e55565b91506129a08261333b565b604082019050919050565b60006129b8602a83612e55565b91506129c38261338a565b604082019050919050565b6129d781612eae565b82525050565b60006129ea8284866126cc565b91508190509392505050565b6000612a02828461272a565b915081905092915050565b6000612a1882612942565b9150819050919050565b6000602082019050612a376000830184612681565b92915050565b6000606082019050612a526000830186612681565b612a5f6020830185612681565b612a6c60408301846129ce565b949350505050565b6000604082019050612a896000830185612681565b612a96602083018461276a565b9392505050565b6000604082019050612ab26000830185612681565b612abf60208301846129ce565b9392505050565b6000602082019050612adb6000830184612690565b92915050565b60006020820190508181036000830152612afc81848661269f565b90509392505050565b60006020820190508181036000830152612b1f81846126f1565b905092915050565b6000602082019050612b3c600083018461275b565b92915050565b6000602082019050612b576000830184612779565b92915050565b60006020820190508181036000830152612b778184612788565b905092915050565b60006020820190508181036000830152612b98816127c1565b9050919050565b60006020820190508181036000830152612bb8816127e4565b9050919050565b60006020820190508181036000830152612bd881612807565b9050919050565b60006020820190508181036000830152612bf88161282a565b9050919050565b60006020820190508181036000830152612c188161284d565b9050919050565b60006020820190508181036000830152612c3881612870565b9050919050565b60006020820190508181036000830152612c5881612893565b9050919050565b60006020820190508181036000830152612c78816128b6565b9050919050565b60006020820190508181036000830152612c98816128d9565b9050919050565b60006020820190508181036000830152612cb8816128fc565b9050919050565b60006020820190508181036000830152612cd881612965565b9050919050565b60006020820190508181036000830152612cf881612988565b9050919050565b60006020820190508181036000830152612d18816129ab565b9050919050565b6000606082019050612d3460008301876129ce565b612d416020830186612681565b8181036040830152612d5481848661269f565b905095945050505050565b6000606082019050612d7460008301856129ce565b612d816020830184612681565b8181036040830152612d928161291f565b90509392505050565b6000604082019050612db060008301866129ce565b8181036020830152612dc381848661269f565b9050949350505050565b6000612dd7612de8565b9050612de38282612f61565b919050565b6000604051905090565b600067ffffffffffffffff821115612e0d57612e0c612fc1565b5b612e168261300e565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000612e7182612e8e565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612ed082612efb565b9050919050565b6000612ee282612eae565b9050919050565b6000612ef482612eb8565b9050919050565b6000612f0682612f0d565b9050919050565b6000612f1882612e8e565b9050919050565b82818337600083830152505050565b60005b83811015612f4c578082015181840152602081019050612f31565b83811115612f5b576000848401525b50505050565b612f6a8261300e565b810181811067ffffffffffffffff82111715612f8957612f88612fc1565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f64656c656761746563616c6c0000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f6163746976652070726f78790000000000000000000000000000000000000000602082015250565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f555550535570677261646561626c653a206d757374206e6f742062652063616c60008201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000602082015250565b7f45524331393637557067726164653a20756e737570706f727465642070726f7860008201527f6961626c65555549440000000000000000000000000000000000000000000000602082015250565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f45524331393637557067726164653a206e657720696d706c656d656e7461746960008201527f6f6e206973206e6f742055555053000000000000000000000000000000000000602082015250565b7f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60008201527f6f74206120636f6e747261637400000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6133e281612e66565b81146133ed57600080fd5b50565b6133f981612e78565b811461340457600080fd5b50565b61341081612e84565b811461341b57600080fd5b50565b61342781612eae565b811461343257600080fd5b5056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220f112d5efe1e763268f5c92f76775b109b07e2274abe56f58b212deae1f64ee6464736f6c6343000807003360806040523480156200001157600080fd5b5060405162001813380380620018138339818101604052810190620000379190620001a3565b818181600390805190602001906200005192919062000075565b5080600490805190602001906200006a92919062000075565b5050505050620003ac565b8280546200008390620002bd565b90600052602060002090601f016020900481019282620000a75760008555620000f3565b82601f10620000c257805160ff1916838001178555620000f3565b82800160010185558215620000f3579182015b82811115620000f2578251825591602001919060010190620000d5565b5b50905062000102919062000106565b5090565b5b808211156200012157600081600090555060010162000107565b5090565b60006200013c620001368462000251565b62000228565b9050828152602081018484840111156200015b576200015a6200038c565b5b6200016884828562000287565b509392505050565b600082601f83011262000188576200018762000387565b5b81516200019a84826020860162000125565b91505092915050565b60008060408385031215620001bd57620001bc62000396565b5b600083015167ffffffffffffffff811115620001de57620001dd62000391565b5b620001ec8582860162000170565b925050602083015167ffffffffffffffff81111562000210576200020f62000391565b5b6200021e8582860162000170565b9150509250929050565b60006200023462000247565b9050620002428282620002f3565b919050565b6000604051905090565b600067ffffffffffffffff8211156200026f576200026e62000358565b5b6200027a826200039b565b9050602081019050919050565b60005b83811015620002a75780820151818401526020810190506200028a565b83811115620002b7576000848401525b50505050565b60006002820490506001821680620002d657607f821691505b60208210811415620002ed57620002ec62000329565b5b50919050565b620002fe826200039b565b810181811067ffffffffffffffff8211171562000320576200031f62000358565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b61145780620003bc6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806340c10f191161007157806340c10f19146101a357806370a08231146101bf57806395d89b41146101ef578063a457c2d71461020d578063a9059cbb1461023d578063dd62ed3e1461026d576100b4565b806306fdde03146100b9578063095ea7b3146100d757806318160ddd1461010757806323b872dd14610125578063313ce567146101555780633950935114610173575b600080fd5b6100c161029d565b6040516100ce9190610ecf565b60405180910390f35b6100f160048036038101906100ec9190610cf6565b61032f565b6040516100fe9190610eb4565b60405180910390f35b61010f610352565b60405161011c9190610ff1565b60405180910390f35b61013f600480360381019061013a9190610ca3565b61035c565b60405161014c9190610eb4565b60405180910390f35b61015d61038b565b60405161016a919061100c565b60405180910390f35b61018d60048036038101906101889190610cf6565b610394565b60405161019a9190610eb4565b60405180910390f35b6101bd60048036038101906101b89190610cf6565b6103cb565b005b6101d960048036038101906101d49190610c36565b6103d9565b6040516101e69190610ff1565b60405180910390f35b6101f7610421565b6040516102049190610ecf565b60405180910390f35b61022760048036038101906102229190610cf6565b6104b3565b6040516102349190610eb4565b60405180910390f35b61025760048036038101906102529190610cf6565b61052a565b6040516102649190610eb4565b60405180910390f35b61028760048036038101906102829190610c63565b61054d565b6040516102949190610ff1565b60405180910390f35b6060600380546102ac90611121565b80601f01602080910402602001604051908101604052809291908181526020018280546102d890611121565b80156103255780601f106102fa57610100808354040283529160200191610325565b820191906000526020600020905b81548152906001019060200180831161030857829003601f168201915b5050505050905090565b60008061033a6105d4565b90506103478185856105dc565b600191505092915050565b6000600254905090565b6000806103676105d4565b90506103748582856107a7565b61037f858585610833565b60019150509392505050565b60006012905090565b60008061039f6105d4565b90506103c08185856103b1858961054d565b6103bb9190611043565b6105dc565b600191505092915050565b6103d58282610aab565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461043090611121565b80601f016020809104026020016040519081016040528092919081815260200182805461045c90611121565b80156104a95780601f1061047e576101008083540402835291602001916104a9565b820191906000526020600020905b81548152906001019060200180831161048c57829003601f168201915b5050505050905090565b6000806104be6105d4565b905060006104cc828661054d565b905083811015610511576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050890610fb1565b60405180910390fd5b61051e82868684036105dc565b60019250505092915050565b6000806105356105d4565b9050610542818585610833565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561064c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064390610f91565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156106bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b390610f11565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161079a9190610ff1565b60405180910390a3505050565b60006107b3848461054d565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461082d578181101561081f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081690610f31565b60405180910390fd5b61082c84848484036105dc565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156108a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089a90610f71565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090a90610ef1565b60405180910390fd5b61091e838383610c02565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156109a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099b90610f51565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a929190610ff1565b60405180910390a3610aa5848484610c07565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1290610fd1565b60405180910390fd5b610b2760008383610c02565b8060026000828254610b399190611043565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610bea9190610ff1565b60405180910390a3610bfe60008383610c07565b5050565b505050565b505050565b600081359050610c1b816113f3565b92915050565b600081359050610c308161140a565b92915050565b600060208284031215610c4c57610c4b6111b1565b5b6000610c5a84828501610c0c565b91505092915050565b60008060408385031215610c7a57610c796111b1565b5b6000610c8885828601610c0c565b9250506020610c9985828601610c0c565b9150509250929050565b600080600060608486031215610cbc57610cbb6111b1565b5b6000610cca86828701610c0c565b9350506020610cdb86828701610c0c565b9250506040610cec86828701610c21565b9150509250925092565b60008060408385031215610d0d57610d0c6111b1565b5b6000610d1b85828601610c0c565b9250506020610d2c85828601610c21565b9150509250929050565b610d3f816110ab565b82525050565b6000610d5082611027565b610d5a8185611032565b9350610d6a8185602086016110ee565b610d73816111b6565b840191505092915050565b6000610d8b602383611032565b9150610d96826111c7565b604082019050919050565b6000610dae602283611032565b9150610db982611216565b604082019050919050565b6000610dd1601d83611032565b9150610ddc82611265565b602082019050919050565b6000610df4602683611032565b9150610dff8261128e565b604082019050919050565b6000610e17602583611032565b9150610e22826112dd565b604082019050919050565b6000610e3a602483611032565b9150610e458261132c565b604082019050919050565b6000610e5d602583611032565b9150610e688261137b565b604082019050919050565b6000610e80601f83611032565b9150610e8b826113ca565b602082019050919050565b610e9f816110d7565b82525050565b610eae816110e1565b82525050565b6000602082019050610ec96000830184610d36565b92915050565b60006020820190508181036000830152610ee98184610d45565b905092915050565b60006020820190508181036000830152610f0a81610d7e565b9050919050565b60006020820190508181036000830152610f2a81610da1565b9050919050565b60006020820190508181036000830152610f4a81610dc4565b9050919050565b60006020820190508181036000830152610f6a81610de7565b9050919050565b60006020820190508181036000830152610f8a81610e0a565b9050919050565b60006020820190508181036000830152610faa81610e2d565b9050919050565b60006020820190508181036000830152610fca81610e50565b9050919050565b60006020820190508181036000830152610fea81610e73565b9050919050565b60006020820190506110066000830184610e96565b92915050565b60006020820190506110216000830184610ea5565b92915050565b600081519050919050565b600082825260208201905092915050565b600061104e826110d7565b9150611059836110d7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561108e5761108d611153565b5b828201905092915050565b60006110a4826110b7565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101561110c5780820151818401526020810190506110f1565b8381111561111b576000848401525b50505050565b6000600282049050600182168061113957607f821691505b6020821081141561114d5761114c611182565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6113fc81611099565b811461140757600080fd5b50565b611413816110d7565b811461141e57600080fd5b5056fea2646970667358221220d4c96329400732e284f624232c8d7228fc90c00ee7b1a48a85080262107815d864736f6c6343000807003360806040523480156200001157600080fd5b506040516200109038038062001090833981810160405281019062000037919062000106565b6001600081905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620000a7576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506200018b565b600081519050620001008162000171565b92915050565b6000602082840312156200011f576200011e6200016c565b5b60006200012f84828501620000ef565b91505092915050565b600062000145826200014c565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6200017c8162000138565b81146200018857600080fd5b50565b610ef5806200019b6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063116191b61461004657806321fc65f214610064578063d9caed1214610080575b600080fd5b61004e61009c565b60405161005b9190610a98565b60405180910390f35b61007e600480360381019061007991906107bc565b6100c2565b005b61009a60048036038101906100959190610769565b61024a565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6100ca6102ef565b610117600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848773ffffffffffffffffffffffffffffffffffffffff1661033f9092919063ffffffff16565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635131ab5986868686866040518663ffffffff1660e01b815260040161017a959493929190610a21565b600060405180830381600087803b15801561019457600080fd5b505af11580156101a8573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906101d19190610871565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e85858560405161023393929190610b70565b60405180910390a36102436103c5565b5050505050565b6102526102ef565b61027d82828573ffffffffffffffffffffffffffffffffffffffff1661033f9092919063ffffffff16565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb836040516102da9190610b55565b60405180910390a36102ea6103c5565b505050565b60026000541415610335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032c90610b35565b60405180910390fd5b6002600081905550565b6103c08363a9059cbb60e01b848460405160240161035e929190610a6f565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506103cf565b505050565b6001600081905550565b6000610431826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166104969092919063ffffffff16565b905060008151111561049157808060200190518101906104519190610844565b610490576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048790610b15565b60405180910390fd5b5b505050565b60606104a584846000856104ae565b90509392505050565b6060824710156104f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ea90610ad5565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161051c9190610a0a565b60006040518083038185875af1925050503d8060008114610559576040519150601f19603f3d011682016040523d82523d6000602084013e61055e565b606091505b509150915061056f8783838761057b565b92505050949350505050565b606083156105de576000835114156105d657610596856105f1565b6105d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105cc90610af5565b60405180910390fd5b5b8290506105e9565b6105e88383610614565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156106275781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065b9190610ab3565b60405180910390fd5b600061067761067284610bc7565b610ba2565b90508281526020810184848401111561069357610692610d6a565b5b61069e848285610cc8565b509392505050565b6000813590506106b581610e7a565b92915050565b6000815190506106ca81610e91565b92915050565b60008083601f8401126106e6576106e5610d60565b5b8235905067ffffffffffffffff81111561070357610702610d5b565b5b60208301915083600182028301111561071f5761071e610d65565b5b9250929050565b600082601f83011261073b5761073a610d60565b5b815161074b848260208601610664565b91505092915050565b60008135905061076381610ea8565b92915050565b60008060006060848603121561078257610781610d74565b5b6000610790868287016106a6565b93505060206107a1868287016106a6565b92505060406107b286828701610754565b9150509250925092565b6000806000806000608086880312156107d8576107d7610d74565b5b60006107e6888289016106a6565b95505060206107f7888289016106a6565b945050604061080888828901610754565b935050606086013567ffffffffffffffff81111561082957610828610d6f565b5b610835888289016106d0565b92509250509295509295909350565b60006020828403121561085a57610859610d74565b5b6000610868848285016106bb565b91505092915050565b60006020828403121561088757610886610d74565b5b600082015167ffffffffffffffff8111156108a5576108a4610d6f565b5b6108b184828501610726565b91505092915050565b6108c381610c3b565b82525050565b60006108d58385610c0e565b93506108e2838584610cb9565b6108eb83610d79565b840190509392505050565b600061090182610bf8565b61090b8185610c1f565b935061091b818560208601610cc8565b80840191505092915050565b61093081610c83565b82525050565b600061094182610c03565b61094b8185610c2a565b935061095b818560208601610cc8565b61096481610d79565b840191505092915050565b600061097c602683610c2a565b915061098782610d8a565b604082019050919050565b600061099f601d83610c2a565b91506109aa82610dd9565b602082019050919050565b60006109c2602a83610c2a565b91506109cd82610e02565b604082019050919050565b60006109e5601f83610c2a565b91506109f082610e51565b602082019050919050565b610a0481610c79565b82525050565b6000610a1682846108f6565b915081905092915050565b6000608082019050610a3660008301886108ba565b610a4360208301876108ba565b610a5060408301866109fb565b8181036060830152610a638184866108c9565b90509695505050505050565b6000604082019050610a8460008301856108ba565b610a9160208301846109fb565b9392505050565b6000602082019050610aad6000830184610927565b92915050565b60006020820190508181036000830152610acd8184610936565b905092915050565b60006020820190508181036000830152610aee8161096f565b9050919050565b60006020820190508181036000830152610b0e81610992565b9050919050565b60006020820190508181036000830152610b2e816109b5565b9050919050565b60006020820190508181036000830152610b4e816109d8565b9050919050565b6000602082019050610b6a60008301846109fb565b92915050565b6000604082019050610b8560008301866109fb565b8181036020830152610b988184866108c9565b9050949350505050565b6000610bac610bbd565b9050610bb88282610cfb565b919050565b6000604051905090565b600067ffffffffffffffff821115610be257610be1610d2c565b5b610beb82610d79565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000610c4682610c59565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610c8e82610c95565b9050919050565b6000610ca082610ca7565b9050919050565b6000610cb282610c59565b9050919050565b82818337600083830152505050565b60005b83811015610ce6578082015181840152602081019050610ccb565b83811115610cf5576000848401525b50505050565b610d0482610d79565b810181811067ffffffffffffffff82111715610d2357610d22610d2c565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b610e8381610c3b565b8114610e8e57600080fd5b50565b610e9a81610c4d565b8114610ea557600080fd5b50565b610eb181610c79565b8114610ebc57600080fd5b5056fea2646970667358221220046fb4aa2d281b0818a76af1349cb058a259f6e9a48634a5fc3313b1b0fdddf764736f6c63430008070033"; - -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 deploy( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy(overrides || {}) as Promise; - } - override getDeployTransaction( - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); - } - override attach(address: string): GatewayEVMEchidnaTest { - return super.attach(address) as GatewayEVMEchidnaTest; - } - override connect(signer: Signer): GatewayEVMEchidnaTest__factory { - return super.connect(signer) as GatewayEVMEchidnaTest__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): GatewayEVMEchidnaTestInterface { - return new utils.Interface(_abi) as GatewayEVMEchidnaTestInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): GatewayEVMEchidnaTest { - return new Contract( - address, - _abi, - signerOrProvider - ) as GatewayEVMEchidnaTest; - } -} diff --git a/typechain-types/factories/contracts/prototypes/evm/GatewayEVMUpgradeTest__factory.ts b/typechain-types/factories/contracts/prototypes/evm/GatewayEVMUpgradeTest__factory.ts deleted file mode 100644 index f0150f4d..00000000 --- a/typechain-types/factories/contracts/prototypes/evm/GatewayEVMUpgradeTest__factory.ts +++ /dev/null @@ -1,759 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../../common"; -import type { - GatewayEVMUpgradeTest, - GatewayEVMUpgradeTestInterface, -} from "../../../../contracts/prototypes/evm/GatewayEVMUpgradeTest"; - -const _abi = [ - { - inputs: [], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [], - name: "ApprovalFailed", - type: "error", - }, - { - inputs: [], - name: "CustodyInitialized", - type: "error", - }, - { - inputs: [], - name: "DepositFailed", - type: "error", - }, - { - inputs: [], - name: "ExecutionFailed", - type: "error", - }, - { - inputs: [], - name: "InsufficientERC20Amount", - type: "error", - }, - { - inputs: [], - name: "InsufficientETHAmount", - type: "error", - }, - { - inputs: [], - name: "InvalidSender", - type: "error", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "previousAdmin", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "newAdmin", - type: "address", - }, - ], - name: "AdminChanged", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "beacon", - type: "address", - }, - ], - name: "BeaconUpgraded", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "receiver", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "payload", - type: "bytes", - }, - ], - name: "Call", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "receiver", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "asset", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "payload", - type: "bytes", - }, - ], - name: "Deposit", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "destination", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "Executed", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "destination", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "ExecutedV2", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "ExecutedWithERC20", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint8", - name: "version", - type: "uint8", - }, - ], - name: "Initialized", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "previousOwner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "newOwner", - type: "address", - }, - ], - name: "OwnershipTransferred", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "destination", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "Reverted", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "RevertedWithERC20", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "implementation", - type: "address", - }, - ], - name: "Upgraded", - type: "event", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - { - internalType: "bytes", - name: "payload", - type: "bytes", - }, - ], - name: "call", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "custody", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - ], - name: "deposit", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - ], - name: "deposit", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - { - internalType: "bytes", - name: "payload", - type: "bytes", - }, - ], - name: "depositAndCall", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "bytes", - name: "payload", - type: "bytes", - }, - ], - name: "depositAndCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "destination", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "execute", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "destination", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "executeRevert", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "executeWithERC20", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_tssAddress", - type: "address", - }, - { - internalType: "address", - name: "_zetaToken", - type: "address", - }, - ], - name: "initialize", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "owner", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "proxiableUUID", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "renounceOwnership", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "revertWithERC20", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_zetaConnector", - type: "address", - }, - ], - name: "setConnector", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_custody", - type: "address", - }, - ], - name: "setCustody", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newOwner", - type: "address", - }, - ], - name: "transferOwnership", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "tssAddress", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newImplementation", - type: "address", - }, - ], - name: "upgradeTo", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newImplementation", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "upgradeToAndCall", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [], - name: "zetaConnector", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "zetaToken", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -const _bytecode = - "0x60a06040523073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b81525034801561004657600080fd5b5060805160601c613f1861008160003960008181610ab501528181610b4401528181610eae01528181610f3d01526113800152613f186000f3fe6080604052600436106101355760003560e01c806357bec62f116100ab578063ae7a3a6f1161006f578063ae7a3a6f146103a2578063b8969bd4146103cb578063dda79b75146103f4578063f2fde38b1461041f578063f340fa0114610448578063f45346dc1461046457610135565b806357bec62f146102e15780635b1125911461030c578063715018a6146103375780638c6f037f1461034e5780638da5cb5b1461037757610135565b806335c018db116100fd57806335c018db146102035780633659cfe61461021f578063485cc955146102485780634f1ef286146102715780635131ab591461028d57806352d1902d146102b657610135565b806310188aef1461013a5780631b8b921d146101635780631cff79cd1461018c57806321e093b1146101bc57806329c59b5d146101e7575b600080fd5b34801561014657600080fd5b50610161600480360381019061015c9190612dfc565b61048d565b005b34801561016f57600080fd5b5061018a60048036038101906101859190612ef1565b6105c0565b005b6101a660048036038101906101a19190612ef1565b61062c565b6040516101b391906135a7565b60405180910390f35b3480156101c857600080fd5b506101d1610721565b6040516101de91906134c4565b60405180910390f35b61020160048036038101906101fc9190612ef1565b610747565b005b61021d60048036038101906102189190612ef1565b6108c1565b005b34801561022b57600080fd5b5061024660048036038101906102419190612dfc565b610ab3565b005b34801561025457600080fd5b5061026f600480360381019061026a9190612e29565b610c3c565b005b61028b60048036038101906102869190612f51565b610eac565b005b34801561029957600080fd5b506102b460048036038101906102af9190612e69565b610fe9565b005b3480156102c257600080fd5b506102cb61137c565b6040516102d89190613568565b60405180910390f35b3480156102ed57600080fd5b506102f6611435565b60405161030391906134c4565b60405180910390f35b34801561031857600080fd5b5061032161145b565b60405161032e91906134c4565b60405180910390f35b34801561034357600080fd5b5061034c611481565b005b34801561035a57600080fd5b5061037560048036038101906103709190613000565b611495565b005b34801561038357600080fd5b5061038c61154d565b60405161039991906134c4565b60405180910390f35b3480156103ae57600080fd5b506103c960048036038101906103c49190612dfc565b611577565b005b3480156103d757600080fd5b506103f260048036038101906103ed9190612e69565b6116aa565b005b34801561040057600080fd5b506104096118e0565b60405161041691906134c4565b60405180910390f35b34801561042b57600080fd5b5061044660048036038101906104419190612dfc565b611906565b005b610462600480360381019061045d9190612dfc565b61198a565b005b34801561047057600080fd5b5061048b60048036038101906104869190612fad565b611afe565b005b600073ffffffffffffffffffffffffffffffffffffffff1660fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610515576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561057c576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060fd60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3848460405161061f929190613583565b60405180910390a3505050565b606060fc60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106b5576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006106c2858585611bb0565b90508473ffffffffffffffffffffffffffffffffffffffff167f373df382b9c587826f3de13f16d67f8d99f28ee947fc0924c6ef2d6d2c7e854634868660405161070e9392919061385d565b60405180910390a2809150509392505050565b60fe60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000341415610782576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060fc60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16346040516107ca906134af565b60006040518083038185875af1925050503d8060008114610807576040519150601f19603f3d011682016040523d82523d6000602084013e61080c565b606091505b5050905060001515811515141561084f576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a434600087876040516108b394939291906137e1565b60405180910390a350505050565b60fc60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610948576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808473ffffffffffffffffffffffffffffffffffffffff163460405161096f906134af565b60006040518083038185875af1925050503d80600081146109ac576040519150601f19603f3d011682016040523d82523d6000602084013e6109b1565b606091505b5091509150816109ed576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff16638fcaa0b585856040518363ffffffff1660e01b8152600401610a28929190613583565b600060405180830381600087803b158015610a4257600080fd5b505af1158015610a56573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff167fd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c348686604051610aa49392919061385d565b60405180910390a25050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610b42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3990613626565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610b81611c67565b73ffffffffffffffffffffffffffffffffffffffff1614610bd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bce90613646565b60405180910390fd5b610be081611cbe565b610c3981600067ffffffffffffffff811115610bff57610bfe613a1e565b5b6040519080825280601f01601f191660200182016040528015610c315781602001600182028036833780820191505090505b506000611cc9565b50565b60008060019054906101000a900460ff16159050808015610c6d5750600160008054906101000a900460ff1660ff16105b80610c9a5750610c7c30611e46565b158015610c995750600160008054906101000a900460ff1660ff16145b5b610cd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd0906136c6565b60405180910390fd5b60016000806101000a81548160ff021916908360ff1602179055508015610d16576001600060016101000a81548160ff0219169083151502179055505b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610d7d5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15610db4576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610dbc611e69565b610dc4611ec2565b610dcc611f13565b8260fc60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160fe60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508015610ea75760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986001604051610e9e91906135c9565b60405180910390a15b505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610f3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3290613626565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610f7a611c67565b73ffffffffffffffffffffffffffffffffffffffff1614610fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc790613646565b60405180910390fd5b610fd982611cbe565b610fe582826001611cc9565b5050565b610ff1611f6c565b60fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561109d575060fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b156110d4576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600083141561110f576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111198585611fbc565b61114f576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff1663095ea7b385856040518363ffffffff1660e01b815260040161118a92919061353f565b602060405180830381600087803b1580156111a457600080fd5b505af11580156111b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111dc9190613088565b611212576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061121f858484611bb0565b905061122b8686611fbc565b611261576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161129c91906134c4565b60206040518083038186803b1580156112b457600080fd5b505afa1580156112c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ec91906130e2565b90506000811115611302576113018782612054565b5b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b73828787876040516113639392919061385d565b60405180910390a3505061137561223e565b5050505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161461140c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140390613686565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b905090565b60fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60fc60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611489612248565b61149360006122c6565b565b60008414156114d0576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6114db33848661238c565b8473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a48686868660405161153e94939291906137e1565b60405180910390a35050505050565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff1660fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115ff576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611666576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060fb60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6116b2611f6c565b60fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561175e575060fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15611795576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008314156117d0576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6117fb84848773ffffffffffffffffffffffffffffffffffffffff166125a69092919063ffffffff16565b8373ffffffffffffffffffffffffffffffffffffffff16638fcaa0b583836040518363ffffffff1660e01b8152600401611836929190613583565b600060405180830381600087803b15801561185057600080fd5b505af1158015611864573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda78585856040516118c99392919061385d565b60405180910390a36118d961223e565b5050505050565b60fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61190e612248565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561197e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197590613606565b60405180910390fd5b611987816122c6565b50565b60003414156119c5576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060fc60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1634604051611a0d906134af565b60006040518083038185875af1925050503d8060008114611a4a576040519150601f19603f3d011682016040523d82523d6000602084013e611a4f565b606091505b50509050600015158115151415611a92576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4346000604051611af2929190613821565b60405180910390a35050565b6000821415611b39576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611b4433828461238c565b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a48484604051611ba3929190613821565b60405180910390a3505050565b60606000808573ffffffffffffffffffffffffffffffffffffffff16348686604051611bdd92919061347f565b60006040518083038185875af1925050503d8060008114611c1a576040519150601f19603f3d011682016040523d82523d6000602084013e611c1f565b606091505b509150915081611c5b576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80925050509392505050565b6000611c957f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61262c565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611cc6612248565b50565b611cf57f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914360001b612636565b60000160009054906101000a900460ff1615611d1957611d1483612640565b611e41565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611d5f57600080fd5b505afa925050508015611d9057506040513d601f19601f82011682018060405250810190611d8d91906130b5565b60015b611dcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc6906136e6565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b8114611e34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2b906136a6565b60405180910390fd5b50611e408383836126f9565b5b505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16611eb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eaf90613766565b60405180910390fd5b611ec0612725565b565b600060019054906101000a900460ff16611f11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0890613766565b60405180910390fd5b565b600060019054906101000a900460ff16611f62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5990613766565b60405180910390fd5b611f6a612786565b565b600260c9541415611fb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa9906137a6565b60405180910390fd5b600260c981905550565b60008273ffffffffffffffffffffffffffffffffffffffff1663095ea7b38360006040518363ffffffff1660e01b8152600401611ffa929190613516565b602060405180830381600087803b15801561201457600080fd5b505af1158015612028573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061204c9190613088565b905092915050565b60fe60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156121ec578173ffffffffffffffffffffffffffffffffffffffff1663095ea7b360fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161210792919061353f565b602060405180830381600087803b15801561212157600080fd5b505af1158015612135573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121599190613088565b5060fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663743e0c9b826040518263ffffffff1660e01b81526004016121b591906137c6565b600060405180830381600087803b1580156121cf57600080fd5b505af11580156121e3573d6000803e3d6000fd5b5050505061223a565b61223960fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff166125a69092919063ffffffff16565b5b5050565b600160c981905550565b6122506127df565b73ffffffffffffffffffffffffffffffffffffffff1661226e61154d565b73ffffffffffffffffffffffffffffffffffffffff16146122c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122bb90613726565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60fe60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156125515761240f8330838573ffffffffffffffffffffffffffffffffffffffff166127e7909392919063ffffffff16565b8173ffffffffffffffffffffffffffffffffffffffff1663095ea7b360fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161246c92919061353f565b602060405180830381600087803b15801561248657600080fd5b505af115801561249a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124be9190613088565b5060fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663743e0c9b826040518263ffffffff1660e01b815260040161251a91906137c6565b600060405180830381600087803b15801561253457600080fd5b505af1158015612548573d6000803e3d6000fd5b505050506125a1565b6125a08360fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16838573ffffffffffffffffffffffffffffffffffffffff166127e7909392919063ffffffff16565b5b505050565b6126278363a9059cbb60e01b84846040516024016125c592919061353f565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612870565b505050565b6000819050919050565b6000819050919050565b61264981611e46565b612688576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267f90613706565b60405180910390fd5b806126b57f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61262c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61270283612937565b60008251118061270f5750805b156127205761271e8383612986565b505b505050565b600060019054906101000a900460ff16612774576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276b90613766565b60405180910390fd5b61278461277f6127df565b6122c6565b565b600060019054906101000a900460ff166127d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127cc90613766565b60405180910390fd5b600160c981905550565b600033905090565b61286a846323b872dd60e01b858585604051602401612808939291906134df565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612870565b50505050565b60006128d2826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166129b39092919063ffffffff16565b905060008151111561293257808060200190518101906128f29190613088565b612931576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161292890613786565b60405180910390fd5b5b505050565b61294081612640565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b60606129ab8383604051806060016040528060278152602001613ebc602791396129cb565b905092915050565b60606129c28484600085612a51565b90509392505050565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516129f59190613498565b600060405180830381855af49150503d8060008114612a30576040519150601f19603f3d011682016040523d82523d6000602084013e612a35565b606091505b5091509150612a4686838387612b1e565b925050509392505050565b606082471015612a96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8d90613666565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051612abf9190613498565b60006040518083038185875af1925050503d8060008114612afc576040519150601f19603f3d011682016040523d82523d6000602084013e612b01565b606091505b5091509150612b1287838387612b94565b92505050949350505050565b60608315612b8157600083511415612b7957612b3985611e46565b612b78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6f90613746565b60405180910390fd5b5b829050612b8c565b612b8b8383612c0a565b5b949350505050565b60608315612bf757600083511415612bef57612baf85612c5a565b612bee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612be590613746565b60405180910390fd5b5b829050612c02565b612c018383612c7d565b5b949350505050565b600082511115612c1d5781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c5191906135e4565b60405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600082511115612c905781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cc491906135e4565b60405180910390fd5b6000612ce0612cdb846138b4565b61388f565b905082815260208101848484011115612cfc57612cfb613a5c565b5b612d078482856139ab565b509392505050565b600081359050612d1e81613e5f565b92915050565b600081519050612d3381613e76565b92915050565b600081519050612d4881613e8d565b92915050565b60008083601f840112612d6457612d63613a52565b5b8235905067ffffffffffffffff811115612d8157612d80613a4d565b5b602083019150836001820283011115612d9d57612d9c613a57565b5b9250929050565b600082601f830112612db957612db8613a52565b5b8135612dc9848260208601612ccd565b91505092915050565b600081359050612de181613ea4565b92915050565b600081519050612df681613ea4565b92915050565b600060208284031215612e1257612e11613a66565b5b6000612e2084828501612d0f565b91505092915050565b60008060408385031215612e4057612e3f613a66565b5b6000612e4e85828601612d0f565b9250506020612e5f85828601612d0f565b9150509250929050565b600080600080600060808688031215612e8557612e84613a66565b5b6000612e9388828901612d0f565b9550506020612ea488828901612d0f565b9450506040612eb588828901612dd2565b935050606086013567ffffffffffffffff811115612ed657612ed5613a61565b5b612ee288828901612d4e565b92509250509295509295909350565b600080600060408486031215612f0a57612f09613a66565b5b6000612f1886828701612d0f565b935050602084013567ffffffffffffffff811115612f3957612f38613a61565b5b612f4586828701612d4e565b92509250509250925092565b60008060408385031215612f6857612f67613a66565b5b6000612f7685828601612d0f565b925050602083013567ffffffffffffffff811115612f9757612f96613a61565b5b612fa385828601612da4565b9150509250929050565b600080600060608486031215612fc657612fc5613a66565b5b6000612fd486828701612d0f565b9350506020612fe586828701612dd2565b9250506040612ff686828701612d0f565b9150509250925092565b60008060008060006080868803121561301c5761301b613a66565b5b600061302a88828901612d0f565b955050602061303b88828901612dd2565b945050604061304c88828901612d0f565b935050606086013567ffffffffffffffff81111561306d5761306c613a61565b5b61307988828901612d4e565b92509250509295509295909350565b60006020828403121561309e5761309d613a66565b5b60006130ac84828501612d24565b91505092915050565b6000602082840312156130cb576130ca613a66565b5b60006130d984828501612d39565b91505092915050565b6000602082840312156130f8576130f7613a66565b5b600061310684828501612de7565b91505092915050565b61311881613928565b82525050565b61312781613946565b82525050565b600061313983856138fb565b93506131468385846139ab565b61314f83613a6b565b840190509392505050565b6000613166838561390c565b93506131738385846139ab565b82840190509392505050565b600061318a826138e5565b61319481856138fb565b93506131a48185602086016139ba565b6131ad81613a6b565b840191505092915050565b60006131c3826138e5565b6131cd818561390c565b93506131dd8185602086016139ba565b80840191505092915050565b6131f281613987565b82525050565b61320181613999565b82525050565b6000613212826138f0565b61321c8185613917565b935061322c8185602086016139ba565b61323581613a6b565b840191505092915050565b600061324d602683613917565b915061325882613a7c565b604082019050919050565b6000613270602c83613917565b915061327b82613acb565b604082019050919050565b6000613293602c83613917565b915061329e82613b1a565b604082019050919050565b60006132b6602683613917565b91506132c182613b69565b604082019050919050565b60006132d9603883613917565b91506132e482613bb8565b604082019050919050565b60006132fc602983613917565b915061330782613c07565b604082019050919050565b600061331f602e83613917565b915061332a82613c56565b604082019050919050565b6000613342602e83613917565b915061334d82613ca5565b604082019050919050565b6000613365602d83613917565b915061337082613cf4565b604082019050919050565b6000613388602083613917565b915061339382613d43565b602082019050919050565b60006133ab6000836138fb565b91506133b682613d6c565b600082019050919050565b60006133ce60008361390c565b91506133d982613d6c565b600082019050919050565b60006133f1601d83613917565b91506133fc82613d6f565b602082019050919050565b6000613414602b83613917565b915061341f82613d98565b604082019050919050565b6000613437602a83613917565b915061344282613de7565b604082019050919050565b600061345a601f83613917565b915061346582613e36565b602082019050919050565b61347981613970565b82525050565b600061348c82848661315a565b91508190509392505050565b60006134a482846131b8565b915081905092915050565b60006134ba826133c1565b9150819050919050565b60006020820190506134d9600083018461310f565b92915050565b60006060820190506134f4600083018661310f565b613501602083018561310f565b61350e6040830184613470565b949350505050565b600060408201905061352b600083018561310f565b61353860208301846131e9565b9392505050565b6000604082019050613554600083018561310f565b6135616020830184613470565b9392505050565b600060208201905061357d600083018461311e565b92915050565b6000602082019050818103600083015261359e81848661312d565b90509392505050565b600060208201905081810360008301526135c1818461317f565b905092915050565b60006020820190506135de60008301846131f8565b92915050565b600060208201905081810360008301526135fe8184613207565b905092915050565b6000602082019050818103600083015261361f81613240565b9050919050565b6000602082019050818103600083015261363f81613263565b9050919050565b6000602082019050818103600083015261365f81613286565b9050919050565b6000602082019050818103600083015261367f816132a9565b9050919050565b6000602082019050818103600083015261369f816132cc565b9050919050565b600060208201905081810360008301526136bf816132ef565b9050919050565b600060208201905081810360008301526136df81613312565b9050919050565b600060208201905081810360008301526136ff81613335565b9050919050565b6000602082019050818103600083015261371f81613358565b9050919050565b6000602082019050818103600083015261373f8161337b565b9050919050565b6000602082019050818103600083015261375f816133e4565b9050919050565b6000602082019050818103600083015261377f81613407565b9050919050565b6000602082019050818103600083015261379f8161342a565b9050919050565b600060208201905081810360008301526137bf8161344d565b9050919050565b60006020820190506137db6000830184613470565b92915050565b60006060820190506137f66000830187613470565b613803602083018661310f565b818103604083015261381681848661312d565b905095945050505050565b60006060820190506138366000830185613470565b613843602083018461310f565b81810360408301526138548161339e565b90509392505050565b60006040820190506138726000830186613470565b818103602083015261388581848661312d565b9050949350505050565b60006138996138aa565b90506138a582826139ed565b919050565b6000604051905090565b600067ffffffffffffffff8211156138cf576138ce613a1e565b5b6138d882613a6b565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061393382613950565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061399282613970565b9050919050565b60006139a48261397a565b9050919050565b82818337600083830152505050565b60005b838110156139d85780820151818401526020810190506139bd565b838111156139e7576000848401525b50505050565b6139f682613a6b565b810181811067ffffffffffffffff82111715613a1557613a14613a1e565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f64656c656761746563616c6c0000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f6163746976652070726f78790000000000000000000000000000000000000000602082015250565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f555550535570677261646561626c653a206d757374206e6f742062652063616c60008201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000602082015250565b7f45524331393637557067726164653a20756e737570706f727465642070726f7860008201527f6961626c65555549440000000000000000000000000000000000000000000000602082015250565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f45524331393637557067726164653a206e657720696d706c656d656e7461746960008201527f6f6e206973206e6f742055555053000000000000000000000000000000000000602082015250565b7f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60008201527f6f74206120636f6e747261637400000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b613e6881613928565b8114613e7357600080fd5b50565b613e7f8161393a565b8114613e8a57600080fd5b50565b613e9681613946565b8114613ea157600080fd5b50565b613ead81613970565b8114613eb857600080fd5b5056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d431fcc4399349f48c7db34c81b6c68de55fb20be12bb7fc941bdb48c9369ed464736f6c63430008070033"; - -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 deploy( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy(overrides || {}) as Promise; - } - override getDeployTransaction( - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); - } - override attach(address: string): GatewayEVMUpgradeTest { - return super.attach(address) as GatewayEVMUpgradeTest; - } - override connect(signer: Signer): GatewayEVMUpgradeTest__factory { - return super.connect(signer) as GatewayEVMUpgradeTest__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): GatewayEVMUpgradeTestInterface { - return new utils.Interface(_abi) as GatewayEVMUpgradeTestInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): GatewayEVMUpgradeTest { - return new Contract( - address, - _abi, - signerOrProvider - ) as GatewayEVMUpgradeTest; - } -} diff --git a/typechain-types/factories/contracts/prototypes/evm/GatewayEVM__factory.ts b/typechain-types/factories/contracts/prototypes/evm/GatewayEVM__factory.ts deleted file mode 100644 index ba7da56c..00000000 --- a/typechain-types/factories/contracts/prototypes/evm/GatewayEVM__factory.ts +++ /dev/null @@ -1,730 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../../common"; -import type { - GatewayEVM, - GatewayEVMInterface, -} from "../../../../contracts/prototypes/evm/GatewayEVM"; - -const _abi = [ - { - inputs: [], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [], - name: "ApprovalFailed", - type: "error", - }, - { - inputs: [], - name: "CustodyInitialized", - type: "error", - }, - { - inputs: [], - name: "DepositFailed", - type: "error", - }, - { - inputs: [], - name: "ExecutionFailed", - type: "error", - }, - { - inputs: [], - name: "InsufficientERC20Amount", - type: "error", - }, - { - inputs: [], - name: "InsufficientETHAmount", - type: "error", - }, - { - inputs: [], - name: "InvalidSender", - type: "error", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "previousAdmin", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "newAdmin", - type: "address", - }, - ], - name: "AdminChanged", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "beacon", - type: "address", - }, - ], - name: "BeaconUpgraded", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "receiver", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "payload", - type: "bytes", - }, - ], - name: "Call", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "receiver", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "asset", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "payload", - type: "bytes", - }, - ], - name: "Deposit", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "destination", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "Executed", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "ExecutedWithERC20", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint8", - name: "version", - type: "uint8", - }, - ], - name: "Initialized", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "previousOwner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "newOwner", - type: "address", - }, - ], - name: "OwnershipTransferred", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "destination", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "Reverted", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "RevertedWithERC20", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "implementation", - type: "address", - }, - ], - name: "Upgraded", - type: "event", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - { - internalType: "bytes", - name: "payload", - type: "bytes", - }, - ], - name: "call", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "custody", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - ], - name: "deposit", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - ], - name: "deposit", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - { - internalType: "bytes", - name: "payload", - type: "bytes", - }, - ], - name: "depositAndCall", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "bytes", - name: "payload", - type: "bytes", - }, - ], - name: "depositAndCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "destination", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "execute", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "destination", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "executeRevert", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "executeWithERC20", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_tssAddress", - type: "address", - }, - { - internalType: "address", - name: "_zetaToken", - type: "address", - }, - ], - name: "initialize", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "owner", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "proxiableUUID", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "renounceOwnership", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "revertWithERC20", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_zetaConnector", - type: "address", - }, - ], - name: "setConnector", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_custody", - type: "address", - }, - ], - name: "setCustody", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newOwner", - type: "address", - }, - ], - name: "transferOwnership", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "tssAddress", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newImplementation", - type: "address", - }, - ], - name: "upgradeTo", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newImplementation", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "upgradeToAndCall", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [], - name: "zetaConnector", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "zetaToken", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -const _bytecode = - "0x60a06040523073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152503480156200004757600080fd5b50620000586200005e60201b60201c565b62000208565b600060019054906101000a900460ff1615620000b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000a8906200015c565b60405180910390fd5b60ff801660008054906101000a900460ff1660ff1614620001225760ff6000806101000a81548160ff021916908360ff1602179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860ff6040516200011991906200017e565b60405180910390a15b565b6000620001336027836200019b565b91506200014082620001b9565b604082019050919050565b6200015681620001ac565b82525050565b60006020820190508181036000830152620001778162000124565b9050919050565b60006020820190506200019560008301846200014b565b92915050565b600082825260208201905092915050565b600060ff82169050919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320696e69746960008201527f616c697a696e6700000000000000000000000000000000000000000000000000602082015250565b60805160601c6140266200024360003960008181610b3c01528181610bcb01528181610f3501528181610fc4015261140701526140266000f3fe6080604052600436106101355760003560e01c806357bec62f116100ab578063ae7a3a6f1161006f578063ae7a3a6f146103a2578063b8969bd4146103cb578063dda79b75146103f4578063f2fde38b1461041f578063f340fa0114610448578063f45346dc1461046457610135565b806357bec62f146102e15780635b1125911461030c578063715018a6146103375780638c6f037f1461034e5780638da5cb5b1461037757610135565b806335c018db116100fd57806335c018db146102035780633659cfe61461021f578063485cc955146102485780634f1ef286146102715780635131ab591461028d57806352d1902d146102b657610135565b806310188aef1461013a5780631b8b921d146101635780631cff79cd1461018c57806321e093b1146101bc57806329c59b5d146101e7575b600080fd5b34801561014657600080fd5b50610161600480360381019061015c9190612f0a565b61048d565b005b34801561016f57600080fd5b5061018a60048036038101906101859190612fff565b610647565b005b6101a660048036038101906101a19190612fff565b6106b3565b6040516101b391906136b5565b60405180910390f35b3480156101c857600080fd5b506101d16107a8565b6040516101de91906135d2565b60405180910390f35b61020160048036038101906101fc9190612fff565b6107ce565b005b61021d60048036038101906102189190612fff565b610948565b005b34801561022b57600080fd5b5061024660048036038101906102419190612f0a565b610b3a565b005b34801561025457600080fd5b5061026f600480360381019061026a9190612f37565b610cc3565b005b61028b6004803603810190610286919061305f565b610f33565b005b34801561029957600080fd5b506102b460048036038101906102af9190612f77565b611070565b005b3480156102c257600080fd5b506102cb611403565b6040516102d89190613676565b60405180910390f35b3480156102ed57600080fd5b506102f66114bc565b60405161030391906135d2565b60405180910390f35b34801561031857600080fd5b506103216114e2565b60405161032e91906135d2565b60405180910390f35b34801561034357600080fd5b5061034c611508565b005b34801561035a57600080fd5b506103756004803603810190610370919061310e565b61151c565b005b34801561038357600080fd5b5061038c6115d4565b60405161039991906135d2565b60405180910390f35b3480156103ae57600080fd5b506103c960048036038101906103c49190612f0a565b6115fe565b005b3480156103d757600080fd5b506103f260048036038101906103ed9190612f77565b6117b8565b005b34801561040057600080fd5b506104096119ee565b60405161041691906135d2565b60405180910390f35b34801561042b57600080fd5b5061044660048036038101906104419190612f0a565b611a14565b005b610462600480360381019061045d9190612f0a565b611a98565b005b34801561047057600080fd5b5061048b600480360381019061048691906130bb565b611c0c565b005b60fc60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610514576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461059c576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610603576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060fd60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde384846040516106a6929190613691565b60405180910390a3505050565b606060fc60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461073c576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610749858585611cbe565b90508473ffffffffffffffffffffffffffffffffffffffff167fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f3486866040516107959392919061396b565b60405180910390a2809150509392505050565b60fe60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000341415610809576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060fc60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1634604051610851906135bd565b60006040518083038185875af1925050503d806000811461088e576040519150601f19603f3d011682016040523d82523d6000602084013e610893565b606091505b505090506000151581151514156108d6576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4346000878760405161093a94939291906138ef565b60405180910390a350505050565b60fc60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109cf576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808473ffffffffffffffffffffffffffffffffffffffff16346040516109f6906135bd565b60006040518083038185875af1925050503d8060008114610a33576040519150601f19603f3d011682016040523d82523d6000602084013e610a38565b606091505b509150915081610a74576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff16638fcaa0b585856040518363ffffffff1660e01b8152600401610aaf929190613691565b600060405180830381600087803b158015610ac957600080fd5b505af1158015610add573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff167fd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c348686604051610b2b9392919061396b565b60405180910390a25050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610bc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc090613734565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610c08611d75565b73ffffffffffffffffffffffffffffffffffffffff1614610c5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5590613754565b60405180910390fd5b610c6781611dcc565b610cc081600067ffffffffffffffff811115610c8657610c85613b2c565b5b6040519080825280601f01601f191660200182016040528015610cb85781602001600182028036833780820191505090505b506000611dd7565b50565b60008060019054906101000a900460ff16159050808015610cf45750600160008054906101000a900460ff1660ff16105b80610d215750610d0330611f54565b158015610d205750600160008054906101000a900460ff1660ff16145b5b610d60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d57906137d4565b60405180910390fd5b60016000806101000a81548160ff021916908360ff1602179055508015610d9d576001600060016101000a81548160ff0219169083151502179055505b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610e045750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15610e3b576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e43611f77565b610e4b611fd0565b610e53612021565b8260fc60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160fe60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508015610f2e5760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986001604051610f2591906136d7565b60405180910390a15b505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610fc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb990613734565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16611001611d75565b73ffffffffffffffffffffffffffffffffffffffff1614611057576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104e90613754565b60405180910390fd5b61106082611dcc565b61106c82826001611dd7565b5050565b61107861207a565b60fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611124575060fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b1561115b576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000831415611196576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111a085856120ca565b6111d6576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff1663095ea7b385856040518363ffffffff1660e01b815260040161121192919061364d565b602060405180830381600087803b15801561122b57600080fd5b505af115801561123f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112639190613196565b611299576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006112a6858484611cbe565b90506112b286866120ca565b6112e8576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161132391906135d2565b60206040518083038186803b15801561133b57600080fd5b505afa15801561134f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137391906131f0565b90506000811115611389576113888782612162565b5b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b73828787876040516113ea9392919061396b565b60405180910390a350506113fc61234c565b5050505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614611493576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148a90613794565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b905090565b60fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60fc60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611510612356565b61151a60006123d4565b565b6000841415611557576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61156233848661249a565b8473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4868686866040516115c594939291906138ef565b60405180910390a35050505050565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60fc60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611685576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461170d576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611774576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060fb60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6117c061207a565b60fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561186c575060fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b156118a3576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008314156118de576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61190984848773ffffffffffffffffffffffffffffffffffffffff166126b49092919063ffffffff16565b8373ffffffffffffffffffffffffffffffffffffffff16638fcaa0b583836040518363ffffffff1660e01b8152600401611944929190613691565b600060405180830381600087803b15801561195e57600080fd5b505af1158015611972573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda78585856040516119d79392919061396b565b60405180910390a36119e761234c565b5050505050565b60fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611a1c612356565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611a8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8390613714565b60405180910390fd5b611a95816123d4565b50565b6000341415611ad3576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060fc60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1634604051611b1b906135bd565b60006040518083038185875af1925050503d8060008114611b58576040519150601f19603f3d011682016040523d82523d6000602084013e611b5d565b606091505b50509050600015158115151415611ba0576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4346000604051611c0092919061392f565b60405180910390a35050565b6000821415611c47576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611c5233828461249a565b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a48484604051611cb192919061392f565b60405180910390a3505050565b60606000808573ffffffffffffffffffffffffffffffffffffffff16348686604051611ceb92919061358d565b60006040518083038185875af1925050503d8060008114611d28576040519150601f19603f3d011682016040523d82523d6000602084013e611d2d565b606091505b509150915081611d69576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80925050509392505050565b6000611da37f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61273a565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611dd4612356565b50565b611e037f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914360001b612744565b60000160009054906101000a900460ff1615611e2757611e228361274e565b611f4f565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611e6d57600080fd5b505afa925050508015611e9e57506040513d601f19601f82011682018060405250810190611e9b91906131c3565b60015b611edd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed4906137f4565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b8114611f42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f39906137b4565b60405180910390fd5b50611f4e838383612807565b5b505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16611fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fbd90613874565b60405180910390fd5b611fce612833565b565b600060019054906101000a900460ff1661201f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201690613874565b60405180910390fd5b565b600060019054906101000a900460ff16612070576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206790613874565b60405180910390fd5b612078612894565b565b600260c95414156120c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b7906138b4565b60405180910390fd5b600260c981905550565b60008273ffffffffffffffffffffffffffffffffffffffff1663095ea7b38360006040518363ffffffff1660e01b8152600401612108929190613624565b602060405180830381600087803b15801561212257600080fd5b505af1158015612136573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061215a9190613196565b905092915050565b60fe60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156122fa578173ffffffffffffffffffffffffffffffffffffffff1663095ea7b360fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161221592919061364d565b602060405180830381600087803b15801561222f57600080fd5b505af1158015612243573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122679190613196565b5060fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663743e0c9b826040518263ffffffff1660e01b81526004016122c391906138d4565b600060405180830381600087803b1580156122dd57600080fd5b505af11580156122f1573d6000803e3d6000fd5b50505050612348565b61234760fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff166126b49092919063ffffffff16565b5b5050565b600160c981905550565b61235e6128ed565b73ffffffffffffffffffffffffffffffffffffffff1661237c6115d4565b73ffffffffffffffffffffffffffffffffffffffff16146123d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c990613834565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60fe60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561265f5761251d8330838573ffffffffffffffffffffffffffffffffffffffff166128f5909392919063ffffffff16565b8173ffffffffffffffffffffffffffffffffffffffff1663095ea7b360fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161257a92919061364d565b602060405180830381600087803b15801561259457600080fd5b505af11580156125a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125cc9190613196565b5060fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663743e0c9b826040518263ffffffff1660e01b815260040161262891906138d4565b600060405180830381600087803b15801561264257600080fd5b505af1158015612656573d6000803e3d6000fd5b505050506126af565b6126ae8360fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16838573ffffffffffffffffffffffffffffffffffffffff166128f5909392919063ffffffff16565b5b505050565b6127358363a9059cbb60e01b84846040516024016126d392919061364d565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061297e565b505050565b6000819050919050565b6000819050919050565b61275781611f54565b612796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278d90613814565b60405180910390fd5b806127c37f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61273a565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61281083612a45565b60008251118061281d5750805b1561282e5761282c8383612a94565b505b505050565b600060019054906101000a900460ff16612882576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161287990613874565b60405180910390fd5b61289261288d6128ed565b6123d4565b565b600060019054906101000a900460ff166128e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128da90613874565b60405180910390fd5b600160c981905550565b600033905090565b612978846323b872dd60e01b858585604051602401612916939291906135ed565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061297e565b50505050565b60006129e0826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16612ac19092919063ffffffff16565b9050600081511115612a405780806020019051810190612a009190613196565b612a3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a3690613894565b60405180910390fd5b5b505050565b612a4e8161274e565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b6060612ab98383604051806060016040528060278152602001613fca60279139612ad9565b905092915050565b6060612ad08484600085612b5f565b90509392505050565b60606000808573ffffffffffffffffffffffffffffffffffffffff1685604051612b0391906135a6565b600060405180830381855af49150503d8060008114612b3e576040519150601f19603f3d011682016040523d82523d6000602084013e612b43565b606091505b5091509150612b5486838387612c2c565b925050509392505050565b606082471015612ba4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9b90613774565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051612bcd91906135a6565b60006040518083038185875af1925050503d8060008114612c0a576040519150601f19603f3d011682016040523d82523d6000602084013e612c0f565b606091505b5091509150612c2087838387612ca2565b92505050949350505050565b60608315612c8f57600083511415612c8757612c4785611f54565b612c86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c7d90613854565b60405180910390fd5b5b829050612c9a565b612c998383612d18565b5b949350505050565b60608315612d0557600083511415612cfd57612cbd85612d68565b612cfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cf390613854565b60405180910390fd5b5b829050612d10565b612d0f8383612d8b565b5b949350505050565b600082511115612d2b5781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d5f91906136f2565b60405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600082511115612d9e5781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dd291906136f2565b60405180910390fd5b6000612dee612de9846139c2565b61399d565b905082815260208101848484011115612e0a57612e09613b6a565b5b612e15848285613ab9565b509392505050565b600081359050612e2c81613f6d565b92915050565b600081519050612e4181613f84565b92915050565b600081519050612e5681613f9b565b92915050565b60008083601f840112612e7257612e71613b60565b5b8235905067ffffffffffffffff811115612e8f57612e8e613b5b565b5b602083019150836001820283011115612eab57612eaa613b65565b5b9250929050565b600082601f830112612ec757612ec6613b60565b5b8135612ed7848260208601612ddb565b91505092915050565b600081359050612eef81613fb2565b92915050565b600081519050612f0481613fb2565b92915050565b600060208284031215612f2057612f1f613b74565b5b6000612f2e84828501612e1d565b91505092915050565b60008060408385031215612f4e57612f4d613b74565b5b6000612f5c85828601612e1d565b9250506020612f6d85828601612e1d565b9150509250929050565b600080600080600060808688031215612f9357612f92613b74565b5b6000612fa188828901612e1d565b9550506020612fb288828901612e1d565b9450506040612fc388828901612ee0565b935050606086013567ffffffffffffffff811115612fe457612fe3613b6f565b5b612ff088828901612e5c565b92509250509295509295909350565b60008060006040848603121561301857613017613b74565b5b600061302686828701612e1d565b935050602084013567ffffffffffffffff81111561304757613046613b6f565b5b61305386828701612e5c565b92509250509250925092565b6000806040838503121561307657613075613b74565b5b600061308485828601612e1d565b925050602083013567ffffffffffffffff8111156130a5576130a4613b6f565b5b6130b185828601612eb2565b9150509250929050565b6000806000606084860312156130d4576130d3613b74565b5b60006130e286828701612e1d565b93505060206130f386828701612ee0565b925050604061310486828701612e1d565b9150509250925092565b60008060008060006080868803121561312a57613129613b74565b5b600061313888828901612e1d565b955050602061314988828901612ee0565b945050604061315a88828901612e1d565b935050606086013567ffffffffffffffff81111561317b5761317a613b6f565b5b61318788828901612e5c565b92509250509295509295909350565b6000602082840312156131ac576131ab613b74565b5b60006131ba84828501612e32565b91505092915050565b6000602082840312156131d9576131d8613b74565b5b60006131e784828501612e47565b91505092915050565b60006020828403121561320657613205613b74565b5b600061321484828501612ef5565b91505092915050565b61322681613a36565b82525050565b61323581613a54565b82525050565b60006132478385613a09565b9350613254838584613ab9565b61325d83613b79565b840190509392505050565b60006132748385613a1a565b9350613281838584613ab9565b82840190509392505050565b6000613298826139f3565b6132a28185613a09565b93506132b2818560208601613ac8565b6132bb81613b79565b840191505092915050565b60006132d1826139f3565b6132db8185613a1a565b93506132eb818560208601613ac8565b80840191505092915050565b61330081613a95565b82525050565b61330f81613aa7565b82525050565b6000613320826139fe565b61332a8185613a25565b935061333a818560208601613ac8565b61334381613b79565b840191505092915050565b600061335b602683613a25565b915061336682613b8a565b604082019050919050565b600061337e602c83613a25565b915061338982613bd9565b604082019050919050565b60006133a1602c83613a25565b91506133ac82613c28565b604082019050919050565b60006133c4602683613a25565b91506133cf82613c77565b604082019050919050565b60006133e7603883613a25565b91506133f282613cc6565b604082019050919050565b600061340a602983613a25565b915061341582613d15565b604082019050919050565b600061342d602e83613a25565b915061343882613d64565b604082019050919050565b6000613450602e83613a25565b915061345b82613db3565b604082019050919050565b6000613473602d83613a25565b915061347e82613e02565b604082019050919050565b6000613496602083613a25565b91506134a182613e51565b602082019050919050565b60006134b9600083613a09565b91506134c482613e7a565b600082019050919050565b60006134dc600083613a1a565b91506134e782613e7a565b600082019050919050565b60006134ff601d83613a25565b915061350a82613e7d565b602082019050919050565b6000613522602b83613a25565b915061352d82613ea6565b604082019050919050565b6000613545602a83613a25565b915061355082613ef5565b604082019050919050565b6000613568601f83613a25565b915061357382613f44565b602082019050919050565b61358781613a7e565b82525050565b600061359a828486613268565b91508190509392505050565b60006135b282846132c6565b915081905092915050565b60006135c8826134cf565b9150819050919050565b60006020820190506135e7600083018461321d565b92915050565b6000606082019050613602600083018661321d565b61360f602083018561321d565b61361c604083018461357e565b949350505050565b6000604082019050613639600083018561321d565b61364660208301846132f7565b9392505050565b6000604082019050613662600083018561321d565b61366f602083018461357e565b9392505050565b600060208201905061368b600083018461322c565b92915050565b600060208201905081810360008301526136ac81848661323b565b90509392505050565b600060208201905081810360008301526136cf818461328d565b905092915050565b60006020820190506136ec6000830184613306565b92915050565b6000602082019050818103600083015261370c8184613315565b905092915050565b6000602082019050818103600083015261372d8161334e565b9050919050565b6000602082019050818103600083015261374d81613371565b9050919050565b6000602082019050818103600083015261376d81613394565b9050919050565b6000602082019050818103600083015261378d816133b7565b9050919050565b600060208201905081810360008301526137ad816133da565b9050919050565b600060208201905081810360008301526137cd816133fd565b9050919050565b600060208201905081810360008301526137ed81613420565b9050919050565b6000602082019050818103600083015261380d81613443565b9050919050565b6000602082019050818103600083015261382d81613466565b9050919050565b6000602082019050818103600083015261384d81613489565b9050919050565b6000602082019050818103600083015261386d816134f2565b9050919050565b6000602082019050818103600083015261388d81613515565b9050919050565b600060208201905081810360008301526138ad81613538565b9050919050565b600060208201905081810360008301526138cd8161355b565b9050919050565b60006020820190506138e9600083018461357e565b92915050565b6000606082019050613904600083018761357e565b613911602083018661321d565b818103604083015261392481848661323b565b905095945050505050565b6000606082019050613944600083018561357e565b613951602083018461321d565b8181036040830152613962816134ac565b90509392505050565b6000604082019050613980600083018661357e565b818103602083015261399381848661323b565b9050949350505050565b60006139a76139b8565b90506139b38282613afb565b919050565b6000604051905090565b600067ffffffffffffffff8211156139dd576139dc613b2c565b5b6139e682613b79565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000613a4182613a5e565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613aa082613a7e565b9050919050565b6000613ab282613a88565b9050919050565b82818337600083830152505050565b60005b83811015613ae6578082015181840152602081019050613acb565b83811115613af5576000848401525b50505050565b613b0482613b79565b810181811067ffffffffffffffff82111715613b2357613b22613b2c565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f64656c656761746563616c6c0000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f6163746976652070726f78790000000000000000000000000000000000000000602082015250565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f555550535570677261646561626c653a206d757374206e6f742062652063616c60008201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000602082015250565b7f45524331393637557067726164653a20756e737570706f727465642070726f7860008201527f6961626c65555549440000000000000000000000000000000000000000000000602082015250565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f45524331393637557067726164653a206e657720696d706c656d656e7461746960008201527f6f6e206973206e6f742055555053000000000000000000000000000000000000602082015250565b7f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60008201527f6f74206120636f6e747261637400000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b613f7681613a36565b8114613f8157600080fd5b50565b613f8d81613a48565b8114613f9857600080fd5b50565b613fa481613a54565b8114613faf57600080fd5b50565b613fbb81613a7e565b8114613fc657600080fd5b5056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122071c5d8f02c0c4967eb288874e4451bc4ee75b35d49d0b3560a1136ba07a133ca64736f6c63430008070033"; - -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 deploy( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy(overrides || {}) as Promise; - } - override getDeployTransaction( - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); - } - override attach(address: string): GatewayEVM { - return super.attach(address) as GatewayEVM; - } - override connect(signer: Signer): GatewayEVM__factory { - return super.connect(signer) as GatewayEVM__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): GatewayEVMInterface { - return new utils.Interface(_abi) as GatewayEVMInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): GatewayEVM { - return new Contract(address, _abi, signerOrProvider) as GatewayEVM; - } -} diff --git a/typechain-types/factories/contracts/prototypes/evm/GatewayUpgradeTest__factory.ts b/typechain-types/factories/contracts/prototypes/evm/GatewayUpgradeTest__factory.ts deleted file mode 100644 index 1bf811e3..00000000 --- a/typechain-types/factories/contracts/prototypes/evm/GatewayUpgradeTest__factory.ts +++ /dev/null @@ -1,488 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../../common"; -import type { - GatewayUpgradeTest, - GatewayUpgradeTestInterface, -} from "../../../../contracts/prototypes/evm/GatewayUpgradeTest"; - -const _abi = [ - { - inputs: [], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [], - name: "ExecutionFailed", - type: "error", - }, - { - inputs: [], - name: "InsufficientETHAmount", - type: "error", - }, - { - inputs: [], - name: "SendFailed", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "previousAdmin", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "newAdmin", - type: "address", - }, - ], - name: "AdminChanged", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "beacon", - type: "address", - }, - ], - name: "BeaconUpgraded", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "destination", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "ExecutedV2", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "ExecutedWithERC20", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint8", - name: "version", - type: "uint8", - }, - ], - name: "Initialized", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "previousOwner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "newOwner", - type: "address", - }, - ], - name: "OwnershipTransferred", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "recipient", - type: "bytes", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "Send", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "recipient", - type: "bytes", - }, - { - indexed: true, - internalType: "address", - name: "asset", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "SendERC20", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "implementation", - type: "address", - }, - ], - name: "Upgraded", - type: "event", - }, - { - inputs: [], - name: "custody", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "destination", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "execute", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "executeWithERC20", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_tssAddress", - type: "address", - }, - ], - name: "initialize", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "owner", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "proxiableUUID", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "renounceOwnership", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "recipient", - type: "bytes", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "send", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "recipient", - type: "bytes", - }, - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "sendERC20", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_custody", - type: "address", - }, - ], - name: "setCustody", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newOwner", - type: "address", - }, - ], - name: "transferOwnership", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "tssAddress", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newImplementation", - type: "address", - }, - ], - name: "upgradeTo", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newImplementation", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "upgradeToAndCall", - outputs: [], - stateMutability: "payable", - type: "function", - }, -] as const; - -const _bytecode = - "0x60a06040523073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152503480156200004757600080fd5b50620000586200005e60201b60201c565b62000208565b600060019054906101000a900460ff1615620000b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000a8906200015c565b60405180910390fd5b60ff801660008054906101000a900460ff1660ff1614620001225760ff6000806101000a81548160ff021916908360ff1602179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860ff6040516200011991906200017e565b60405180910390a15b565b6000620001336027836200019b565b91506200014082620001b9565b604082019050919050565b6200015681620001ac565b82525050565b60006020820190508181036000830152620001778162000124565b9050919050565b60006020820190506200019560008301846200014b565b92915050565b600082825260208201905092915050565b600060ff82169050919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320696e69746960008201527f616c697a696e6700000000000000000000000000000000000000000000000000602082015250565b60805160601c6126b5620002436000396000818161038701528181610416015281816105100152818161059f015261093b01526126b56000f3fe6080604052600436106100dd5760003560e01c80638da5cb5b1161007f578063c4d66de811610059578063c4d66de814610271578063cb0271ed1461029a578063dda79b75146102c3578063f2fde38b146102ee576100dd565b80638da5cb5b146102015780639372c4ab1461022c578063ae7a3a6f14610248576100dd565b80635131ab59116100bb5780635131ab591461015757806352d1902d146101945780635b112591146101bf578063715018a6146101ea576100dd565b80631cff79cd146100e25780633659cfe6146101125780634f1ef2861461013b575b600080fd5b6100fc60048036038101906100f791906118d1565b610317565b6040516101099190611f02565b60405180910390f35b34801561011e57600080fd5b506101396004803603810190610134919061181c565b610385565b005b61015560048036038101906101509190611931565b61050e565b005b34801561016357600080fd5b5061017e60048036038101906101799190611849565b61064b565b60405161018b9190611f02565b60405180910390f35b3480156101a057600080fd5b506101a9610937565b6040516101b69190611eb5565b60405180910390f35b3480156101cb57600080fd5b506101d46109f0565b6040516101e19190611e11565b60405180910390f35b3480156101f657600080fd5b506101ff610a16565b005b34801561020d57600080fd5b50610216610a2a565b6040516102239190611e11565b60405180910390f35b61024660048036038101906102419190611a5b565b610a54565b005b34801561025457600080fd5b5061026f600480360381019061026a919061181c565b610b9c565b005b34801561027d57600080fd5b506102986004803603810190610293919061181c565b610be0565b005b3480156102a657600080fd5b506102c160048036038101906102bc91906119e7565b610d68565b005b3480156102cf57600080fd5b506102d8610e72565b6040516102e59190611e11565b60405180910390f35b3480156102fa57600080fd5b506103156004803603810190610310919061181c565b610e98565b005b60606000610326858585610f1c565b90508473ffffffffffffffffffffffffffffffffffffffff167f373df382b9c587826f3de13f16d67f8d99f28ee947fc0924c6ef2d6d2c7e8546348686604051610372939291906120c1565b60405180910390a2809150509392505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610414576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040b90611f81565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610453610fd3565b73ffffffffffffffffffffffffffffffffffffffff16146104a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a090611fa1565b60405180910390fd5b6104b28161102a565b61050b81600067ffffffffffffffff8111156104d1576104d0612282565b5b6040519080825280601f01601f1916602001820160405280156105035781602001600182028036833780820191505090505b506000611035565b50565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16141561059d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161059490611f81565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166105dc610fd3565b73ffffffffffffffffffffffffffffffffffffffff1614610632576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062990611fa1565b60405180910390fd5b61063b8261102a565b61064782826001611035565b5050565b60608573ffffffffffffffffffffffffffffffffffffffff1663095ea7b386866040518363ffffffff1660e01b8152600401610688929190611e8c565b602060405180830381600087803b1580156106a257600080fd5b505af11580156106b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106da919061198d565b5060006106e8868585610f1c565b90508673ffffffffffffffffffffffffffffffffffffffff1663095ea7b38760006040518363ffffffff1660e01b8152600401610726929190611e63565b602060405180830381600087803b15801561074057600080fd5b505af1158015610754573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610778919061198d565b5060008773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107b49190611e11565b60206040518083038186803b1580156107cc57600080fd5b505afa1580156107e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108049190611abb565b905060008111156108c0578773ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161086c929190611e8c565b602060405180830381600087803b15801561088657600080fd5b505af115801561089a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108be919061198d565b505b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382888888604051610921939291906120c1565b60405180910390a3819250505095945050505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16146109c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109be90611fc1565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b905090565b60ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a1e6111b2565b610a286000611230565b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b80341015610a8e576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051610ad690611dfc565b60006040518083038185875af1925050503d8060008114610b13576040519150601f19603f3d011682016040523d82523d6000602084013e610b18565b606091505b50509050600015158115151415610b5b576040517f81063e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fa93afc57f3be4641cf20c7165d11856f3b46dd376108e5fffb06f73f2b2a6d58848484604051610b8e93929190611ed0565b60405180910390a150505050565b8060c960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060019054906101000a900460ff16159050808015610c115750600160008054906101000a900460ff1660ff16105b80610c3e5750610c20306112f6565b158015610c3d5750600160008054906101000a900460ff1660ff16145b5b610c7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7490612001565b60405180910390fd5b60016000806101000a81548160ff021916908360ff1602179055508015610cba576001600060016101000a81548160ff0219169083151502179055505b610cc2611319565b610cca611372565b8160ca60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508015610d645760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986001604051610d5b9190611f24565b60405180910390a15b5050565b8173ffffffffffffffffffffffffffffffffffffffff166323b872dd3360c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b8152600401610dc793929190611e2c565b602060405180830381600087803b158015610de157600080fd5b505af1158015610df5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e19919061198d565b508173ffffffffffffffffffffffffffffffffffffffff167f35fb30ed1b8e81eb91001dad742b13b1491a67c722e8c593a886a18500f7d9af858584604051610e6493929190611ed0565b60405180910390a250505050565b60c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610ea06111b2565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0790611f61565b60405180910390fd5b610f1981611230565b50565b60606000808573ffffffffffffffffffffffffffffffffffffffff16348686604051610f49929190611dcc565b60006040518083038185875af1925050503d8060008114610f86576040519150601f19603f3d011682016040523d82523d6000602084013e610f8b565b606091505b509150915081610fc7576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80925050509392505050565b60006110017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6113c3565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6110326111b2565b50565b6110617f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914360001b6113cd565b60000160009054906101000a900460ff161561108557611080836113d7565b6111ad565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156110cb57600080fd5b505afa9250505080156110fc57506040513d601f19601f820116820180604052508101906110f991906119ba565b60015b61113b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113290612021565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b81146111a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119790611fe1565b60405180910390fd5b506111ac838383611490565b5b505050565b6111ba6114bc565b73ffffffffffffffffffffffffffffffffffffffff166111d8610a2a565b73ffffffffffffffffffffffffffffffffffffffff161461122e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122590612061565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16611368576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135f906120a1565b60405180910390fd5b6113706114c4565b565b600060019054906101000a900460ff166113c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b8906120a1565b60405180910390fd5b565b6000819050919050565b6000819050919050565b6113e0816112f6565b61141f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141690612041565b60405180910390fd5b8061144c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6113c3565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61149983611525565b6000825111806114a65750805b156114b7576114b58383611574565b505b505050565b600033905090565b600060019054906101000a900460ff16611513576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150a906120a1565b60405180910390fd5b61152361151e6114bc565b611230565b565b61152e816113d7565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b60606115998383604051806060016040528060278152602001612659602791396115a1565b905092915050565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516115cb9190611de5565b600060405180830381855af49150503d8060008114611606576040519150601f19603f3d011682016040523d82523d6000602084013e61160b565b606091505b509150915061161c86838387611627565b925050509392505050565b6060831561168a5760008351141561168257611642856112f6565b611681576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167890612081565b60405180910390fd5b5b829050611695565b611694838361169d565b5b949350505050565b6000825111156116b05781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e49190611f3f565b60405180910390fd5b60006117006116fb84612118565b6120f3565b90508281526020810184848401111561171c5761171b6122c0565b5b61172784828561220f565b509392505050565b60008135905061173e816125fc565b92915050565b60008151905061175381612613565b92915050565b6000815190506117688161262a565b92915050565b60008083601f840112611784576117836122b6565b5b8235905067ffffffffffffffff8111156117a1576117a06122b1565b5b6020830191508360018202830111156117bd576117bc6122bb565b5b9250929050565b600082601f8301126117d9576117d86122b6565b5b81356117e98482602086016116ed565b91505092915050565b60008135905061180181612641565b92915050565b60008151905061181681612641565b92915050565b600060208284031215611832576118316122ca565b5b60006118408482850161172f565b91505092915050565b600080600080600060808688031215611865576118646122ca565b5b60006118738882890161172f565b95505060206118848882890161172f565b9450506040611895888289016117f2565b935050606086013567ffffffffffffffff8111156118b6576118b56122c5565b5b6118c28882890161176e565b92509250509295509295909350565b6000806000604084860312156118ea576118e96122ca565b5b60006118f88682870161172f565b935050602084013567ffffffffffffffff811115611919576119186122c5565b5b6119258682870161176e565b92509250509250925092565b60008060408385031215611948576119476122ca565b5b60006119568582860161172f565b925050602083013567ffffffffffffffff811115611977576119766122c5565b5b611983858286016117c4565b9150509250929050565b6000602082840312156119a3576119a26122ca565b5b60006119b184828501611744565b91505092915050565b6000602082840312156119d0576119cf6122ca565b5b60006119de84828501611759565b91505092915050565b60008060008060608587031215611a0157611a006122ca565b5b600085013567ffffffffffffffff811115611a1f57611a1e6122c5565b5b611a2b8782880161176e565b94509450506020611a3e8782880161172f565b9250506040611a4f878288016117f2565b91505092959194509250565b600080600060408486031215611a7457611a736122ca565b5b600084013567ffffffffffffffff811115611a9257611a916122c5565b5b611a9e8682870161176e565b93509350506020611ab1868287016117f2565b9150509250925092565b600060208284031215611ad157611ad06122ca565b5b6000611adf84828501611807565b91505092915050565b611af18161218c565b82525050565b611b00816121aa565b82525050565b6000611b12838561215f565b9350611b1f83858461220f565b611b28836122cf565b840190509392505050565b6000611b3f8385612170565b9350611b4c83858461220f565b82840190509392505050565b6000611b6382612149565b611b6d818561215f565b9350611b7d81856020860161221e565b611b86816122cf565b840191505092915050565b6000611b9c82612149565b611ba68185612170565b9350611bb681856020860161221e565b80840191505092915050565b611bcb816121eb565b82525050565b611bda816121fd565b82525050565b6000611beb82612154565b611bf5818561217b565b9350611c0581856020860161221e565b611c0e816122cf565b840191505092915050565b6000611c2660268361217b565b9150611c31826122e0565b604082019050919050565b6000611c49602c8361217b565b9150611c548261232f565b604082019050919050565b6000611c6c602c8361217b565b9150611c778261237e565b604082019050919050565b6000611c8f60388361217b565b9150611c9a826123cd565b604082019050919050565b6000611cb260298361217b565b9150611cbd8261241c565b604082019050919050565b6000611cd5602e8361217b565b9150611ce08261246b565b604082019050919050565b6000611cf8602e8361217b565b9150611d03826124ba565b604082019050919050565b6000611d1b602d8361217b565b9150611d2682612509565b604082019050919050565b6000611d3e60208361217b565b9150611d4982612558565b602082019050919050565b6000611d61600083612170565b9150611d6c82612581565b600082019050919050565b6000611d84601d8361217b565b9150611d8f82612584565b602082019050919050565b6000611da7602b8361217b565b9150611db2826125ad565b604082019050919050565b611dc6816121d4565b82525050565b6000611dd9828486611b33565b91508190509392505050565b6000611df18284611b91565b915081905092915050565b6000611e0782611d54565b9150819050919050565b6000602082019050611e266000830184611ae8565b92915050565b6000606082019050611e416000830186611ae8565b611e4e6020830185611ae8565b611e5b6040830184611dbd565b949350505050565b6000604082019050611e786000830185611ae8565b611e856020830184611bc2565b9392505050565b6000604082019050611ea16000830185611ae8565b611eae6020830184611dbd565b9392505050565b6000602082019050611eca6000830184611af7565b92915050565b60006040820190508181036000830152611eeb818587611b06565b9050611efa6020830184611dbd565b949350505050565b60006020820190508181036000830152611f1c8184611b58565b905092915050565b6000602082019050611f396000830184611bd1565b92915050565b60006020820190508181036000830152611f598184611be0565b905092915050565b60006020820190508181036000830152611f7a81611c19565b9050919050565b60006020820190508181036000830152611f9a81611c3c565b9050919050565b60006020820190508181036000830152611fba81611c5f565b9050919050565b60006020820190508181036000830152611fda81611c82565b9050919050565b60006020820190508181036000830152611ffa81611ca5565b9050919050565b6000602082019050818103600083015261201a81611cc8565b9050919050565b6000602082019050818103600083015261203a81611ceb565b9050919050565b6000602082019050818103600083015261205a81611d0e565b9050919050565b6000602082019050818103600083015261207a81611d31565b9050919050565b6000602082019050818103600083015261209a81611d77565b9050919050565b600060208201905081810360008301526120ba81611d9a565b9050919050565b60006040820190506120d66000830186611dbd565b81810360208301526120e9818486611b06565b9050949350505050565b60006120fd61210e565b90506121098282612251565b919050565b6000604051905090565b600067ffffffffffffffff82111561213357612132612282565b5b61213c826122cf565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000612197826121b4565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006121f6826121d4565b9050919050565b6000612208826121de565b9050919050565b82818337600083830152505050565b60005b8381101561223c578082015181840152602081019050612221565b8381111561224b576000848401525b50505050565b61225a826122cf565b810181811067ffffffffffffffff8211171561227957612278612282565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f64656c656761746563616c6c0000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f6163746976652070726f78790000000000000000000000000000000000000000602082015250565b7f555550535570677261646561626c653a206d757374206e6f742062652063616c60008201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000602082015250565b7f45524331393637557067726164653a20756e737570706f727465642070726f7860008201527f6961626c65555549440000000000000000000000000000000000000000000000602082015250565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f45524331393637557067726164653a206e657720696d706c656d656e7461746960008201527f6f6e206973206e6f742055555053000000000000000000000000000000000000602082015250565b7f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60008201527f6f74206120636f6e747261637400000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b6126058161218c565b811461261057600080fd5b50565b61261c8161219e565b811461262757600080fd5b50565b612633816121aa565b811461263e57600080fd5b50565b61264a816121d4565b811461265557600080fd5b5056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220f9e6a4cee513b2822548c38bc338fc47226488d211aa133e6b4c074eac2122a764736f6c63430008070033"; - -type GatewayUpgradeTestConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: GatewayUpgradeTestConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class GatewayUpgradeTest__factory extends ContractFactory { - constructor(...args: GatewayUpgradeTestConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override deploy( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy(overrides || {}) as Promise; - } - override getDeployTransaction( - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); - } - override attach(address: string): GatewayUpgradeTest { - return super.attach(address) as GatewayUpgradeTest; - } - override connect(signer: Signer): GatewayUpgradeTest__factory { - return super.connect(signer) as GatewayUpgradeTest__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): GatewayUpgradeTestInterface { - return new utils.Interface(_abi) as GatewayUpgradeTestInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): GatewayUpgradeTest { - return new Contract(address, _abi, signerOrProvider) as GatewayUpgradeTest; - } -} diff --git a/typechain-types/factories/contracts/prototypes/evm/Gateway__factory.ts b/typechain-types/factories/contracts/prototypes/evm/Gateway__factory.ts deleted file mode 100644 index a19f6505..00000000 --- a/typechain-types/factories/contracts/prototypes/evm/Gateway__factory.ts +++ /dev/null @@ -1,488 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../../common"; -import type { - Gateway, - GatewayInterface, -} from "../../../../contracts/prototypes/evm/Gateway"; - -const _abi = [ - { - inputs: [], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [], - name: "ExecutionFailed", - type: "error", - }, - { - inputs: [], - name: "InsufficientETHAmount", - type: "error", - }, - { - inputs: [], - name: "SendFailed", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "previousAdmin", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "newAdmin", - type: "address", - }, - ], - name: "AdminChanged", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "beacon", - type: "address", - }, - ], - name: "BeaconUpgraded", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "destination", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "Executed", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "ExecutedWithERC20", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint8", - name: "version", - type: "uint8", - }, - ], - name: "Initialized", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "previousOwner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "newOwner", - type: "address", - }, - ], - name: "OwnershipTransferred", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "recipient", - type: "bytes", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "Send", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "recipient", - type: "bytes", - }, - { - indexed: true, - internalType: "address", - name: "asset", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "SendERC20", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "implementation", - type: "address", - }, - ], - name: "Upgraded", - type: "event", - }, - { - inputs: [], - name: "custody", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "destination", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "execute", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "executeWithERC20", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_tssAddress", - type: "address", - }, - ], - name: "initialize", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "owner", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "proxiableUUID", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "renounceOwnership", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "recipient", - type: "bytes", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "send", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "recipient", - type: "bytes", - }, - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "sendERC20", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_custody", - type: "address", - }, - ], - name: "setCustody", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newOwner", - type: "address", - }, - ], - name: "transferOwnership", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "tssAddress", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newImplementation", - type: "address", - }, - ], - name: "upgradeTo", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newImplementation", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "upgradeToAndCall", - outputs: [], - stateMutability: "payable", - type: "function", - }, -] as const; - -const _bytecode = - "0x60a06040523073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152503480156200004757600080fd5b50620000586200005e60201b60201c565b62000208565b600060019054906101000a900460ff1615620000b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000a8906200015c565b60405180910390fd5b60ff801660008054906101000a900460ff1660ff1614620001225760ff6000806101000a81548160ff021916908360ff1602179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860ff6040516200011991906200017e565b60405180910390a15b565b6000620001336027836200019b565b91506200014082620001b9565b604082019050919050565b6200015681620001ac565b82525050565b60006020820190508181036000830152620001778162000124565b9050919050565b60006020820190506200019560008301846200014b565b92915050565b600082825260208201905092915050565b600060ff82169050919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320696e69746960008201527f616c697a696e6700000000000000000000000000000000000000000000000000602082015250565b60805160601c6126b5620002436000396000818161038701528181610416015281816105100152818161059f015261093b01526126b56000f3fe6080604052600436106100dd5760003560e01c80638da5cb5b1161007f578063c4d66de811610059578063c4d66de814610271578063cb0271ed1461029a578063dda79b75146102c3578063f2fde38b146102ee576100dd565b80638da5cb5b146102015780639372c4ab1461022c578063ae7a3a6f14610248576100dd565b80635131ab59116100bb5780635131ab591461015757806352d1902d146101945780635b112591146101bf578063715018a6146101ea576100dd565b80631cff79cd146100e25780633659cfe6146101125780634f1ef2861461013b575b600080fd5b6100fc60048036038101906100f791906118d1565b610317565b6040516101099190611f02565b60405180910390f35b34801561011e57600080fd5b506101396004803603810190610134919061181c565b610385565b005b61015560048036038101906101509190611931565b61050e565b005b34801561016357600080fd5b5061017e60048036038101906101799190611849565b61064b565b60405161018b9190611f02565b60405180910390f35b3480156101a057600080fd5b506101a9610937565b6040516101b69190611eb5565b60405180910390f35b3480156101cb57600080fd5b506101d46109f0565b6040516101e19190611e11565b60405180910390f35b3480156101f657600080fd5b506101ff610a16565b005b34801561020d57600080fd5b50610216610a2a565b6040516102239190611e11565b60405180910390f35b61024660048036038101906102419190611a5b565b610a54565b005b34801561025457600080fd5b5061026f600480360381019061026a919061181c565b610b9c565b005b34801561027d57600080fd5b506102986004803603810190610293919061181c565b610be0565b005b3480156102a657600080fd5b506102c160048036038101906102bc91906119e7565b610d68565b005b3480156102cf57600080fd5b506102d8610e72565b6040516102e59190611e11565b60405180910390f35b3480156102fa57600080fd5b506103156004803603810190610310919061181c565b610e98565b005b60606000610326858585610f1c565b90508473ffffffffffffffffffffffffffffffffffffffff167fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f348686604051610372939291906120c1565b60405180910390a2809150509392505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610414576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040b90611f81565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610453610fd3565b73ffffffffffffffffffffffffffffffffffffffff16146104a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a090611fa1565b60405180910390fd5b6104b28161102a565b61050b81600067ffffffffffffffff8111156104d1576104d0612282565b5b6040519080825280601f01601f1916602001820160405280156105035781602001600182028036833780820191505090505b506000611035565b50565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16141561059d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161059490611f81565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166105dc610fd3565b73ffffffffffffffffffffffffffffffffffffffff1614610632576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062990611fa1565b60405180910390fd5b61063b8261102a565b61064782826001611035565b5050565b60608573ffffffffffffffffffffffffffffffffffffffff1663095ea7b386866040518363ffffffff1660e01b8152600401610688929190611e8c565b602060405180830381600087803b1580156106a257600080fd5b505af11580156106b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106da919061198d565b5060006106e8868585610f1c565b90508673ffffffffffffffffffffffffffffffffffffffff1663095ea7b38760006040518363ffffffff1660e01b8152600401610726929190611e63565b602060405180830381600087803b15801561074057600080fd5b505af1158015610754573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610778919061198d565b5060008773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107b49190611e11565b60206040518083038186803b1580156107cc57600080fd5b505afa1580156107e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108049190611abb565b905060008111156108c0578773ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161086c929190611e8c565b602060405180830381600087803b15801561088657600080fd5b505af115801561089a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108be919061198d565b505b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382888888604051610921939291906120c1565b60405180910390a3819250505095945050505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16146109c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109be90611fc1565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b905090565b60ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a1e6111b2565b610a286000611230565b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b80341015610a8e576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051610ad690611dfc565b60006040518083038185875af1925050503d8060008114610b13576040519150601f19603f3d011682016040523d82523d6000602084013e610b18565b606091505b50509050600015158115151415610b5b576040517f81063e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fa93afc57f3be4641cf20c7165d11856f3b46dd376108e5fffb06f73f2b2a6d58848484604051610b8e93929190611ed0565b60405180910390a150505050565b8060c960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060019054906101000a900460ff16159050808015610c115750600160008054906101000a900460ff1660ff16105b80610c3e5750610c20306112f6565b158015610c3d5750600160008054906101000a900460ff1660ff16145b5b610c7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7490612001565b60405180910390fd5b60016000806101000a81548160ff021916908360ff1602179055508015610cba576001600060016101000a81548160ff0219169083151502179055505b610cc2611319565b610cca611372565b8160ca60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508015610d645760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986001604051610d5b9190611f24565b60405180910390a15b5050565b8173ffffffffffffffffffffffffffffffffffffffff166323b872dd3360c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b8152600401610dc793929190611e2c565b602060405180830381600087803b158015610de157600080fd5b505af1158015610df5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e19919061198d565b508173ffffffffffffffffffffffffffffffffffffffff167f35fb30ed1b8e81eb91001dad742b13b1491a67c722e8c593a886a18500f7d9af858584604051610e6493929190611ed0565b60405180910390a250505050565b60c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610ea06111b2565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0790611f61565b60405180910390fd5b610f1981611230565b50565b60606000808573ffffffffffffffffffffffffffffffffffffffff16348686604051610f49929190611dcc565b60006040518083038185875af1925050503d8060008114610f86576040519150601f19603f3d011682016040523d82523d6000602084013e610f8b565b606091505b509150915081610fc7576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80925050509392505050565b60006110017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6113c3565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6110326111b2565b50565b6110617f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914360001b6113cd565b60000160009054906101000a900460ff161561108557611080836113d7565b6111ad565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156110cb57600080fd5b505afa9250505080156110fc57506040513d601f19601f820116820180604052508101906110f991906119ba565b60015b61113b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113290612021565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b81146111a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119790611fe1565b60405180910390fd5b506111ac838383611490565b5b505050565b6111ba6114bc565b73ffffffffffffffffffffffffffffffffffffffff166111d8610a2a565b73ffffffffffffffffffffffffffffffffffffffff161461122e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122590612061565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16611368576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135f906120a1565b60405180910390fd5b6113706114c4565b565b600060019054906101000a900460ff166113c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b8906120a1565b60405180910390fd5b565b6000819050919050565b6000819050919050565b6113e0816112f6565b61141f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141690612041565b60405180910390fd5b8061144c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6113c3565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61149983611525565b6000825111806114a65750805b156114b7576114b58383611574565b505b505050565b600033905090565b600060019054906101000a900460ff16611513576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150a906120a1565b60405180910390fd5b61152361151e6114bc565b611230565b565b61152e816113d7565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b60606115998383604051806060016040528060278152602001612659602791396115a1565b905092915050565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516115cb9190611de5565b600060405180830381855af49150503d8060008114611606576040519150601f19603f3d011682016040523d82523d6000602084013e61160b565b606091505b509150915061161c86838387611627565b925050509392505050565b6060831561168a5760008351141561168257611642856112f6565b611681576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167890612081565b60405180910390fd5b5b829050611695565b611694838361169d565b5b949350505050565b6000825111156116b05781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e49190611f3f565b60405180910390fd5b60006117006116fb84612118565b6120f3565b90508281526020810184848401111561171c5761171b6122c0565b5b61172784828561220f565b509392505050565b60008135905061173e816125fc565b92915050565b60008151905061175381612613565b92915050565b6000815190506117688161262a565b92915050565b60008083601f840112611784576117836122b6565b5b8235905067ffffffffffffffff8111156117a1576117a06122b1565b5b6020830191508360018202830111156117bd576117bc6122bb565b5b9250929050565b600082601f8301126117d9576117d86122b6565b5b81356117e98482602086016116ed565b91505092915050565b60008135905061180181612641565b92915050565b60008151905061181681612641565b92915050565b600060208284031215611832576118316122ca565b5b60006118408482850161172f565b91505092915050565b600080600080600060808688031215611865576118646122ca565b5b60006118738882890161172f565b95505060206118848882890161172f565b9450506040611895888289016117f2565b935050606086013567ffffffffffffffff8111156118b6576118b56122c5565b5b6118c28882890161176e565b92509250509295509295909350565b6000806000604084860312156118ea576118e96122ca565b5b60006118f88682870161172f565b935050602084013567ffffffffffffffff811115611919576119186122c5565b5b6119258682870161176e565b92509250509250925092565b60008060408385031215611948576119476122ca565b5b60006119568582860161172f565b925050602083013567ffffffffffffffff811115611977576119766122c5565b5b611983858286016117c4565b9150509250929050565b6000602082840312156119a3576119a26122ca565b5b60006119b184828501611744565b91505092915050565b6000602082840312156119d0576119cf6122ca565b5b60006119de84828501611759565b91505092915050565b60008060008060608587031215611a0157611a006122ca565b5b600085013567ffffffffffffffff811115611a1f57611a1e6122c5565b5b611a2b8782880161176e565b94509450506020611a3e8782880161172f565b9250506040611a4f878288016117f2565b91505092959194509250565b600080600060408486031215611a7457611a736122ca565b5b600084013567ffffffffffffffff811115611a9257611a916122c5565b5b611a9e8682870161176e565b93509350506020611ab1868287016117f2565b9150509250925092565b600060208284031215611ad157611ad06122ca565b5b6000611adf84828501611807565b91505092915050565b611af18161218c565b82525050565b611b00816121aa565b82525050565b6000611b12838561215f565b9350611b1f83858461220f565b611b28836122cf565b840190509392505050565b6000611b3f8385612170565b9350611b4c83858461220f565b82840190509392505050565b6000611b6382612149565b611b6d818561215f565b9350611b7d81856020860161221e565b611b86816122cf565b840191505092915050565b6000611b9c82612149565b611ba68185612170565b9350611bb681856020860161221e565b80840191505092915050565b611bcb816121eb565b82525050565b611bda816121fd565b82525050565b6000611beb82612154565b611bf5818561217b565b9350611c0581856020860161221e565b611c0e816122cf565b840191505092915050565b6000611c2660268361217b565b9150611c31826122e0565b604082019050919050565b6000611c49602c8361217b565b9150611c548261232f565b604082019050919050565b6000611c6c602c8361217b565b9150611c778261237e565b604082019050919050565b6000611c8f60388361217b565b9150611c9a826123cd565b604082019050919050565b6000611cb260298361217b565b9150611cbd8261241c565b604082019050919050565b6000611cd5602e8361217b565b9150611ce08261246b565b604082019050919050565b6000611cf8602e8361217b565b9150611d03826124ba565b604082019050919050565b6000611d1b602d8361217b565b9150611d2682612509565b604082019050919050565b6000611d3e60208361217b565b9150611d4982612558565b602082019050919050565b6000611d61600083612170565b9150611d6c82612581565b600082019050919050565b6000611d84601d8361217b565b9150611d8f82612584565b602082019050919050565b6000611da7602b8361217b565b9150611db2826125ad565b604082019050919050565b611dc6816121d4565b82525050565b6000611dd9828486611b33565b91508190509392505050565b6000611df18284611b91565b915081905092915050565b6000611e0782611d54565b9150819050919050565b6000602082019050611e266000830184611ae8565b92915050565b6000606082019050611e416000830186611ae8565b611e4e6020830185611ae8565b611e5b6040830184611dbd565b949350505050565b6000604082019050611e786000830185611ae8565b611e856020830184611bc2565b9392505050565b6000604082019050611ea16000830185611ae8565b611eae6020830184611dbd565b9392505050565b6000602082019050611eca6000830184611af7565b92915050565b60006040820190508181036000830152611eeb818587611b06565b9050611efa6020830184611dbd565b949350505050565b60006020820190508181036000830152611f1c8184611b58565b905092915050565b6000602082019050611f396000830184611bd1565b92915050565b60006020820190508181036000830152611f598184611be0565b905092915050565b60006020820190508181036000830152611f7a81611c19565b9050919050565b60006020820190508181036000830152611f9a81611c3c565b9050919050565b60006020820190508181036000830152611fba81611c5f565b9050919050565b60006020820190508181036000830152611fda81611c82565b9050919050565b60006020820190508181036000830152611ffa81611ca5565b9050919050565b6000602082019050818103600083015261201a81611cc8565b9050919050565b6000602082019050818103600083015261203a81611ceb565b9050919050565b6000602082019050818103600083015261205a81611d0e565b9050919050565b6000602082019050818103600083015261207a81611d31565b9050919050565b6000602082019050818103600083015261209a81611d77565b9050919050565b600060208201905081810360008301526120ba81611d9a565b9050919050565b60006040820190506120d66000830186611dbd565b81810360208301526120e9818486611b06565b9050949350505050565b60006120fd61210e565b90506121098282612251565b919050565b6000604051905090565b600067ffffffffffffffff82111561213357612132612282565b5b61213c826122cf565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000612197826121b4565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006121f6826121d4565b9050919050565b6000612208826121de565b9050919050565b82818337600083830152505050565b60005b8381101561223c578082015181840152602081019050612221565b8381111561224b576000848401525b50505050565b61225a826122cf565b810181811067ffffffffffffffff8211171561227957612278612282565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f64656c656761746563616c6c0000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f6163746976652070726f78790000000000000000000000000000000000000000602082015250565b7f555550535570677261646561626c653a206d757374206e6f742062652063616c60008201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000602082015250565b7f45524331393637557067726164653a20756e737570706f727465642070726f7860008201527f6961626c65555549440000000000000000000000000000000000000000000000602082015250565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f45524331393637557067726164653a206e657720696d706c656d656e7461746960008201527f6f6e206973206e6f742055555053000000000000000000000000000000000000602082015250565b7f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60008201527f6f74206120636f6e747261637400000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b6126058161218c565b811461261057600080fd5b50565b61261c8161219e565b811461262757600080fd5b50565b612633816121aa565b811461263e57600080fd5b50565b61264a816121d4565b811461265557600080fd5b5056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220723434571cc9cd7e95021f49aa480cf09a88e70f379bcd364628ebd80d926ab464736f6c63430008070033"; - -type GatewayConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: GatewayConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class Gateway__factory extends ContractFactory { - constructor(...args: GatewayConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override deploy( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy(overrides || {}) as Promise; - } - override getDeployTransaction( - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); - } - override attach(address: string): Gateway { - return super.attach(address) as Gateway; - } - override connect(signer: Signer): Gateway__factory { - return super.connect(signer) as Gateway__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): GatewayInterface { - return new utils.Interface(_abi) as GatewayInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): Gateway { - return new Contract(address, _abi, signerOrProvider) as Gateway; - } -} diff --git a/typechain-types/factories/contracts/prototypes/evm/IERC20CustodyNew.sol/IERC20CustodyNewErrors__factory.ts b/typechain-types/factories/contracts/prototypes/evm/IERC20CustodyNew.sol/IERC20CustodyNewErrors__factory.ts deleted file mode 100644 index d751d847..00000000 --- a/typechain-types/factories/contracts/prototypes/evm/IERC20CustodyNew.sol/IERC20CustodyNewErrors__factory.ts +++ /dev/null @@ -1,40 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; -import type { - IERC20CustodyNewErrors, - IERC20CustodyNewErrorsInterface, -} from "../../../../../contracts/prototypes/evm/IERC20CustodyNew.sol/IERC20CustodyNewErrors"; - -const _abi = [ - { - inputs: [], - name: "InvalidSender", - type: "error", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, -] as const; - -export class IERC20CustodyNewErrors__factory { - static readonly abi = _abi; - static createInterface(): IERC20CustodyNewErrorsInterface { - return new utils.Interface(_abi) as IERC20CustodyNewErrorsInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): IERC20CustodyNewErrors { - return new Contract( - address, - _abi, - signerOrProvider - ) as IERC20CustodyNewErrors; - } -} diff --git a/typechain-types/factories/contracts/prototypes/evm/IERC20CustodyNew.sol/index.ts b/typechain-types/factories/contracts/prototypes/evm/IERC20CustodyNew.sol/index.ts deleted file mode 100644 index 9f3d2112..00000000 --- a/typechain-types/factories/contracts/prototypes/evm/IERC20CustodyNew.sol/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* 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/typechain-types/factories/contracts/prototypes/evm/IGatewayEVM.sol/IGatewayEVMErrors__factory.ts b/typechain-types/factories/contracts/prototypes/evm/IGatewayEVM.sol/IGatewayEVMErrors__factory.ts deleted file mode 100644 index 43023c05..00000000 --- a/typechain-types/factories/contracts/prototypes/evm/IGatewayEVM.sol/IGatewayEVMErrors__factory.ts +++ /dev/null @@ -1,66 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; -import type { - IGatewayEVMErrors, - IGatewayEVMErrorsInterface, -} from "../../../../../contracts/prototypes/evm/IGatewayEVM.sol/IGatewayEVMErrors"; - -const _abi = [ - { - inputs: [], - name: "ApprovalFailed", - type: "error", - }, - { - inputs: [], - name: "CustodyInitialized", - type: "error", - }, - { - inputs: [], - name: "DepositFailed", - type: "error", - }, - { - inputs: [], - name: "ExecutionFailed", - type: "error", - }, - { - inputs: [], - name: "InsufficientERC20Amount", - type: "error", - }, - { - inputs: [], - name: "InsufficientETHAmount", - type: "error", - }, - { - inputs: [], - name: "InvalidSender", - type: "error", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, -] as const; - -export class IGatewayEVMErrors__factory { - static readonly abi = _abi; - static createInterface(): IGatewayEVMErrorsInterface { - return new utils.Interface(_abi) as IGatewayEVMErrorsInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): IGatewayEVMErrors { - return new Contract(address, _abi, signerOrProvider) as IGatewayEVMErrors; - } -} diff --git a/typechain-types/factories/contracts/prototypes/evm/IGatewayEVM.sol/Revertable__factory.ts b/typechain-types/factories/contracts/prototypes/evm/IGatewayEVM.sol/Revertable__factory.ts deleted file mode 100644 index 0f36d38b..00000000 --- a/typechain-types/factories/contracts/prototypes/evm/IGatewayEVM.sol/Revertable__factory.ts +++ /dev/null @@ -1,39 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; -import type { - Revertable, - RevertableInterface, -} from "../../../../../contracts/prototypes/evm/IGatewayEVM.sol/Revertable"; - -const _abi = [ - { - inputs: [ - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "onRevert", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class Revertable__factory { - static readonly abi = _abi; - static createInterface(): RevertableInterface { - return new utils.Interface(_abi) as RevertableInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): Revertable { - return new Contract(address, _abi, signerOrProvider) as Revertable; - } -} diff --git a/typechain-types/factories/contracts/prototypes/evm/ReceiverEVM__factory.ts b/typechain-types/factories/contracts/prototypes/evm/ReceiverEVM__factory.ts deleted file mode 100644 index e8598851..00000000 --- a/typechain-types/factories/contracts/prototypes/evm/ReceiverEVM__factory.ts +++ /dev/null @@ -1,319 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../../common"; -import type { - ReceiverEVM, - ReceiverEVMInterface, -} from "../../../../contracts/prototypes/evm/ReceiverEVM"; - -const _abi = [ - { - inputs: [], - name: "ZeroAmount", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "destination", - type: "address", - }, - ], - name: "ReceivedERC20", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "ReceivedNoParams", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "string[]", - name: "strs", - type: "string[]", - }, - { - indexed: false, - internalType: "uint256[]", - name: "nums", - type: "uint256[]", - }, - { - indexed: false, - internalType: "bool", - name: "flag", - type: "bool", - }, - ], - name: "ReceivedNonPayable", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "string", - name: "str", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "num", - type: "uint256", - }, - { - indexed: false, - internalType: "bool", - name: "flag", - type: "bool", - }, - ], - name: "ReceivedPayable", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "ReceivedRevert", - type: "event", - }, - { - stateMutability: "payable", - type: "fallback", - }, - { - inputs: [ - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "onRevert", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "destination", - type: "address", - }, - ], - name: "receiveERC20", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "destination", - type: "address", - }, - ], - name: "receiveERC20Partial", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "receiveNoParams", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string[]", - name: "strs", - type: "string[]", - }, - { - internalType: "uint256[]", - name: "nums", - type: "uint256[]", - }, - { - internalType: "bool", - name: "flag", - type: "bool", - }, - ], - name: "receiveNonPayable", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "str", - type: "string", - }, - { - internalType: "uint256", - name: "num", - type: "uint256", - }, - { - internalType: "bool", - name: "flag", - type: "bool", - }, - ], - name: "receivePayable", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - stateMutability: "payable", - type: "receive", - }, -] as const; - -const _bytecode = - "0x608060405234801561001057600080fd5b506001600081905550611453806100286000396000f3fe6080604052600436106100595760003560e01c8063357fc5a2146100625780636ed701691461008b5780638fcaa0b5146100a2578063c5131691146100cb578063e04d4f97146100f4578063f05b6abf1461011057610060565b3661006057005b005b34801561006e57600080fd5b5061008960048036038101906100849190610ae2565b610139565b005b34801561009757600080fd5b506100a06101b8565b005b3480156100ae57600080fd5b506100c960048036038101906100c49190610a26565b6101f1565b005b3480156100d757600080fd5b506100f260048036038101906100ed9190610ae2565b610230565b005b61010e60048036038101906101099190610a73565b6102fc565b005b34801561011c57600080fd5b506101376004803603810190610132919061096e565b610340565b005b610141610382565b61016e3382858573ffffffffffffffffffffffffffffffffffffffff166103d2909392919063ffffffff16565b7f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af60338484846040516101a39493929190610eba565b60405180910390a16101b361045b565b505050565b7fbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a0336040516101e79190610de3565b60405180910390a1565b7f0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa33838360405161022493929190610e88565b60405180910390a15050565b610238610382565b6000600284610247919061116f565b90506000811415610284576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6102b13383838673ffffffffffffffffffffffffffffffffffffffff166103d2909392919063ffffffff16565b7f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af60338285856040516102e69493929190610eba565b60405180910390a1506102f761045b565b505050565b7f1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa3334858585604051610333959493929190610eff565b60405180910390a1505050565b7f74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146338484846040516103759493929190610e35565b60405180910390a1505050565b600260005414156103c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103bf90610fdb565b60405180910390fd5b6002600081905550565b610455846323b872dd60e01b8585856040516024016103f393929190610dfe565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610465565b50505050565b6001600081905550565b60006104c7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661052c9092919063ffffffff16565b905060008151111561052757808060200190518101906104e791906109f9565b610526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051d90610fbb565b60405180910390fd5b5b505050565b606061053b8484600085610544565b90509392505050565b606082471015610589576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058090610f7b565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516105b29190610dcc565b60006040518083038185875af1925050503d80600081146105ef576040519150601f19603f3d011682016040523d82523d6000602084013e6105f4565b606091505b509150915061060587838387610611565b92505050949350505050565b606083156106745760008351141561066c5761062c85610687565b61066b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066290610f9b565b60405180910390fd5b5b82905061067f565b61067e83836106aa565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156106bd5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f19190610f59565b60405180910390fd5b600061070d61070884611020565b610ffb565b905080838252602082019050828560208602820111156107305761072f6112c3565b5b60005b8581101561077e57813567ffffffffffffffff811115610756576107556112be565b5b808601610763898261092b565b85526020850194506020840193505050600181019050610733565b5050509392505050565b600061079b6107968461104c565b610ffb565b905080838252602082019050828560208602820111156107be576107bd6112c3565b5b60005b858110156107ee57816107d48882610959565b8452602084019350602083019250506001810190506107c1565b5050509392505050565b600061080b61080684611078565b610ffb565b905082815260208101848484011115610827576108266112c8565b5b6108328482856111e8565b509392505050565b600081359050610849816113d8565b92915050565b600082601f830112610864576108636112be565b5b81356108748482602086016106fa565b91505092915050565b600082601f830112610892576108916112be565b5b81356108a2848260208601610788565b91505092915050565b6000813590506108ba816113ef565b92915050565b6000815190506108cf816113ef565b92915050565b60008083601f8401126108eb576108ea6112be565b5b8235905067ffffffffffffffff811115610908576109076112b9565b5b602083019150836001820283011115610924576109236112c3565b5b9250929050565b600082601f8301126109405761093f6112be565b5b81356109508482602086016107f8565b91505092915050565b60008135905061096881611406565b92915050565b600080600060608486031215610987576109866112d2565b5b600084013567ffffffffffffffff8111156109a5576109a46112cd565b5b6109b18682870161084f565b935050602084013567ffffffffffffffff8111156109d2576109d16112cd565b5b6109de8682870161087d565b92505060406109ef868287016108ab565b9150509250925092565b600060208284031215610a0f57610a0e6112d2565b5b6000610a1d848285016108c0565b91505092915050565b60008060208385031215610a3d57610a3c6112d2565b5b600083013567ffffffffffffffff811115610a5b57610a5a6112cd565b5b610a67858286016108d5565b92509250509250929050565b600080600060608486031215610a8c57610a8b6112d2565b5b600084013567ffffffffffffffff811115610aaa57610aa96112cd565b5b610ab68682870161092b565b9350506020610ac786828701610959565b9250506040610ad8868287016108ab565b9150509250925092565b600080600060608486031215610afb57610afa6112d2565b5b6000610b0986828701610959565b9350506020610b1a8682870161083a565b9250506040610b2b8682870161083a565b9150509250925092565b6000610b418383610cb0565b905092915050565b6000610b558383610dae565b60208301905092915050565b610b6a816111a0565b82525050565b6000610b7b826110c9565b610b85818561110f565b935083602082028501610b97856110a9565b8060005b85811015610bd35784840389528151610bb48582610b35565b9450610bbf836110f5565b925060208a01995050600181019050610b9b565b50829750879550505050505092915050565b6000610bf0826110d4565b610bfa8185611120565b9350610c05836110b9565b8060005b83811015610c36578151610c1d8882610b49565b9750610c2883611102565b925050600181019050610c09565b5085935050505092915050565b610c4c816111b2565b82525050565b6000610c5e8385611131565b9350610c6b8385846111e8565b610c74836112d7565b840190509392505050565b6000610c8a826110df565b610c948185611142565b9350610ca48185602086016111f7565b80840191505092915050565b6000610cbb826110ea565b610cc5818561114d565b9350610cd58185602086016111f7565b610cde816112d7565b840191505092915050565b6000610cf4826110ea565b610cfe818561115e565b9350610d0e8185602086016111f7565b610d17816112d7565b840191505092915050565b6000610d2f60268361115e565b9150610d3a826112e8565b604082019050919050565b6000610d52601d8361115e565b9150610d5d82611337565b602082019050919050565b6000610d75602a8361115e565b9150610d8082611360565b604082019050919050565b6000610d98601f8361115e565b9150610da3826113af565b602082019050919050565b610db7816111de565b82525050565b610dc6816111de565b82525050565b6000610dd88284610c7f565b915081905092915050565b6000602082019050610df86000830184610b61565b92915050565b6000606082019050610e136000830186610b61565b610e206020830185610b61565b610e2d6040830184610dbd565b949350505050565b6000608082019050610e4a6000830187610b61565b8181036020830152610e5c8186610b70565b90508181036040830152610e708185610be5565b9050610e7f6060830184610c43565b95945050505050565b6000604082019050610e9d6000830186610b61565b8181036020830152610eb0818486610c52565b9050949350505050565b6000608082019050610ecf6000830187610b61565b610edc6020830186610dbd565b610ee96040830185610b61565b610ef66060830184610b61565b95945050505050565b600060a082019050610f146000830188610b61565b610f216020830187610dbd565b8181036040830152610f338186610ce9565b9050610f426060830185610dbd565b610f4f6080830184610c43565b9695505050505050565b60006020820190508181036000830152610f738184610ce9565b905092915050565b60006020820190508181036000830152610f9481610d22565b9050919050565b60006020820190508181036000830152610fb481610d45565b9050919050565b60006020820190508181036000830152610fd481610d68565b9050919050565b60006020820190508181036000830152610ff481610d8b565b9050919050565b6000611005611016565b9050611011828261122a565b919050565b6000604051905090565b600067ffffffffffffffff82111561103b5761103a61128a565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156110675761106661128a565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156110935761109261128a565b5b61109c826112d7565b9050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600061117a826111de565b9150611185836111de565b9250826111955761119461125b565b5b828204905092915050565b60006111ab826111be565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156112155780820151818401526020810190506111fa565b83811115611224576000848401525b50505050565b611233826112d7565b810181811067ffffffffffffffff821117156112525761125161128a565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6113e1816111a0565b81146113ec57600080fd5b50565b6113f8816111b2565b811461140357600080fd5b50565b61140f816111de565b811461141a57600080fd5b5056fea2646970667358221220c31e8a5ca88f5ae54034b6491a4128b8c7599ac4cdb009070ccdd45a512dc07f64736f6c63430008070033"; - -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 deploy( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy(overrides || {}) as Promise; - } - override getDeployTransaction( - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); - } - override attach(address: string): ReceiverEVM { - return super.attach(address) as ReceiverEVM; - } - override connect(signer: Signer): ReceiverEVM__factory { - return super.connect(signer) as ReceiverEVM__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): ReceiverEVMInterface { - return new utils.Interface(_abi) as ReceiverEVMInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): ReceiverEVM { - return new Contract(address, _abi, signerOrProvider) as ReceiverEVM; - } -} diff --git a/typechain-types/factories/contracts/prototypes/evm/Receiver__factory.ts b/typechain-types/factories/contracts/prototypes/evm/Receiver__factory.ts deleted file mode 100644 index bdb9e619..00000000 --- a/typechain-types/factories/contracts/prototypes/evm/Receiver__factory.ts +++ /dev/null @@ -1,251 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../../common"; -import type { - Receiver, - ReceiverInterface, -} from "../../../../contracts/prototypes/evm/Receiver"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "destination", - type: "address", - }, - ], - name: "ReceivedERC20", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "ReceivedNoParams", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "string[]", - name: "strs", - type: "string[]", - }, - { - indexed: false, - internalType: "uint256[]", - name: "nums", - type: "uint256[]", - }, - { - indexed: false, - internalType: "bool", - name: "flag", - type: "bool", - }, - ], - name: "ReceivedNonPayable", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "string", - name: "str", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "num", - type: "uint256", - }, - { - indexed: false, - internalType: "bool", - name: "flag", - type: "bool", - }, - ], - name: "ReceivedPayable", - type: "event", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "destination", - type: "address", - }, - ], - name: "receiveERC20", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "receiveNoParams", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string[]", - name: "strs", - type: "string[]", - }, - { - internalType: "uint256[]", - name: "nums", - type: "uint256[]", - }, - { - internalType: "bool", - name: "flag", - type: "bool", - }, - ], - name: "receiveNonPayable", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "str", - type: "string", - }, - { - internalType: "uint256", - name: "num", - type: "uint256", - }, - { - internalType: "bool", - name: "flag", - type: "bool", - }, - ], - name: "receivePayable", - outputs: [], - stateMutability: "payable", - type: "function", - }, -] as const; - -const _bytecode = - "0x608060405234801561001057600080fd5b5061108a806100206000396000f3fe60806040526004361061003f5760003560e01c8063357fc5a2146100445780636ed701691461006d578063e04d4f9714610084578063f05b6abf146100a0575b600080fd5b34801561005057600080fd5b5061006b6004803603810190610066919061085a565b6100c9565b005b34801561007957600080fd5b50610082610138565b005b61009e600480360381019061009991906107eb565b610171565b005b3480156100ac57600080fd5b506100c760048036038101906100c29190610733565b6101b5565b005b6100f63382858573ffffffffffffffffffffffffffffffffffffffff166101f7909392919063ffffffff16565b7f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af603384848460405161012b9493929190610bb0565b60405180910390a1505050565b7fbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a0336040516101679190610b0b565b60405180910390a1565b7f1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa33348585856040516101a8959493929190610bf5565b60405180910390a1505050565b7f74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146338484846040516101ea9493929190610b5d565b60405180910390a1505050565b61027a846323b872dd60e01b85858560405160240161021893929190610b26565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610280565b50505050565b60006102e2826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166103479092919063ffffffff16565b9050600081511115610342578080602001905181019061030291906107be565b610341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161033890610cb1565b60405180910390fd5b5b505050565b6060610356848460008561035f565b90509392505050565b6060824710156103a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039b90610c71565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516103cd9190610af4565b60006040518083038185875af1925050503d806000811461040a576040519150601f19603f3d011682016040523d82523d6000602084013e61040f565b606091505b50915091506104208783838761042c565b92505050949350505050565b6060831561048f5760008351141561048757610447856104a2565b610486576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047d90610c91565b60405180910390fd5b5b82905061049a565b61049983836104c5565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156104d85781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050c9190610c4f565b60405180910390fd5b600061052861052384610cf6565b610cd1565b9050808382526020820190508285602086028201111561054b5761054a610f23565b5b60005b8581101561059957813567ffffffffffffffff81111561057157610570610f1e565b5b80860161057e89826106f0565b8552602085019450602084019350505060018101905061054e565b5050509392505050565b60006105b66105b184610d22565b610cd1565b905080838252602082019050828560208602820111156105d9576105d8610f23565b5b60005b8581101561060957816105ef888261071e565b8452602084019350602083019250506001810190506105dc565b5050509392505050565b600061062661062184610d4e565b610cd1565b90508281526020810184848401111561064257610641610f28565b5b61064d848285610e7c565b509392505050565b6000813590506106648161100f565b92915050565b600082601f83011261067f5761067e610f1e565b5b813561068f848260208601610515565b91505092915050565b600082601f8301126106ad576106ac610f1e565b5b81356106bd8482602086016105a3565b91505092915050565b6000813590506106d581611026565b92915050565b6000815190506106ea81611026565b92915050565b600082601f83011261070557610704610f1e565b5b8135610715848260208601610613565b91505092915050565b60008135905061072d8161103d565b92915050565b60008060006060848603121561074c5761074b610f32565b5b600084013567ffffffffffffffff81111561076a57610769610f2d565b5b6107768682870161066a565b935050602084013567ffffffffffffffff81111561079757610796610f2d565b5b6107a386828701610698565b92505060406107b4868287016106c6565b9150509250925092565b6000602082840312156107d4576107d3610f32565b5b60006107e2848285016106db565b91505092915050565b60008060006060848603121561080457610803610f32565b5b600084013567ffffffffffffffff81111561082257610821610f2d565b5b61082e868287016106f0565b935050602061083f8682870161071e565b9250506040610850868287016106c6565b9150509250925092565b60008060006060848603121561087357610872610f32565b5b60006108818682870161071e565b935050602061089286828701610655565b92505060406108a386828701610655565b9150509250925092565b60006108b983836109fb565b905092915050565b60006108cd8383610ad6565b60208301905092915050565b6108e281610e34565b82525050565b60006108f382610d9f565b6108fd8185610de5565b93508360208202850161090f85610d7f565b8060005b8581101561094b578484038952815161092c85826108ad565b945061093783610dcb565b925060208a01995050600181019050610913565b50829750879550505050505092915050565b600061096882610daa565b6109728185610df6565b935061097d83610d8f565b8060005b838110156109ae57815161099588826108c1565b97506109a083610dd8565b925050600181019050610981565b5085935050505092915050565b6109c481610e46565b82525050565b60006109d582610db5565b6109df8185610e07565b93506109ef818560208601610e8b565b80840191505092915050565b6000610a0682610dc0565b610a108185610e12565b9350610a20818560208601610e8b565b610a2981610f37565b840191505092915050565b6000610a3f82610dc0565b610a498185610e23565b9350610a59818560208601610e8b565b610a6281610f37565b840191505092915050565b6000610a7a602683610e23565b9150610a8582610f48565b604082019050919050565b6000610a9d601d83610e23565b9150610aa882610f97565b602082019050919050565b6000610ac0602a83610e23565b9150610acb82610fc0565b604082019050919050565b610adf81610e72565b82525050565b610aee81610e72565b82525050565b6000610b0082846109ca565b915081905092915050565b6000602082019050610b2060008301846108d9565b92915050565b6000606082019050610b3b60008301866108d9565b610b4860208301856108d9565b610b556040830184610ae5565b949350505050565b6000608082019050610b7260008301876108d9565b8181036020830152610b8481866108e8565b90508181036040830152610b98818561095d565b9050610ba760608301846109bb565b95945050505050565b6000608082019050610bc560008301876108d9565b610bd26020830186610ae5565b610bdf60408301856108d9565b610bec60608301846108d9565b95945050505050565b600060a082019050610c0a60008301886108d9565b610c176020830187610ae5565b8181036040830152610c298186610a34565b9050610c386060830185610ae5565b610c4560808301846109bb565b9695505050505050565b60006020820190508181036000830152610c698184610a34565b905092915050565b60006020820190508181036000830152610c8a81610a6d565b9050919050565b60006020820190508181036000830152610caa81610a90565b9050919050565b60006020820190508181036000830152610cca81610ab3565b9050919050565b6000610cdb610cec565b9050610ce78282610ebe565b919050565b6000604051905090565b600067ffffffffffffffff821115610d1157610d10610eef565b5b602082029050602081019050919050565b600067ffffffffffffffff821115610d3d57610d3c610eef565b5b602082029050602081019050919050565b600067ffffffffffffffff821115610d6957610d68610eef565b5b610d7282610f37565b9050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000610e3f82610e52565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015610ea9578082015181840152602081019050610e8e565b83811115610eb8576000848401525b50505050565b610ec782610f37565b810181811067ffffffffffffffff82111715610ee657610ee5610eef565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b61101881610e34565b811461102357600080fd5b50565b61102f81610e46565b811461103a57600080fd5b50565b61104681610e72565b811461105157600080fd5b5056fea264697066735822122069722b36f6aa512f9b0f76207f5b5cbc4a4f69e9581bf19d4c36cde9ee1c6c3e64736f6c63430008070033"; - -type ReceiverConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: ReceiverConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class Receiver__factory extends ContractFactory { - constructor(...args: ReceiverConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override deploy( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy(overrides || {}) as Promise; - } - override getDeployTransaction( - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); - } - override attach(address: string): Receiver { - return super.attach(address) as Receiver; - } - override connect(signer: Signer): Receiver__factory { - return super.connect(signer) as Receiver__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): ReceiverInterface { - return new utils.Interface(_abi) as ReceiverInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): Receiver { - return new Contract(address, _abi, signerOrProvider) as Receiver; - } -} diff --git a/typechain-types/factories/contracts/prototypes/evm/TestERC20__factory.ts b/typechain-types/factories/contracts/prototypes/evm/TestERC20__factory.ts deleted file mode 100644 index 344afa71..00000000 --- a/typechain-types/factories/contracts/prototypes/evm/TestERC20__factory.ts +++ /dev/null @@ -1,371 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../../common"; -import type { - TestERC20, - TestERC20Interface, -} from "../../../../contracts/prototypes/evm/TestERC20"; - -const _abi = [ - { - inputs: [ - { - internalType: "string", - name: "name", - type: "string", - }, - { - internalType: "string", - name: "symbol", - type: "string", - }, - ], - stateMutability: "nonpayable", - type: "constructor", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "owner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "spender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "allowance", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "approve", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "balanceOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "decimals", - outputs: [ - { - internalType: "uint8", - name: "", - type: "uint8", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "subtractedValue", - type: "uint256", - }, - ], - name: "decreaseAllowance", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "addedValue", - type: "uint256", - }, - ], - name: "increaseAllowance", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "mint", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "name", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "symbol", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "totalSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -const _bytecode = - "0x60806040523480156200001157600080fd5b5060405162001813380380620018138339818101604052810190620000379190620001a3565b818181600390805190602001906200005192919062000075565b5080600490805190602001906200006a92919062000075565b5050505050620003ac565b8280546200008390620002bd565b90600052602060002090601f016020900481019282620000a75760008555620000f3565b82601f10620000c257805160ff1916838001178555620000f3565b82800160010185558215620000f3579182015b82811115620000f2578251825591602001919060010190620000d5565b5b50905062000102919062000106565b5090565b5b808211156200012157600081600090555060010162000107565b5090565b60006200013c620001368462000251565b62000228565b9050828152602081018484840111156200015b576200015a6200038c565b5b6200016884828562000287565b509392505050565b600082601f83011262000188576200018762000387565b5b81516200019a84826020860162000125565b91505092915050565b60008060408385031215620001bd57620001bc62000396565b5b600083015167ffffffffffffffff811115620001de57620001dd62000391565b5b620001ec8582860162000170565b925050602083015167ffffffffffffffff81111562000210576200020f62000391565b5b6200021e8582860162000170565b9150509250929050565b60006200023462000247565b9050620002428282620002f3565b919050565b6000604051905090565b600067ffffffffffffffff8211156200026f576200026e62000358565b5b6200027a826200039b565b9050602081019050919050565b60005b83811015620002a75780820151818401526020810190506200028a565b83811115620002b7576000848401525b50505050565b60006002820490506001821680620002d657607f821691505b60208210811415620002ed57620002ec62000329565b5b50919050565b620002fe826200039b565b810181811067ffffffffffffffff8211171562000320576200031f62000358565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b61145780620003bc6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806340c10f191161007157806340c10f19146101a357806370a08231146101bf57806395d89b41146101ef578063a457c2d71461020d578063a9059cbb1461023d578063dd62ed3e1461026d576100b4565b806306fdde03146100b9578063095ea7b3146100d757806318160ddd1461010757806323b872dd14610125578063313ce567146101555780633950935114610173575b600080fd5b6100c161029d565b6040516100ce9190610ecf565b60405180910390f35b6100f160048036038101906100ec9190610cf6565b61032f565b6040516100fe9190610eb4565b60405180910390f35b61010f610352565b60405161011c9190610ff1565b60405180910390f35b61013f600480360381019061013a9190610ca3565b61035c565b60405161014c9190610eb4565b60405180910390f35b61015d61038b565b60405161016a919061100c565b60405180910390f35b61018d60048036038101906101889190610cf6565b610394565b60405161019a9190610eb4565b60405180910390f35b6101bd60048036038101906101b89190610cf6565b6103cb565b005b6101d960048036038101906101d49190610c36565b6103d9565b6040516101e69190610ff1565b60405180910390f35b6101f7610421565b6040516102049190610ecf565b60405180910390f35b61022760048036038101906102229190610cf6565b6104b3565b6040516102349190610eb4565b60405180910390f35b61025760048036038101906102529190610cf6565b61052a565b6040516102649190610eb4565b60405180910390f35b61028760048036038101906102829190610c63565b61054d565b6040516102949190610ff1565b60405180910390f35b6060600380546102ac90611121565b80601f01602080910402602001604051908101604052809291908181526020018280546102d890611121565b80156103255780601f106102fa57610100808354040283529160200191610325565b820191906000526020600020905b81548152906001019060200180831161030857829003601f168201915b5050505050905090565b60008061033a6105d4565b90506103478185856105dc565b600191505092915050565b6000600254905090565b6000806103676105d4565b90506103748582856107a7565b61037f858585610833565b60019150509392505050565b60006012905090565b60008061039f6105d4565b90506103c08185856103b1858961054d565b6103bb9190611043565b6105dc565b600191505092915050565b6103d58282610aab565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461043090611121565b80601f016020809104026020016040519081016040528092919081815260200182805461045c90611121565b80156104a95780601f1061047e576101008083540402835291602001916104a9565b820191906000526020600020905b81548152906001019060200180831161048c57829003601f168201915b5050505050905090565b6000806104be6105d4565b905060006104cc828661054d565b905083811015610511576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050890610fb1565b60405180910390fd5b61051e82868684036105dc565b60019250505092915050565b6000806105356105d4565b9050610542818585610833565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561064c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064390610f91565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156106bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b390610f11565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161079a9190610ff1565b60405180910390a3505050565b60006107b3848461054d565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461082d578181101561081f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081690610f31565b60405180910390fd5b61082c84848484036105dc565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156108a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089a90610f71565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090a90610ef1565b60405180910390fd5b61091e838383610c02565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156109a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099b90610f51565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a929190610ff1565b60405180910390a3610aa5848484610c07565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1290610fd1565b60405180910390fd5b610b2760008383610c02565b8060026000828254610b399190611043565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610bea9190610ff1565b60405180910390a3610bfe60008383610c07565b5050565b505050565b505050565b600081359050610c1b816113f3565b92915050565b600081359050610c308161140a565b92915050565b600060208284031215610c4c57610c4b6111b1565b5b6000610c5a84828501610c0c565b91505092915050565b60008060408385031215610c7a57610c796111b1565b5b6000610c8885828601610c0c565b9250506020610c9985828601610c0c565b9150509250929050565b600080600060608486031215610cbc57610cbb6111b1565b5b6000610cca86828701610c0c565b9350506020610cdb86828701610c0c565b9250506040610cec86828701610c21565b9150509250925092565b60008060408385031215610d0d57610d0c6111b1565b5b6000610d1b85828601610c0c565b9250506020610d2c85828601610c21565b9150509250929050565b610d3f816110ab565b82525050565b6000610d5082611027565b610d5a8185611032565b9350610d6a8185602086016110ee565b610d73816111b6565b840191505092915050565b6000610d8b602383611032565b9150610d96826111c7565b604082019050919050565b6000610dae602283611032565b9150610db982611216565b604082019050919050565b6000610dd1601d83611032565b9150610ddc82611265565b602082019050919050565b6000610df4602683611032565b9150610dff8261128e565b604082019050919050565b6000610e17602583611032565b9150610e22826112dd565b604082019050919050565b6000610e3a602483611032565b9150610e458261132c565b604082019050919050565b6000610e5d602583611032565b9150610e688261137b565b604082019050919050565b6000610e80601f83611032565b9150610e8b826113ca565b602082019050919050565b610e9f816110d7565b82525050565b610eae816110e1565b82525050565b6000602082019050610ec96000830184610d36565b92915050565b60006020820190508181036000830152610ee98184610d45565b905092915050565b60006020820190508181036000830152610f0a81610d7e565b9050919050565b60006020820190508181036000830152610f2a81610da1565b9050919050565b60006020820190508181036000830152610f4a81610dc4565b9050919050565b60006020820190508181036000830152610f6a81610de7565b9050919050565b60006020820190508181036000830152610f8a81610e0a565b9050919050565b60006020820190508181036000830152610faa81610e2d565b9050919050565b60006020820190508181036000830152610fca81610e50565b9050919050565b60006020820190508181036000830152610fea81610e73565b9050919050565b60006020820190506110066000830184610e96565b92915050565b60006020820190506110216000830184610ea5565b92915050565b600081519050919050565b600082825260208201905092915050565b600061104e826110d7565b9150611059836110d7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561108e5761108d611153565b5b828201905092915050565b60006110a4826110b7565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101561110c5780820151818401526020810190506110f1565b8381111561111b576000848401525b50505050565b6000600282049050600182168061113957607f821691505b6020821081141561114d5761114c611182565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6113fc81611099565b811461140757600080fd5b50565b611413816110d7565b811461141e57600080fd5b5056fea26469706673582212203c8c0934d33c58546e4ab2e4e41476df7926eae7ae1412541fc4d914f04b2c8364736f6c63430008070033"; - -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 deploy( - name: PromiseOrValue, - symbol: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy(name, symbol, overrides || {}) as Promise; - } - override getDeployTransaction( - name: PromiseOrValue, - symbol: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction(name, symbol, overrides || {}); - } - override attach(address: string): TestERC20 { - return super.attach(address) as TestERC20; - } - override connect(signer: Signer): TestERC20__factory { - return super.connect(signer) as TestERC20__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): TestERC20Interface { - return new utils.Interface(_abi) as TestERC20Interface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): TestERC20 { - return new Contract(address, _abi, signerOrProvider) as TestERC20; - } -} diff --git a/typechain-types/factories/contracts/prototypes/evm/ZetaConnectorNative__factory.ts b/typechain-types/factories/contracts/prototypes/evm/ZetaConnectorNative__factory.ts deleted file mode 100644 index fa979a68..00000000 --- a/typechain-types/factories/contracts/prototypes/evm/ZetaConnectorNative__factory.ts +++ /dev/null @@ -1,310 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../../common"; -import type { - ZetaConnectorNative, - ZetaConnectorNativeInterface, -} from "../../../../contracts/prototypes/evm/ZetaConnectorNative"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "_gateway", - type: "address", - }, - { - internalType: "address", - name: "_zetaToken", - type: "address", - }, - { - internalType: "address", - name: "_tssAddress", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [], - name: "InvalidSender", - type: "error", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "Withdraw", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "WithdrawAndCall", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "WithdrawAndRevert", - type: "event", - }, - { - inputs: [], - name: "gateway", - outputs: [ - { - internalType: "contract IGatewayEVM", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "receiveTokens", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "tssAddress", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes32", - name: "internalSendHash", - type: "bytes32", - }, - ], - name: "withdraw", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - internalType: "bytes32", - name: "internalSendHash", - type: "bytes32", - }, - ], - name: "withdrawAndCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - internalType: "bytes32", - name: "internalSendHash", - type: "bytes32", - }, - ], - name: "withdrawAndRevert", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "zetaToken", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -const _bytecode = - "0x60c06040523480156200001157600080fd5b5060405162001638380380620016388339818101604052810190620000379190620001ec565b8282826001600081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480620000aa5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80620000e25750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156200011a576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250508173ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b8152505080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050506200029b565b600081519050620001e68162000281565b92915050565b6000806000606084860312156200020857620002076200027c565b5b60006200021886828701620001d5565b93505060206200022b86828701620001d5565b92505060406200023e86828701620001d5565b9150509250925092565b600062000255826200025c565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6200028c8162000248565b81146200029857600080fd5b50565b60805160601c60a05160601c61132b6200030d6000396000818161020201528181610284015281816103f0015281816104b5015281816105b30152818161063501526107130152600081816101e001528181610248015281816104910152818161059101526105f9015261132b6000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806321e093b11161005b57806321e093b1146100d85780635b112591146100f65780635e3e9fef14610114578063743e0c9b146101305761007d565b806302d5c89914610082578063106e62901461009e578063116191b6146100ba575b600080fd5b61009c60048036038101906100979190610c56565b61014c565b005b6100b860048036038101906100b39190610c03565b61035a565b005b6100c261048f565b6040516100cf9190610f68565b60405180910390f35b6100e06104b3565b6040516100ed9190610e9f565b60405180910390f35b6100fe6104d7565b60405161010b9190610e9f565b60405180910390f35b61012e60048036038101906101299190610c56565b6104fd565b005b61014a60048036038101906101459190610d0b565b61070b565b005b61015461075b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101db576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6102467f0000000000000000000000000000000000000000000000000000000000000000857f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166107ab9092919063ffffffff16565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b8969bd47f0000000000000000000000000000000000000000000000000000000000000000878787876040518663ffffffff1660e01b81526004016102c7959493929190610ef1565b600060405180830381600087803b1580156102e157600080fd5b505af11580156102f5573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff167fba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe85858560405161034393929190611040565b60405180910390a2610353610831565b5050505050565b61036261075b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103e9576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61043483837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166107ab9092919063ffffffff16565b8273ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243648360405161047a9190611025565b60405180910390a261048a610831565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61050561075b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461058c576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105f77f0000000000000000000000000000000000000000000000000000000000000000857f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166107ab9092919063ffffffff16565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635131ab597f0000000000000000000000000000000000000000000000000000000000000000878787876040518663ffffffff1660e01b8152600401610678959493929190610ef1565b600060405180830381600087803b15801561069257600080fd5b505af11580156106a6573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff167f7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced8585856040516106f493929190611040565b60405180910390a2610704610831565b5050505050565b6107583330837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661083b909392919063ffffffff16565b50565b600260005414156107a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079890611005565b60405180910390fd5b6002600081905550565b61082c8363a9059cbb60e01b84846040516024016107ca929190610f3f565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506108c4565b505050565b6001600081905550565b6108be846323b872dd60e01b85858560405160240161085c93929190610eba565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506108c4565b50505050565b6000610926826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661098b9092919063ffffffff16565b905060008151111561098657808060200190518101906109469190610cde565b610985576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097c90610fe5565b60405180910390fd5b5b505050565b606061099a84846000856109a3565b90509392505050565b6060824710156109e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109df90610fa5565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051610a119190610e88565b60006040518083038185875af1925050503d8060008114610a4e576040519150601f19603f3d011682016040523d82523d6000602084013e610a53565b606091505b5091509150610a6487838387610a70565b92505050949350505050565b60608315610ad357600083511415610acb57610a8b85610ae6565b610aca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac190610fc5565b60405180910390fd5b5b829050610ade565b610add8383610b09565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600082511115610b1c5781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b509190610f83565b60405180910390fd5b600081359050610b6881611299565b92915050565b600081519050610b7d816112b0565b92915050565b600081359050610b92816112c7565b92915050565b60008083601f840112610bae57610bad611184565b5b8235905067ffffffffffffffff811115610bcb57610bca61117f565b5b602083019150836001820283011115610be757610be6611189565b5b9250929050565b600081359050610bfd816112de565b92915050565b600080600060608486031215610c1c57610c1b611193565b5b6000610c2a86828701610b59565b9350506020610c3b86828701610bee565b9250506040610c4c86828701610b83565b9150509250925092565b600080600080600060808688031215610c7257610c71611193565b5b6000610c8088828901610b59565b9550506020610c9188828901610bee565b945050604086013567ffffffffffffffff811115610cb257610cb161118e565b5b610cbe88828901610b98565b93509350506060610cd188828901610b83565b9150509295509295909350565b600060208284031215610cf457610cf3611193565b5b6000610d0284828501610b6e565b91505092915050565b600060208284031215610d2157610d20611193565b5b6000610d2f84828501610bee565b91505092915050565b610d41816110b5565b82525050565b6000610d538385611088565b9350610d6083858461113d565b610d6983611198565b840190509392505050565b6000610d7f82611072565b610d898185611099565b9350610d9981856020860161114c565b80840191505092915050565b610dae81611107565b82525050565b6000610dbf8261107d565b610dc981856110a4565b9350610dd981856020860161114c565b610de281611198565b840191505092915050565b6000610dfa6026836110a4565b9150610e05826111a9565b604082019050919050565b6000610e1d601d836110a4565b9150610e28826111f8565b602082019050919050565b6000610e40602a836110a4565b9150610e4b82611221565b604082019050919050565b6000610e63601f836110a4565b9150610e6e82611270565b602082019050919050565b610e82816110fd565b82525050565b6000610e948284610d74565b915081905092915050565b6000602082019050610eb46000830184610d38565b92915050565b6000606082019050610ecf6000830186610d38565b610edc6020830185610d38565b610ee96040830184610e79565b949350505050565b6000608082019050610f066000830188610d38565b610f136020830187610d38565b610f206040830186610e79565b8181036060830152610f33818486610d47565b90509695505050505050565b6000604082019050610f546000830185610d38565b610f616020830184610e79565b9392505050565b6000602082019050610f7d6000830184610da5565b92915050565b60006020820190508181036000830152610f9d8184610db4565b905092915050565b60006020820190508181036000830152610fbe81610ded565b9050919050565b60006020820190508181036000830152610fde81610e10565b9050919050565b60006020820190508181036000830152610ffe81610e33565b9050919050565b6000602082019050818103600083015261101e81610e56565b9050919050565b600060208201905061103a6000830184610e79565b92915050565b60006040820190506110556000830186610e79565b8181036020830152611068818486610d47565b9050949350505050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006110c0826110dd565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061111282611119565b9050919050565b60006111248261112b565b9050919050565b6000611136826110dd565b9050919050565b82818337600083830152505050565b60005b8381101561116a57808201518184015260208101905061114f565b83811115611179576000848401525b50505050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6112a2816110b5565b81146112ad57600080fd5b50565b6112b9816110c7565b81146112c457600080fd5b50565b6112d0816110d3565b81146112db57600080fd5b50565b6112e7816110fd565b81146112f257600080fd5b5056fea2646970667358221220655dba4ad3270e6153f071458a8ebcb80a69a23cb0bf8a44ed4a1f4df173d65664736f6c63430008070033"; - -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 deploy( - _gateway: PromiseOrValue, - _zetaToken: PromiseOrValue, - _tssAddress: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy( - _gateway, - _zetaToken, - _tssAddress, - overrides || {} - ) as Promise; - } - override getDeployTransaction( - _gateway: PromiseOrValue, - _zetaToken: PromiseOrValue, - _tssAddress: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction( - _gateway, - _zetaToken, - _tssAddress, - overrides || {} - ); - } - override attach(address: string): ZetaConnectorNative { - return super.attach(address) as ZetaConnectorNative; - } - override connect(signer: Signer): ZetaConnectorNative__factory { - return super.connect(signer) as ZetaConnectorNative__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): ZetaConnectorNativeInterface { - return new utils.Interface(_abi) as ZetaConnectorNativeInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): ZetaConnectorNative { - return new Contract(address, _abi, signerOrProvider) as ZetaConnectorNative; - } -} diff --git a/typechain-types/factories/contracts/prototypes/evm/ZetaConnectorNewEth__factory.ts b/typechain-types/factories/contracts/prototypes/evm/ZetaConnectorNewEth__factory.ts deleted file mode 100644 index 87da7e03..00000000 --- a/typechain-types/factories/contracts/prototypes/evm/ZetaConnectorNewEth__factory.ts +++ /dev/null @@ -1,226 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../../common"; -import type { - ZetaConnectorNewEth, - ZetaConnectorNewEthInterface, -} from "../../../../contracts/prototypes/evm/ZetaConnectorNewEth"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "_gateway", - type: "address", - }, - { - internalType: "address", - name: "_zetaToken", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "Withdraw", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "WithdrawAndCall", - type: "event", - }, - { - inputs: [], - name: "gateway", - outputs: [ - { - internalType: "contract IGatewayEVM", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "receiveTokens", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes32", - name: "internalSendHash", - type: "bytes32", - }, - ], - name: "withdraw", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - internalType: "bytes32", - name: "internalSendHash", - type: "bytes32", - }, - ], - name: "withdrawAndCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "zetaToken", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -const _bytecode = - "0x60c06040523480156200001157600080fd5b50604051620011f8380380620011f8833981810160405281019062000037919062000170565b81816001600081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480620000a95750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15620000e1576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b81525050505050506200020a565b6000815190506200016a81620001f0565b92915050565b600080604083850312156200018a5762000189620001eb565b5b60006200019a8582860162000159565b9250506020620001ad8582860162000159565b9150509250929050565b6000620001c482620001cb565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b620001fb81620001b7565b81146200020757600080fd5b50565b60805160601c60a05160601c610f996200025f6000396000818160fb015281816101c00152818161021101528181610293015261037901526000818161019c015281816101ef01526102570152610f996000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063106e62901461005c578063116191b61461007857806321e093b1146100965780635e3e9fef146100b4578063743e0c9b146100d0575b600080fd5b61007660048036038101906100719190610871565b6100ec565b005b61008061019a565b60405161008d9190610bd6565b60405180910390f35b61009e6101be565b6040516100ab9190610b0d565b60405180910390f35b6100ce60048036038101906100c991906108c4565b6101e2565b005b6100ea60048036038101906100e59190610979565b610369565b005b6100f46103c9565b61013f83837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166104199092919063ffffffff16565b8273ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364836040516101859190610c93565b60405180910390a261019561049f565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6101ea6103c9565b6102557f0000000000000000000000000000000000000000000000000000000000000000857f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166104199092919063ffffffff16565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635131ab597f0000000000000000000000000000000000000000000000000000000000000000878787876040518663ffffffff1660e01b81526004016102d6959493929190610b5f565b600060405180830381600087803b1580156102f057600080fd5b505af1158015610304573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff167f7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced85858560405161035293929190610cae565b60405180910390a261036261049f565b5050505050565b6103716103c9565b6103be3330837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166104a9909392919063ffffffff16565b6103c661049f565b50565b6002600054141561040f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040690610c73565b60405180910390fd5b6002600081905550565b61049a8363a9059cbb60e01b8484604051602401610438929190610bad565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610532565b505050565b6001600081905550565b61052c846323b872dd60e01b8585856040516024016104ca93929190610b28565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610532565b50505050565b6000610594826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166105f99092919063ffffffff16565b90506000815111156105f457808060200190518101906105b4919061094c565b6105f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ea90610c53565b60405180910390fd5b5b505050565b60606106088484600085610611565b90509392505050565b606082471015610656576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064d90610c13565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161067f9190610af6565b60006040518083038185875af1925050503d80600081146106bc576040519150601f19603f3d011682016040523d82523d6000602084013e6106c1565b606091505b50915091506106d2878383876106de565b92505050949350505050565b6060831561074157600083511415610739576106f985610754565b610738576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072f90610c33565b60405180910390fd5b5b82905061074c565b61074b8383610777565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60008251111561078a5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107be9190610bf1565b60405180910390fd5b6000813590506107d681610f07565b92915050565b6000815190506107eb81610f1e565b92915050565b60008135905061080081610f35565b92915050565b60008083601f84011261081c5761081b610df2565b5b8235905067ffffffffffffffff81111561083957610838610ded565b5b60208301915083600182028301111561085557610854610df7565b5b9250929050565b60008135905061086b81610f4c565b92915050565b60008060006060848603121561088a57610889610e01565b5b6000610898868287016107c7565b93505060206108a98682870161085c565b92505060406108ba868287016107f1565b9150509250925092565b6000806000806000608086880312156108e0576108df610e01565b5b60006108ee888289016107c7565b95505060206108ff8882890161085c565b945050604086013567ffffffffffffffff8111156109205761091f610dfc565b5b61092c88828901610806565b9350935050606061093f888289016107f1565b9150509295509295909350565b60006020828403121561096257610961610e01565b5b6000610970848285016107dc565b91505092915050565b60006020828403121561098f5761098e610e01565b5b600061099d8482850161085c565b91505092915050565b6109af81610d23565b82525050565b60006109c18385610cf6565b93506109ce838584610dab565b6109d783610e06565b840190509392505050565b60006109ed82610ce0565b6109f78185610d07565b9350610a07818560208601610dba565b80840191505092915050565b610a1c81610d75565b82525050565b6000610a2d82610ceb565b610a378185610d12565b9350610a47818560208601610dba565b610a5081610e06565b840191505092915050565b6000610a68602683610d12565b9150610a7382610e17565b604082019050919050565b6000610a8b601d83610d12565b9150610a9682610e66565b602082019050919050565b6000610aae602a83610d12565b9150610ab982610e8f565b604082019050919050565b6000610ad1601f83610d12565b9150610adc82610ede565b602082019050919050565b610af081610d6b565b82525050565b6000610b0282846109e2565b915081905092915050565b6000602082019050610b2260008301846109a6565b92915050565b6000606082019050610b3d60008301866109a6565b610b4a60208301856109a6565b610b576040830184610ae7565b949350505050565b6000608082019050610b7460008301886109a6565b610b8160208301876109a6565b610b8e6040830186610ae7565b8181036060830152610ba18184866109b5565b90509695505050505050565b6000604082019050610bc260008301856109a6565b610bcf6020830184610ae7565b9392505050565b6000602082019050610beb6000830184610a13565b92915050565b60006020820190508181036000830152610c0b8184610a22565b905092915050565b60006020820190508181036000830152610c2c81610a5b565b9050919050565b60006020820190508181036000830152610c4c81610a7e565b9050919050565b60006020820190508181036000830152610c6c81610aa1565b9050919050565b60006020820190508181036000830152610c8c81610ac4565b9050919050565b6000602082019050610ca86000830184610ae7565b92915050565b6000604082019050610cc36000830186610ae7565b8181036020830152610cd68184866109b5565b9050949350505050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000610d2e82610d4b565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610d8082610d87565b9050919050565b6000610d9282610d99565b9050919050565b6000610da482610d4b565b9050919050565b82818337600083830152505050565b60005b83811015610dd8578082015181840152602081019050610dbd565b83811115610de7576000848401525b50505050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b610f1081610d23565b8114610f1b57600080fd5b50565b610f2781610d35565b8114610f3257600080fd5b50565b610f3e81610d41565b8114610f4957600080fd5b50565b610f5581610d6b565b8114610f6057600080fd5b5056fea264697066735822122091075d1eeef27fe44b0eaedb3337a61ceaeefaf51461670f2fbf1bc67c152e6064736f6c63430008070033"; - -type ZetaConnectorNewEthConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: ZetaConnectorNewEthConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class ZetaConnectorNewEth__factory extends ContractFactory { - constructor(...args: ZetaConnectorNewEthConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override deploy( - _gateway: PromiseOrValue, - _zetaToken: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy( - _gateway, - _zetaToken, - overrides || {} - ) as Promise; - } - override getDeployTransaction( - _gateway: PromiseOrValue, - _zetaToken: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction(_gateway, _zetaToken, overrides || {}); - } - override attach(address: string): ZetaConnectorNewEth { - return super.attach(address) as ZetaConnectorNewEth; - } - override connect(signer: Signer): ZetaConnectorNewEth__factory { - return super.connect(signer) as ZetaConnectorNewEth__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): ZetaConnectorNewEthInterface { - return new utils.Interface(_abi) as ZetaConnectorNewEthInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): ZetaConnectorNewEth { - return new Contract(address, _abi, signerOrProvider) as ZetaConnectorNewEth; - } -} diff --git a/typechain-types/factories/contracts/prototypes/evm/ZetaConnectorNewNonEth__factory.ts b/typechain-types/factories/contracts/prototypes/evm/ZetaConnectorNewNonEth__factory.ts deleted file mode 100644 index 58920e9b..00000000 --- a/typechain-types/factories/contracts/prototypes/evm/ZetaConnectorNewNonEth__factory.ts +++ /dev/null @@ -1,230 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../../common"; -import type { - ZetaConnectorNewNonEth, - ZetaConnectorNewNonEthInterface, -} from "../../../../contracts/prototypes/evm/ZetaConnectorNewNonEth"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "_gateway", - type: "address", - }, - { - internalType: "address", - name: "_zetaToken", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "Withdraw", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "WithdrawAndCall", - type: "event", - }, - { - inputs: [], - name: "gateway", - outputs: [ - { - internalType: "contract IGatewayEVM", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "receiveTokens", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes32", - name: "internalSendHash", - type: "bytes32", - }, - ], - name: "withdraw", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - internalType: "bytes32", - name: "internalSendHash", - type: "bytes32", - }, - ], - name: "withdrawAndCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "zetaToken", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -const _bytecode = - "0x60c060405234801561001057600080fd5b50604051610c18380380610c1883398181016040528101906100329190610166565b81816001600081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806100a35750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156100da576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b81525050505050506101f4565b600081519050610160816101dd565b92915050565b6000806040838503121561017d5761017c6101d8565b5b600061018b85828601610151565b925050602061019c85828601610151565b9150509250929050565b60006101b1826101b8565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6101e6816101a6565b81146101f157600080fd5b50565b60805160601c60a05160601c6109d06102486000396000818160f601528181610204015281816102300152818161031b01526103f30152600081816101e00152818161026c01526102df01526109d06000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063106e62901461005c578063116191b61461007857806321e093b1146100965780635e3e9fef146100b4578063743e0c9b146100d0575b600080fd5b61007660048036038101906100719190610570565b6100ec565b005b6100806101de565b60405161008d91906107cd565b60405180910390f35b61009e610202565b6040516100ab9190610704565b60405180910390f35b6100ce60048036038101906100c991906105c3565b610226565b005b6100ea60048036038101906100e5919061064b565b6103f1565b005b6100f4610481565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16631e458bee8484846040518463ffffffff1660e01b815260040161015193929190610796565b600060405180830381600087803b15801561016b57600080fd5b505af115801561017f573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364836040516101c99190610808565b60405180910390a26101d96104d1565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b61022e610481565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16631e458bee7f000000000000000000000000000000000000000000000000000000000000000086846040518463ffffffff1660e01b81526004016102ab93929190610796565b600060405180830381600087803b1580156102c557600080fd5b505af11580156102d9573d6000803e3d6000fd5b505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635131ab597f0000000000000000000000000000000000000000000000000000000000000000878787876040518663ffffffff1660e01b815260040161035e95949392919061071f565b600060405180830381600087803b15801561037857600080fd5b505af115801561038c573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff167f7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced8585856040516103da93929190610823565b60405180910390a26103ea6104d1565b5050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166379cc679033836040518363ffffffff1660e01b815260040161044c92919061076d565b600060405180830381600087803b15801561046657600080fd5b505af115801561047a573d6000803e3d6000fd5b5050505050565b600260005414156104c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104be906107e8565b60405180910390fd5b6002600081905550565b6001600081905550565b6000813590506104ea81610955565b92915050565b6000813590506104ff8161096c565b92915050565b60008083601f84011261051b5761051a610907565b5b8235905067ffffffffffffffff81111561053857610537610902565b5b6020830191508360018202830111156105545761055361090c565b5b9250929050565b60008135905061056a81610983565b92915050565b60008060006060848603121561058957610588610916565b5b6000610597868287016104db565b93505060206105a88682870161055b565b92505060406105b9868287016104f0565b9150509250925092565b6000806000806000608086880312156105df576105de610916565b5b60006105ed888289016104db565b95505060206105fe8882890161055b565b945050604086013567ffffffffffffffff81111561061f5761061e610911565b5b61062b88828901610505565b9350935050606061063e888289016104f0565b9150509295509295909350565b60006020828403121561066157610660610916565b5b600061066f8482850161055b565b91505092915050565b61068181610877565b82525050565b61069081610889565b82525050565b60006106a28385610855565b93506106af8385846108f3565b6106b88361091b565b840190509392505050565b6106cc816108bd565b82525050565b60006106df601f83610866565b91506106ea8261092c565b602082019050919050565b6106fe816108b3565b82525050565b60006020820190506107196000830184610678565b92915050565b60006080820190506107346000830188610678565b6107416020830187610678565b61074e60408301866106f5565b8181036060830152610761818486610696565b90509695505050505050565b60006040820190506107826000830185610678565b61078f60208301846106f5565b9392505050565b60006060820190506107ab6000830186610678565b6107b860208301856106f5565b6107c56040830184610687565b949350505050565b60006020820190506107e260008301846106c3565b92915050565b60006020820190508181036000830152610801816106d2565b9050919050565b600060208201905061081d60008301846106f5565b92915050565b600060408201905061083860008301866106f5565b818103602083015261084b818486610696565b9050949350505050565b600082825260208201905092915050565b600082825260208201905092915050565b600061088282610893565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006108c8826108cf565b9050919050565b60006108da826108e1565b9050919050565b60006108ec82610893565b9050919050565b82818337600083830152505050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b61095e81610877565b811461096957600080fd5b50565b61097581610889565b811461098057600080fd5b50565b61098c816108b3565b811461099757600080fd5b5056fea2646970667358221220af55d5f61addbf319928a723001d411ec2b726404eeedec369e4d204c7f69a1164736f6c63430008070033"; - -type ZetaConnectorNewNonEthConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: ZetaConnectorNewNonEthConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class ZetaConnectorNewNonEth__factory extends ContractFactory { - constructor(...args: ZetaConnectorNewNonEthConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override deploy( - _gateway: PromiseOrValue, - _zetaToken: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy( - _gateway, - _zetaToken, - overrides || {} - ) as Promise; - } - override getDeployTransaction( - _gateway: PromiseOrValue, - _zetaToken: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction(_gateway, _zetaToken, overrides || {}); - } - override attach(address: string): ZetaConnectorNewNonEth { - return super.attach(address) as ZetaConnectorNewNonEth; - } - override connect(signer: Signer): ZetaConnectorNewNonEth__factory { - return super.connect(signer) as ZetaConnectorNewNonEth__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): ZetaConnectorNewNonEthInterface { - return new utils.Interface(_abi) as ZetaConnectorNewNonEthInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): ZetaConnectorNewNonEth { - return new Contract( - address, - _abi, - signerOrProvider - ) as ZetaConnectorNewNonEth; - } -} diff --git a/typechain-types/factories/contracts/prototypes/evm/ZetaConnectorNew__factory.ts b/typechain-types/factories/contracts/prototypes/evm/ZetaConnectorNew__factory.ts deleted file mode 100644 index b14f7c62..00000000 --- a/typechain-types/factories/contracts/prototypes/evm/ZetaConnectorNew__factory.ts +++ /dev/null @@ -1,203 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../../common"; -import type { - ZetaConnectorNew, - ZetaConnectorNewInterface, -} from "../../../../contracts/prototypes/evm/ZetaConnectorNew"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "_gateway", - type: "address", - }, - { - internalType: "address", - name: "_zetaToken", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "Withdraw", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "WithdrawAndCall", - type: "event", - }, - { - inputs: [], - name: "gateway", - outputs: [ - { - internalType: "contract IGatewayEVM", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "withdraw", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "withdrawAndCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "zetaToken", - outputs: [ - { - internalType: "contract IERC20", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -const _bytecode = - "0x60c06040523480156200001157600080fd5b506040516200103a3803806200103a83398181016040528101906200003791906200016c565b6001600081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480620000a75750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15620000df576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b81525050505062000206565b6000815190506200016681620001ec565b92915050565b60008060408385031215620001865762000185620001e7565b5b6000620001968582860162000155565b9250506020620001a98582860162000155565b9150509250929050565b6000620001c082620001c7565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b620001f781620001b3565b81146200020357600080fd5b50565b60805160601c60a05160601c610de7620002536000396000818160f4015281816101760152818161027101526102a201526000818160d20152818161013a015261024d0152610de76000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806302a04c0d14610051578063116191b61461006d57806321e093b11461008b578063f3fef3a3146100a9575b600080fd5b61006b6004803603810190610066919061078a565b6100c5565b005b61007561024b565b6040516100829190610a33565b60405180910390f35b61009361026f565b6040516100a09190610a18565b60405180910390f35b6100c360048036038101906100be919061074a565b610293565b005b6100cd610340565b6101387f0000000000000000000000000000000000000000000000000000000000000000847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166103909092919063ffffffff16565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635131ab597f0000000000000000000000000000000000000000000000000000000000000000868686866040518663ffffffff1660e01b81526004016101b99594939291906109a1565b600060405180830381600087803b1580156101d357600080fd5b505af11580156101e7573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff167f7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced84848460405161023593929190610b0b565b60405180910390a2610245610416565b50505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b61029b610340565b6102e682827f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166103909092919063ffffffff16565b8173ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243648260405161032c9190610af0565b60405180910390a261033c610416565b5050565b60026000541415610386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037d90610ad0565b60405180910390fd5b6002600081905550565b6104118363a9059cbb60e01b84846040516024016103af9291906109ef565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610420565b505050565b6001600081905550565b6000610482826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166104e79092919063ffffffff16565b90506000815111156104e257808060200190518101906104a291906107fe565b6104e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d890610ab0565b60405180910390fd5b5b505050565b60606104f684846000856104ff565b90509392505050565b606082471015610544576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161053b90610a70565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161056d919061098a565b60006040518083038185875af1925050503d80600081146105aa576040519150601f19603f3d011682016040523d82523d6000602084013e6105af565b606091505b50915091506105c0878383876105cc565b92505050949350505050565b6060831561062f57600083511415610627576105e785610642565b610626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061d90610a90565b60405180910390fd5b5b82905061063a565b6106398383610665565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156106785781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ac9190610a4e565b60405180910390fd5b6000813590506106c481610d6c565b92915050565b6000815190506106d981610d83565b92915050565b60008083601f8401126106f5576106f4610c57565b5b8235905067ffffffffffffffff81111561071257610711610c52565b5b60208301915083600182028301111561072e5761072d610c5c565b5b9250929050565b60008135905061074481610d9a565b92915050565b6000806040838503121561076157610760610c66565b5b600061076f858286016106b5565b925050602061078085828601610735565b9150509250929050565b600080600080606085870312156107a4576107a3610c66565b5b60006107b2878288016106b5565b94505060206107c387828801610735565b935050604085013567ffffffffffffffff8111156107e4576107e3610c61565b5b6107f0878288016106df565b925092505092959194509250565b60006020828403121561081457610813610c66565b5b6000610822848285016106ca565b91505092915050565b61083481610b80565b82525050565b60006108468385610b53565b9350610853838584610c10565b61085c83610c6b565b840190509392505050565b600061087282610b3d565b61087c8185610b64565b935061088c818560208601610c1f565b80840191505092915050565b6108a181610bc8565b82525050565b6108b081610bda565b82525050565b60006108c182610b48565b6108cb8185610b6f565b93506108db818560208601610c1f565b6108e481610c6b565b840191505092915050565b60006108fc602683610b6f565b915061090782610c7c565b604082019050919050565b600061091f601d83610b6f565b915061092a82610ccb565b602082019050919050565b6000610942602a83610b6f565b915061094d82610cf4565b604082019050919050565b6000610965601f83610b6f565b915061097082610d43565b602082019050919050565b61098481610bbe565b82525050565b60006109968284610867565b915081905092915050565b60006080820190506109b6600083018861082b565b6109c3602083018761082b565b6109d0604083018661097b565b81810360608301526109e381848661083a565b90509695505050505050565b6000604082019050610a04600083018561082b565b610a11602083018461097b565b9392505050565b6000602082019050610a2d6000830184610898565b92915050565b6000602082019050610a4860008301846108a7565b92915050565b60006020820190508181036000830152610a6881846108b6565b905092915050565b60006020820190508181036000830152610a89816108ef565b9050919050565b60006020820190508181036000830152610aa981610912565b9050919050565b60006020820190508181036000830152610ac981610935565b9050919050565b60006020820190508181036000830152610ae981610958565b9050919050565b6000602082019050610b05600083018461097b565b92915050565b6000604082019050610b20600083018661097b565b8181036020830152610b3381848661083a565b9050949350505050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000610b8b82610b9e565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610bd382610bec565b9050919050565b6000610be582610bec565b9050919050565b6000610bf782610bfe565b9050919050565b6000610c0982610b9e565b9050919050565b82818337600083830152505050565b60005b83811015610c3d578082015181840152602081019050610c22565b83811115610c4c576000848401525b50505050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b610d7581610b80565b8114610d8057600080fd5b50565b610d8c81610b92565b8114610d9757600080fd5b50565b610da381610bbe565b8114610dae57600080fd5b5056fea2646970667358221220d14dddafe100dbbc372627ee1d188fb3a3858e5b2f46489e67f1a557d54b3c3764736f6c63430008070033"; - -type ZetaConnectorNewConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: ZetaConnectorNewConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class ZetaConnectorNew__factory extends ContractFactory { - constructor(...args: ZetaConnectorNewConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override deploy( - _gateway: PromiseOrValue, - _zetaToken: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy( - _gateway, - _zetaToken, - overrides || {} - ) as Promise; - } - override getDeployTransaction( - _gateway: PromiseOrValue, - _zetaToken: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction(_gateway, _zetaToken, overrides || {}); - } - override attach(address: string): ZetaConnectorNew { - return super.attach(address) as ZetaConnectorNew; - } - override connect(signer: Signer): ZetaConnectorNew__factory { - return super.connect(signer) as ZetaConnectorNew__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): ZetaConnectorNewInterface { - return new utils.Interface(_abi) as ZetaConnectorNewInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): ZetaConnectorNew { - return new Contract(address, _abi, signerOrProvider) as ZetaConnectorNew; - } -} diff --git a/typechain-types/factories/contracts/prototypes/evm/ZetaConnectorNonNative__factory.ts b/typechain-types/factories/contracts/prototypes/evm/ZetaConnectorNonNative__factory.ts deleted file mode 100644 index 29c3353f..00000000 --- a/typechain-types/factories/contracts/prototypes/evm/ZetaConnectorNonNative__factory.ts +++ /dev/null @@ -1,358 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../../common"; -import type { - ZetaConnectorNonNative, - ZetaConnectorNonNativeInterface, -} from "../../../../contracts/prototypes/evm/ZetaConnectorNonNative"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "_gateway", - type: "address", - }, - { - internalType: "address", - name: "_zetaToken", - type: "address", - }, - { - internalType: "address", - name: "_tssAddress", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [], - name: "ExceedsMaxSupply", - type: "error", - }, - { - inputs: [], - name: "InvalidSender", - type: "error", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "maxSupply", - type: "uint256", - }, - ], - name: "MaxSupplyUpdated", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "Withdraw", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "WithdrawAndCall", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "WithdrawAndRevert", - type: "event", - }, - { - inputs: [], - name: "gateway", - outputs: [ - { - internalType: "contract IGatewayEVM", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "maxSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "receiveTokens", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "_maxSupply", - type: "uint256", - }, - ], - name: "setMaxSupply", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "tssAddress", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes32", - name: "internalSendHash", - type: "bytes32", - }, - ], - name: "withdraw", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - internalType: "bytes32", - name: "internalSendHash", - type: "bytes32", - }, - ], - name: "withdrawAndCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - internalType: "bytes32", - name: "internalSendHash", - type: "bytes32", - }, - ], - name: "withdrawAndRevert", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "zetaToken", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -const _bytecode = - "0x60c06040527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6002553480156200003557600080fd5b506040516200158d3803806200158d83398181016040528101906200005b919062000210565b8282826001600081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480620000ce5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80620001065750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156200013e576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250508173ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b8152505080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050620002bf565b6000815190506200020a81620002a5565b92915050565b6000806000606084860312156200022c576200022b620002a0565b5b60006200023c86828701620001f9565b93505060206200024f86828701620001f9565b92505060406200026286828701620001f9565b9150509250925092565b6000620002798262000280565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b620002b0816200026c565b8114620002bc57600080fd5b50565b60805160601c60a05160601c611247620003466000396000818161023001528181610311015281816103fc0152818161056601528181610647015281816107550152818161083101528181610912015281816109fd0152610b9d01526000818161034d015281816103c0015281816107310152818161094e01526109c101526112476000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80635b112591116100665780635b1125911461010c5780635e3e9fef1461012a5780636f8b44b014610146578063743e0c9b14610162578063d5abeb011461017e57610093565b806302d5c89914610098578063106e6290146100b4578063116191b6146100d057806321e093b1146100ee575b600080fd5b6100b260048036038101906100ad9190610d88565b61019c565b005b6100ce60048036038101906100c99190610d35565b6104d2565b005b6100d861072f565b6040516100e59190610fbf565b60405180910390f35b6100f6610753565b6040516101039190610ef6565b60405180910390f35b610114610777565b6040516101219190610ef6565b60405180910390f35b610144600480360381019061013f9190610d88565b61079d565b005b610160600480360381019061015b9190610e10565b610ad3565b005b61017c60048036038101906101779190610e10565b610b9b565b005b610186610c2b565b6040516101939190610ffa565b60405180910390f35b6101a4610c31565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461022b576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561029457600080fd5b505afa1580156102a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102cc9190610e3d565b856102d79190611069565b111561030f576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16631e458bee7f000000000000000000000000000000000000000000000000000000000000000086846040518463ffffffff1660e01b815260040161038c93929190610f88565b600060405180830381600087803b1580156103a657600080fd5b505af11580156103ba573d6000803e3d6000fd5b505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b8969bd47f0000000000000000000000000000000000000000000000000000000000000000878787876040518663ffffffff1660e01b815260040161043f959493929190610f11565b600060405180830381600087803b15801561045957600080fd5b505af115801561046d573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff167fba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe8585856040516104bb93929190611015565b60405180910390a26104cb610c81565b5050505050565b6104da610c31565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610561576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156105ca57600080fd5b505afa1580156105de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106029190610e3d565b8361060d9190611069565b1115610645576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16631e458bee8484846040518463ffffffff1660e01b81526004016106a293929190610f88565b600060405180830381600087803b1580156106bc57600080fd5b505af11580156106d0573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243648360405161071a9190610ffa565b60405180910390a261072a610c81565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6107a5610c31565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461082c576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561089557600080fd5b505afa1580156108a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108cd9190610e3d565b856108d89190611069565b1115610910576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16631e458bee7f000000000000000000000000000000000000000000000000000000000000000086846040518463ffffffff1660e01b815260040161098d93929190610f88565b600060405180830381600087803b1580156109a757600080fd5b505af11580156109bb573d6000803e3d6000fd5b505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635131ab597f0000000000000000000000000000000000000000000000000000000000000000878787876040518663ffffffff1660e01b8152600401610a40959493929190610f11565b600060405180830381600087803b158015610a5a57600080fd5b505af1158015610a6e573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff167f7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced858585604051610abc93929190611015565b60405180910390a2610acc610c81565b5050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b5a576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806002819055507f7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c81604051610b909190610ffa565b60405180910390a150565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166379cc679033836040518363ffffffff1660e01b8152600401610bf6929190610f5f565b600060405180830381600087803b158015610c1057600080fd5b505af1158015610c24573d6000803e3d6000fd5b5050505050565b60025481565b60026000541415610c77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6e90610fda565b60405180910390fd5b6002600081905550565b6001600081905550565b600081359050610c9a816111cc565b92915050565b600081359050610caf816111e3565b92915050565b60008083601f840112610ccb57610cca61117e565b5b8235905067ffffffffffffffff811115610ce857610ce7611179565b5b602083019150836001820283011115610d0457610d03611183565b5b9250929050565b600081359050610d1a816111fa565b92915050565b600081519050610d2f816111fa565b92915050565b600080600060608486031215610d4e57610d4d61118d565b5b6000610d5c86828701610c8b565b9350506020610d6d86828701610d0b565b9250506040610d7e86828701610ca0565b9150509250925092565b600080600080600060808688031215610da457610da361118d565b5b6000610db288828901610c8b565b9550506020610dc388828901610d0b565b945050604086013567ffffffffffffffff811115610de457610de3611188565b5b610df088828901610cb5565b93509350506060610e0388828901610ca0565b9150509295509295909350565b600060208284031215610e2657610e2561118d565b5b6000610e3484828501610d0b565b91505092915050565b600060208284031215610e5357610e5261118d565b5b6000610e6184828501610d20565b91505092915050565b610e73816110bf565b82525050565b610e82816110d1565b82525050565b6000610e948385611047565b9350610ea183858461113b565b610eaa83611192565b840190509392505050565b610ebe81611105565b82525050565b6000610ed1601f83611058565b9150610edc826111a3565b602082019050919050565b610ef0816110fb565b82525050565b6000602082019050610f0b6000830184610e6a565b92915050565b6000608082019050610f266000830188610e6a565b610f336020830187610e6a565b610f406040830186610ee7565b8181036060830152610f53818486610e88565b90509695505050505050565b6000604082019050610f746000830185610e6a565b610f816020830184610ee7565b9392505050565b6000606082019050610f9d6000830186610e6a565b610faa6020830185610ee7565b610fb76040830184610e79565b949350505050565b6000602082019050610fd46000830184610eb5565b92915050565b60006020820190508181036000830152610ff381610ec4565b9050919050565b600060208201905061100f6000830184610ee7565b92915050565b600060408201905061102a6000830186610ee7565b818103602083015261103d818486610e88565b9050949350505050565b600082825260208201905092915050565b600082825260208201905092915050565b6000611074826110fb565b915061107f836110fb565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156110b4576110b361114a565b5b828201905092915050565b60006110ca826110db565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061111082611117565b9050919050565b600061112282611129565b9050919050565b6000611134826110db565b9050919050565b82818337600083830152505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6111d5816110bf565b81146111e057600080fd5b50565b6111ec816110d1565b81146111f757600080fd5b50565b611203816110fb565b811461120e57600080fd5b5056fea264697066735822122044af4e37ef2ad6dd470fc1c3af732b6c36970257d67f6756302aee086afdfa4d64736f6c63430008070033"; - -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 deploy( - _gateway: PromiseOrValue, - _zetaToken: PromiseOrValue, - _tssAddress: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy( - _gateway, - _zetaToken, - _tssAddress, - overrides || {} - ) as Promise; - } - override getDeployTransaction( - _gateway: PromiseOrValue, - _zetaToken: PromiseOrValue, - _tssAddress: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction( - _gateway, - _zetaToken, - _tssAddress, - overrides || {} - ); - } - override attach(address: string): ZetaConnectorNonNative { - return super.attach(address) as ZetaConnectorNonNative; - } - override connect(signer: Signer): ZetaConnectorNonNative__factory { - return super.connect(signer) as ZetaConnectorNonNative__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): ZetaConnectorNonNativeInterface { - return new utils.Interface(_abi) as ZetaConnectorNonNativeInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): ZetaConnectorNonNative { - return new Contract( - address, - _abi, - signerOrProvider - ) as ZetaConnectorNonNative; - } -} diff --git a/typechain-types/factories/contracts/prototypes/evm/index.ts b/typechain-types/factories/contracts/prototypes/evm/index.ts deleted file mode 100644 index 8daa7b8c..00000000 --- a/typechain-types/factories/contracts/prototypes/evm/index.ts +++ /dev/null @@ -1,16 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as ierc20CustodyNewSol from "./IERC20CustodyNew.sol"; -export * as iGatewayEvmSol from "./IGatewayEVM.sol"; -export * as iReceiverEvmSol from "./IReceiverEVM.sol"; -export * as iZetaConnectorSol from "./IZetaConnector.sol"; -export { ERC20CustodyNew__factory } from "./ERC20CustodyNew__factory"; -export { GatewayEVM__factory } from "./GatewayEVM__factory"; -export { GatewayEVMUpgradeTest__factory } from "./GatewayEVMUpgradeTest__factory"; -export { IZetaNonEthNew__factory } from "./IZetaNonEthNew__factory"; -export { ReceiverEVM__factory } from "./ReceiverEVM__factory"; -export { TestERC20__factory } from "./TestERC20__factory"; -export { ZetaConnectorNative__factory } from "./ZetaConnectorNative__factory"; -export { ZetaConnectorNewBase__factory } from "./ZetaConnectorNewBase__factory"; -export { ZetaConnectorNonNative__factory } from "./ZetaConnectorNonNative__factory"; diff --git a/typechain-types/factories/contracts/prototypes/evm/interfaces.sol/IGatewayEVM__factory.ts b/typechain-types/factories/contracts/prototypes/evm/interfaces.sol/IGatewayEVM__factory.ts deleted file mode 100644 index 83f8069c..00000000 --- a/typechain-types/factories/contracts/prototypes/evm/interfaces.sol/IGatewayEVM__factory.ts +++ /dev/null @@ -1,112 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; -import type { - IGatewayEVM, - IGatewayEVMInterface, -} from "../../../../../contracts/prototypes/evm/interfaces.sol/IGatewayEVM"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "destination", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "execute", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "executeWithERC20", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "revertWithERC20", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class IGatewayEVM__factory { - static readonly abi = _abi; - static createInterface(): IGatewayEVMInterface { - return new utils.Interface(_abi) as IGatewayEVMInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): IGatewayEVM { - return new Contract(address, _abi, signerOrProvider) as IGatewayEVM; - } -} diff --git a/typechain-types/factories/contracts/prototypes/evm/interfaces.sol/IGateway__factory.ts b/typechain-types/factories/contracts/prototypes/evm/interfaces.sol/IGateway__factory.ts deleted file mode 100644 index e612fd3e..00000000 --- a/typechain-types/factories/contracts/prototypes/evm/interfaces.sol/IGateway__factory.ts +++ /dev/null @@ -1,125 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; -import type { - IGateway, - IGatewayInterface, -} from "../../../../../contracts/prototypes/evm/interfaces.sol/IGateway"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "destination", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "execute", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "executeWithERC20", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "recipient", - type: "bytes", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "send", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "recipient", - type: "bytes", - }, - { - internalType: "address", - name: "asset", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "sendERC20", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class IGateway__factory { - static readonly abi = _abi; - static createInterface(): IGatewayInterface { - return new utils.Interface(_abi) as IGatewayInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): IGateway { - return new Contract(address, _abi, signerOrProvider) as IGateway; - } -} diff --git a/typechain-types/factories/contracts/prototypes/evm/interfaces.sol/IReceiverEVMEvents__factory.ts b/typechain-types/factories/contracts/prototypes/evm/interfaces.sol/IReceiverEVMEvents__factory.ts deleted file mode 100644 index 9f9d68c4..00000000 --- a/typechain-types/factories/contracts/prototypes/evm/interfaces.sol/IReceiverEVMEvents__factory.ts +++ /dev/null @@ -1,138 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; -import type { - IReceiverEVMEvents, - IReceiverEVMEventsInterface, -} from "../../../../../contracts/prototypes/evm/interfaces.sol/IReceiverEVMEvents"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "destination", - type: "address", - }, - ], - name: "ReceivedERC20", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "ReceivedNoParams", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "string[]", - name: "strs", - type: "string[]", - }, - { - indexed: false, - internalType: "uint256[]", - name: "nums", - type: "uint256[]", - }, - { - indexed: false, - internalType: "bool", - name: "flag", - type: "bool", - }, - ], - name: "ReceivedNonPayable", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "string", - name: "str", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "num", - type: "uint256", - }, - { - indexed: false, - internalType: "bool", - name: "flag", - type: "bool", - }, - ], - name: "ReceivedPayable", - type: "event", - }, -] as const; - -export class IReceiverEVMEvents__factory { - static readonly abi = _abi; - static createInterface(): IReceiverEVMEventsInterface { - return new utils.Interface(_abi) as IReceiverEVMEventsInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): IReceiverEVMEvents { - return new Contract(address, _abi, signerOrProvider) as IReceiverEVMEvents; - } -} diff --git a/typechain-types/factories/contracts/prototypes/evm/interfaces.sol/index.ts b/typechain-types/factories/contracts/prototypes/evm/interfaces.sol/index.ts deleted file mode 100644 index 0f9f3b51..00000000 --- a/typechain-types/factories/contracts/prototypes/evm/interfaces.sol/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -/* 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 { IReceiverEVMEvents__factory } from "./IReceiverEVMEvents__factory"; diff --git a/typechain-types/factories/contracts/prototypes/interfaces.sol/IGateway__factory.ts b/typechain-types/factories/contracts/prototypes/interfaces.sol/IGateway__factory.ts deleted file mode 100644 index 20c69449..00000000 --- a/typechain-types/factories/contracts/prototypes/interfaces.sol/IGateway__factory.ts +++ /dev/null @@ -1,84 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; -import type { - IGateway, - IGatewayInterface, -} from "../../../../contracts/prototypes/interfaces.sol/IGateway"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "destination", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "execute", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "executeWithERC20", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class IGateway__factory { - static readonly abi = _abi; - static createInterface(): IGatewayInterface { - return new utils.Interface(_abi) as IGatewayInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): IGateway { - return new Contract(address, _abi, signerOrProvider) as IGateway; - } -} diff --git a/typechain-types/factories/contracts/prototypes/test/GatewayEVM.t.sol/GatewayEVMInboundTest__factory.ts b/typechain-types/factories/contracts/prototypes/test/GatewayEVM.t.sol/GatewayEVMInboundTest__factory.ts deleted file mode 100644 index fc0a9953..00000000 --- a/typechain-types/factories/contracts/prototypes/test/GatewayEVM.t.sol/GatewayEVMInboundTest__factory.ts +++ /dev/null @@ -1,970 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../../../common"; -import type { - GatewayEVMInboundTest, - GatewayEVMInboundTestInterface, -} from "../../../../../contracts/prototypes/test/GatewayEVM.t.sol/GatewayEVMInboundTest"; - -const _abi = [ - { - inputs: [], - name: "ApprovalFailed", - type: "error", - }, - { - inputs: [], - name: "CustodyInitialized", - type: "error", - }, - { - inputs: [], - name: "DepositFailed", - type: "error", - }, - { - inputs: [], - name: "ExecutionFailed", - type: "error", - }, - { - inputs: [], - name: "InsufficientERC20Amount", - type: "error", - }, - { - inputs: [], - name: "InsufficientETHAmount", - type: "error", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "receiver", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "payload", - type: "bytes", - }, - ], - name: "Call", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "receiver", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "asset", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "payload", - type: "bytes", - }, - ], - name: "Deposit", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "destination", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "Executed", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "ExecutedWithERC20", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "destination", - type: "address", - }, - ], - name: "ReceivedERC20", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "ReceivedNoParams", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "string[]", - name: "strs", - type: "string[]", - }, - { - indexed: false, - internalType: "uint256[]", - name: "nums", - type: "uint256[]", - }, - { - indexed: false, - internalType: "bool", - name: "flag", - type: "bool", - }, - ], - name: "ReceivedNonPayable", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "string", - name: "str", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "num", - type: "uint256", - }, - { - indexed: false, - internalType: "bool", - name: "flag", - type: "bool", - }, - ], - name: "ReceivedPayable", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "", - type: "string", - }, - ], - name: "log", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "", - type: "address", - }, - ], - name: "log_address", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256[]", - name: "val", - type: "uint256[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "int256[]", - name: "val", - type: "int256[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address[]", - name: "val", - type: "address[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - name: "log_bytes", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - name: "log_bytes32", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "int256", - name: "", - type: "int256", - }, - ], - name: "log_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "address", - name: "val", - type: "address", - }, - ], - name: "log_named_address", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256[]", - name: "val", - type: "uint256[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256[]", - name: "val", - type: "int256[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "address[]", - name: "val", - type: "address[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "bytes", - name: "val", - type: "bytes", - }, - ], - name: "log_named_bytes", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "bytes32", - name: "val", - type: "bytes32", - }, - ], - name: "log_named_bytes32", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256", - name: "val", - type: "int256", - }, - { - indexed: false, - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "log_named_decimal_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "val", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "log_named_decimal_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256", - name: "val", - type: "int256", - }, - ], - name: "log_named_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "string", - name: "val", - type: "string", - }, - ], - name: "log_named_string", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "val", - type: "uint256", - }, - ], - name: "log_named_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "", - type: "string", - }, - ], - name: "log_string", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "log_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - name: "logs", - type: "event", - }, - { - inputs: [], - name: "IS_TEST", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeArtifacts", - outputs: [ - { - internalType: "string[]", - name: "excludedArtifacts_", - type: "string[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeContracts", - outputs: [ - { - internalType: "address[]", - name: "excludedContracts_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeSelectors", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzSelector[]", - name: "excludedSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeSenders", - outputs: [ - { - internalType: "address[]", - name: "excludedSenders_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "failed", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "setUp", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "targetArtifactSelectors", - outputs: [ - { - components: [ - { - internalType: "string", - name: "artifact", - type: "string", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzArtifactSelector[]", - name: "targetedArtifactSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetArtifacts", - outputs: [ - { - internalType: "string[]", - name: "targetedArtifacts_", - type: "string[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetContracts", - outputs: [ - { - internalType: "address[]", - name: "targetedContracts_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetInterfaces", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "string[]", - name: "artifacts", - type: "string[]", - }, - ], - internalType: "struct StdInvariant.FuzzInterface[]", - name: "targetedInterfaces_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetSelectors", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzSelector[]", - name: "targetedSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetSenders", - outputs: [ - { - internalType: "address[]", - name: "targetedSenders_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "testCallWithPayload", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "testDepositERC20ToCustody", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "testDepositERC20ToCustodyWithPayload", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "testDepositEthToTss", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "testDepositEthToTssWithPayload", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "testFailDepositERC20ToCustodyIfAmountIs0", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "testFailDepositERC20ToCustodyWithPayloadIfAmountIs0", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "testFailDepositEthToTssIfAmountIs0", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "testFailDepositEthToTssWithPayloadIfAmountIs0", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -const _bytecode = - "0x60806040526001600c60006101000a81548160ff0219169083151502179055506001601f60006101000a81548160ff021916908315150217905550620f424060255534801561004d57600080fd5b50619b58806200005e6000396000f3fe60806040523480156200001157600080fd5b5060043610620001605760003560e01c8063916a17c611620000c9578063ba414fa61162000087578063ba414fa614620002eb578063bb93f11e146200030d578063c13d738f1462000319578063e20c9f711462000325578063f96c02df1462000347578063fa7626d414620003535762000160565b8063916a17c6146200026d5780639fd1e597146200028f578063aa030c1c146200029b578063b0464fdc14620002a7578063b5508aa914620002c95762000160565b806330f7c04f116200012357806330f7c04f14620001cd5780633e5e3c2314620001d95780633f7286f414620001fb5780636459542a146200021d57806366d9a9a0146200022957806385226c81146200024b5762000160565b806306978ca314620001655780630724d8e314620001715780630a9254e4146200017d5780631ed7831c14620001895780632ade388014620001ab575b600080fd5b6200016f62000375565b005b6200017b620004be565b005b6200018762000780565b005b6200019362000be4565b604051620001a29190620039be565b60405180910390f35b620001b562000c74565b604051620001c4919062003a2a565b60405180910390f35b620001d762000e0e565b005b620001e3620014ce565b604051620001f29190620039be565b60405180910390f35b620002056200155e565b604051620002149190620039be565b60405180910390f35b62000227620015ee565b005b6200023362001bf3565b60405162000242919062003a06565b60405180910390f35b6200025562001d8a565b604051620002649190620039e2565b60405180910390f35b6200027762001e6d565b60405162000286919062003a4e565b60405180910390f35b6200029962001fc0565b005b620002a56200233d565b005b620002b162002614565b604051620002c0919062003a4e565b60405180910390f35b620002d362002767565b604051620002e29190620039e2565b60405180910390f35b620002f56200284a565b60405162000304919062003a72565b60405180910390f35b620003176200297d565b005b6200032362002ba3565b005b6200032f62002da4565b6040516200033e9190620039be565b60405180910390f35b6200035162002e34565b005b6200035d6200307a565b6040516200036c919062003a72565b60405180910390f35b60007f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff1663f28dceb36040518163ffffffff1660e01b8152600401620003d39062003b69565b600060405180830381600087803b158015620003ee57600080fd5b505af115801562000403573d6000803e3d6000fd5b50505050601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f340fa0182602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b815260040162000487919062003882565b6000604051808303818588803b158015620004a157600080fd5b505af1158015620004b6573d6000803e3d6000fd5b505050505050565b6000620186a090506000602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163190507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff166381bad6f3600180600180601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518663ffffffff1660e01b81526004016200058e95949392919062003a8f565b600060405180830381600087803b158015620005a957600080fd5b505af1158015620005be573d6000803e3d6000fd5b50505050602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a48460006040516200066892919062003bcf565b60405180910390a3601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f340fa0183602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401620006f0919062003882565b6000604051808303818588803b1580156200070a57600080fd5b505af11580156200071f573d6000803e3d6000fd5b50505050506000602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163190506200077b838362000774919062003dee565b826200308d565b505050565b30602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611234602360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550615678602460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051620008559062003123565b620008609062003b32565b604051809103906000f0801580156200087d573d6000803e3d6000fd5b50602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051620008cc9062003131565b604051809103906000f080158015620008e9573d6000803e3d6000fd5b50601f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516200095b906200313f565b62000967919062003882565b604051809103906000f08015801562000984573d6000803e3d6000fd5b50602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c4d66de8602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040162000a44919062003882565b600060405180830381600087803b15801562000a5f57600080fd5b505af115801562000a74573d6000803e3d6000fd5b50505050601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ae7a3a6f602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040162000af7919062003882565b600060405180830381600087803b15801562000b1257600080fd5b505af115801562000b27573d6000803e3d6000fd5b50505050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f19602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166025546040518363ffffffff1660e01b815260040162000bae92919062003900565b600060405180830381600087803b15801562000bc957600080fd5b505af115801562000bde573d6000803e3d6000fd5b50505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000c6a57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831162000c1f575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020016000905b8282101562000e0557838290600052602060002090600202016040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020016000905b8282101562000ded57838290600052602060002001805462000d599062003f3c565b80601f016020809104026020016040519081016040528092919081815260200182805462000d879062003f3c565b801562000dd85780601f1062000dac5761010080835404028352916020019162000dd8565b820191906000526020600020905b81548152906001019060200180831162000dba57829003601f168201915b50505050508152602001906001019062000d37565b50505050815250508152602001906001019062000c98565b50505050905090565b6000620186a090506000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040162000e97919062003882565b60206040518083038186803b15801562000eb057600080fd5b505afa15801562000ec5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000eeb9190620031f6565b905062000efa6000826200308d565b6000602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405160240162000f31919062003882565b6040516020818303038152906040527f84fae760000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b81526004016200103192919062003900565b602060405180830381600087803b1580156200104c57600080fd5b505af115801562001061573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001087919062003192565b507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff166381bad6f3600180600180601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518663ffffffff1660e01b81526004016200111295949392919062003a8f565b600060405180830381600087803b1580156200112d57600080fd5b505af115801562001142573d6000803e3d6000fd5b50505050602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a485602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040516200120f9392919062003b8b565b60405180910390a3601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638c6f037f602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518563ffffffff1660e01b8152600401620012be94939291906200396a565b600060405180830381600087803b158015620012d957600080fd5b505af1158015620012ee573d6000803e3d6000fd5b505050506000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040162001373919062003882565b60206040518083038186803b1580156200138c57600080fd5b505afa158015620013a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620013c79190620031f6565b9050620013d584826200308d565b6000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040162001456919062003882565b60206040518083038186803b1580156200146f57600080fd5b505afa15801562001484573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620014aa9190620031f6565b9050620014c785602554620014c0919062003e4b565b826200308d565b5050505050565b606060188054806020026020016040519081016040528092919081815260200182805480156200155457602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831162001509575b5050505050905090565b60606017805480602002602001604051908101604052809291908181526020018280548015620015e457602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831162001599575b5050505050905090565b6000620186a090506000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040162001677919062003882565b60206040518083038186803b1580156200169057600080fd5b505afa158015620016a5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620016cb9190620031f6565b9050620016da6000826200308d565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b81526004016200175b92919062003900565b602060405180830381600087803b1580156200177657600080fd5b505af11580156200178b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620017b1919062003192565b507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff166381bad6f3600180600180601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518663ffffffff1660e01b81526004016200183c95949392919062003a8f565b600060405180830381600087803b1580156200185757600080fd5b505af11580156200186c573d6000803e3d6000fd5b50505050602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a484602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516200193792919062003bcf565b60405180910390a3601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f45346dc602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518463ffffffff1660e01b8152600401620019e4939291906200392d565b600060405180830381600087803b158015620019ff57600080fd5b505af115801562001a14573d6000803e3d6000fd5b505050506000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040162001a99919062003882565b60206040518083038186803b15801562001ab257600080fd5b505afa15801562001ac7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001aed9190620031f6565b905062001afb83826200308d565b6000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040162001b7c919062003882565b60206040518083038186803b15801562001b9557600080fd5b505afa15801562001baa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001bd09190620031f6565b905062001bed8460255462001be6919062003e4b565b826200308d565b50505050565b6060601b805480602002602001604051908101604052809291908181526020016000905b8282101562001d81578382906000526020600020906002020160405180604001604052908160008201805462001c4d9062003f3c565b80601f016020809104026020016040519081016040528092919081815260200182805462001c7b9062003f3c565b801562001ccc5780601f1062001ca05761010080835404028352916020019162001ccc565b820191906000526020600020905b81548152906001019060200180831162001cae57829003601f168201915b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801562001d6857602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162001d145790505b5050505050815250508152602001906001019062001c17565b50505050905090565b6060601a805480602002602001604051908101604052809291908181526020016000905b8282101562001e6457838290600052602060002001805462001dd09062003f3c565b80601f016020809104026020016040519081016040528092919081815260200182805462001dfe9062003f3c565b801562001e4f5780601f1062001e235761010080835404028352916020019162001e4f565b820191906000526020600020905b81548152906001019060200180831162001e3157829003601f168201915b50505050508152602001906001019062001dae565b50505050905090565b6060601d805480602002602001604051908101604052809291908181526020016000905b8282101562001fb757838290600052602060002090600202016040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820180548060200260200160405190810160405280929190818152602001828054801562001f9e57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162001f4a5790505b5050505050815250508152602001906001019062001e91565b50505050905090565b6000620186a090506000602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163190506000602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516024016200203d919062003882565b6040516020818303038152906040527f84fae760000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff166381bad6f3600180600180601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518663ffffffff1660e01b81526004016200214695949392919062003a8f565b600060405180830381600087803b1580156200216157600080fd5b505af115801562002176573d6000803e3d6000fd5b50505050602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a485600085604051620022229392919062003b8b565b60405180910390a3601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329c59b5d84602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b8152600401620022ac929190620038cc565b6000604051808303818588803b158015620022c657600080fd5b505af1158015620022db573d6000803e3d6000fd5b50505050506000602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1631905062002337848462002330919062003dee565b826200308d565b50505050565b6000602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405160240162002374919062003882565b6040516020818303038152906040527f84fae760000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff166381bad6f3600180600180601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518663ffffffff1660e01b81526004016200247d95949392919062003a8f565b600060405180830381600087803b1580156200249857600080fd5b505af1158015620024ad573d6000803e3d6000fd5b50505050602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde38360405162002554919062003aec565b60405180910390a3601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631b8b921d602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401620025dd929190620038cc565b600060405180830381600087803b158015620025f857600080fd5b505af11580156200260d573d6000803e3d6000fd5b5050505050565b6060601c805480602002602001604051908101604052809291908181526020016000905b828210156200275e57838290600052602060002090600202016040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054806020026020016040519081016040528092919081815260200182805480156200274557602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620026f15790505b5050505050815250508152602001906001019062002638565b50505050905090565b60606019805480602002602001604051908101604052809291908181526020016000905b8282101562002841578382906000526020600020018054620027ad9062003f3c565b80601f0160208091040260200160405190810160405280929190818152602001828054620027db9062003f3c565b80156200282c5780601f1062002800576101008083540402835291602001916200282c565b820191906000526020600020905b8154815290600101906020018083116200280e57829003601f168201915b5050505050815260200190600101906200278b565b50505050905090565b6000600860009054906101000a900460ff16156200287a57600860009054906101000a900460ff1690506200297a565b6000801b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff1663667f9d707f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c7f6661696c656400000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b8152600401620029219291906200389f565b60206040518083038186803b1580156200293a57600080fd5b505afa1580156200294f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620029759190620031c4565b141590505b90565b600080602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051602401620029b5919062003882565b6040516020818303038152906040527f84fae760000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff1663f28dceb36040518163ffffffff1660e01b815260040162002a909062003b10565b600060405180830381600087803b15801562002aab57600080fd5b505af115801562002ac0573d6000803e3d6000fd5b50505050601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638c6f037f602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518563ffffffff1660e01b815260040162002b6b94939291906200396a565b600060405180830381600087803b15801562002b8657600080fd5b505af115801562002b9b573d6000803e3d6000fd5b505050505050565b600080602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405160240162002bdb919062003882565b6040516020818303038152906040527f84fae760000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff1663f28dceb36040518163ffffffff1660e01b815260040162002cb69062003b69565b600060405180830381600087803b15801562002cd157600080fd5b505af115801562002ce6573d6000803e3d6000fd5b50505050601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329c59b5d83602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b815260040162002d6c929190620038cc565b6000604051808303818588803b15801562002d8657600080fd5b505af115801562002d9b573d6000803e3d6000fd5b50505050505050565b6060601580548060200260200160405190810160405280929190818152602001828054801562002e2a57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831162002ddf575b5050505050905090565b6000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040162002eb792919062003900565b602060405180830381600087803b15801562002ed257600080fd5b505af115801562002ee7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002f0d919062003192565b507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff1663f28dceb36040518163ffffffff1660e01b815260040162002f6a9062003b10565b600060405180830381600087803b15801562002f8557600080fd5b505af115801562002f9a573d6000803e3d6000fd5b50505050601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f45346dc602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518463ffffffff1660e01b815260040162003043939291906200392d565b600060405180830381600087803b1580156200305e57600080fd5b505af115801562003073573d6000803e3d6000fd5b5050505050565b601f60009054906101000a900460ff1681565b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff166398296c5483836040518363ffffffff1660e01b8152600401620030ed92919062003c11565b60006040518083038186803b1580156200310657600080fd5b505afa1580156200311b573d6000803e3d6000fd5b505050505050565b61181380620040dc83390190565b6131a480620058ef83390190565b6110908062008a9383390190565b6000815190506200315e816200408d565b92915050565b6000815190506200317581620040a7565b92915050565b6000815190506200318c81620040c1565b92915050565b600060208284031215620031ab57620031aa62003fd0565b5b6000620031bb848285016200314d565b91505092915050565b600060208284031215620031dd57620031dc62003fd0565b5b6000620031ed8482850162003164565b91505092915050565b6000602082840312156200320f576200320e62003fd0565b5b60006200321f848285016200317b565b91505092915050565b6000620032368383620032b4565b60208301905092915050565b600062003250838362003651565b60208301905092915050565b60006200326a8383620036a3565b905092915050565b6000620032808383620037a7565b905092915050565b6000620032968383620037ef565b905092915050565b6000620032ac838362003830565b905092915050565b620032bf8162003e86565b82525050565b620032d08162003e86565b82525050565b6000620032e38262003c9e565b620032ef818562003d44565b9350620032fc8362003c3e565b8060005b838110156200333357815162003317888262003228565b9750620033248362003cf6565b92505060018101905062003300565b5085935050505092915050565b60006200334d8262003ca9565b62003359818562003d55565b9350620033668362003c4e565b8060005b838110156200339d57815162003381888262003242565b97506200338e8362003d03565b9250506001810190506200336a565b5085935050505092915050565b6000620033b78262003cb4565b620033c3818562003d66565b935083602082028501620033d78562003c5e565b8060005b85811015620034195784840389528151620033f785826200325c565b9450620034048362003d10565b925060208a01995050600181019050620033db565b50829750879550505050505092915050565b6000620034388262003cb4565b62003444818562003d77565b935083602082028501620034588562003c5e565b8060005b858110156200349a57848403895281516200347885826200325c565b9450620034858362003d10565b925060208a019950506001810190506200345c565b50829750879550505050505092915050565b6000620034b98262003cbf565b620034c5818562003d88565b935083602082028501620034d98562003c6e565b8060005b858110156200351b5784840389528151620034f9858262003272565b9450620035068362003d1d565b925060208a01995050600181019050620034dd565b50829750879550505050505092915050565b60006200353a8262003cca565b62003546818562003d99565b9350836020820285016200355a8562003c7e565b8060005b858110156200359c57848403895281516200357a858262003288565b9450620035878362003d2a565b925060208a019950506001810190506200355e565b50829750879550505050505092915050565b6000620035bb8262003cd5565b620035c7818562003daa565b935083602082028501620035db8562003c8e565b8060005b858110156200361d5784840389528151620035fb85826200329e565b9450620036088362003d37565b925060208a01995050600181019050620035df565b50829750879550505050505092915050565b6200363a8162003e9a565b82525050565b6200364b8162003ea6565b82525050565b6200365c8162003eb0565b82525050565b60006200366f8262003ce0565b6200367b818562003dbb565b93506200368d81856020860162003f06565b620036988162003fd5565b840191505092915050565b6000620036b08262003ceb565b620036bc818562003dcc565b9350620036ce81856020860162003f06565b620036d98162003fd5565b840191505092915050565b6000620036f360038362003ddd565b9150620037008262003fe6565b602082019050919050565b60006200371a60178362003dbb565b915062003727826200400f565b602082019050919050565b60006200374160048362003ddd565b91506200374e8262004038565b602082019050919050565b60006200376860008362003dbb565b9150620037758262004061565b600082019050919050565b60006200378f60158362003dbb565b91506200379c8262004064565b602082019050919050565b60006040830160008301518482036000860152620037c68282620036a3565b91505060208301518482036020860152620037e2828262003340565b9150508091505092915050565b6000604083016000830151620038096000860182620032b4565b5060208301518482036020860152620038238282620033aa565b9150508091505092915050565b60006040830160008301516200384a6000860182620032b4565b506020830151848203602086015262003864828262003340565b9150508091505092915050565b6200387c8162003efc565b82525050565b6000602082019050620038996000830184620032c5565b92915050565b6000604082019050620038b66000830185620032c5565b620038c5602083018462003640565b9392505050565b6000604082019050620038e36000830185620032c5565b8181036020830152620038f7818462003662565b90509392505050565b6000604082019050620039176000830185620032c5565b62003926602083018462003871565b9392505050565b6000606082019050620039446000830186620032c5565b62003953602083018562003871565b620039626040830184620032c5565b949350505050565b6000608082019050620039816000830187620032c5565b62003990602083018662003871565b6200399f6040830185620032c5565b8181036060830152620039b3818462003662565b905095945050505050565b60006020820190508181036000830152620039da8184620032d6565b905092915050565b60006020820190508181036000830152620039fe81846200342b565b905092915050565b6000602082019050818103600083015262003a228184620034ac565b905092915050565b6000602082019050818103600083015262003a4681846200352d565b905092915050565b6000602082019050818103600083015262003a6a8184620035ae565b905092915050565b600060208201905062003a8960008301846200362f565b92915050565b600060a08201905062003aa660008301886200362f565b62003ab560208301876200362f565b62003ac460408301866200362f565b62003ad360608301856200362f565b62003ae26080830184620032c5565b9695505050505050565b6000602082019050818103600083015262003b08818462003662565b905092915050565b6000602082019050818103600083015262003b2b816200370b565b9050919050565b6000604082019050818103600083015262003b4d8162003732565b9050818103602083015262003b6281620036e4565b9050919050565b6000602082019050818103600083015262003b848162003780565b9050919050565b600060608201905062003ba2600083018662003871565b62003bb16020830185620032c5565b818103604083015262003bc5818462003662565b9050949350505050565b600060608201905062003be6600083018562003871565b62003bf56020830184620032c5565b818103604083015262003c088162003759565b90509392505050565b600060408201905062003c28600083018562003871565b62003c37602083018462003871565b9392505050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600062003dfb8262003efc565b915062003e088362003efc565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562003e405762003e3f62003f72565b5b828201905092915050565b600062003e588262003efc565b915062003e658362003efc565b92508282101562003e7b5762003e7a62003f72565b5b828203905092915050565b600062003e938262003edc565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101562003f2657808201518184015260208101905062003f09565b8381111562003f36576000848401525b50505050565b6000600282049050600182168062003f5557607f821691505b6020821081141562003f6c5762003f6b62003fa1565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f54544b0000000000000000000000000000000000000000000000000000000000600082015250565b7f496e73756666696369656e744552433230416d6f756e74000000000000000000600082015250565b7f7465737400000000000000000000000000000000000000000000000000000000600082015250565b50565b7f496e73756666696369656e74455448416d6f756e740000000000000000000000600082015250565b620040988162003e9a565b8114620040a457600080fd5b50565b620040b28162003ea6565b8114620040be57600080fd5b50565b620040cc8162003efc565b8114620040d857600080fd5b5056fe60806040523480156200001157600080fd5b5060405162001813380380620018138339818101604052810190620000379190620001a3565b818181600390805190602001906200005192919062000075565b5080600490805190602001906200006a92919062000075565b5050505050620003ac565b8280546200008390620002bd565b90600052602060002090601f016020900481019282620000a75760008555620000f3565b82601f10620000c257805160ff1916838001178555620000f3565b82800160010185558215620000f3579182015b82811115620000f2578251825591602001919060010190620000d5565b5b50905062000102919062000106565b5090565b5b808211156200012157600081600090555060010162000107565b5090565b60006200013c620001368462000251565b62000228565b9050828152602081018484840111156200015b576200015a6200038c565b5b6200016884828562000287565b509392505050565b600082601f83011262000188576200018762000387565b5b81516200019a84826020860162000125565b91505092915050565b60008060408385031215620001bd57620001bc62000396565b5b600083015167ffffffffffffffff811115620001de57620001dd62000391565b5b620001ec8582860162000170565b925050602083015167ffffffffffffffff81111562000210576200020f62000391565b5b6200021e8582860162000170565b9150509250929050565b60006200023462000247565b9050620002428282620002f3565b919050565b6000604051905090565b600067ffffffffffffffff8211156200026f576200026e62000358565b5b6200027a826200039b565b9050602081019050919050565b60005b83811015620002a75780820151818401526020810190506200028a565b83811115620002b7576000848401525b50505050565b60006002820490506001821680620002d657607f821691505b60208210811415620002ed57620002ec62000329565b5b50919050565b620002fe826200039b565b810181811067ffffffffffffffff8211171562000320576200031f62000358565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b61145780620003bc6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806340c10f191161007157806340c10f19146101a357806370a08231146101bf57806395d89b41146101ef578063a457c2d71461020d578063a9059cbb1461023d578063dd62ed3e1461026d576100b4565b806306fdde03146100b9578063095ea7b3146100d757806318160ddd1461010757806323b872dd14610125578063313ce567146101555780633950935114610173575b600080fd5b6100c161029d565b6040516100ce9190610ecf565b60405180910390f35b6100f160048036038101906100ec9190610cf6565b61032f565b6040516100fe9190610eb4565b60405180910390f35b61010f610352565b60405161011c9190610ff1565b60405180910390f35b61013f600480360381019061013a9190610ca3565b61035c565b60405161014c9190610eb4565b60405180910390f35b61015d61038b565b60405161016a919061100c565b60405180910390f35b61018d60048036038101906101889190610cf6565b610394565b60405161019a9190610eb4565b60405180910390f35b6101bd60048036038101906101b89190610cf6565b6103cb565b005b6101d960048036038101906101d49190610c36565b6103d9565b6040516101e69190610ff1565b60405180910390f35b6101f7610421565b6040516102049190610ecf565b60405180910390f35b61022760048036038101906102229190610cf6565b6104b3565b6040516102349190610eb4565b60405180910390f35b61025760048036038101906102529190610cf6565b61052a565b6040516102649190610eb4565b60405180910390f35b61028760048036038101906102829190610c63565b61054d565b6040516102949190610ff1565b60405180910390f35b6060600380546102ac90611121565b80601f01602080910402602001604051908101604052809291908181526020018280546102d890611121565b80156103255780601f106102fa57610100808354040283529160200191610325565b820191906000526020600020905b81548152906001019060200180831161030857829003601f168201915b5050505050905090565b60008061033a6105d4565b90506103478185856105dc565b600191505092915050565b6000600254905090565b6000806103676105d4565b90506103748582856107a7565b61037f858585610833565b60019150509392505050565b60006012905090565b60008061039f6105d4565b90506103c08185856103b1858961054d565b6103bb9190611043565b6105dc565b600191505092915050565b6103d58282610aab565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461043090611121565b80601f016020809104026020016040519081016040528092919081815260200182805461045c90611121565b80156104a95780601f1061047e576101008083540402835291602001916104a9565b820191906000526020600020905b81548152906001019060200180831161048c57829003601f168201915b5050505050905090565b6000806104be6105d4565b905060006104cc828661054d565b905083811015610511576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050890610fb1565b60405180910390fd5b61051e82868684036105dc565b60019250505092915050565b6000806105356105d4565b9050610542818585610833565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561064c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064390610f91565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156106bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b390610f11565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161079a9190610ff1565b60405180910390a3505050565b60006107b3848461054d565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461082d578181101561081f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081690610f31565b60405180910390fd5b61082c84848484036105dc565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156108a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089a90610f71565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090a90610ef1565b60405180910390fd5b61091e838383610c02565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156109a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099b90610f51565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a929190610ff1565b60405180910390a3610aa5848484610c07565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1290610fd1565b60405180910390fd5b610b2760008383610c02565b8060026000828254610b399190611043565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610bea9190610ff1565b60405180910390a3610bfe60008383610c07565b5050565b505050565b505050565b600081359050610c1b816113f3565b92915050565b600081359050610c308161140a565b92915050565b600060208284031215610c4c57610c4b6111b1565b5b6000610c5a84828501610c0c565b91505092915050565b60008060408385031215610c7a57610c796111b1565b5b6000610c8885828601610c0c565b9250506020610c9985828601610c0c565b9150509250929050565b600080600060608486031215610cbc57610cbb6111b1565b5b6000610cca86828701610c0c565b9350506020610cdb86828701610c0c565b9250506040610cec86828701610c21565b9150509250925092565b60008060408385031215610d0d57610d0c6111b1565b5b6000610d1b85828601610c0c565b9250506020610d2c85828601610c21565b9150509250929050565b610d3f816110ab565b82525050565b6000610d5082611027565b610d5a8185611032565b9350610d6a8185602086016110ee565b610d73816111b6565b840191505092915050565b6000610d8b602383611032565b9150610d96826111c7565b604082019050919050565b6000610dae602283611032565b9150610db982611216565b604082019050919050565b6000610dd1601d83611032565b9150610ddc82611265565b602082019050919050565b6000610df4602683611032565b9150610dff8261128e565b604082019050919050565b6000610e17602583611032565b9150610e22826112dd565b604082019050919050565b6000610e3a602483611032565b9150610e458261132c565b604082019050919050565b6000610e5d602583611032565b9150610e688261137b565b604082019050919050565b6000610e80601f83611032565b9150610e8b826113ca565b602082019050919050565b610e9f816110d7565b82525050565b610eae816110e1565b82525050565b6000602082019050610ec96000830184610d36565b92915050565b60006020820190508181036000830152610ee98184610d45565b905092915050565b60006020820190508181036000830152610f0a81610d7e565b9050919050565b60006020820190508181036000830152610f2a81610da1565b9050919050565b60006020820190508181036000830152610f4a81610dc4565b9050919050565b60006020820190508181036000830152610f6a81610de7565b9050919050565b60006020820190508181036000830152610f8a81610e0a565b9050919050565b60006020820190508181036000830152610faa81610e2d565b9050919050565b60006020820190508181036000830152610fca81610e50565b9050919050565b60006020820190508181036000830152610fea81610e73565b9050919050565b60006020820190506110066000830184610e96565b92915050565b60006020820190506110216000830184610ea5565b92915050565b600081519050919050565b600082825260208201905092915050565b600061104e826110d7565b9150611059836110d7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561108e5761108d611153565b5b828201905092915050565b60006110a4826110b7565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101561110c5780820151818401526020810190506110f1565b8381111561111b576000848401525b50505050565b6000600282049050600182168061113957607f821691505b6020821081141561114d5761114c611182565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6113fc81611099565b811461140757600080fd5b50565b611413816110d7565b811461141e57600080fd5b5056fea2646970667358221220d4c96329400732e284f624232c8d7228fc90c00ee7b1a48a85080262107815d864736f6c6343000807003360a06040523073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b81525034801561004657600080fd5b5060805160601c613123610081600039600081816105fc0152818161068b01528181610785015281816108140152610bae01526131236000f3fe6080604052600436106100fe5760003560e01c8063715018a611610095578063c4d66de811610064578063c4d66de8146102e4578063dda79b751461030d578063f2fde38b14610338578063f340fa0114610361578063f45346dc1461037d576100fe565b8063715018a6146102505780638c6f037f146102675780638da5cb5b14610290578063ae7a3a6f146102bb576100fe565b80634f1ef286116100d15780634f1ef286146101a15780635131ab59146101bd57806352d1902d146101fa5780635b11259114610225576100fe565b80631b8b921d146101035780631cff79cd1461012c57806329c59b5d1461015c5780633659cfe614610178575b600080fd5b34801561010f57600080fd5b5061012a60048036038101906101259190612183565b6103a6565b005b61014660048036038101906101419190612183565b610412565b6040516101539190612816565b60405180910390f35b61017660048036038101906101719190612183565b610480565b005b34801561018457600080fd5b5061019f600480360381019061019a91906120ce565b6105fa565b005b6101bb60048036038101906101b691906121e3565b610783565b005b3480156101c957600080fd5b506101e460048036038101906101df91906120fb565b6108c0565b6040516101f19190612816565b60405180910390f35b34801561020657600080fd5b5061020f610baa565b60405161021c91906127d7565b60405180910390f35b34801561023157600080fd5b5061023a610c63565b6040516102479190612733565b60405180910390f35b34801561025c57600080fd5b50610265610c89565b005b34801561027357600080fd5b5061028e60048036038101906102899190612292565b610c9d565b005b34801561029c57600080fd5b506102a5610d99565b6040516102b29190612733565b60405180910390f35b3480156102c757600080fd5b506102e260048036038101906102dd91906120ce565b610dc3565b005b3480156102f057600080fd5b5061030b600480360381019061030691906120ce565b610e8f565b005b34801561031957600080fd5b5061032261107e565b60405161032f9190612733565b60405180910390f35b34801561034457600080fd5b5061035f600480360381019061035a91906120ce565b6110a4565b005b61037b600480360381019061037691906120ce565b611128565b005b34801561038957600080fd5b506103a4600480360381019061039f919061223f565b61129c565b005b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde384846040516104059291906127f2565b60405180910390a3505050565b60606000610421858585611392565b90508473ffffffffffffffffffffffffffffffffffffffff167fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f34868660405161046d93929190612a91565b60405180910390a2809150509392505050565b60003414156104bb576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16346040516105039061271e565b60006040518083038185875af1925050503d8060008114610540576040519150601f19603f3d011682016040523d82523d6000602084013e610545565b606091505b50509050600015158115151415610588576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a434600087876040516105ec9493929190612a15565b60405180910390a350505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610689576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068090612895565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166106c8611449565b73ffffffffffffffffffffffffffffffffffffffff161461071e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610715906128b5565b60405180910390fd5b610727816114a0565b61078081600067ffffffffffffffff81111561074657610745612c52565b5b6040519080825280601f01601f1916602001820160405280156107785781602001600182028036833780820191505090505b5060006114ab565b50565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610812576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080990612895565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610851611449565b73ffffffffffffffffffffffffffffffffffffffff16146108a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089e906128b5565b60405180910390fd5b6108b0826114a0565b6108bc828260016114ab565b5050565b606060008414156108fd576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109078686611628565b61093d576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff1663095ea7b386866040518363ffffffff1660e01b81526004016109789291906127ae565b602060405180830381600087803b15801561099257600080fd5b505af11580156109a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ca919061231a565b610a00576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610a0d868585611392565b9050610a198787611628565b610a4f576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a8a9190612733565b60206040518083038186803b158015610aa257600080fd5b505afa158015610ab6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ada9190612374565b90506000811115610b3357610b3260c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828a73ffffffffffffffffffffffffffffffffffffffff166116c09092919063ffffffff16565b5b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382888888604051610b9493929190612a91565b60405180910390a3819250505095945050505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614610c3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c31906128f5565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b905090565b60ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c91611746565b610c9b60006117c4565b565b6000841415610cd8576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d273360c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16868673ffffffffffffffffffffffffffffffffffffffff1661188a909392919063ffffffff16565b8473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a486868686604051610d8a9493929190612a15565b60405180910390a35050505050565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff1660c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e4b576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060c960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060019054906101000a900460ff16159050808015610ec05750600160008054906101000a900460ff1660ff16105b80610eed5750610ecf30611913565b158015610eec5750600160008054906101000a900460ff1660ff16145b5b610f2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2390612935565b60405180910390fd5b60016000806101000a81548160ff021916908360ff1602179055508015610f69576001600060016101000a81548160ff0219169083151502179055505b610f71611936565b610f7961198f565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fe0576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8160ca60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550801561107a5760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860016040516110719190612838565b60405180910390a15b5050565b60c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6110ac611746565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561111c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111390612875565b60405180910390fd5b611125816117c4565b50565b6000341415611163576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16346040516111ab9061271e565b60006040518083038185875af1925050503d80600081146111e8576040519150601f19603f3d011682016040523d82523d6000602084013e6111ed565b606091505b50509050600015158115151415611230576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4346000604051611290929190612a55565b60405180910390a35050565b60008214156112d7576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113263360c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848473ffffffffffffffffffffffffffffffffffffffff1661188a909392919063ffffffff16565b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a48484604051611385929190612a55565b60405180910390a3505050565b60606000808573ffffffffffffffffffffffffffffffffffffffff163486866040516113bf9291906126ee565b60006040518083038185875af1925050503d80600081146113fc576040519150601f19603f3d011682016040523d82523d6000602084013e611401565b606091505b50915091508161143d576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80925050509392505050565b60006114777f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6119e0565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6114a8611746565b50565b6114d77f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914360001b6119ea565b60000160009054906101000a900460ff16156114fb576114f6836119f4565b611623565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561154157600080fd5b505afa92505050801561157257506040513d601f19601f8201168201806040525081019061156f9190612347565b60015b6115b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a890612955565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b8114611616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160d90612915565b60405180910390fd5b50611622838383611aad565b5b505050565b60008273ffffffffffffffffffffffffffffffffffffffff1663095ea7b38360006040518363ffffffff1660e01b8152600401611666929190612785565b602060405180830381600087803b15801561168057600080fd5b505af1158015611694573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b8919061231a565b905092915050565b6117418363a9059cbb60e01b84846040516024016116df9291906127ae565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611ad9565b505050565b61174e611ba0565b73ffffffffffffffffffffffffffffffffffffffff1661176c610d99565b73ffffffffffffffffffffffffffffffffffffffff16146117c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b990612995565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61190d846323b872dd60e01b8585856040516024016118ab9392919061274e565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611ad9565b50505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16611985576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197c906129d5565b60405180910390fd5b61198d611ba8565b565b600060019054906101000a900460ff166119de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d5906129d5565b60405180910390fd5b565b6000819050919050565b6000819050919050565b6119fd81611913565b611a3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3390612975565b60405180910390fd5b80611a697f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6119e0565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611ab683611c09565b600082511180611ac35750805b15611ad457611ad28383611c58565b505b505050565b6000611b3b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16611c859092919063ffffffff16565b9050600081511115611b9b5780806020019051810190611b5b919061231a565b611b9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b91906129f5565b60405180910390fd5b5b505050565b600033905090565b600060019054906101000a900460ff16611bf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bee906129d5565b60405180910390fd5b611c07611c02611ba0565b6117c4565b565b611c12816119f4565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b6060611c7d83836040518060600160405280602781526020016130c760279139611c9d565b905092915050565b6060611c948484600085611d23565b90509392505050565b60606000808573ffffffffffffffffffffffffffffffffffffffff1685604051611cc79190612707565b600060405180830381855af49150503d8060008114611d02576040519150601f19603f3d011682016040523d82523d6000602084013e611d07565b606091505b5091509150611d1886838387611df0565b925050509392505050565b606082471015611d68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5f906128d5565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051611d919190612707565b60006040518083038185875af1925050503d8060008114611dce576040519150601f19603f3d011682016040523d82523d6000602084013e611dd3565b606091505b5091509150611de487838387611e66565b92505050949350505050565b60608315611e5357600083511415611e4b57611e0b85611913565b611e4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e41906129b5565b60405180910390fd5b5b829050611e5e565b611e5d8383611edc565b5b949350505050565b60608315611ec957600083511415611ec157611e8185611f2c565b611ec0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb7906129b5565b60405180910390fd5b5b829050611ed4565b611ed38383611f4f565b5b949350505050565b600082511115611eef5781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f239190612853565b60405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600082511115611f625781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f969190612853565b60405180910390fd5b6000611fb2611fad84612ae8565b612ac3565b905082815260208101848484011115611fce57611fcd612c90565b5b611fd9848285612bdf565b509392505050565b600081359050611ff08161306a565b92915050565b60008151905061200581613081565b92915050565b60008151905061201a81613098565b92915050565b60008083601f84011261203657612035612c86565b5b8235905067ffffffffffffffff81111561205357612052612c81565b5b60208301915083600182028301111561206f5761206e612c8b565b5b9250929050565b600082601f83011261208b5761208a612c86565b5b813561209b848260208601611f9f565b91505092915050565b6000813590506120b3816130af565b92915050565b6000815190506120c8816130af565b92915050565b6000602082840312156120e4576120e3612c9a565b5b60006120f284828501611fe1565b91505092915050565b60008060008060006080868803121561211757612116612c9a565b5b600061212588828901611fe1565b955050602061213688828901611fe1565b9450506040612147888289016120a4565b935050606086013567ffffffffffffffff81111561216857612167612c95565b5b61217488828901612020565b92509250509295509295909350565b60008060006040848603121561219c5761219b612c9a565b5b60006121aa86828701611fe1565b935050602084013567ffffffffffffffff8111156121cb576121ca612c95565b5b6121d786828701612020565b92509250509250925092565b600080604083850312156121fa576121f9612c9a565b5b600061220885828601611fe1565b925050602083013567ffffffffffffffff81111561222957612228612c95565b5b61223585828601612076565b9150509250929050565b60008060006060848603121561225857612257612c9a565b5b600061226686828701611fe1565b9350506020612277868287016120a4565b925050604061228886828701611fe1565b9150509250925092565b6000806000806000608086880312156122ae576122ad612c9a565b5b60006122bc88828901611fe1565b95505060206122cd888289016120a4565b94505060406122de88828901611fe1565b935050606086013567ffffffffffffffff8111156122ff576122fe612c95565b5b61230b88828901612020565b92509250509295509295909350565b6000602082840312156123305761232f612c9a565b5b600061233e84828501611ff6565b91505092915050565b60006020828403121561235d5761235c612c9a565b5b600061236b8482850161200b565b91505092915050565b60006020828403121561238a57612389612c9a565b5b6000612398848285016120b9565b91505092915050565b6123aa81612b5c565b82525050565b6123b981612b7a565b82525050565b60006123cb8385612b2f565b93506123d8838584612bdf565b6123e183612c9f565b840190509392505050565b60006123f88385612b40565b9350612405838584612bdf565b82840190509392505050565b600061241c82612b19565b6124268185612b2f565b9350612436818560208601612bee565b61243f81612c9f565b840191505092915050565b600061245582612b19565b61245f8185612b40565b935061246f818560208601612bee565b80840191505092915050565b61248481612bbb565b82525050565b61249381612bcd565b82525050565b60006124a482612b24565b6124ae8185612b4b565b93506124be818560208601612bee565b6124c781612c9f565b840191505092915050565b60006124df602683612b4b565b91506124ea82612cb0565b604082019050919050565b6000612502602c83612b4b565b915061250d82612cff565b604082019050919050565b6000612525602c83612b4b565b915061253082612d4e565b604082019050919050565b6000612548602683612b4b565b915061255382612d9d565b604082019050919050565b600061256b603883612b4b565b915061257682612dec565b604082019050919050565b600061258e602983612b4b565b915061259982612e3b565b604082019050919050565b60006125b1602e83612b4b565b91506125bc82612e8a565b604082019050919050565b60006125d4602e83612b4b565b91506125df82612ed9565b604082019050919050565b60006125f7602d83612b4b565b915061260282612f28565b604082019050919050565b600061261a602083612b4b565b915061262582612f77565b602082019050919050565b600061263d600083612b2f565b915061264882612fa0565b600082019050919050565b6000612660600083612b40565b915061266b82612fa0565b600082019050919050565b6000612683601d83612b4b565b915061268e82612fa3565b602082019050919050565b60006126a6602b83612b4b565b91506126b182612fcc565b604082019050919050565b60006126c9602a83612b4b565b91506126d48261301b565b604082019050919050565b6126e881612ba4565b82525050565b60006126fb8284866123ec565b91508190509392505050565b6000612713828461244a565b915081905092915050565b600061272982612653565b9150819050919050565b600060208201905061274860008301846123a1565b92915050565b600060608201905061276360008301866123a1565b61277060208301856123a1565b61277d60408301846126df565b949350505050565b600060408201905061279a60008301856123a1565b6127a7602083018461247b565b9392505050565b60006040820190506127c360008301856123a1565b6127d060208301846126df565b9392505050565b60006020820190506127ec60008301846123b0565b92915050565b6000602082019050818103600083015261280d8184866123bf565b90509392505050565b600060208201905081810360008301526128308184612411565b905092915050565b600060208201905061284d600083018461248a565b92915050565b6000602082019050818103600083015261286d8184612499565b905092915050565b6000602082019050818103600083015261288e816124d2565b9050919050565b600060208201905081810360008301526128ae816124f5565b9050919050565b600060208201905081810360008301526128ce81612518565b9050919050565b600060208201905081810360008301526128ee8161253b565b9050919050565b6000602082019050818103600083015261290e8161255e565b9050919050565b6000602082019050818103600083015261292e81612581565b9050919050565b6000602082019050818103600083015261294e816125a4565b9050919050565b6000602082019050818103600083015261296e816125c7565b9050919050565b6000602082019050818103600083015261298e816125ea565b9050919050565b600060208201905081810360008301526129ae8161260d565b9050919050565b600060208201905081810360008301526129ce81612676565b9050919050565b600060208201905081810360008301526129ee81612699565b9050919050565b60006020820190508181036000830152612a0e816126bc565b9050919050565b6000606082019050612a2a60008301876126df565b612a3760208301866123a1565b8181036040830152612a4a8184866123bf565b905095945050505050565b6000606082019050612a6a60008301856126df565b612a7760208301846123a1565b8181036040830152612a8881612630565b90509392505050565b6000604082019050612aa660008301866126df565b8181036020830152612ab98184866123bf565b9050949350505050565b6000612acd612ade565b9050612ad98282612c21565b919050565b6000604051905090565b600067ffffffffffffffff821115612b0357612b02612c52565b5b612b0c82612c9f565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000612b6782612b84565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612bc682612ba4565b9050919050565b6000612bd882612bae565b9050919050565b82818337600083830152505050565b60005b83811015612c0c578082015181840152602081019050612bf1565b83811115612c1b576000848401525b50505050565b612c2a82612c9f565b810181811067ffffffffffffffff82111715612c4957612c48612c52565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f64656c656761746563616c6c0000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f6163746976652070726f78790000000000000000000000000000000000000000602082015250565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f555550535570677261646561626c653a206d757374206e6f742062652063616c60008201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000602082015250565b7f45524331393637557067726164653a20756e737570706f727465642070726f7860008201527f6961626c65555549440000000000000000000000000000000000000000000000602082015250565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f45524331393637557067726164653a206e657720696d706c656d656e7461746960008201527f6f6e206973206e6f742055555053000000000000000000000000000000000000602082015250565b7f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60008201527f6f74206120636f6e747261637400000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b61307381612b5c565b811461307e57600080fd5b50565b61308a81612b6e565b811461309557600080fd5b50565b6130a181612b7a565b81146130ac57600080fd5b50565b6130b881612ba4565b81146130c357600080fd5b5056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220bda16da68115d43d899e50b7ec6d5a336fd24cf187474373ee646397da0aedcc64736f6c6343000807003360806040523480156200001157600080fd5b506040516200109038038062001090833981810160405281019062000037919062000106565b6001600081905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620000a7576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506200018b565b600081519050620001008162000171565b92915050565b6000602082840312156200011f576200011e6200016c565b5b60006200012f84828501620000ef565b91505092915050565b600062000145826200014c565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6200017c8162000138565b81146200018857600080fd5b50565b610ef5806200019b6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063116191b61461004657806321fc65f214610064578063d9caed1214610080575b600080fd5b61004e61009c565b60405161005b9190610a98565b60405180910390f35b61007e600480360381019061007991906107bc565b6100c2565b005b61009a60048036038101906100959190610769565b61024a565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6100ca6102ef565b610117600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848773ffffffffffffffffffffffffffffffffffffffff1661033f9092919063ffffffff16565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635131ab5986868686866040518663ffffffff1660e01b815260040161017a959493929190610a21565b600060405180830381600087803b15801561019457600080fd5b505af11580156101a8573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906101d19190610871565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e85858560405161023393929190610b70565b60405180910390a36102436103c5565b5050505050565b6102526102ef565b61027d82828573ffffffffffffffffffffffffffffffffffffffff1661033f9092919063ffffffff16565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb836040516102da9190610b55565b60405180910390a36102ea6103c5565b505050565b60026000541415610335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032c90610b35565b60405180910390fd5b6002600081905550565b6103c08363a9059cbb60e01b848460405160240161035e929190610a6f565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506103cf565b505050565b6001600081905550565b6000610431826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166104969092919063ffffffff16565b905060008151111561049157808060200190518101906104519190610844565b610490576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048790610b15565b60405180910390fd5b5b505050565b60606104a584846000856104ae565b90509392505050565b6060824710156104f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ea90610ad5565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161051c9190610a0a565b60006040518083038185875af1925050503d8060008114610559576040519150601f19603f3d011682016040523d82523d6000602084013e61055e565b606091505b509150915061056f8783838761057b565b92505050949350505050565b606083156105de576000835114156105d657610596856105f1565b6105d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105cc90610af5565b60405180910390fd5b5b8290506105e9565b6105e88383610614565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156106275781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065b9190610ab3565b60405180910390fd5b600061067761067284610bc7565b610ba2565b90508281526020810184848401111561069357610692610d6a565b5b61069e848285610cc8565b509392505050565b6000813590506106b581610e7a565b92915050565b6000815190506106ca81610e91565b92915050565b60008083601f8401126106e6576106e5610d60565b5b8235905067ffffffffffffffff81111561070357610702610d5b565b5b60208301915083600182028301111561071f5761071e610d65565b5b9250929050565b600082601f83011261073b5761073a610d60565b5b815161074b848260208601610664565b91505092915050565b60008135905061076381610ea8565b92915050565b60008060006060848603121561078257610781610d74565b5b6000610790868287016106a6565b93505060206107a1868287016106a6565b92505060406107b286828701610754565b9150509250925092565b6000806000806000608086880312156107d8576107d7610d74565b5b60006107e6888289016106a6565b95505060206107f7888289016106a6565b945050604061080888828901610754565b935050606086013567ffffffffffffffff81111561082957610828610d6f565b5b610835888289016106d0565b92509250509295509295909350565b60006020828403121561085a57610859610d74565b5b6000610868848285016106bb565b91505092915050565b60006020828403121561088757610886610d74565b5b600082015167ffffffffffffffff8111156108a5576108a4610d6f565b5b6108b184828501610726565b91505092915050565b6108c381610c3b565b82525050565b60006108d58385610c0e565b93506108e2838584610cb9565b6108eb83610d79565b840190509392505050565b600061090182610bf8565b61090b8185610c1f565b935061091b818560208601610cc8565b80840191505092915050565b61093081610c83565b82525050565b600061094182610c03565b61094b8185610c2a565b935061095b818560208601610cc8565b61096481610d79565b840191505092915050565b600061097c602683610c2a565b915061098782610d8a565b604082019050919050565b600061099f601d83610c2a565b91506109aa82610dd9565b602082019050919050565b60006109c2602a83610c2a565b91506109cd82610e02565b604082019050919050565b60006109e5601f83610c2a565b91506109f082610e51565b602082019050919050565b610a0481610c79565b82525050565b6000610a1682846108f6565b915081905092915050565b6000608082019050610a3660008301886108ba565b610a4360208301876108ba565b610a5060408301866109fb565b8181036060830152610a638184866108c9565b90509695505050505050565b6000604082019050610a8460008301856108ba565b610a9160208301846109fb565b9392505050565b6000602082019050610aad6000830184610927565b92915050565b60006020820190508181036000830152610acd8184610936565b905092915050565b60006020820190508181036000830152610aee8161096f565b9050919050565b60006020820190508181036000830152610b0e81610992565b9050919050565b60006020820190508181036000830152610b2e816109b5565b9050919050565b60006020820190508181036000830152610b4e816109d8565b9050919050565b6000602082019050610b6a60008301846109fb565b92915050565b6000604082019050610b8560008301866109fb565b8181036020830152610b988184866108c9565b9050949350505050565b6000610bac610bbd565b9050610bb88282610cfb565b919050565b6000604051905090565b600067ffffffffffffffff821115610be257610be1610d2c565b5b610beb82610d79565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000610c4682610c59565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610c8e82610c95565b9050919050565b6000610ca082610ca7565b9050919050565b6000610cb282610c59565b9050919050565b82818337600083830152505050565b60005b83811015610ce6578082015181840152602081019050610ccb565b83811115610cf5576000848401525b50505050565b610d0482610d79565b810181811067ffffffffffffffff82111715610d2357610d22610d2c565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b610e8381610c3b565b8114610e8e57600080fd5b50565b610e9a81610c4d565b8114610ea557600080fd5b50565b610eb181610c79565b8114610ebc57600080fd5b5056fea2646970667358221220c6f7c0f9935341aaaabcabf7504d01bbd38a0606132004742a97e6a200eb432564736f6c63430008070033a26469706673582212202ce8815d151e695af42ea67f3ed856bc49e806dac3d45f97220dc65e9895f17664736f6c63430008070033"; - -type GatewayEVMInboundTestConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: GatewayEVMInboundTestConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class GatewayEVMInboundTest__factory extends ContractFactory { - constructor(...args: GatewayEVMInboundTestConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override deploy( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy(overrides || {}) as Promise; - } - override getDeployTransaction( - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); - } - override attach(address: string): GatewayEVMInboundTest { - return super.attach(address) as GatewayEVMInboundTest; - } - override connect(signer: Signer): GatewayEVMInboundTest__factory { - return super.connect(signer) as GatewayEVMInboundTest__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): GatewayEVMInboundTestInterface { - return new utils.Interface(_abi) as GatewayEVMInboundTestInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): GatewayEVMInboundTest { - return new Contract( - address, - _abi, - signerOrProvider - ) as GatewayEVMInboundTest; - } -} diff --git a/typechain-types/factories/contracts/prototypes/test/GatewayEVM.t.sol/GatewayEVMTest__factory.ts b/typechain-types/factories/contracts/prototypes/test/GatewayEVM.t.sol/GatewayEVMTest__factory.ts deleted file mode 100644 index 4eb80216..00000000 --- a/typechain-types/factories/contracts/prototypes/test/GatewayEVM.t.sol/GatewayEVMTest__factory.ts +++ /dev/null @@ -1,994 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../../../common"; -import type { - GatewayEVMTest, - GatewayEVMTestInterface, -} from "../../../../../contracts/prototypes/test/GatewayEVM.t.sol/GatewayEVMTest"; - -const _abi = [ - { - inputs: [], - name: "ApprovalFailed", - type: "error", - }, - { - inputs: [], - name: "CustodyInitialized", - type: "error", - }, - { - inputs: [], - name: "DepositFailed", - type: "error", - }, - { - inputs: [], - name: "ExecutionFailed", - type: "error", - }, - { - inputs: [], - name: "InsufficientERC20Amount", - type: "error", - }, - { - inputs: [], - name: "InsufficientETHAmount", - type: "error", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "receiver", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "payload", - type: "bytes", - }, - ], - name: "Call", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "receiver", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "asset", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "payload", - type: "bytes", - }, - ], - name: "Deposit", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "destination", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "Executed", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "ExecutedWithERC20", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "destination", - type: "address", - }, - ], - name: "ReceivedERC20", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "ReceivedNoParams", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "string[]", - name: "strs", - type: "string[]", - }, - { - indexed: false, - internalType: "uint256[]", - name: "nums", - type: "uint256[]", - }, - { - indexed: false, - internalType: "bool", - name: "flag", - type: "bool", - }, - ], - name: "ReceivedNonPayable", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "string", - name: "str", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "num", - type: "uint256", - }, - { - indexed: false, - internalType: "bool", - name: "flag", - type: "bool", - }, - ], - name: "ReceivedPayable", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "destination", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "Reverted", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "RevertedWithERC20", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "", - type: "string", - }, - ], - name: "log", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "", - type: "address", - }, - ], - name: "log_address", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256[]", - name: "val", - type: "uint256[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "int256[]", - name: "val", - type: "int256[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address[]", - name: "val", - type: "address[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - name: "log_bytes", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - name: "log_bytes32", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "int256", - name: "", - type: "int256", - }, - ], - name: "log_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "address", - name: "val", - type: "address", - }, - ], - name: "log_named_address", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256[]", - name: "val", - type: "uint256[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256[]", - name: "val", - type: "int256[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "address[]", - name: "val", - type: "address[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "bytes", - name: "val", - type: "bytes", - }, - ], - name: "log_named_bytes", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "bytes32", - name: "val", - type: "bytes32", - }, - ], - name: "log_named_bytes32", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256", - name: "val", - type: "int256", - }, - { - indexed: false, - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "log_named_decimal_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "val", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "log_named_decimal_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256", - name: "val", - type: "int256", - }, - ], - name: "log_named_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "string", - name: "val", - type: "string", - }, - ], - name: "log_named_string", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "val", - type: "uint256", - }, - ], - name: "log_named_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "", - type: "string", - }, - ], - name: "log_string", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "log_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - name: "logs", - type: "event", - }, - { - inputs: [], - name: "IS_TEST", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeArtifacts", - outputs: [ - { - internalType: "string[]", - name: "excludedArtifacts_", - type: "string[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeContracts", - outputs: [ - { - internalType: "address[]", - name: "excludedContracts_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeSelectors", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzSelector[]", - name: "excludedSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeSenders", - outputs: [ - { - internalType: "address[]", - name: "excludedSenders_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "failed", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "setUp", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "targetArtifactSelectors", - outputs: [ - { - components: [ - { - internalType: "string", - name: "artifact", - type: "string", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzArtifactSelector[]", - name: "targetedArtifactSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetArtifacts", - outputs: [ - { - internalType: "string[]", - name: "targetedArtifacts_", - type: "string[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetContracts", - outputs: [ - { - internalType: "address[]", - name: "targetedContracts_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetInterfaces", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "string[]", - name: "artifacts", - type: "string[]", - }, - ], - internalType: "struct StdInvariant.FuzzInterface[]", - name: "targetedInterfaces_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetSelectors", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzSelector[]", - name: "targetedSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetSenders", - outputs: [ - { - internalType: "address[]", - name: "targetedSenders_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "testForwardCallToReceiveERC20ThroughCustody", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "testForwardCallToReceiveNoParams", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "testForwardCallToReceiveNoParamsThroughCustody", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "testForwardCallToReceiveNonPayable", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "testForwardCallToReceivePayable", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -const _bytecode = - "0x60806040526001600c60006101000a81548160ff0219169083151502179055506001601f60006101000a81548160ff02191690831515021790555034801561004657600080fd5b50619ec7806100566000396000f3fe60806040523480156200001157600080fd5b5060043610620001005760003560e01c8063916a17c61162000099578063ba414fa6116200006f578063ba414fa61462000243578063e20c9f711462000265578063fa7626d41462000287578063fe7bdbb214620002a95762000100565b8063916a17c614620001dd578063b0464fdc14620001ff578063b5508aa914620002215762000100565b80633e5e3c2311620000db5780633e5e3c2314620001555780633f7286f4146200017757806366d9a9a0146200019957806385226c8114620001bb5762000100565b80630a9254e414620001055780631ed7831c14620001115780632ade38801462000133575b600080fd5b6200010f620002b5565b005b6200011b62000a02565b6040516200012a919062002257565b60405180910390f35b6200013d62000a92565b6040516200014c9190620022c3565b60405180910390f35b6200015f62000c2c565b6040516200016e919062002257565b60405180910390f35b6200018162000cbc565b60405162000190919062002257565b60405180910390f35b620001a362000d4c565b604051620001b291906200229f565b60405180910390f35b620001c562000ee3565b604051620001d491906200227b565b60405180910390f35b620001e762000fc6565b604051620001f69190620022e7565b60405180910390f35b6200020962001119565b604051620002189190620022e7565b60405180910390f35b6200022b6200126c565b6040516200023a91906200227b565b60405180910390f35b6200024d6200134f565b6040516200025c91906200230b565b60405180910390f35b6200026f62001482565b6040516200027e919062002257565b60405180910390f35b6200029162001512565b604051620002a091906200230b565b60405180910390f35b620002b362001525565b005b30602560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611234602660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550615678602760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040516200038a90620018df565b620003959062002400565b604051809103906000f080158015620003b2573d6000803e3d6000fd5b50602360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040516200040190620018df565b6200040c90620023c9565b604051809103906000f08015801562000429573d6000803e3d6000fd5b50602460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040516200047890620018ed565b604051809103906000f08015801562000495573d6000803e3d6000fd5b50601f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516200050790620018fb565b6200051391906200210e565b604051809103906000f08015801562000530573d6000803e3d6000fd5b50602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051620005c59062001909565b620005d29291906200212b565b604051809103906000f080158015620005ef573d6000803e3d6000fd5b50602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663485cc955602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401620006d39291906200212b565b600060405180830381600087803b158015620006ee57600080fd5b505af115801562000703573d6000803e3d6000fd5b50505050601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ae7a3a6f602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016200078691906200210e565b600060405180830381600087803b158015620007a157600080fd5b505af1158015620007b6573d6000803e3d6000fd5b50505050601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166310188aef602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016200083991906200210e565b600060405180830381600087803b1580156200085457600080fd5b505af115801562000869573d6000803e3d6000fd5b50505050602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f19602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620f42406040518363ffffffff1660e01b8152600401620008f1929190620021b9565b600060405180830381600087803b1580156200090c57600080fd5b505af115801562000921573d6000803e3d6000fd5b50505050602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166207a1206040518363ffffffff1660e01b8152600401620009a9929190620021e6565b602060405180830381600087803b158015620009c457600080fd5b505af1158015620009d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620009ff9190620019c3565b50565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a8857602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831162000a3d575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020016000905b8282101562000c2357838290600052602060002090600202016040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020016000905b8282101562000c0b57838290600052602060002001805462000b779062002758565b80601f016020809104026020016040519081016040528092919081815260200182805462000ba59062002758565b801562000bf65780601f1062000bca5761010080835404028352916020019162000bf6565b820191906000526020600020905b81548152906001019060200180831162000bd857829003601f168201915b50505050508152602001906001019062000b55565b50505050815250508152602001906001019062000ab6565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000cb257602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831162000c67575b5050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000d4257602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831162000cf7575b5050505050905090565b6060601b805480602002602001604051908101604052809291908181526020016000905b8282101562000eda578382906000526020600020906002020160405180604001604052908160008201805462000da69062002758565b80601f016020809104026020016040519081016040528092919081815260200182805462000dd49062002758565b801562000e255780601f1062000df95761010080835404028352916020019162000e25565b820191906000526020600020905b81548152906001019060200180831162000e0757829003601f168201915b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801562000ec157602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e6d5790505b5050505050815250508152602001906001019062000d70565b50505050905090565b6060601a805480602002602001604051908101604052809291908181526020016000905b8282101562000fbd57838290600052602060002001805462000f299062002758565b80601f016020809104026020016040519081016040528092919081815260200182805462000f579062002758565b801562000fa85780601f1062000f7c5761010080835404028352916020019162000fa8565b820191906000526020600020905b81548152906001019060200180831162000f8a57829003601f168201915b50505050508152602001906001019062000f07565b50505050905090565b6060601d805480602002602001604051908101604052809291908181526020016000905b828210156200111057838290600052602060002090600202016040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020018280548015620010f757602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620010a35790505b5050505050815250508152602001906001019062000fea565b50505050905090565b6060601c805480602002602001604051908101604052809291908181526020016000905b828210156200126357838290600052602060002090600202016040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054806020026020016040519081016040528092919081815260200182805480156200124a57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620011f65790505b505050505081525050815260200190600101906200113d565b50505050905090565b60606019805480602002602001604051908101604052809291908181526020016000905b8282101562001346578382906000526020600020018054620012b29062002758565b80601f0160208091040260200160405190810160405280929190818152602001828054620012e09062002758565b8015620013315780601f10620013055761010080835404028352916020019162001331565b820191906000526020600020905b8154815290600101906020018083116200131357829003601f168201915b50505050508152602001906001019062001290565b50505050905090565b6000600860009054906101000a900460ff16156200137f57600860009054906101000a900460ff1690506200147f565b6000801b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff1663667f9d707f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c7f6661696c656400000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b81526004016200142692919062002158565b60206040518083038186803b1580156200143f57600080fd5b505afa15801562001454573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200147a9190620019f5565b141590505b90565b606060158054806020026020016040519081016040528092919081815260200182805480156200150857602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311620014bd575b5050505050905090565b601f60009054906101000a900460ff1681565b60006040518060400160405280600f81526020017f48656c6c6f2c20466f756e64727921000000000000000000000000000000000081525090506000602a90506000600190506000670de0b6b3a764000090506000848484604051602401620015919392919062002385565b6040516020818303038152906040527fe04d4f97000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff1663f30c7ba3602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684846040518463ffffffff1660e01b8152600401620016949392919062002213565b600060405180830381600087803b158015620016af57600080fd5b505af1158015620016c4573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff166381bad6f3600180600180601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518663ffffffff1660e01b81526004016200175295949392919062002328565b600060405180830381600087803b1580156200176d57600080fd5b505af115801562001782573d6000803e3d6000fd5b50505050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f8383604051620017f292919062002437565b60405180910390a2601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631cff79cd83602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b81526004016200187c92919062002185565b6000604051808303818588803b1580156200189657600080fd5b505af1158015620018ab573d6000803e3d6000fd5b50505050506040513d6000823e3d601f19601f82011682018060405250810190620018d7919062001a27565b505050505050565b611813806200292083390190565b613972806200413383390190565b6112198062007aa583390190565b6111d48062008cbe83390190565b60006200192e620019288462002494565b6200246b565b9050828152602081018484840111156200194d576200194c62002827565b5b6200195a84828562002722565b509392505050565b6000815190506200197381620028eb565b92915050565b6000815190506200198a8162002905565b92915050565b600082601f830112620019a857620019a762002822565b5b8151620019ba84826020860162001917565b91505092915050565b600060208284031215620019dc57620019db62002831565b5b6000620019ec8482850162001962565b91505092915050565b60006020828403121562001a0e5762001a0d62002831565b5b600062001a1e8482850162001979565b91505092915050565b60006020828403121562001a405762001a3f62002831565b5b600082015167ffffffffffffffff81111562001a615762001a606200282c565b5b62001a6f8482850162001990565b91505092915050565b600062001a86838362001b04565b60208301905092915050565b600062001aa0838362001ea1565b60208301905092915050565b600062001aba838362001f15565b905092915050565b600062001ad0838362002033565b905092915050565b600062001ae683836200207b565b905092915050565b600062001afc8383620020bc565b905092915050565b62001b0f816200267a565b82525050565b62001b20816200267a565b82525050565b600062001b33826200252a565b62001b3f8185620025d0565b935062001b4c83620024ca565b8060005b8381101562001b8357815162001b67888262001a78565b975062001b748362002582565b92505060018101905062001b50565b5085935050505092915050565b600062001b9d8262002535565b62001ba98185620025e1565b935062001bb683620024da565b8060005b8381101562001bed57815162001bd1888262001a92565b975062001bde836200258f565b92505060018101905062001bba565b5085935050505092915050565b600062001c078262002540565b62001c138185620025f2565b93508360208202850162001c2785620024ea565b8060005b8581101562001c69578484038952815162001c47858262001aac565b945062001c54836200259c565b925060208a0199505060018101905062001c2b565b50829750879550505050505092915050565b600062001c888262002540565b62001c94818562002603565b93508360208202850162001ca885620024ea565b8060005b8581101562001cea578484038952815162001cc8858262001aac565b945062001cd5836200259c565b925060208a0199505060018101905062001cac565b50829750879550505050505092915050565b600062001d09826200254b565b62001d15818562002614565b93508360208202850162001d2985620024fa565b8060005b8581101562001d6b578484038952815162001d49858262001ac2565b945062001d5683620025a9565b925060208a0199505060018101905062001d2d565b50829750879550505050505092915050565b600062001d8a8262002556565b62001d96818562002625565b93508360208202850162001daa856200250a565b8060005b8581101562001dec578484038952815162001dca858262001ad8565b945062001dd783620025b6565b925060208a0199505060018101905062001dae565b50829750879550505050505092915050565b600062001e0b8262002561565b62001e17818562002636565b93508360208202850162001e2b856200251a565b8060005b8581101562001e6d578484038952815162001e4b858262001aee565b945062001e5883620025c3565b925060208a0199505060018101905062001e2f565b50829750879550505050505092915050565b62001e8a816200268e565b82525050565b62001e9b816200269a565b82525050565b62001eac81620026a4565b82525050565b600062001ebf826200256c565b62001ecb818562002647565b935062001edd81856020860162002722565b62001ee88162002836565b840191505092915050565b62001efe81620026fa565b82525050565b62001f0f816200270e565b82525050565b600062001f228262002577565b62001f2e818562002658565b935062001f4081856020860162002722565b62001f4b8162002836565b840191505092915050565b600062001f638262002577565b62001f6f818562002669565b935062001f8181856020860162002722565b62001f8c8162002836565b840191505092915050565b600062001fa660038362002669565b915062001fb38262002847565b602082019050919050565b600062001fcd60048362002669565b915062001fda8262002870565b602082019050919050565b600062001ff460048362002669565b9150620020018262002899565b602082019050919050565b60006200201b60048362002669565b91506200202882620028c2565b602082019050919050565b6000604083016000830151848203600086015262002052828262001f15565b915050602083015184820360208601526200206e828262001b90565b9150508091505092915050565b600060408301600083015162002095600086018262001b04565b5060208301518482036020860152620020af828262001bfa565b9150508091505092915050565b6000604083016000830151620020d6600086018262001b04565b5060208301518482036020860152620020f0828262001b90565b9150508091505092915050565b6200210881620026f0565b82525050565b600060208201905062002125600083018462001b15565b92915050565b600060408201905062002142600083018562001b15565b62002151602083018462001b15565b9392505050565b60006040820190506200216f600083018562001b15565b6200217e602083018462001e90565b9392505050565b60006040820190506200219c600083018562001b15565b8181036020830152620021b0818462001eb2565b90509392505050565b6000604082019050620021d0600083018562001b15565b620021df602083018462001ef3565b9392505050565b6000604082019050620021fd600083018562001b15565b6200220c602083018462001f04565b9392505050565b60006060820190506200222a600083018662001b15565b620022396020830185620020fd565b81810360408301526200224d818462001eb2565b9050949350505050565b6000602082019050818103600083015262002273818462001b26565b905092915050565b6000602082019050818103600083015262002297818462001c7b565b905092915050565b60006020820190508181036000830152620022bb818462001cfc565b905092915050565b60006020820190508181036000830152620022df818462001d7d565b905092915050565b6000602082019050818103600083015262002303818462001dfe565b905092915050565b600060208201905062002322600083018462001e7f565b92915050565b600060a0820190506200233f600083018862001e7f565b6200234e602083018762001e7f565b6200235d604083018662001e7f565b6200236c606083018562001e7f565b6200237b608083018462001b15565b9695505050505050565b60006060820190508181036000830152620023a1818662001f56565b9050620023b26020830185620020fd565b620023c1604083018462001e7f565b949350505050565b60006040820190508181036000830152620023e48162001fbe565b90508181036020830152620023f98162001fe5565b9050919050565b600060408201905081810360008301526200241b816200200c565b90508181036020830152620024308162001f97565b9050919050565b60006040820190506200244e6000830185620020fd565b818103602083015262002462818462001eb2565b90509392505050565b6000620024776200248a565b90506200248582826200278e565b919050565b6000604051905090565b600067ffffffffffffffff821115620024b257620024b1620027f3565b5b620024bd8262002836565b9050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b60006200268782620026d0565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006200270782620026f0565b9050919050565b60006200271b82620026f0565b9050919050565b60005b838110156200274257808201518184015260208101905062002725565b8381111562002752576000848401525b50505050565b600060028204905060018216806200277157607f821691505b60208210811415620027885762002787620027c4565b5b50919050565b620027998262002836565b810181811067ffffffffffffffff82111715620027bb57620027ba620027f3565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f54544b0000000000000000000000000000000000000000000000000000000000600082015250565b7f7a65746100000000000000000000000000000000000000000000000000000000600082015250565b7f5a45544100000000000000000000000000000000000000000000000000000000600082015250565b7f7465737400000000000000000000000000000000000000000000000000000000600082015250565b620028f6816200268e565b81146200290257600080fd5b50565b62002910816200269a565b81146200291c57600080fd5b5056fe60806040523480156200001157600080fd5b5060405162001813380380620018138339818101604052810190620000379190620001a3565b818181600390805190602001906200005192919062000075565b5080600490805190602001906200006a92919062000075565b5050505050620003ac565b8280546200008390620002bd565b90600052602060002090601f016020900481019282620000a75760008555620000f3565b82601f10620000c257805160ff1916838001178555620000f3565b82800160010185558215620000f3579182015b82811115620000f2578251825591602001919060010190620000d5565b5b50905062000102919062000106565b5090565b5b808211156200012157600081600090555060010162000107565b5090565b60006200013c620001368462000251565b62000228565b9050828152602081018484840111156200015b576200015a6200038c565b5b6200016884828562000287565b509392505050565b600082601f83011262000188576200018762000387565b5b81516200019a84826020860162000125565b91505092915050565b60008060408385031215620001bd57620001bc62000396565b5b600083015167ffffffffffffffff811115620001de57620001dd62000391565b5b620001ec8582860162000170565b925050602083015167ffffffffffffffff81111562000210576200020f62000391565b5b6200021e8582860162000170565b9150509250929050565b60006200023462000247565b9050620002428282620002f3565b919050565b6000604051905090565b600067ffffffffffffffff8211156200026f576200026e62000358565b5b6200027a826200039b565b9050602081019050919050565b60005b83811015620002a75780820151818401526020810190506200028a565b83811115620002b7576000848401525b50505050565b60006002820490506001821680620002d657607f821691505b60208210811415620002ed57620002ec62000329565b5b50919050565b620002fe826200039b565b810181811067ffffffffffffffff8211171562000320576200031f62000358565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b61145780620003bc6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806340c10f191161007157806340c10f19146101a357806370a08231146101bf57806395d89b41146101ef578063a457c2d71461020d578063a9059cbb1461023d578063dd62ed3e1461026d576100b4565b806306fdde03146100b9578063095ea7b3146100d757806318160ddd1461010757806323b872dd14610125578063313ce567146101555780633950935114610173575b600080fd5b6100c161029d565b6040516100ce9190610ecf565b60405180910390f35b6100f160048036038101906100ec9190610cf6565b61032f565b6040516100fe9190610eb4565b60405180910390f35b61010f610352565b60405161011c9190610ff1565b60405180910390f35b61013f600480360381019061013a9190610ca3565b61035c565b60405161014c9190610eb4565b60405180910390f35b61015d61038b565b60405161016a919061100c565b60405180910390f35b61018d60048036038101906101889190610cf6565b610394565b60405161019a9190610eb4565b60405180910390f35b6101bd60048036038101906101b89190610cf6565b6103cb565b005b6101d960048036038101906101d49190610c36565b6103d9565b6040516101e69190610ff1565b60405180910390f35b6101f7610421565b6040516102049190610ecf565b60405180910390f35b61022760048036038101906102229190610cf6565b6104b3565b6040516102349190610eb4565b60405180910390f35b61025760048036038101906102529190610cf6565b61052a565b6040516102649190610eb4565b60405180910390f35b61028760048036038101906102829190610c63565b61054d565b6040516102949190610ff1565b60405180910390f35b6060600380546102ac90611121565b80601f01602080910402602001604051908101604052809291908181526020018280546102d890611121565b80156103255780601f106102fa57610100808354040283529160200191610325565b820191906000526020600020905b81548152906001019060200180831161030857829003601f168201915b5050505050905090565b60008061033a6105d4565b90506103478185856105dc565b600191505092915050565b6000600254905090565b6000806103676105d4565b90506103748582856107a7565b61037f858585610833565b60019150509392505050565b60006012905090565b60008061039f6105d4565b90506103c08185856103b1858961054d565b6103bb9190611043565b6105dc565b600191505092915050565b6103d58282610aab565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461043090611121565b80601f016020809104026020016040519081016040528092919081815260200182805461045c90611121565b80156104a95780601f1061047e576101008083540402835291602001916104a9565b820191906000526020600020905b81548152906001019060200180831161048c57829003601f168201915b5050505050905090565b6000806104be6105d4565b905060006104cc828661054d565b905083811015610511576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050890610fb1565b60405180910390fd5b61051e82868684036105dc565b60019250505092915050565b6000806105356105d4565b9050610542818585610833565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561064c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064390610f91565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156106bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b390610f11565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161079a9190610ff1565b60405180910390a3505050565b60006107b3848461054d565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461082d578181101561081f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081690610f31565b60405180910390fd5b61082c84848484036105dc565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156108a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089a90610f71565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090a90610ef1565b60405180910390fd5b61091e838383610c02565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156109a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099b90610f51565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a929190610ff1565b60405180910390a3610aa5848484610c07565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1290610fd1565b60405180910390fd5b610b2760008383610c02565b8060026000828254610b399190611043565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610bea9190610ff1565b60405180910390a3610bfe60008383610c07565b5050565b505050565b505050565b600081359050610c1b816113f3565b92915050565b600081359050610c308161140a565b92915050565b600060208284031215610c4c57610c4b6111b1565b5b6000610c5a84828501610c0c565b91505092915050565b60008060408385031215610c7a57610c796111b1565b5b6000610c8885828601610c0c565b9250506020610c9985828601610c0c565b9150509250929050565b600080600060608486031215610cbc57610cbb6111b1565b5b6000610cca86828701610c0c565b9350506020610cdb86828701610c0c565b9250506040610cec86828701610c21565b9150509250925092565b60008060408385031215610d0d57610d0c6111b1565b5b6000610d1b85828601610c0c565b9250506020610d2c85828601610c21565b9150509250929050565b610d3f816110ab565b82525050565b6000610d5082611027565b610d5a8185611032565b9350610d6a8185602086016110ee565b610d73816111b6565b840191505092915050565b6000610d8b602383611032565b9150610d96826111c7565b604082019050919050565b6000610dae602283611032565b9150610db982611216565b604082019050919050565b6000610dd1601d83611032565b9150610ddc82611265565b602082019050919050565b6000610df4602683611032565b9150610dff8261128e565b604082019050919050565b6000610e17602583611032565b9150610e22826112dd565b604082019050919050565b6000610e3a602483611032565b9150610e458261132c565b604082019050919050565b6000610e5d602583611032565b9150610e688261137b565b604082019050919050565b6000610e80601f83611032565b9150610e8b826113ca565b602082019050919050565b610e9f816110d7565b82525050565b610eae816110e1565b82525050565b6000602082019050610ec96000830184610d36565b92915050565b60006020820190508181036000830152610ee98184610d45565b905092915050565b60006020820190508181036000830152610f0a81610d7e565b9050919050565b60006020820190508181036000830152610f2a81610da1565b9050919050565b60006020820190508181036000830152610f4a81610dc4565b9050919050565b60006020820190508181036000830152610f6a81610de7565b9050919050565b60006020820190508181036000830152610f8a81610e0a565b9050919050565b60006020820190508181036000830152610faa81610e2d565b9050919050565b60006020820190508181036000830152610fca81610e50565b9050919050565b60006020820190508181036000830152610fea81610e73565b9050919050565b60006020820190506110066000830184610e96565b92915050565b60006020820190506110216000830184610ea5565b92915050565b600081519050919050565b600082825260208201905092915050565b600061104e826110d7565b9150611059836110d7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561108e5761108d611153565b5b828201905092915050565b60006110a4826110b7565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101561110c5780820151818401526020810190506110f1565b8381111561111b576000848401525b50505050565b6000600282049050600182168061113957607f821691505b6020821081141561114d5761114c611182565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6113fc81611099565b811461140757600080fd5b50565b611413816110d7565b811461141e57600080fd5b5056fea2646970667358221220d4c96329400732e284f624232c8d7228fc90c00ee7b1a48a85080262107815d864736f6c6343000807003360a06040523073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b81525034801561004657600080fd5b5060805160601c6138f16100816000396000818161082a015281816108b901528181610c1b01528181610caa01526110c601526138f16000f3fe6080604052600436106101355760003560e01c8063715018a6116100ab578063b8969bd41161006f578063b8969bd4146103b4578063dda79b75146103dd578063e8f9cb3a14610408578063f2fde38b14610433578063f340fa011461045c578063f45346dc1461047857610135565b8063715018a6146103045780638c6f037f1461031b5780638da5cb5b146103445780638ee0f9f21461036f578063ae7a3a6f1461038b57610135565b8063485cc955116100fd578063485cc955146102015780634f1ef2861461022a5780635131ab591461024657806352d1902d1461028357806357bec62f146102ae5780635b112591146102d957610135565b806310188aef1461013a5780631b8b921d146101635780631cff79cd1461018c57806329c59b5d146101bc5780633659cfe6146101d8575b600080fd5b34801561014657600080fd5b50610161600480360381019061015c919061285c565b6104a1565b005b34801561016f57600080fd5b5061018a60048036038101906101859190612951565b6105d4565b005b6101a660048036038101906101a19190612951565b610640565b6040516101b39190612fe4565b60405180910390f35b6101d660048036038101906101d19190612951565b6106ae565b005b3480156101e457600080fd5b506101ff60048036038101906101fa919061285c565b610828565b005b34801561020d57600080fd5b5061022860048036038101906102239190612889565b6109b1565b005b610244600480360381019061023f91906129b1565b610c19565b005b34801561025257600080fd5b5061026d600480360381019061026891906128c9565b610d56565b60405161027a9190612fe4565b60405180910390f35b34801561028f57600080fd5b506102986110c2565b6040516102a59190612fa5565b60405180910390f35b3480156102ba57600080fd5b506102c361117b565b6040516102d09190612f01565b60405180910390f35b3480156102e557600080fd5b506102ee6111a1565b6040516102fb9190612f01565b60405180910390f35b34801561031057600080fd5b506103196111c7565b005b34801561032757600080fd5b50610342600480360381019061033d9190612a60565b6111db565b005b34801561035057600080fd5b50610359611359565b6040516103669190612f01565b60405180910390f35b61038960048036038101906103849190612951565b611383565b005b34801561039757600080fd5b506103b260048036038101906103ad919061285c565b6114ee565b005b3480156103c057600080fd5b506103db60048036038101906103d691906128c9565b611621565b005b3480156103e957600080fd5b506103f2611764565b6040516103ff9190612f01565b60405180910390f35b34801561041457600080fd5b5061041d61178a565b60405161042a9190612f01565b60405180910390f35b34801561043f57600080fd5b5061045a6004803603810190610455919061285c565b6117b0565b005b6104766004803603810190610471919061285c565b611834565b005b34801561048457600080fd5b5061049f600480360381019061049a9190612a0d565b6119a8565b005b600073ffffffffffffffffffffffffffffffffffffffff1660cb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610529576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610590576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060cb60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde38484604051610633929190612fc0565b60405180910390a3505050565b6060600061064f858585611b20565b90508473ffffffffffffffffffffffffffffffffffffffff167fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f34868660405161069b9392919061325f565b60405180910390a2809150509392505050565b60003414156106e9576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163460405161073190612eec565b60006040518083038185875af1925050503d806000811461076e576040519150601f19603f3d011682016040523d82523d6000602084013e610773565b606091505b505090506000151581151514156107b6576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4346000878760405161081a94939291906131e3565b60405180910390a350505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614156108b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ae90613063565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166108f6611bd7565b73ffffffffffffffffffffffffffffffffffffffff161461094c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094390613083565b60405180910390fd5b61095581611c2e565b6109ae81600067ffffffffffffffff81111561097457610973613420565b5b6040519080825280601f01601f1916602001820160405280156109a65781602001600182028036833780820191505090505b506000611c39565b50565b60008060019054906101000a900460ff161590508080156109e25750600160008054906101000a900460ff1660ff16105b80610a0f57506109f130611db6565b158015610a0e5750600160008054906101000a900460ff1660ff16145b5b610a4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4590613103565b60405180910390fd5b60016000806101000a81548160ff021916908360ff1602179055508015610a8b576001600060016101000a81548160ff0219169083151502179055505b610a93611dd9565b610a9b611e32565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610b025750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15610b39576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8260ca60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160cc60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508015610c145760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986001604051610c0b9190613006565b60405180910390a15b505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610ca8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9f90613063565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610ce7611bd7565b73ffffffffffffffffffffffffffffffffffffffff1614610d3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3490613083565b60405180910390fd5b610d4682611c2e565b610d5282826001611c39565b5050565b60606000841415610d93576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d9d8686611e83565b610dd3576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff1663095ea7b386866040518363ffffffff1660e01b8152600401610e0e929190612f7c565b602060405180830381600087803b158015610e2857600080fd5b505af1158015610e3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e609190612ae8565b610e96576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610ea3868585611b20565b9050610eaf8787611e83565b610ee5576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f209190612f01565b60206040518083038186803b158015610f3857600080fd5b505afa158015610f4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f709190612b42565b9050600081111561104b57600060c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060cc60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16141561101e5760cb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b61104981838b73ffffffffffffffffffffffffffffffffffffffff16611f1b9092919063ffffffff16565b505b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b73828888886040516110ac9392919061325f565b60405180910390a3819250505095945050505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614611152576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611149906130c3565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b905090565b60cb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111cf611fa1565b6111d9600061201f565b565b6000841415611216576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060cc60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156112b95760cb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b6112e63382878773ffffffffffffffffffffffffffffffffffffffff166120e5909392919063ffffffff16565b8573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a48787878760405161134994939291906131e3565b60405180910390a3505050505050565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808473ffffffffffffffffffffffffffffffffffffffff16346040516113aa90612eec565b60006040518083038185875af1925050503d80600081146113e7576040519150601f19603f3d011682016040523d82523d6000602084013e6113ec565b606091505b509150915081611428576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff16638fcaa0b585856040518363ffffffff1660e01b8152600401611463929190612fc0565b600060405180830381600087803b15801561147d57600080fd5b505af1158015611491573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff167fd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c3486866040516114df9392919061325f565b60405180910390a25050505050565b600073ffffffffffffffffffffffffffffffffffffffff1660c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611576576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156115dd576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060c960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600083141561165c576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61168784848773ffffffffffffffffffffffffffffffffffffffff16611f1b9092919063ffffffff16565b8373ffffffffffffffffffffffffffffffffffffffff16638fcaa0b583836040518363ffffffff1660e01b81526004016116c2929190612fc0565b600060405180830381600087803b1580156116dc57600080fd5b505af11580156116f0573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda78585856040516117559392919061325f565b60405180910390a35050505050565b60c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60cc60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6117b8611fa1565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611828576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181f90613043565b60405180910390fd5b6118318161201f565b50565b600034141561186f576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16346040516118b790612eec565b60006040518083038185875af1925050503d80600081146118f4576040519150601f19603f3d011682016040523d82523d6000602084013e6118f9565b606091505b5050905060001515811515141561193c576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a434600060405161199c929190613223565b60405180910390a35050565b60008214156119e3576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060cc60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a865760cb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b611ab33382858573ffffffffffffffffffffffffffffffffffffffff166120e5909392919063ffffffff16565b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a48585604051611b12929190613223565b60405180910390a350505050565b60606000808573ffffffffffffffffffffffffffffffffffffffff16348686604051611b4d929190612ebc565b60006040518083038185875af1925050503d8060008114611b8a576040519150601f19603f3d011682016040523d82523d6000602084013e611b8f565b606091505b509150915081611bcb576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80925050509392505050565b6000611c057f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61216e565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611c36611fa1565b50565b611c657f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914360001b612178565b60000160009054906101000a900460ff1615611c8957611c8483612182565b611db1565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611ccf57600080fd5b505afa925050508015611d0057506040513d601f19601f82011682018060405250810190611cfd9190612b15565b60015b611d3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3690613123565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b8114611da4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9b906130e3565b60405180910390fd5b50611db083838361223b565b5b505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16611e28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1f906131a3565b60405180910390fd5b611e30612267565b565b600060019054906101000a900460ff16611e81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e78906131a3565b60405180910390fd5b565b60008273ffffffffffffffffffffffffffffffffffffffff1663095ea7b38360006040518363ffffffff1660e01b8152600401611ec1929190612f53565b602060405180830381600087803b158015611edb57600080fd5b505af1158015611eef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f139190612ae8565b905092915050565b611f9c8363a9059cbb60e01b8484604051602401611f3a929190612f7c565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506122c8565b505050565b611fa961238f565b73ffffffffffffffffffffffffffffffffffffffff16611fc7611359565b73ffffffffffffffffffffffffffffffffffffffff161461201d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201490613163565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b612168846323b872dd60e01b85858560405160240161210693929190612f1c565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506122c8565b50505050565b6000819050919050565b6000819050919050565b61218b81611db6565b6121ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c190613143565b60405180910390fd5b806121f77f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61216e565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61224483612397565b6000825111806122515750805b156122625761226083836123e6565b505b505050565b600060019054906101000a900460ff166122b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ad906131a3565b60405180910390fd5b6122c66122c161238f565b61201f565b565b600061232a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166124139092919063ffffffff16565b905060008151111561238a578080602001905181019061234a9190612ae8565b612389576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612380906131c3565b60405180910390fd5b5b505050565b600033905090565b6123a081612182565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b606061240b83836040518060600160405280602781526020016138956027913961242b565b905092915050565b606061242284846000856124b1565b90509392505050565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516124559190612ed5565b600060405180830381855af49150503d8060008114612490576040519150601f19603f3d011682016040523d82523d6000602084013e612495565b606091505b50915091506124a68683838761257e565b925050509392505050565b6060824710156124f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ed906130a3565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161251f9190612ed5565b60006040518083038185875af1925050503d806000811461255c576040519150601f19603f3d011682016040523d82523d6000602084013e612561565b606091505b5091509150612572878383876125f4565b92505050949350505050565b606083156125e1576000835114156125d95761259985611db6565b6125d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125cf90613183565b60405180910390fd5b5b8290506125ec565b6125eb838361266a565b5b949350505050565b606083156126575760008351141561264f5761260f856126ba565b61264e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264590613183565b60405180910390fd5b5b829050612662565b61266183836126dd565b5b949350505050565b60008251111561267d5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b19190613021565b60405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156126f05781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127249190613021565b60405180910390fd5b600061274061273b846132b6565b613291565b90508281526020810184848401111561275c5761275b61345e565b5b6127678482856133ad565b509392505050565b60008135905061277e81613838565b92915050565b6000815190506127938161384f565b92915050565b6000815190506127a881613866565b92915050565b60008083601f8401126127c4576127c3613454565b5b8235905067ffffffffffffffff8111156127e1576127e061344f565b5b6020830191508360018202830111156127fd576127fc613459565b5b9250929050565b600082601f83011261281957612818613454565b5b813561282984826020860161272d565b91505092915050565b6000813590506128418161387d565b92915050565b6000815190506128568161387d565b92915050565b60006020828403121561287257612871613468565b5b60006128808482850161276f565b91505092915050565b600080604083850312156128a05761289f613468565b5b60006128ae8582860161276f565b92505060206128bf8582860161276f565b9150509250929050565b6000806000806000608086880312156128e5576128e4613468565b5b60006128f38882890161276f565b95505060206129048882890161276f565b945050604061291588828901612832565b935050606086013567ffffffffffffffff81111561293657612935613463565b5b612942888289016127ae565b92509250509295509295909350565b60008060006040848603121561296a57612969613468565b5b60006129788682870161276f565b935050602084013567ffffffffffffffff81111561299957612998613463565b5b6129a5868287016127ae565b92509250509250925092565b600080604083850312156129c8576129c7613468565b5b60006129d68582860161276f565b925050602083013567ffffffffffffffff8111156129f7576129f6613463565b5b612a0385828601612804565b9150509250929050565b600080600060608486031215612a2657612a25613468565b5b6000612a348682870161276f565b9350506020612a4586828701612832565b9250506040612a568682870161276f565b9150509250925092565b600080600080600060808688031215612a7c57612a7b613468565b5b6000612a8a8882890161276f565b9550506020612a9b88828901612832565b9450506040612aac8882890161276f565b935050606086013567ffffffffffffffff811115612acd57612acc613463565b5b612ad9888289016127ae565b92509250509295509295909350565b600060208284031215612afe57612afd613468565b5b6000612b0c84828501612784565b91505092915050565b600060208284031215612b2b57612b2a613468565b5b6000612b3984828501612799565b91505092915050565b600060208284031215612b5857612b57613468565b5b6000612b6684828501612847565b91505092915050565b612b788161332a565b82525050565b612b8781613348565b82525050565b6000612b9983856132fd565b9350612ba68385846133ad565b612baf8361346d565b840190509392505050565b6000612bc6838561330e565b9350612bd38385846133ad565b82840190509392505050565b6000612bea826132e7565b612bf481856132fd565b9350612c048185602086016133bc565b612c0d8161346d565b840191505092915050565b6000612c23826132e7565b612c2d818561330e565b9350612c3d8185602086016133bc565b80840191505092915050565b612c5281613389565b82525050565b612c618161339b565b82525050565b6000612c72826132f2565b612c7c8185613319565b9350612c8c8185602086016133bc565b612c958161346d565b840191505092915050565b6000612cad602683613319565b9150612cb88261347e565b604082019050919050565b6000612cd0602c83613319565b9150612cdb826134cd565b604082019050919050565b6000612cf3602c83613319565b9150612cfe8261351c565b604082019050919050565b6000612d16602683613319565b9150612d218261356b565b604082019050919050565b6000612d39603883613319565b9150612d44826135ba565b604082019050919050565b6000612d5c602983613319565b9150612d6782613609565b604082019050919050565b6000612d7f602e83613319565b9150612d8a82613658565b604082019050919050565b6000612da2602e83613319565b9150612dad826136a7565b604082019050919050565b6000612dc5602d83613319565b9150612dd0826136f6565b604082019050919050565b6000612de8602083613319565b9150612df382613745565b602082019050919050565b6000612e0b6000836132fd565b9150612e168261376e565b600082019050919050565b6000612e2e60008361330e565b9150612e398261376e565b600082019050919050565b6000612e51601d83613319565b9150612e5c82613771565b602082019050919050565b6000612e74602b83613319565b9150612e7f8261379a565b604082019050919050565b6000612e97602a83613319565b9150612ea2826137e9565b604082019050919050565b612eb681613372565b82525050565b6000612ec9828486612bba565b91508190509392505050565b6000612ee18284612c18565b915081905092915050565b6000612ef782612e21565b9150819050919050565b6000602082019050612f166000830184612b6f565b92915050565b6000606082019050612f316000830186612b6f565b612f3e6020830185612b6f565b612f4b6040830184612ead565b949350505050565b6000604082019050612f686000830185612b6f565b612f756020830184612c49565b9392505050565b6000604082019050612f916000830185612b6f565b612f9e6020830184612ead565b9392505050565b6000602082019050612fba6000830184612b7e565b92915050565b60006020820190508181036000830152612fdb818486612b8d565b90509392505050565b60006020820190508181036000830152612ffe8184612bdf565b905092915050565b600060208201905061301b6000830184612c58565b92915050565b6000602082019050818103600083015261303b8184612c67565b905092915050565b6000602082019050818103600083015261305c81612ca0565b9050919050565b6000602082019050818103600083015261307c81612cc3565b9050919050565b6000602082019050818103600083015261309c81612ce6565b9050919050565b600060208201905081810360008301526130bc81612d09565b9050919050565b600060208201905081810360008301526130dc81612d2c565b9050919050565b600060208201905081810360008301526130fc81612d4f565b9050919050565b6000602082019050818103600083015261311c81612d72565b9050919050565b6000602082019050818103600083015261313c81612d95565b9050919050565b6000602082019050818103600083015261315c81612db8565b9050919050565b6000602082019050818103600083015261317c81612ddb565b9050919050565b6000602082019050818103600083015261319c81612e44565b9050919050565b600060208201905081810360008301526131bc81612e67565b9050919050565b600060208201905081810360008301526131dc81612e8a565b9050919050565b60006060820190506131f86000830187612ead565b6132056020830186612b6f565b8181036040830152613218818486612b8d565b905095945050505050565b60006060820190506132386000830185612ead565b6132456020830184612b6f565b818103604083015261325681612dfe565b90509392505050565b60006040820190506132746000830186612ead565b8181036020830152613287818486612b8d565b9050949350505050565b600061329b6132ac565b90506132a782826133ef565b919050565b6000604051905090565b600067ffffffffffffffff8211156132d1576132d0613420565b5b6132da8261346d565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061333582613352565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061339482613372565b9050919050565b60006133a68261337c565b9050919050565b82818337600083830152505050565b60005b838110156133da5780820151818401526020810190506133bf565b838111156133e9576000848401525b50505050565b6133f88261346d565b810181811067ffffffffffffffff8211171561341757613416613420565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f64656c656761746563616c6c0000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f6163746976652070726f78790000000000000000000000000000000000000000602082015250565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f555550535570677261646561626c653a206d757374206e6f742062652063616c60008201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000602082015250565b7f45524331393637557067726164653a20756e737570706f727465642070726f7860008201527f6961626c65555549440000000000000000000000000000000000000000000000602082015250565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f45524331393637557067726164653a206e657720696d706c656d656e7461746960008201527f6f6e206973206e6f742055555053000000000000000000000000000000000000602082015250565b7f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60008201527f6f74206120636f6e747261637400000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6138418161332a565b811461384c57600080fd5b50565b6138588161333c565b811461386357600080fd5b50565b61386f81613348565b811461387a57600080fd5b50565b61388681613372565b811461389157600080fd5b5056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212209f492532b152769362ab43ba037efaf19136209d3a4482b99c545df62acdbfa164736f6c6343000807003360806040523480156200001157600080fd5b506040516200121938038062001219833981810160405281019062000037919062000106565b6001600081905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620000a7576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506200018b565b600081519050620001008162000171565b92915050565b6000602082840312156200011f576200011e6200016c565b5b60006200012f84828501620000ef565b91505092915050565b600062000145826200014c565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6200017c8162000138565b81146200018857600080fd5b50565b61107e806200019b6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c8063116191b61461005157806321fc65f21461006f578063c8a023621461008b578063d9caed12146100a7575b600080fd5b6100596100c3565b6040516100669190610c21565b60405180910390f35b61008960048036038101906100849190610945565b6100e9565b005b6100a560048036038101906100a09190610945565b610271565b005b6100c160048036038101906100bc91906108f2565b6103d3565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6100f1610478565b61013e600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848773ffffffffffffffffffffffffffffffffffffffff166104c89092919063ffffffff16565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635131ab5986868686866040518663ffffffff1660e01b81526004016101a1959493929190610baa565b600060405180830381600087803b1580156101bb57600080fd5b505af11580156101cf573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906101f891906109fa565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e85858560405161025a93929190610cf9565b60405180910390a361026a61054e565b5050505050565b610279610478565b6102c6600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848773ffffffffffffffffffffffffffffffffffffffff166104c89092919063ffffffff16565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b8969bd486868686866040518663ffffffff1660e01b8152600401610329959493929190610baa565b600060405180830381600087803b15801561034357600080fd5b505af1158015610357573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c88585856040516103bc93929190610cf9565b60405180910390a36103cc61054e565b5050505050565b6103db610478565b61040682828573ffffffffffffffffffffffffffffffffffffffff166104c89092919063ffffffff16565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb836040516104639190610cde565b60405180910390a361047361054e565b505050565b600260005414156104be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104b590610cbe565b60405180910390fd5b6002600081905550565b6105498363a9059cbb60e01b84846040516024016104e7929190610bf8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610558565b505050565b6001600081905550565b60006105ba826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661061f9092919063ffffffff16565b905060008151111561061a57808060200190518101906105da91906109cd565b610619576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061090610c9e565b60405180910390fd5b5b505050565b606061062e8484600085610637565b90509392505050565b60608247101561067c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067390610c5e565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516106a59190610b93565b60006040518083038185875af1925050503d80600081146106e2576040519150601f19603f3d011682016040523d82523d6000602084013e6106e7565b606091505b50915091506106f887838387610704565b92505050949350505050565b606083156107675760008351141561075f5761071f8561077a565b61075e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075590610c7e565b60405180910390fd5b5b829050610772565b610771838361079d565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156107b05781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e49190610c3c565b60405180910390fd5b60006108006107fb84610d50565b610d2b565b90508281526020810184848401111561081c5761081b610ef3565b5b610827848285610e51565b509392505050565b60008135905061083e81611003565b92915050565b6000815190506108538161101a565b92915050565b60008083601f84011261086f5761086e610ee9565b5b8235905067ffffffffffffffff81111561088c5761088b610ee4565b5b6020830191508360018202830111156108a8576108a7610eee565b5b9250929050565b600082601f8301126108c4576108c3610ee9565b5b81516108d48482602086016107ed565b91505092915050565b6000813590506108ec81611031565b92915050565b60008060006060848603121561090b5761090a610efd565b5b60006109198682870161082f565b935050602061092a8682870161082f565b925050604061093b868287016108dd565b9150509250925092565b60008060008060006080868803121561096157610960610efd565b5b600061096f8882890161082f565b95505060206109808882890161082f565b9450506040610991888289016108dd565b935050606086013567ffffffffffffffff8111156109b2576109b1610ef8565b5b6109be88828901610859565b92509250509295509295909350565b6000602082840312156109e3576109e2610efd565b5b60006109f184828501610844565b91505092915050565b600060208284031215610a1057610a0f610efd565b5b600082015167ffffffffffffffff811115610a2e57610a2d610ef8565b5b610a3a848285016108af565b91505092915050565b610a4c81610dc4565b82525050565b6000610a5e8385610d97565b9350610a6b838584610e42565b610a7483610f02565b840190509392505050565b6000610a8a82610d81565b610a948185610da8565b9350610aa4818560208601610e51565b80840191505092915050565b610ab981610e0c565b82525050565b6000610aca82610d8c565b610ad48185610db3565b9350610ae4818560208601610e51565b610aed81610f02565b840191505092915050565b6000610b05602683610db3565b9150610b1082610f13565b604082019050919050565b6000610b28601d83610db3565b9150610b3382610f62565b602082019050919050565b6000610b4b602a83610db3565b9150610b5682610f8b565b604082019050919050565b6000610b6e601f83610db3565b9150610b7982610fda565b602082019050919050565b610b8d81610e02565b82525050565b6000610b9f8284610a7f565b915081905092915050565b6000608082019050610bbf6000830188610a43565b610bcc6020830187610a43565b610bd96040830186610b84565b8181036060830152610bec818486610a52565b90509695505050505050565b6000604082019050610c0d6000830185610a43565b610c1a6020830184610b84565b9392505050565b6000602082019050610c366000830184610ab0565b92915050565b60006020820190508181036000830152610c568184610abf565b905092915050565b60006020820190508181036000830152610c7781610af8565b9050919050565b60006020820190508181036000830152610c9781610b1b565b9050919050565b60006020820190508181036000830152610cb781610b3e565b9050919050565b60006020820190508181036000830152610cd781610b61565b9050919050565b6000602082019050610cf36000830184610b84565b92915050565b6000604082019050610d0e6000830186610b84565b8181036020830152610d21818486610a52565b9050949350505050565b6000610d35610d46565b9050610d418282610e84565b919050565b6000604051905090565b600067ffffffffffffffff821115610d6b57610d6a610eb5565b5b610d7482610f02565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000610dcf82610de2565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610e1782610e1e565b9050919050565b6000610e2982610e30565b9050919050565b6000610e3b82610de2565b9050919050565b82818337600083830152505050565b60005b83811015610e6f578082015181840152602081019050610e54565b83811115610e7e576000848401525b50505050565b610e8d82610f02565b810181811067ffffffffffffffff82111715610eac57610eab610eb5565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b61100c81610dc4565b811461101757600080fd5b50565b61102381610dd6565b811461102e57600080fd5b50565b61103a81610e02565b811461104557600080fd5b5056fea2646970667358221220326721c0766c1858ba7ddfe1b887e1200ee1a6de1216da56899a4be08731568f64736f6c6343000807003360c06040523480156200001157600080fd5b50604051620011d4380380620011d483398181016040528101906200003791906200016c565b6001600081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480620000a75750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15620000df576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b81525050505062000206565b6000815190506200016681620001ec565b92915050565b60008060408385031215620001865762000185620001e7565b5b6000620001968582860162000155565b9250506020620001a98582860162000155565b9150509250929050565b6000620001c082620001c7565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b620001f781620001b3565b81146200020357600080fd5b50565b60805160601c60a05160601c610f81620002536000396000818160f4015281816101760152818161029701526102c801526000818160d20152818161013a01526102730152610f816000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806302a04c0d14610051578063116191b61461006d578063e8f9cb3a1461008b578063f3fef3a3146100a9575b600080fd5b61006b60048036038101906100669190610820565b6100c5565b005b610075610271565b6040516100829190610b12565b60405180910390f35b610093610295565b6040516100a09190610af7565b60405180910390f35b6100c360048036038101906100be91906107e0565b6102b9565b005b6100cd610366565b6101387f0000000000000000000000000000000000000000000000000000000000000000847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166103b69092919063ffffffff16565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635131ab597f0000000000000000000000000000000000000000000000000000000000000000868686866040518663ffffffff1660e01b81526004016101b9959493929190610a80565b600060405180830381600087803b1580156101d357600080fd5b505af11580156101e7573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061021091906108c1565b508373ffffffffffffffffffffffffffffffffffffffff167f7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced84848460405161025b93929190610bea565b60405180910390a261026b61043c565b50505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6102c1610366565b61030c82827f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166103b69092919063ffffffff16565b8173ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364826040516103529190610bcf565b60405180910390a261036261043c565b5050565b600260005414156103ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103a390610baf565b60405180910390fd5b6002600081905550565b6104378363a9059cbb60e01b84846040516024016103d5929190610ace565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610446565b505050565b6001600081905550565b60006104a8826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661050d9092919063ffffffff16565b905060008151111561050857808060200190518101906104c89190610894565b610507576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104fe90610b8f565b60405180910390fd5b5b505050565b606061051c8484600085610525565b90509392505050565b60608247101561056a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056190610b4f565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516105939190610a69565b60006040518083038185875af1925050503d80600081146105d0576040519150601f19603f3d011682016040523d82523d6000602084013e6105d5565b606091505b50915091506105e6878383876105f2565b92505050949350505050565b606083156106555760008351141561064d5761060d85610668565b61064c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064390610b6f565b60405180910390fd5b5b829050610660565b61065f838361068b565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60008251111561069e5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d29190610b2d565b60405180910390fd5b60006106ee6106e984610c41565b610c1c565b90508281526020810184848401111561070a57610709610df6565b5b610715848285610d54565b509392505050565b60008135905061072c81610f06565b92915050565b60008151905061074181610f1d565b92915050565b60008083601f84011261075d5761075c610dec565b5b8235905067ffffffffffffffff81111561077a57610779610de7565b5b60208301915083600182028301111561079657610795610df1565b5b9250929050565b600082601f8301126107b2576107b1610dec565b5b81516107c28482602086016106db565b91505092915050565b6000813590506107da81610f34565b92915050565b600080604083850312156107f7576107f6610e00565b5b60006108058582860161071d565b9250506020610816858286016107cb565b9150509250929050565b6000806000806060858703121561083a57610839610e00565b5b60006108488782880161071d565b9450506020610859878288016107cb565b935050604085013567ffffffffffffffff81111561087a57610879610dfb565b5b61088687828801610747565b925092505092959194509250565b6000602082840312156108aa576108a9610e00565b5b60006108b884828501610732565b91505092915050565b6000602082840312156108d7576108d6610e00565b5b600082015167ffffffffffffffff8111156108f5576108f4610dfb565b5b6109018482850161079d565b91505092915050565b61091381610cb5565b82525050565b60006109258385610c88565b9350610932838584610d45565b61093b83610e05565b840190509392505050565b600061095182610c72565b61095b8185610c99565b935061096b818560208601610d54565b80840191505092915050565b61098081610cfd565b82525050565b61098f81610d0f565b82525050565b60006109a082610c7d565b6109aa8185610ca4565b93506109ba818560208601610d54565b6109c381610e05565b840191505092915050565b60006109db602683610ca4565b91506109e682610e16565b604082019050919050565b60006109fe601d83610ca4565b9150610a0982610e65565b602082019050919050565b6000610a21602a83610ca4565b9150610a2c82610e8e565b604082019050919050565b6000610a44601f83610ca4565b9150610a4f82610edd565b602082019050919050565b610a6381610cf3565b82525050565b6000610a758284610946565b915081905092915050565b6000608082019050610a95600083018861090a565b610aa2602083018761090a565b610aaf6040830186610a5a565b8181036060830152610ac2818486610919565b90509695505050505050565b6000604082019050610ae3600083018561090a565b610af06020830184610a5a565b9392505050565b6000602082019050610b0c6000830184610977565b92915050565b6000602082019050610b276000830184610986565b92915050565b60006020820190508181036000830152610b478184610995565b905092915050565b60006020820190508181036000830152610b68816109ce565b9050919050565b60006020820190508181036000830152610b88816109f1565b9050919050565b60006020820190508181036000830152610ba881610a14565b9050919050565b60006020820190508181036000830152610bc881610a37565b9050919050565b6000602082019050610be46000830184610a5a565b92915050565b6000604082019050610bff6000830186610a5a565b8181036020830152610c12818486610919565b9050949350505050565b6000610c26610c37565b9050610c328282610d87565b919050565b6000604051905090565b600067ffffffffffffffff821115610c5c57610c5b610db8565b5b610c6582610e05565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000610cc082610cd3565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610d0882610d21565b9050919050565b6000610d1a82610d21565b9050919050565b6000610d2c82610d33565b9050919050565b6000610d3e82610cd3565b9050919050565b82818337600083830152505050565b60005b83811015610d72578082015181840152602081019050610d57565b83811115610d81576000848401525b50505050565b610d9082610e05565b810181811067ffffffffffffffff82111715610daf57610dae610db8565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b610f0f81610cb5565b8114610f1a57600080fd5b50565b610f2681610cc7565b8114610f3157600080fd5b50565b610f3d81610cf3565b8114610f4857600080fd5b5056fea2646970667358221220da212ba2d53390dc4639c6db16c2028d714e1179b80a39e1f053509901d87aeb64736f6c63430008070033a2646970667358221220a946037480c9d2889e70ba3469adf2155b0f9bbd1f6f3dea2f6931315d89b40a64736f6c63430008070033"; - -type GatewayEVMTestConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: GatewayEVMTestConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class GatewayEVMTest__factory extends ContractFactory { - constructor(...args: GatewayEVMTestConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override deploy( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy(overrides || {}) as Promise; - } - override getDeployTransaction( - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); - } - override attach(address: string): GatewayEVMTest { - return super.attach(address) as GatewayEVMTest; - } - override connect(signer: Signer): GatewayEVMTest__factory { - return super.connect(signer) as GatewayEVMTest__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): GatewayEVMTestInterface { - return new utils.Interface(_abi) as GatewayEVMTestInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): GatewayEVMTest { - return new Contract(address, _abi, signerOrProvider) as GatewayEVMTest; - } -} diff --git a/typechain-types/factories/contracts/prototypes/test/GatewayEVM.t.sol/index.ts b/typechain-types/factories/contracts/prototypes/test/GatewayEVM.t.sol/index.ts deleted file mode 100644 index aa9a507c..00000000 --- a/typechain-types/factories/contracts/prototypes/test/GatewayEVM.t.sol/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { GatewayEVMInboundTest__factory } from "./GatewayEVMInboundTest__factory"; -export { GatewayEVMTest__factory } from "./GatewayEVMTest__factory"; diff --git a/typechain-types/factories/contracts/prototypes/test/GatewayEVMZEVM.t.sol/GatewayEVMZEVMTest__factory.ts b/typechain-types/factories/contracts/prototypes/test/GatewayEVMZEVM.t.sol/GatewayEVMZEVMTest__factory.ts deleted file mode 100644 index 3931e6ae..00000000 --- a/typechain-types/factories/contracts/prototypes/test/GatewayEVMZEVM.t.sol/GatewayEVMZEVMTest__factory.ts +++ /dev/null @@ -1,1106 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../../../common"; -import type { - GatewayEVMZEVMTest, - GatewayEVMZEVMTestInterface, -} from "../../../../../contracts/prototypes/test/GatewayEVMZEVM.t.sol/GatewayEVMZEVMTest"; - -const _abi = [ - { - inputs: [], - name: "ApprovalFailed", - type: "error", - }, - { - inputs: [], - name: "CallerIsNotFungibleModule", - type: "error", - }, - { - inputs: [], - name: "CustodyInitialized", - type: "error", - }, - { - inputs: [], - name: "DepositFailed", - type: "error", - }, - { - inputs: [], - name: "ExecutionFailed", - type: "error", - }, - { - inputs: [], - name: "FailedZetaSent", - type: "error", - }, - { - inputs: [], - name: "GasFeeTransferFailed", - type: "error", - }, - { - inputs: [], - name: "InsufficientERC20Amount", - type: "error", - }, - { - inputs: [], - name: "InsufficientETHAmount", - type: "error", - }, - { - inputs: [], - name: "InsufficientZRC20Amount", - type: "error", - }, - { - inputs: [], - name: "InvalidTarget", - type: "error", - }, - { - inputs: [], - name: "WZETATransferFailed", - type: "error", - }, - { - inputs: [], - name: "WithdrawalFailed", - type: "error", - }, - { - inputs: [], - name: "ZRC20BurnFailed", - type: "error", - }, - { - inputs: [], - name: "ZRC20TransferFailed", - type: "error", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "receiver", - type: "bytes", - }, - { - indexed: false, - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "Call", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "receiver", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "payload", - type: "bytes", - }, - ], - name: "Call", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "receiver", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "asset", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "payload", - type: "bytes", - }, - ], - name: "Deposit", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "destination", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "Executed", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "ExecutedWithERC20", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "destination", - type: "address", - }, - ], - name: "ReceivedERC20", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "ReceivedNoParams", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "string[]", - name: "strs", - type: "string[]", - }, - { - indexed: false, - internalType: "uint256[]", - name: "nums", - type: "uint256[]", - }, - { - indexed: false, - internalType: "bool", - name: "flag", - type: "bool", - }, - ], - name: "ReceivedNonPayable", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "string", - name: "str", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "num", - type: "uint256", - }, - { - indexed: false, - internalType: "bool", - name: "flag", - type: "bool", - }, - ], - name: "ReceivedPayable", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "destination", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "Reverted", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "RevertedWithERC20", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "zrc20", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "to", - type: "bytes", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "gasfee", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "protocolFlatFee", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "Withdrawal", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "", - type: "string", - }, - ], - name: "log", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "", - type: "address", - }, - ], - name: "log_address", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256[]", - name: "val", - type: "uint256[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "int256[]", - name: "val", - type: "int256[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address[]", - name: "val", - type: "address[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - name: "log_bytes", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - name: "log_bytes32", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "int256", - name: "", - type: "int256", - }, - ], - name: "log_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "address", - name: "val", - type: "address", - }, - ], - name: "log_named_address", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256[]", - name: "val", - type: "uint256[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256[]", - name: "val", - type: "int256[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "address[]", - name: "val", - type: "address[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "bytes", - name: "val", - type: "bytes", - }, - ], - name: "log_named_bytes", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "bytes32", - name: "val", - type: "bytes32", - }, - ], - name: "log_named_bytes32", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256", - name: "val", - type: "int256", - }, - { - indexed: false, - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "log_named_decimal_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "val", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "log_named_decimal_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256", - name: "val", - type: "int256", - }, - ], - name: "log_named_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "string", - name: "val", - type: "string", - }, - ], - name: "log_named_string", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "val", - type: "uint256", - }, - ], - name: "log_named_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "", - type: "string", - }, - ], - name: "log_string", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "log_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - name: "logs", - type: "event", - }, - { - inputs: [], - name: "IS_TEST", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeArtifacts", - outputs: [ - { - internalType: "string[]", - name: "excludedArtifacts_", - type: "string[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeContracts", - outputs: [ - { - internalType: "address[]", - name: "excludedContracts_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeSelectors", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzSelector[]", - name: "excludedSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeSenders", - outputs: [ - { - internalType: "address[]", - name: "excludedSenders_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "failed", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "setUp", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "targetArtifactSelectors", - outputs: [ - { - components: [ - { - internalType: "string", - name: "artifact", - type: "string", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzArtifactSelector[]", - name: "targetedArtifactSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetArtifacts", - outputs: [ - { - internalType: "string[]", - name: "targetedArtifacts_", - type: "string[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetContracts", - outputs: [ - { - internalType: "address[]", - name: "targetedContracts_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetInterfaces", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "string[]", - name: "artifacts", - type: "string[]", - }, - ], - internalType: "struct StdInvariant.FuzzInterface[]", - name: "targetedInterfaces_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetSelectors", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzSelector[]", - name: "targetedSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetSenders", - outputs: [ - { - internalType: "address[]", - name: "targetedSenders_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "testCallReceiverEVMFromSenderZEVM", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "testCallReceiverEVMFromZEVM", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "testWithdrawAndCallReceiverEVMFromSenderZEVM", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "testWithdrawAndCallReceiverEVMFromZEVM", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -const _bytecode = - "0x60806040526001600c60006101000a81548160ff0219169083151502179055506001601f60006101000a81548160ff02191690831515021790555034801561004657600080fd5b50620141b580620000586000396000f3fe60806040523480156200001157600080fd5b5060043610620001005760003560e01c8063916a17c61162000099578063b5508aa9116200006f578063b5508aa9146200022d578063ba414fa6146200024f578063e20c9f711462000271578063fa7626d414620002935762000100565b8063916a17c614620001dd5780639683c69514620001ff578063b0464fdc146200020b5762000100565b80633e5e3c2311620000db5780633e5e3c2314620001555780633f7286f4146200017757806366d9a9a0146200019957806385226c8114620001bb5762000100565b80630a9254e414620001055780631ed7831c14620001115780632ade38801462000133575b600080fd5b6200010f620002b5565b005b6200011b6200135c565b6040516200012a919062002fcc565b60405180910390f35b6200013d620013ec565b6040516200014c919062003038565b60405180910390f35b6200015f62001586565b6040516200016e919062002fcc565b60405180910390f35b6200018162001616565b60405162000190919062002fcc565b60405180910390f35b620001a3620016a6565b604051620001b2919062003014565b60405180910390f35b620001c56200183d565b604051620001d4919062002ff0565b60405180910390f35b620001e762001920565b604051620001f691906200305c565b60405180910390f35b6200020962001a73565b005b6200021562002112565b6040516200022491906200305c565b60405180910390f35b6200023762002265565b60405162000246919062002ff0565b60405180910390f35b6200025962002348565b60405162000268919062003080565b60405180910390f35b6200027b6200247b565b6040516200028a919062002fcc565b60405180910390f35b6200029d6200250b565b604051620002ac919062003080565b60405180910390f35b30602560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611234602660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550615678602760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550614321602c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051620003cd906200251e565b620003d890620032a2565b604051809103906000f080158015620003f5573d6000803e3d6000fd5b50602360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060405162000444906200251e565b6200044f90620031d3565b604051809103906000f0801580156200046c573d6000803e3d6000fd5b50602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051620004bb906200252c565b604051809103906000f080158015620004d8573d6000803e3d6000fd5b50601f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516200054a906200253a565b62000556919062002e5d565b604051809103906000f08015801562000573573d6000803e3d6000fd5b50602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051620006089062002548565b6200061592919062002e7a565b604051809103906000f08015801562000632573d6000803e3d6000fd5b50602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663485cc955602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b81526004016200071692919062002e7a565b600060405180830381600087803b1580156200073157600080fd5b505af115801562000746573d6000803e3d6000fd5b50505050601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516200077b906200253a565b62000787919062002e5d565b604051809103906000f080158015620007a4573d6000803e3d6000fd5b50602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ae7a3a6f602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040162000864919062002e5d565b600060405180830381600087803b1580156200087f57600080fd5b505af115801562000894573d6000803e3d6000fd5b50505050601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166310188aef602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040162000917919062002e5d565b600060405180830381600087803b1580156200093257600080fd5b505af115801562000947573d6000803e3d6000fd5b50505050602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f19602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620f42406040518363ffffffff1660e01b8152600401620009cf92919062002f45565b600060405180830381600087803b158015620009ea57600080fd5b505af1158015620009ff573d6000803e3d6000fd5b50505050602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166207a1206040518363ffffffff1660e01b815260040162000a8792919062002f72565b602060405180830381600087803b15801562000aa257600080fd5b505af115801562000ab7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000add919062002648565b5060405162000aec9062002556565b604051809103906000f08015801562000b09573d6000803e3d6000fd5b50602460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060405162000b589062002564565b604051809103906000f08015801562000b75573d6000803e3d6000fd5b50602860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405162000be79062002572565b62000bf3919062002e5d565b604051809103906000f08015801562000c10573d6000803e3d6000fd5b50602960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073735b14bb79463307aacbed86daf3322b1e6226ab90507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff166306447d56826040518263ffffffff1660e01b815260040162000cc8919062002e5d565b600060405180830381600087803b15801562000ce357600080fd5b505af115801562000cf8573d6000803e3d6000fd5b50505050600080600060405162000d0f9062002580565b62000d1d9392919062002ea7565b604051809103906000f08015801562000d3a573d6000803e3d6000fd5b50602a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060126001600080602a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405162000dd6906200258e565b62000de7969594939291906200320a565b604051809103906000f08015801562000e04573d6000803e3d6000fd5b50602b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ee2815ba6001602b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b815260040162000ec792919062003135565b600060405180830381600087803b15801562000ee257600080fd5b505af115801562000ef7573d6000803e3d6000fd5b50505050602a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a7cb05076001806040518363ffffffff1660e01b815260040162000f5b92919062003162565b600060405180830381600087803b15801562000f7657600080fd5b505af115801562000f8b573d6000803e3d6000fd5b50505050602b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166347e7ef24602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620f42406040518363ffffffff1660e01b81526004016200101392919062002f45565b602060405180830381600087803b1580156200102e57600080fd5b505af115801562001043573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001069919062002648565b50602b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166347e7ef24602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620f42406040518363ffffffff1660e01b8152600401620010ee92919062002f45565b602060405180830381600087803b1580156200110957600080fd5b505af11580156200111e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001144919062002648565b507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015620011b157600080fd5b505af1158015620011c6573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff1663ca669fa7602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016200124a919062002e5d565b600060405180830381600087803b1580156200126557600080fd5b505af11580156200127a573d6000803e3d6000fd5b50505050602b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3602860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620f42406040518363ffffffff1660e01b81526004016200130292919062002f45565b602060405180830381600087803b1580156200131d57600080fd5b505af115801562001332573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001358919062002648565b5050565b60606016805480602002602001604051908101604052809291908181526020018280548015620013e257602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831162001397575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020016000905b828210156200157d57838290600052602060002090600202016040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020016000905b8282101562001565578382906000526020600020018054620014d190620036a8565b80601f0160208091040260200160405190810160405280929190818152602001828054620014ff90620036a8565b8015620015505780601f10620015245761010080835404028352916020019162001550565b820191906000526020600020905b8154815290600101906020018083116200153257829003601f168201915b505050505081526020019060010190620014af565b50505050815250508152602001906001019062001410565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156200160c57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311620015c1575b5050505050905090565b606060178054806020026020016040519081016040528092919081815260200182805480156200169c57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831162001651575b5050505050905090565b6060601b805480602002602001604051908101604052809291908181526020016000905b828210156200183457838290600052602060002090600202016040518060400160405290816000820180546200170090620036a8565b80601f01602080910402602001604051908101604052809291908181526020018280546200172e90620036a8565b80156200177f5780601f1062001753576101008083540402835291602001916200177f565b820191906000526020600020905b8154815290600101906020018083116200176157829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156200181b57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620017c75790505b50505050508152505081526020019060010190620016ca565b50505050905090565b6060601a805480602002602001604051908101604052809291908181526020016000905b82821015620019175783829060005260206000200180546200188390620036a8565b80601f0160208091040260200160405190810160405280929190818152602001828054620018b190620036a8565b8015620019025780601f10620018d65761010080835404028352916020019162001902565b820191906000526020600020905b815481529060010190602001808311620018e457829003601f168201915b50505050508152602001906001019062001861565b50505050905090565b6060601d805480602002602001604051908101604052809291908181526020016000905b8282101562001a6a57838290600052602060002090600202016040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820180548060200260200160405190810160405280929190818152602001828054801562001a5157602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620019fd5790505b5050505050815250508152602001906001019062001944565b50505050905090565b60006040518060400160405280600f81526020017f48656c6c6f2c204861726468617421000000000000000000000000000000000081525090506000602a90506000600190506000670de0b6b3a76400009050600063e04d4f9760e01b85858560405160240162001ae7939291906200318f565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff1663ca669fa7602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040162001bc6919062002e5d565b600060405180830381600087803b15801562001be157600080fd5b505af115801562001bf6573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff166381bad6f3600180600180602860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518663ffffffff1660e01b815260040162001c849594939291906200309d565b600060405180830381600087803b15801562001c9f57600080fd5b505af115801562001cb4573d6000803e3d6000fd5b50505050602c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f2b5af078ce280d812dc2241658dc5435c93408020e5418eef55a2b536de51c0f602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405160200162001d47919062002e40565b6040516020818303038152906040528360405162001d67929190620030fa565b60405180910390a2602860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630ac7c44c602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405160200162001de2919062002e40565b604051602081830303815290604052836040518363ffffffff1660e01b815260040162001e11929190620030fa565b600060405180830381600087803b15801562001e2c57600080fd5b505af115801562001e41573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff1663c88a5e6d601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b815260040162001ec792919062002f9f565b600060405180830381600087803b15801562001ee257600080fd5b505af115801562001ef7573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff166381bad6f3600180600180601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518663ffffffff1660e01b815260040162001f859594939291906200309d565b600060405180830381600087803b15801562001fa057600080fd5b505af115801562001fb5573d6000803e3d6000fd5b50505050602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f838360405162002025929190620032d9565b60405180910390a2601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631cff79cd83602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b8152600401620020af92919062002f11565b6000604051808303818588803b158015620020c957600080fd5b505af1158015620020de573d6000803e3d6000fd5b50505050506040513d6000823e3d601f19601f820116820180604052508101906200210a9190620026ac565b505050505050565b6060601c805480602002602001604051908101604052809291908181526020016000905b828210156200225c57838290600052602060002090600202016040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054806020026020016040519081016040528092919081815260200182805480156200224357602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620021ef5790505b5050505050815250508152602001906001019062002136565b50505050905090565b60606019805480602002602001604051908101604052809291908181526020016000905b828210156200233f578382906000526020600020018054620022ab90620036a8565b80601f0160208091040260200160405190810160405280929190818152602001828054620022d990620036a8565b80156200232a5780601f10620022fe576101008083540402835291602001916200232a565b820191906000526020600020905b8154815290600101906020018083116200230c57829003601f168201915b50505050508152602001906001019062002289565b50505050905090565b6000600860009054906101000a900460ff16156200237857600860009054906101000a900460ff16905062002478565b6000801b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff1663667f9d707f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c7f6661696c656400000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b81526004016200241f92919062002ee4565b60206040518083038186803b1580156200243857600080fd5b505afa1580156200244d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200247391906200267a565b141590505b90565b606060158054806020026020016040519081016040528092919081815260200182805480156200250157602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311620024b6575b5050505050905090565b601f60009054906101000a900460ff1681565b611813806200393d83390190565b613972806200515083390190565b6112198062008ac283390190565b6111d48062009cdb83390190565b6110aa806200aeaf83390190565b613d56806200bf5983390190565b610bcd806200fcaf83390190565b6110d7806201087c83390190565b61282d806201195383390190565b6000620025b3620025ad8462003336565b6200330d565b905082815260208101848484011115620025d257620025d1620037ce565b5b620025df84828562003672565b509392505050565b600081519050620025f88162003908565b92915050565b6000815190506200260f8162003922565b92915050565b600082601f8301126200262d576200262c620037c9565b5b81516200263f8482602086016200259c565b91505092915050565b600060208284031215620026615762002660620037d8565b5b60006200267184828501620025e7565b91505092915050565b600060208284031215620026935762002692620037d8565b5b6000620026a384828501620025fe565b91505092915050565b600060208284031215620026c557620026c4620037d8565b5b600082015167ffffffffffffffff811115620026e657620026e5620037d3565b5b620026f48482850162002615565b91505092915050565b60006200270b838362002789565b60208301905092915050565b600062002725838362002b26565b60208301905092915050565b60006200273f838362002bf9565b905092915050565b600062002755838362002d65565b905092915050565b60006200276b838362002dad565b905092915050565b600062002781838362002dee565b905092915050565b62002794816200351c565b82525050565b620027a5816200351c565b82525050565b6000620027b882620033cc565b620027c4818562003472565b9350620027d1836200336c565b8060005b8381101562002808578151620027ec8882620026fd565b9750620027f98362003424565b925050600181019050620027d5565b5085935050505092915050565b60006200282282620033d7565b6200282e818562003483565b93506200283b836200337c565b8060005b838110156200287257815162002856888262002717565b9750620028638362003431565b9250506001810190506200283f565b5085935050505092915050565b60006200288c82620033e2565b62002898818562003494565b935083602082028501620028ac856200338c565b8060005b85811015620028ee5784840389528151620028cc858262002731565b9450620028d9836200343e565b925060208a01995050600181019050620028b0565b50829750879550505050505092915050565b60006200290d82620033e2565b620029198185620034a5565b9350836020820285016200292d856200338c565b8060005b858110156200296f57848403895281516200294d858262002731565b94506200295a836200343e565b925060208a0199505060018101905062002931565b50829750879550505050505092915050565b60006200298e82620033ed565b6200299a8185620034b6565b935083602082028501620029ae856200339c565b8060005b85811015620029f05784840389528151620029ce858262002747565b9450620029db836200344b565b925060208a01995050600181019050620029b2565b50829750879550505050505092915050565b600062002a0f82620033f8565b62002a1b8185620034c7565b93508360208202850162002a2f85620033ac565b8060005b8581101562002a71578484038952815162002a4f85826200275d565b945062002a5c8362003458565b925060208a0199505060018101905062002a33565b50829750879550505050505092915050565b600062002a908262003403565b62002a9c8185620034d8565b93508360208202850162002ab085620033bc565b8060005b8581101562002af2578484038952815162002ad0858262002773565b945062002add8362003465565b925060208a0199505060018101905062002ab4565b50829750879550505050505092915050565b62002b0f8162003530565b82525050565b62002b20816200353c565b82525050565b62002b318162003546565b82525050565b600062002b44826200340e565b62002b508185620034e9565b935062002b6281856020860162003672565b62002b6d81620037dd565b840191505092915050565b62002b8d62002b8782620035be565b62003714565b82525050565b62002b9e81620035d2565b82525050565b62002baf81620035e6565b82525050565b62002bc081620035fa565b82525050565b62002bd1816200360e565b82525050565b62002be28162003622565b82525050565b62002bf38162003636565b82525050565b600062002c068262003419565b62002c128185620034fa565b935062002c2481856020860162003672565b62002c2f81620037dd565b840191505092915050565b600062002c478262003419565b62002c5381856200350b565b935062002c6581856020860162003672565b62002c7081620037dd565b840191505092915050565b600062002c8a6003836200350b565b915062002c9782620037fb565b602082019050919050565b600062002cb16004836200350b565b915062002cbe8262003824565b602082019050919050565b600062002cd86004836200350b565b915062002ce5826200384d565b602082019050919050565b600062002cff6005836200350b565b915062002d0c8262003876565b602082019050919050565b600062002d266004836200350b565b915062002d33826200389f565b602082019050919050565b600062002d4d6003836200350b565b915062002d5a82620038c8565b602082019050919050565b6000604083016000830151848203600086015262002d84828262002bf9565b9150506020830151848203602086015262002da0828262002815565b9150508091505092915050565b600060408301600083015162002dc7600086018262002789565b506020830151848203602086015262002de182826200287f565b9150508091505092915050565b600060408301600083015162002e08600086018262002789565b506020830151848203602086015262002e22828262002815565b9150508091505092915050565b62002e3a81620035a7565b82525050565b600062002e4e828462002b78565b60148201915081905092915050565b600060208201905062002e7460008301846200279a565b92915050565b600060408201905062002e9160008301856200279a565b62002ea060208301846200279a565b9392505050565b600060608201905062002ebe60008301866200279a565b62002ecd60208301856200279a565b62002edc60408301846200279a565b949350505050565b600060408201905062002efb60008301856200279a565b62002f0a602083018462002b15565b9392505050565b600060408201905062002f2860008301856200279a565b818103602083015262002f3c818462002b37565b90509392505050565b600060408201905062002f5c60008301856200279a565b62002f6b602083018462002bb5565b9392505050565b600060408201905062002f8960008301856200279a565b62002f98602083018462002be8565b9392505050565b600060408201905062002fb660008301856200279a565b62002fc5602083018462002e2f565b9392505050565b6000602082019050818103600083015262002fe88184620027ab565b905092915050565b600060208201905081810360008301526200300c818462002900565b905092915050565b6000602082019050818103600083015262003030818462002981565b905092915050565b6000602082019050818103600083015262003054818462002a02565b905092915050565b6000602082019050818103600083015262003078818462002a83565b905092915050565b600060208201905062003097600083018462002b04565b92915050565b600060a082019050620030b4600083018862002b04565b620030c3602083018762002b04565b620030d2604083018662002b04565b620030e1606083018562002b04565b620030f060808301846200279a565b9695505050505050565b6000604082019050818103600083015262003116818562002b37565b905081810360208301526200312c818462002b37565b90509392505050565b60006040820190506200314c600083018562002bd7565b6200315b60208301846200279a565b9392505050565b600060408201905062003179600083018562002bd7565b62003188602083018462002bd7565b9392505050565b60006060820190508181036000830152620031ab818662002c3a565b9050620031bc602083018562002e2f565b620031cb604083018462002b04565b949350505050565b60006040820190508181036000830152620031ee8162002ca2565b90508181036020830152620032038162002cc9565b9050919050565b6000610100820190508181036000830152620032268162002cf0565b905081810360208301526200323b8162002d3e565b90506200324c604083018962002bc6565b6200325b606083018862002bd7565b6200326a608083018762002b93565b6200327960a083018662002ba4565b6200328860c08301856200279a565b6200329760e08301846200279a565b979650505050505050565b60006040820190508181036000830152620032bd8162002d17565b90508181036020830152620032d28162002c7b565b9050919050565b6000604082019050620032f0600083018562002e2f565b818103602083015262003304818462002b37565b90509392505050565b6000620033196200332c565b9050620033278282620036de565b919050565b6000604051905090565b600067ffffffffffffffff8211156200335457620033536200379a565b5b6200335f82620037dd565b9050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000620035298262003587565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b60008190506200358282620038f1565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000620035cb826200364a565b9050919050565b6000620035df8262003572565b9050919050565b6000620035f382620035a7565b9050919050565b60006200360782620035a7565b9050919050565b60006200361b82620035b1565b9050919050565b60006200362f82620035a7565b9050919050565b60006200364382620035a7565b9050919050565b600062003657826200365e565b9050919050565b60006200366b8262003587565b9050919050565b60005b838110156200369257808201518184015260208101905062003675565b83811115620036a2576000848401525b50505050565b60006002820490506001821680620036c157607f821691505b60208210811415620036d857620036d76200376b565b5b50919050565b620036e982620037dd565b810181811067ffffffffffffffff821117156200370b576200370a6200379a565b5b80604052505050565b6000620037218262003728565b9050919050565b60006200373582620037ee565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f54544b0000000000000000000000000000000000000000000000000000000000600082015250565b7f7a65746100000000000000000000000000000000000000000000000000000000600082015250565b7f5a45544100000000000000000000000000000000000000000000000000000000600082015250565b7f544f4b454e000000000000000000000000000000000000000000000000000000600082015250565b7f7465737400000000000000000000000000000000000000000000000000000000600082015250565b7f544b4e0000000000000000000000000000000000000000000000000000000000600082015250565b600381106200390557620039046200373c565b5b50565b620039138162003530565b81146200391f57600080fd5b50565b6200392d816200353c565b81146200393957600080fd5b5056fe60806040523480156200001157600080fd5b5060405162001813380380620018138339818101604052810190620000379190620001a3565b818181600390805190602001906200005192919062000075565b5080600490805190602001906200006a92919062000075565b5050505050620003ac565b8280546200008390620002bd565b90600052602060002090601f016020900481019282620000a75760008555620000f3565b82601f10620000c257805160ff1916838001178555620000f3565b82800160010185558215620000f3579182015b82811115620000f2578251825591602001919060010190620000d5565b5b50905062000102919062000106565b5090565b5b808211156200012157600081600090555060010162000107565b5090565b60006200013c620001368462000251565b62000228565b9050828152602081018484840111156200015b576200015a6200038c565b5b6200016884828562000287565b509392505050565b600082601f83011262000188576200018762000387565b5b81516200019a84826020860162000125565b91505092915050565b60008060408385031215620001bd57620001bc62000396565b5b600083015167ffffffffffffffff811115620001de57620001dd62000391565b5b620001ec8582860162000170565b925050602083015167ffffffffffffffff81111562000210576200020f62000391565b5b6200021e8582860162000170565b9150509250929050565b60006200023462000247565b9050620002428282620002f3565b919050565b6000604051905090565b600067ffffffffffffffff8211156200026f576200026e62000358565b5b6200027a826200039b565b9050602081019050919050565b60005b83811015620002a75780820151818401526020810190506200028a565b83811115620002b7576000848401525b50505050565b60006002820490506001821680620002d657607f821691505b60208210811415620002ed57620002ec62000329565b5b50919050565b620002fe826200039b565b810181811067ffffffffffffffff8211171562000320576200031f62000358565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b61145780620003bc6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806340c10f191161007157806340c10f19146101a357806370a08231146101bf57806395d89b41146101ef578063a457c2d71461020d578063a9059cbb1461023d578063dd62ed3e1461026d576100b4565b806306fdde03146100b9578063095ea7b3146100d757806318160ddd1461010757806323b872dd14610125578063313ce567146101555780633950935114610173575b600080fd5b6100c161029d565b6040516100ce9190610ecf565b60405180910390f35b6100f160048036038101906100ec9190610cf6565b61032f565b6040516100fe9190610eb4565b60405180910390f35b61010f610352565b60405161011c9190610ff1565b60405180910390f35b61013f600480360381019061013a9190610ca3565b61035c565b60405161014c9190610eb4565b60405180910390f35b61015d61038b565b60405161016a919061100c565b60405180910390f35b61018d60048036038101906101889190610cf6565b610394565b60405161019a9190610eb4565b60405180910390f35b6101bd60048036038101906101b89190610cf6565b6103cb565b005b6101d960048036038101906101d49190610c36565b6103d9565b6040516101e69190610ff1565b60405180910390f35b6101f7610421565b6040516102049190610ecf565b60405180910390f35b61022760048036038101906102229190610cf6565b6104b3565b6040516102349190610eb4565b60405180910390f35b61025760048036038101906102529190610cf6565b61052a565b6040516102649190610eb4565b60405180910390f35b61028760048036038101906102829190610c63565b61054d565b6040516102949190610ff1565b60405180910390f35b6060600380546102ac90611121565b80601f01602080910402602001604051908101604052809291908181526020018280546102d890611121565b80156103255780601f106102fa57610100808354040283529160200191610325565b820191906000526020600020905b81548152906001019060200180831161030857829003601f168201915b5050505050905090565b60008061033a6105d4565b90506103478185856105dc565b600191505092915050565b6000600254905090565b6000806103676105d4565b90506103748582856107a7565b61037f858585610833565b60019150509392505050565b60006012905090565b60008061039f6105d4565b90506103c08185856103b1858961054d565b6103bb9190611043565b6105dc565b600191505092915050565b6103d58282610aab565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461043090611121565b80601f016020809104026020016040519081016040528092919081815260200182805461045c90611121565b80156104a95780601f1061047e576101008083540402835291602001916104a9565b820191906000526020600020905b81548152906001019060200180831161048c57829003601f168201915b5050505050905090565b6000806104be6105d4565b905060006104cc828661054d565b905083811015610511576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050890610fb1565b60405180910390fd5b61051e82868684036105dc565b60019250505092915050565b6000806105356105d4565b9050610542818585610833565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561064c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064390610f91565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156106bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b390610f11565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161079a9190610ff1565b60405180910390a3505050565b60006107b3848461054d565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461082d578181101561081f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081690610f31565b60405180910390fd5b61082c84848484036105dc565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156108a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089a90610f71565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090a90610ef1565b60405180910390fd5b61091e838383610c02565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156109a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099b90610f51565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a929190610ff1565b60405180910390a3610aa5848484610c07565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1290610fd1565b60405180910390fd5b610b2760008383610c02565b8060026000828254610b399190611043565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610bea9190610ff1565b60405180910390a3610bfe60008383610c07565b5050565b505050565b505050565b600081359050610c1b816113f3565b92915050565b600081359050610c308161140a565b92915050565b600060208284031215610c4c57610c4b6111b1565b5b6000610c5a84828501610c0c565b91505092915050565b60008060408385031215610c7a57610c796111b1565b5b6000610c8885828601610c0c565b9250506020610c9985828601610c0c565b9150509250929050565b600080600060608486031215610cbc57610cbb6111b1565b5b6000610cca86828701610c0c565b9350506020610cdb86828701610c0c565b9250506040610cec86828701610c21565b9150509250925092565b60008060408385031215610d0d57610d0c6111b1565b5b6000610d1b85828601610c0c565b9250506020610d2c85828601610c21565b9150509250929050565b610d3f816110ab565b82525050565b6000610d5082611027565b610d5a8185611032565b9350610d6a8185602086016110ee565b610d73816111b6565b840191505092915050565b6000610d8b602383611032565b9150610d96826111c7565b604082019050919050565b6000610dae602283611032565b9150610db982611216565b604082019050919050565b6000610dd1601d83611032565b9150610ddc82611265565b602082019050919050565b6000610df4602683611032565b9150610dff8261128e565b604082019050919050565b6000610e17602583611032565b9150610e22826112dd565b604082019050919050565b6000610e3a602483611032565b9150610e458261132c565b604082019050919050565b6000610e5d602583611032565b9150610e688261137b565b604082019050919050565b6000610e80601f83611032565b9150610e8b826113ca565b602082019050919050565b610e9f816110d7565b82525050565b610eae816110e1565b82525050565b6000602082019050610ec96000830184610d36565b92915050565b60006020820190508181036000830152610ee98184610d45565b905092915050565b60006020820190508181036000830152610f0a81610d7e565b9050919050565b60006020820190508181036000830152610f2a81610da1565b9050919050565b60006020820190508181036000830152610f4a81610dc4565b9050919050565b60006020820190508181036000830152610f6a81610de7565b9050919050565b60006020820190508181036000830152610f8a81610e0a565b9050919050565b60006020820190508181036000830152610faa81610e2d565b9050919050565b60006020820190508181036000830152610fca81610e50565b9050919050565b60006020820190508181036000830152610fea81610e73565b9050919050565b60006020820190506110066000830184610e96565b92915050565b60006020820190506110216000830184610ea5565b92915050565b600081519050919050565b600082825260208201905092915050565b600061104e826110d7565b9150611059836110d7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561108e5761108d611153565b5b828201905092915050565b60006110a4826110b7565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101561110c5780820151818401526020810190506110f1565b8381111561111b576000848401525b50505050565b6000600282049050600182168061113957607f821691505b6020821081141561114d5761114c611182565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6113fc81611099565b811461140757600080fd5b50565b611413816110d7565b811461141e57600080fd5b5056fea2646970667358221220d4c96329400732e284f624232c8d7228fc90c00ee7b1a48a85080262107815d864736f6c6343000807003360a06040523073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b81525034801561004657600080fd5b5060805160601c6138f16100816000396000818161082a015281816108b901528181610c1b01528181610caa01526110c601526138f16000f3fe6080604052600436106101355760003560e01c8063715018a6116100ab578063b8969bd41161006f578063b8969bd4146103b4578063dda79b75146103dd578063e8f9cb3a14610408578063f2fde38b14610433578063f340fa011461045c578063f45346dc1461047857610135565b8063715018a6146103045780638c6f037f1461031b5780638da5cb5b146103445780638ee0f9f21461036f578063ae7a3a6f1461038b57610135565b8063485cc955116100fd578063485cc955146102015780634f1ef2861461022a5780635131ab591461024657806352d1902d1461028357806357bec62f146102ae5780635b112591146102d957610135565b806310188aef1461013a5780631b8b921d146101635780631cff79cd1461018c57806329c59b5d146101bc5780633659cfe6146101d8575b600080fd5b34801561014657600080fd5b50610161600480360381019061015c919061285c565b6104a1565b005b34801561016f57600080fd5b5061018a60048036038101906101859190612951565b6105d4565b005b6101a660048036038101906101a19190612951565b610640565b6040516101b39190612fe4565b60405180910390f35b6101d660048036038101906101d19190612951565b6106ae565b005b3480156101e457600080fd5b506101ff60048036038101906101fa919061285c565b610828565b005b34801561020d57600080fd5b5061022860048036038101906102239190612889565b6109b1565b005b610244600480360381019061023f91906129b1565b610c19565b005b34801561025257600080fd5b5061026d600480360381019061026891906128c9565b610d56565b60405161027a9190612fe4565b60405180910390f35b34801561028f57600080fd5b506102986110c2565b6040516102a59190612fa5565b60405180910390f35b3480156102ba57600080fd5b506102c361117b565b6040516102d09190612f01565b60405180910390f35b3480156102e557600080fd5b506102ee6111a1565b6040516102fb9190612f01565b60405180910390f35b34801561031057600080fd5b506103196111c7565b005b34801561032757600080fd5b50610342600480360381019061033d9190612a60565b6111db565b005b34801561035057600080fd5b50610359611359565b6040516103669190612f01565b60405180910390f35b61038960048036038101906103849190612951565b611383565b005b34801561039757600080fd5b506103b260048036038101906103ad919061285c565b6114ee565b005b3480156103c057600080fd5b506103db60048036038101906103d691906128c9565b611621565b005b3480156103e957600080fd5b506103f2611764565b6040516103ff9190612f01565b60405180910390f35b34801561041457600080fd5b5061041d61178a565b60405161042a9190612f01565b60405180910390f35b34801561043f57600080fd5b5061045a6004803603810190610455919061285c565b6117b0565b005b6104766004803603810190610471919061285c565b611834565b005b34801561048457600080fd5b5061049f600480360381019061049a9190612a0d565b6119a8565b005b600073ffffffffffffffffffffffffffffffffffffffff1660cb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610529576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610590576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060cb60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde38484604051610633929190612fc0565b60405180910390a3505050565b6060600061064f858585611b20565b90508473ffffffffffffffffffffffffffffffffffffffff167fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f34868660405161069b9392919061325f565b60405180910390a2809150509392505050565b60003414156106e9576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163460405161073190612eec565b60006040518083038185875af1925050503d806000811461076e576040519150601f19603f3d011682016040523d82523d6000602084013e610773565b606091505b505090506000151581151514156107b6576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4346000878760405161081a94939291906131e3565b60405180910390a350505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614156108b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ae90613063565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166108f6611bd7565b73ffffffffffffffffffffffffffffffffffffffff161461094c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094390613083565b60405180910390fd5b61095581611c2e565b6109ae81600067ffffffffffffffff81111561097457610973613420565b5b6040519080825280601f01601f1916602001820160405280156109a65781602001600182028036833780820191505090505b506000611c39565b50565b60008060019054906101000a900460ff161590508080156109e25750600160008054906101000a900460ff1660ff16105b80610a0f57506109f130611db6565b158015610a0e5750600160008054906101000a900460ff1660ff16145b5b610a4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4590613103565b60405180910390fd5b60016000806101000a81548160ff021916908360ff1602179055508015610a8b576001600060016101000a81548160ff0219169083151502179055505b610a93611dd9565b610a9b611e32565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610b025750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15610b39576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8260ca60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160cc60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508015610c145760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986001604051610c0b9190613006565b60405180910390a15b505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610ca8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9f90613063565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610ce7611bd7565b73ffffffffffffffffffffffffffffffffffffffff1614610d3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3490613083565b60405180910390fd5b610d4682611c2e565b610d5282826001611c39565b5050565b60606000841415610d93576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d9d8686611e83565b610dd3576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff1663095ea7b386866040518363ffffffff1660e01b8152600401610e0e929190612f7c565b602060405180830381600087803b158015610e2857600080fd5b505af1158015610e3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e609190612ae8565b610e96576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610ea3868585611b20565b9050610eaf8787611e83565b610ee5576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f209190612f01565b60206040518083038186803b158015610f3857600080fd5b505afa158015610f4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f709190612b42565b9050600081111561104b57600060c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060cc60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16141561101e5760cb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b61104981838b73ffffffffffffffffffffffffffffffffffffffff16611f1b9092919063ffffffff16565b505b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b73828888886040516110ac9392919061325f565b60405180910390a3819250505095945050505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614611152576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611149906130c3565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b905090565b60cb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111cf611fa1565b6111d9600061201f565b565b6000841415611216576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060cc60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156112b95760cb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b6112e63382878773ffffffffffffffffffffffffffffffffffffffff166120e5909392919063ffffffff16565b8573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a48787878760405161134994939291906131e3565b60405180910390a3505050505050565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808473ffffffffffffffffffffffffffffffffffffffff16346040516113aa90612eec565b60006040518083038185875af1925050503d80600081146113e7576040519150601f19603f3d011682016040523d82523d6000602084013e6113ec565b606091505b509150915081611428576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff16638fcaa0b585856040518363ffffffff1660e01b8152600401611463929190612fc0565b600060405180830381600087803b15801561147d57600080fd5b505af1158015611491573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff167fd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c3486866040516114df9392919061325f565b60405180910390a25050505050565b600073ffffffffffffffffffffffffffffffffffffffff1660c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611576576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156115dd576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060c960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600083141561165c576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61168784848773ffffffffffffffffffffffffffffffffffffffff16611f1b9092919063ffffffff16565b8373ffffffffffffffffffffffffffffffffffffffff16638fcaa0b583836040518363ffffffff1660e01b81526004016116c2929190612fc0565b600060405180830381600087803b1580156116dc57600080fd5b505af11580156116f0573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda78585856040516117559392919061325f565b60405180910390a35050505050565b60c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60cc60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6117b8611fa1565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611828576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181f90613043565b60405180910390fd5b6118318161201f565b50565b600034141561186f576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16346040516118b790612eec565b60006040518083038185875af1925050503d80600081146118f4576040519150601f19603f3d011682016040523d82523d6000602084013e6118f9565b606091505b5050905060001515811515141561193c576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a434600060405161199c929190613223565b60405180910390a35050565b60008214156119e3576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060cc60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a865760cb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b611ab33382858573ffffffffffffffffffffffffffffffffffffffff166120e5909392919063ffffffff16565b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a48585604051611b12929190613223565b60405180910390a350505050565b60606000808573ffffffffffffffffffffffffffffffffffffffff16348686604051611b4d929190612ebc565b60006040518083038185875af1925050503d8060008114611b8a576040519150601f19603f3d011682016040523d82523d6000602084013e611b8f565b606091505b509150915081611bcb576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80925050509392505050565b6000611c057f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61216e565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611c36611fa1565b50565b611c657f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914360001b612178565b60000160009054906101000a900460ff1615611c8957611c8483612182565b611db1565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611ccf57600080fd5b505afa925050508015611d0057506040513d601f19601f82011682018060405250810190611cfd9190612b15565b60015b611d3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3690613123565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b8114611da4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9b906130e3565b60405180910390fd5b50611db083838361223b565b5b505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16611e28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1f906131a3565b60405180910390fd5b611e30612267565b565b600060019054906101000a900460ff16611e81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e78906131a3565b60405180910390fd5b565b60008273ffffffffffffffffffffffffffffffffffffffff1663095ea7b38360006040518363ffffffff1660e01b8152600401611ec1929190612f53565b602060405180830381600087803b158015611edb57600080fd5b505af1158015611eef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f139190612ae8565b905092915050565b611f9c8363a9059cbb60e01b8484604051602401611f3a929190612f7c565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506122c8565b505050565b611fa961238f565b73ffffffffffffffffffffffffffffffffffffffff16611fc7611359565b73ffffffffffffffffffffffffffffffffffffffff161461201d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201490613163565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b612168846323b872dd60e01b85858560405160240161210693929190612f1c565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506122c8565b50505050565b6000819050919050565b6000819050919050565b61218b81611db6565b6121ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c190613143565b60405180910390fd5b806121f77f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61216e565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61224483612397565b6000825111806122515750805b156122625761226083836123e6565b505b505050565b600060019054906101000a900460ff166122b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ad906131a3565b60405180910390fd5b6122c66122c161238f565b61201f565b565b600061232a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166124139092919063ffffffff16565b905060008151111561238a578080602001905181019061234a9190612ae8565b612389576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612380906131c3565b60405180910390fd5b5b505050565b600033905090565b6123a081612182565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b606061240b83836040518060600160405280602781526020016138956027913961242b565b905092915050565b606061242284846000856124b1565b90509392505050565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516124559190612ed5565b600060405180830381855af49150503d8060008114612490576040519150601f19603f3d011682016040523d82523d6000602084013e612495565b606091505b50915091506124a68683838761257e565b925050509392505050565b6060824710156124f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ed906130a3565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161251f9190612ed5565b60006040518083038185875af1925050503d806000811461255c576040519150601f19603f3d011682016040523d82523d6000602084013e612561565b606091505b5091509150612572878383876125f4565b92505050949350505050565b606083156125e1576000835114156125d95761259985611db6565b6125d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125cf90613183565b60405180910390fd5b5b8290506125ec565b6125eb838361266a565b5b949350505050565b606083156126575760008351141561264f5761260f856126ba565b61264e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264590613183565b60405180910390fd5b5b829050612662565b61266183836126dd565b5b949350505050565b60008251111561267d5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b19190613021565b60405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156126f05781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127249190613021565b60405180910390fd5b600061274061273b846132b6565b613291565b90508281526020810184848401111561275c5761275b61345e565b5b6127678482856133ad565b509392505050565b60008135905061277e81613838565b92915050565b6000815190506127938161384f565b92915050565b6000815190506127a881613866565b92915050565b60008083601f8401126127c4576127c3613454565b5b8235905067ffffffffffffffff8111156127e1576127e061344f565b5b6020830191508360018202830111156127fd576127fc613459565b5b9250929050565b600082601f83011261281957612818613454565b5b813561282984826020860161272d565b91505092915050565b6000813590506128418161387d565b92915050565b6000815190506128568161387d565b92915050565b60006020828403121561287257612871613468565b5b60006128808482850161276f565b91505092915050565b600080604083850312156128a05761289f613468565b5b60006128ae8582860161276f565b92505060206128bf8582860161276f565b9150509250929050565b6000806000806000608086880312156128e5576128e4613468565b5b60006128f38882890161276f565b95505060206129048882890161276f565b945050604061291588828901612832565b935050606086013567ffffffffffffffff81111561293657612935613463565b5b612942888289016127ae565b92509250509295509295909350565b60008060006040848603121561296a57612969613468565b5b60006129788682870161276f565b935050602084013567ffffffffffffffff81111561299957612998613463565b5b6129a5868287016127ae565b92509250509250925092565b600080604083850312156129c8576129c7613468565b5b60006129d68582860161276f565b925050602083013567ffffffffffffffff8111156129f7576129f6613463565b5b612a0385828601612804565b9150509250929050565b600080600060608486031215612a2657612a25613468565b5b6000612a348682870161276f565b9350506020612a4586828701612832565b9250506040612a568682870161276f565b9150509250925092565b600080600080600060808688031215612a7c57612a7b613468565b5b6000612a8a8882890161276f565b9550506020612a9b88828901612832565b9450506040612aac8882890161276f565b935050606086013567ffffffffffffffff811115612acd57612acc613463565b5b612ad9888289016127ae565b92509250509295509295909350565b600060208284031215612afe57612afd613468565b5b6000612b0c84828501612784565b91505092915050565b600060208284031215612b2b57612b2a613468565b5b6000612b3984828501612799565b91505092915050565b600060208284031215612b5857612b57613468565b5b6000612b6684828501612847565b91505092915050565b612b788161332a565b82525050565b612b8781613348565b82525050565b6000612b9983856132fd565b9350612ba68385846133ad565b612baf8361346d565b840190509392505050565b6000612bc6838561330e565b9350612bd38385846133ad565b82840190509392505050565b6000612bea826132e7565b612bf481856132fd565b9350612c048185602086016133bc565b612c0d8161346d565b840191505092915050565b6000612c23826132e7565b612c2d818561330e565b9350612c3d8185602086016133bc565b80840191505092915050565b612c5281613389565b82525050565b612c618161339b565b82525050565b6000612c72826132f2565b612c7c8185613319565b9350612c8c8185602086016133bc565b612c958161346d565b840191505092915050565b6000612cad602683613319565b9150612cb88261347e565b604082019050919050565b6000612cd0602c83613319565b9150612cdb826134cd565b604082019050919050565b6000612cf3602c83613319565b9150612cfe8261351c565b604082019050919050565b6000612d16602683613319565b9150612d218261356b565b604082019050919050565b6000612d39603883613319565b9150612d44826135ba565b604082019050919050565b6000612d5c602983613319565b9150612d6782613609565b604082019050919050565b6000612d7f602e83613319565b9150612d8a82613658565b604082019050919050565b6000612da2602e83613319565b9150612dad826136a7565b604082019050919050565b6000612dc5602d83613319565b9150612dd0826136f6565b604082019050919050565b6000612de8602083613319565b9150612df382613745565b602082019050919050565b6000612e0b6000836132fd565b9150612e168261376e565b600082019050919050565b6000612e2e60008361330e565b9150612e398261376e565b600082019050919050565b6000612e51601d83613319565b9150612e5c82613771565b602082019050919050565b6000612e74602b83613319565b9150612e7f8261379a565b604082019050919050565b6000612e97602a83613319565b9150612ea2826137e9565b604082019050919050565b612eb681613372565b82525050565b6000612ec9828486612bba565b91508190509392505050565b6000612ee18284612c18565b915081905092915050565b6000612ef782612e21565b9150819050919050565b6000602082019050612f166000830184612b6f565b92915050565b6000606082019050612f316000830186612b6f565b612f3e6020830185612b6f565b612f4b6040830184612ead565b949350505050565b6000604082019050612f686000830185612b6f565b612f756020830184612c49565b9392505050565b6000604082019050612f916000830185612b6f565b612f9e6020830184612ead565b9392505050565b6000602082019050612fba6000830184612b7e565b92915050565b60006020820190508181036000830152612fdb818486612b8d565b90509392505050565b60006020820190508181036000830152612ffe8184612bdf565b905092915050565b600060208201905061301b6000830184612c58565b92915050565b6000602082019050818103600083015261303b8184612c67565b905092915050565b6000602082019050818103600083015261305c81612ca0565b9050919050565b6000602082019050818103600083015261307c81612cc3565b9050919050565b6000602082019050818103600083015261309c81612ce6565b9050919050565b600060208201905081810360008301526130bc81612d09565b9050919050565b600060208201905081810360008301526130dc81612d2c565b9050919050565b600060208201905081810360008301526130fc81612d4f565b9050919050565b6000602082019050818103600083015261311c81612d72565b9050919050565b6000602082019050818103600083015261313c81612d95565b9050919050565b6000602082019050818103600083015261315c81612db8565b9050919050565b6000602082019050818103600083015261317c81612ddb565b9050919050565b6000602082019050818103600083015261319c81612e44565b9050919050565b600060208201905081810360008301526131bc81612e67565b9050919050565b600060208201905081810360008301526131dc81612e8a565b9050919050565b60006060820190506131f86000830187612ead565b6132056020830186612b6f565b8181036040830152613218818486612b8d565b905095945050505050565b60006060820190506132386000830185612ead565b6132456020830184612b6f565b818103604083015261325681612dfe565b90509392505050565b60006040820190506132746000830186612ead565b8181036020830152613287818486612b8d565b9050949350505050565b600061329b6132ac565b90506132a782826133ef565b919050565b6000604051905090565b600067ffffffffffffffff8211156132d1576132d0613420565b5b6132da8261346d565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061333582613352565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061339482613372565b9050919050565b60006133a68261337c565b9050919050565b82818337600083830152505050565b60005b838110156133da5780820151818401526020810190506133bf565b838111156133e9576000848401525b50505050565b6133f88261346d565b810181811067ffffffffffffffff8211171561341757613416613420565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f64656c656761746563616c6c0000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f6163746976652070726f78790000000000000000000000000000000000000000602082015250565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f555550535570677261646561626c653a206d757374206e6f742062652063616c60008201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000602082015250565b7f45524331393637557067726164653a20756e737570706f727465642070726f7860008201527f6961626c65555549440000000000000000000000000000000000000000000000602082015250565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f45524331393637557067726164653a206e657720696d706c656d656e7461746960008201527f6f6e206973206e6f742055555053000000000000000000000000000000000000602082015250565b7f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60008201527f6f74206120636f6e747261637400000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6138418161332a565b811461384c57600080fd5b50565b6138588161333c565b811461386357600080fd5b50565b61386f81613348565b811461387a57600080fd5b50565b61388681613372565b811461389157600080fd5b5056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212209f492532b152769362ab43ba037efaf19136209d3a4482b99c545df62acdbfa164736f6c6343000807003360806040523480156200001157600080fd5b506040516200121938038062001219833981810160405281019062000037919062000106565b6001600081905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620000a7576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506200018b565b600081519050620001008162000171565b92915050565b6000602082840312156200011f576200011e6200016c565b5b60006200012f84828501620000ef565b91505092915050565b600062000145826200014c565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6200017c8162000138565b81146200018857600080fd5b50565b61107e806200019b6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c8063116191b61461005157806321fc65f21461006f578063c8a023621461008b578063d9caed12146100a7575b600080fd5b6100596100c3565b6040516100669190610c21565b60405180910390f35b61008960048036038101906100849190610945565b6100e9565b005b6100a560048036038101906100a09190610945565b610271565b005b6100c160048036038101906100bc91906108f2565b6103d3565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6100f1610478565b61013e600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848773ffffffffffffffffffffffffffffffffffffffff166104c89092919063ffffffff16565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635131ab5986868686866040518663ffffffff1660e01b81526004016101a1959493929190610baa565b600060405180830381600087803b1580156101bb57600080fd5b505af11580156101cf573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906101f891906109fa565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e85858560405161025a93929190610cf9565b60405180910390a361026a61054e565b5050505050565b610279610478565b6102c6600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848773ffffffffffffffffffffffffffffffffffffffff166104c89092919063ffffffff16565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b8969bd486868686866040518663ffffffff1660e01b8152600401610329959493929190610baa565b600060405180830381600087803b15801561034357600080fd5b505af1158015610357573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c88585856040516103bc93929190610cf9565b60405180910390a36103cc61054e565b5050505050565b6103db610478565b61040682828573ffffffffffffffffffffffffffffffffffffffff166104c89092919063ffffffff16565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb836040516104639190610cde565b60405180910390a361047361054e565b505050565b600260005414156104be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104b590610cbe565b60405180910390fd5b6002600081905550565b6105498363a9059cbb60e01b84846040516024016104e7929190610bf8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610558565b505050565b6001600081905550565b60006105ba826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661061f9092919063ffffffff16565b905060008151111561061a57808060200190518101906105da91906109cd565b610619576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061090610c9e565b60405180910390fd5b5b505050565b606061062e8484600085610637565b90509392505050565b60608247101561067c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067390610c5e565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516106a59190610b93565b60006040518083038185875af1925050503d80600081146106e2576040519150601f19603f3d011682016040523d82523d6000602084013e6106e7565b606091505b50915091506106f887838387610704565b92505050949350505050565b606083156107675760008351141561075f5761071f8561077a565b61075e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075590610c7e565b60405180910390fd5b5b829050610772565b610771838361079d565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156107b05781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e49190610c3c565b60405180910390fd5b60006108006107fb84610d50565b610d2b565b90508281526020810184848401111561081c5761081b610ef3565b5b610827848285610e51565b509392505050565b60008135905061083e81611003565b92915050565b6000815190506108538161101a565b92915050565b60008083601f84011261086f5761086e610ee9565b5b8235905067ffffffffffffffff81111561088c5761088b610ee4565b5b6020830191508360018202830111156108a8576108a7610eee565b5b9250929050565b600082601f8301126108c4576108c3610ee9565b5b81516108d48482602086016107ed565b91505092915050565b6000813590506108ec81611031565b92915050565b60008060006060848603121561090b5761090a610efd565b5b60006109198682870161082f565b935050602061092a8682870161082f565b925050604061093b868287016108dd565b9150509250925092565b60008060008060006080868803121561096157610960610efd565b5b600061096f8882890161082f565b95505060206109808882890161082f565b9450506040610991888289016108dd565b935050606086013567ffffffffffffffff8111156109b2576109b1610ef8565b5b6109be88828901610859565b92509250509295509295909350565b6000602082840312156109e3576109e2610efd565b5b60006109f184828501610844565b91505092915050565b600060208284031215610a1057610a0f610efd565b5b600082015167ffffffffffffffff811115610a2e57610a2d610ef8565b5b610a3a848285016108af565b91505092915050565b610a4c81610dc4565b82525050565b6000610a5e8385610d97565b9350610a6b838584610e42565b610a7483610f02565b840190509392505050565b6000610a8a82610d81565b610a948185610da8565b9350610aa4818560208601610e51565b80840191505092915050565b610ab981610e0c565b82525050565b6000610aca82610d8c565b610ad48185610db3565b9350610ae4818560208601610e51565b610aed81610f02565b840191505092915050565b6000610b05602683610db3565b9150610b1082610f13565b604082019050919050565b6000610b28601d83610db3565b9150610b3382610f62565b602082019050919050565b6000610b4b602a83610db3565b9150610b5682610f8b565b604082019050919050565b6000610b6e601f83610db3565b9150610b7982610fda565b602082019050919050565b610b8d81610e02565b82525050565b6000610b9f8284610a7f565b915081905092915050565b6000608082019050610bbf6000830188610a43565b610bcc6020830187610a43565b610bd96040830186610b84565b8181036060830152610bec818486610a52565b90509695505050505050565b6000604082019050610c0d6000830185610a43565b610c1a6020830184610b84565b9392505050565b6000602082019050610c366000830184610ab0565b92915050565b60006020820190508181036000830152610c568184610abf565b905092915050565b60006020820190508181036000830152610c7781610af8565b9050919050565b60006020820190508181036000830152610c9781610b1b565b9050919050565b60006020820190508181036000830152610cb781610b3e565b9050919050565b60006020820190508181036000830152610cd781610b61565b9050919050565b6000602082019050610cf36000830184610b84565b92915050565b6000604082019050610d0e6000830186610b84565b8181036020830152610d21818486610a52565b9050949350505050565b6000610d35610d46565b9050610d418282610e84565b919050565b6000604051905090565b600067ffffffffffffffff821115610d6b57610d6a610eb5565b5b610d7482610f02565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000610dcf82610de2565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610e1782610e1e565b9050919050565b6000610e2982610e30565b9050919050565b6000610e3b82610de2565b9050919050565b82818337600083830152505050565b60005b83811015610e6f578082015181840152602081019050610e54565b83811115610e7e576000848401525b50505050565b610e8d82610f02565b810181811067ffffffffffffffff82111715610eac57610eab610eb5565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b61100c81610dc4565b811461101757600080fd5b50565b61102381610dd6565b811461102e57600080fd5b50565b61103a81610e02565b811461104557600080fd5b5056fea2646970667358221220326721c0766c1858ba7ddfe1b887e1200ee1a6de1216da56899a4be08731568f64736f6c6343000807003360c06040523480156200001157600080fd5b50604051620011d4380380620011d483398181016040528101906200003791906200016c565b6001600081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480620000a75750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15620000df576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b81525050505062000206565b6000815190506200016681620001ec565b92915050565b60008060408385031215620001865762000185620001e7565b5b6000620001968582860162000155565b9250506020620001a98582860162000155565b9150509250929050565b6000620001c082620001c7565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b620001f781620001b3565b81146200020357600080fd5b50565b60805160601c60a05160601c610f81620002536000396000818160f4015281816101760152818161029701526102c801526000818160d20152818161013a01526102730152610f816000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806302a04c0d14610051578063116191b61461006d578063e8f9cb3a1461008b578063f3fef3a3146100a9575b600080fd5b61006b60048036038101906100669190610820565b6100c5565b005b610075610271565b6040516100829190610b12565b60405180910390f35b610093610295565b6040516100a09190610af7565b60405180910390f35b6100c360048036038101906100be91906107e0565b6102b9565b005b6100cd610366565b6101387f0000000000000000000000000000000000000000000000000000000000000000847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166103b69092919063ffffffff16565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635131ab597f0000000000000000000000000000000000000000000000000000000000000000868686866040518663ffffffff1660e01b81526004016101b9959493929190610a80565b600060405180830381600087803b1580156101d357600080fd5b505af11580156101e7573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061021091906108c1565b508373ffffffffffffffffffffffffffffffffffffffff167f7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced84848460405161025b93929190610bea565b60405180910390a261026b61043c565b50505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6102c1610366565b61030c82827f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166103b69092919063ffffffff16565b8173ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364826040516103529190610bcf565b60405180910390a261036261043c565b5050565b600260005414156103ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103a390610baf565b60405180910390fd5b6002600081905550565b6104378363a9059cbb60e01b84846040516024016103d5929190610ace565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610446565b505050565b6001600081905550565b60006104a8826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661050d9092919063ffffffff16565b905060008151111561050857808060200190518101906104c89190610894565b610507576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104fe90610b8f565b60405180910390fd5b5b505050565b606061051c8484600085610525565b90509392505050565b60608247101561056a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056190610b4f565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516105939190610a69565b60006040518083038185875af1925050503d80600081146105d0576040519150601f19603f3d011682016040523d82523d6000602084013e6105d5565b606091505b50915091506105e6878383876105f2565b92505050949350505050565b606083156106555760008351141561064d5761060d85610668565b61064c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064390610b6f565b60405180910390fd5b5b829050610660565b61065f838361068b565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60008251111561069e5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d29190610b2d565b60405180910390fd5b60006106ee6106e984610c41565b610c1c565b90508281526020810184848401111561070a57610709610df6565b5b610715848285610d54565b509392505050565b60008135905061072c81610f06565b92915050565b60008151905061074181610f1d565b92915050565b60008083601f84011261075d5761075c610dec565b5b8235905067ffffffffffffffff81111561077a57610779610de7565b5b60208301915083600182028301111561079657610795610df1565b5b9250929050565b600082601f8301126107b2576107b1610dec565b5b81516107c28482602086016106db565b91505092915050565b6000813590506107da81610f34565b92915050565b600080604083850312156107f7576107f6610e00565b5b60006108058582860161071d565b9250506020610816858286016107cb565b9150509250929050565b6000806000806060858703121561083a57610839610e00565b5b60006108488782880161071d565b9450506020610859878288016107cb565b935050604085013567ffffffffffffffff81111561087a57610879610dfb565b5b61088687828801610747565b925092505092959194509250565b6000602082840312156108aa576108a9610e00565b5b60006108b884828501610732565b91505092915050565b6000602082840312156108d7576108d6610e00565b5b600082015167ffffffffffffffff8111156108f5576108f4610dfb565b5b6109018482850161079d565b91505092915050565b61091381610cb5565b82525050565b60006109258385610c88565b9350610932838584610d45565b61093b83610e05565b840190509392505050565b600061095182610c72565b61095b8185610c99565b935061096b818560208601610d54565b80840191505092915050565b61098081610cfd565b82525050565b61098f81610d0f565b82525050565b60006109a082610c7d565b6109aa8185610ca4565b93506109ba818560208601610d54565b6109c381610e05565b840191505092915050565b60006109db602683610ca4565b91506109e682610e16565b604082019050919050565b60006109fe601d83610ca4565b9150610a0982610e65565b602082019050919050565b6000610a21602a83610ca4565b9150610a2c82610e8e565b604082019050919050565b6000610a44601f83610ca4565b9150610a4f82610edd565b602082019050919050565b610a6381610cf3565b82525050565b6000610a758284610946565b915081905092915050565b6000608082019050610a95600083018861090a565b610aa2602083018761090a565b610aaf6040830186610a5a565b8181036060830152610ac2818486610919565b90509695505050505050565b6000604082019050610ae3600083018561090a565b610af06020830184610a5a565b9392505050565b6000602082019050610b0c6000830184610977565b92915050565b6000602082019050610b276000830184610986565b92915050565b60006020820190508181036000830152610b478184610995565b905092915050565b60006020820190508181036000830152610b68816109ce565b9050919050565b60006020820190508181036000830152610b88816109f1565b9050919050565b60006020820190508181036000830152610ba881610a14565b9050919050565b60006020820190508181036000830152610bc881610a37565b9050919050565b6000602082019050610be46000830184610a5a565b92915050565b6000604082019050610bff6000830186610a5a565b8181036020830152610c12818486610919565b9050949350505050565b6000610c26610c37565b9050610c328282610d87565b919050565b6000604051905090565b600067ffffffffffffffff821115610c5c57610c5b610db8565b5b610c6582610e05565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000610cc082610cd3565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610d0882610d21565b9050919050565b6000610d1a82610d21565b9050919050565b6000610d2c82610d33565b9050919050565b6000610d3e82610cd3565b9050919050565b82818337600083830152505050565b60005b83811015610d72578082015181840152602081019050610d57565b83811115610d81576000848401525b50505050565b610d9082610e05565b810181811067ffffffffffffffff82111715610daf57610dae610db8565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b610f0f81610cb5565b8114610f1a57600080fd5b50565b610f2681610cc7565b8114610f3157600080fd5b50565b610f3d81610cf3565b8114610f4857600080fd5b5056fea2646970667358221220da212ba2d53390dc4639c6db16c2028d714e1179b80a39e1f053509901d87aeb64736f6c63430008070033608060405234801561001057600080fd5b5061108a806100206000396000f3fe60806040526004361061003f5760003560e01c8063357fc5a2146100445780636ed701691461006d578063e04d4f9714610084578063f05b6abf146100a0575b600080fd5b34801561005057600080fd5b5061006b6004803603810190610066919061085a565b6100c9565b005b34801561007957600080fd5b50610082610138565b005b61009e600480360381019061009991906107eb565b610171565b005b3480156100ac57600080fd5b506100c760048036038101906100c29190610733565b6101b5565b005b6100f63382858573ffffffffffffffffffffffffffffffffffffffff166101f7909392919063ffffffff16565b7f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af603384848460405161012b9493929190610bb0565b60405180910390a1505050565b7fbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a0336040516101679190610b0b565b60405180910390a1565b7f1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa33348585856040516101a8959493929190610bf5565b60405180910390a1505050565b7f74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146338484846040516101ea9493929190610b5d565b60405180910390a1505050565b61027a846323b872dd60e01b85858560405160240161021893929190610b26565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610280565b50505050565b60006102e2826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166103479092919063ffffffff16565b9050600081511115610342578080602001905181019061030291906107be565b610341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161033890610cb1565b60405180910390fd5b5b505050565b6060610356848460008561035f565b90509392505050565b6060824710156103a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039b90610c71565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516103cd9190610af4565b60006040518083038185875af1925050503d806000811461040a576040519150601f19603f3d011682016040523d82523d6000602084013e61040f565b606091505b50915091506104208783838761042c565b92505050949350505050565b6060831561048f5760008351141561048757610447856104a2565b610486576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047d90610c91565b60405180910390fd5b5b82905061049a565b61049983836104c5565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156104d85781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050c9190610c4f565b60405180910390fd5b600061052861052384610cf6565b610cd1565b9050808382526020820190508285602086028201111561054b5761054a610f23565b5b60005b8581101561059957813567ffffffffffffffff81111561057157610570610f1e565b5b80860161057e89826106f0565b8552602085019450602084019350505060018101905061054e565b5050509392505050565b60006105b66105b184610d22565b610cd1565b905080838252602082019050828560208602820111156105d9576105d8610f23565b5b60005b8581101561060957816105ef888261071e565b8452602084019350602083019250506001810190506105dc565b5050509392505050565b600061062661062184610d4e565b610cd1565b90508281526020810184848401111561064257610641610f28565b5b61064d848285610e7c565b509392505050565b6000813590506106648161100f565b92915050565b600082601f83011261067f5761067e610f1e565b5b813561068f848260208601610515565b91505092915050565b600082601f8301126106ad576106ac610f1e565b5b81356106bd8482602086016105a3565b91505092915050565b6000813590506106d581611026565b92915050565b6000815190506106ea81611026565b92915050565b600082601f83011261070557610704610f1e565b5b8135610715848260208601610613565b91505092915050565b60008135905061072d8161103d565b92915050565b60008060006060848603121561074c5761074b610f32565b5b600084013567ffffffffffffffff81111561076a57610769610f2d565b5b6107768682870161066a565b935050602084013567ffffffffffffffff81111561079757610796610f2d565b5b6107a386828701610698565b92505060406107b4868287016106c6565b9150509250925092565b6000602082840312156107d4576107d3610f32565b5b60006107e2848285016106db565b91505092915050565b60008060006060848603121561080457610803610f32565b5b600084013567ffffffffffffffff81111561082257610821610f2d565b5b61082e868287016106f0565b935050602061083f8682870161071e565b9250506040610850868287016106c6565b9150509250925092565b60008060006060848603121561087357610872610f32565b5b60006108818682870161071e565b935050602061089286828701610655565b92505060406108a386828701610655565b9150509250925092565b60006108b983836109fb565b905092915050565b60006108cd8383610ad6565b60208301905092915050565b6108e281610e34565b82525050565b60006108f382610d9f565b6108fd8185610de5565b93508360208202850161090f85610d7f565b8060005b8581101561094b578484038952815161092c85826108ad565b945061093783610dcb565b925060208a01995050600181019050610913565b50829750879550505050505092915050565b600061096882610daa565b6109728185610df6565b935061097d83610d8f565b8060005b838110156109ae57815161099588826108c1565b97506109a083610dd8565b925050600181019050610981565b5085935050505092915050565b6109c481610e46565b82525050565b60006109d582610db5565b6109df8185610e07565b93506109ef818560208601610e8b565b80840191505092915050565b6000610a0682610dc0565b610a108185610e12565b9350610a20818560208601610e8b565b610a2981610f37565b840191505092915050565b6000610a3f82610dc0565b610a498185610e23565b9350610a59818560208601610e8b565b610a6281610f37565b840191505092915050565b6000610a7a602683610e23565b9150610a8582610f48565b604082019050919050565b6000610a9d601d83610e23565b9150610aa882610f97565b602082019050919050565b6000610ac0602a83610e23565b9150610acb82610fc0565b604082019050919050565b610adf81610e72565b82525050565b610aee81610e72565b82525050565b6000610b0082846109ca565b915081905092915050565b6000602082019050610b2060008301846108d9565b92915050565b6000606082019050610b3b60008301866108d9565b610b4860208301856108d9565b610b556040830184610ae5565b949350505050565b6000608082019050610b7260008301876108d9565b8181036020830152610b8481866108e8565b90508181036040830152610b98818561095d565b9050610ba760608301846109bb565b95945050505050565b6000608082019050610bc560008301876108d9565b610bd26020830186610ae5565b610bdf60408301856108d9565b610bec60608301846108d9565b95945050505050565b600060a082019050610c0a60008301886108d9565b610c176020830187610ae5565b8181036040830152610c298186610a34565b9050610c386060830185610ae5565b610c4560808301846109bb565b9695505050505050565b60006020820190508181036000830152610c698184610a34565b905092915050565b60006020820190508181036000830152610c8a81610a6d565b9050919050565b60006020820190508181036000830152610caa81610a90565b9050919050565b60006020820190508181036000830152610cca81610ab3565b9050919050565b6000610cdb610cec565b9050610ce78282610ebe565b919050565b6000604051905090565b600067ffffffffffffffff821115610d1157610d10610eef565b5b602082029050602081019050919050565b600067ffffffffffffffff821115610d3d57610d3c610eef565b5b602082029050602081019050919050565b600067ffffffffffffffff821115610d6957610d68610eef565b5b610d7282610f37565b9050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000610e3f82610e52565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015610ea9578082015181840152602081019050610e8e565b83811115610eb8576000848401525b50505050565b610ec782610f37565b810181811067ffffffffffffffff82111715610ee657610ee5610eef565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b61101881610e34565b811461102357600080fd5b50565b61102f81610e46565b811461103a57600080fd5b50565b61104681610e72565b811461105157600080fd5b5056fea2646970667358221220086a1c9f56ed96506c7198d50cf431a5b03003c16cd4168d2395cdedfc1ac06164736f6c6343000807003360a06040523073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152503480156200004757600080fd5b50620000586200005e60201b60201c565b62000208565b600060019054906101000a900460ff1615620000b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000a8906200015c565b60405180910390fd5b60ff801660008054906101000a900460ff1660ff1614620001225760ff6000806101000a81548160ff021916908360ff1602179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860ff6040516200011991906200017e565b60405180910390a15b565b6000620001336027836200019b565b91506200014082620001b9565b604082019050919050565b6200015681620001ac565b82525050565b60006020820190508181036000830152620001778162000124565b9050919050565b60006020820190506200019560008301846200014b565b92915050565b600082825260208201905092915050565b600060ff82169050919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320696e69746960008201527f616c697a696e6700000000000000000000000000000000000000000000000000602082015250565b60805160601c613b1362000243600039600081816108d30152818161096201528181610b6801528181610bf70152610ca70152613b136000f3fe60806040526004361061011e5760003560e01c806352d1902d116100a0578063bcf7f32b11610064578063bcf7f32b14610373578063c39aca371461039c578063c4d66de8146103c5578063f2fde38b146103ee578063f45346dc146104175761011e565b806352d1902d146102b4578063715018a6146102df5780637993c1e0146102f65780638da5cb5b1461031f578063a613f3bb1461034a5761011e565b80632e1a7d4d116100e75780632e1a7d4d146101f25780633659cfe61461021b5780633ce4a5bc14610244578063430e8e321461026f5780634f1ef286146102985761011e565b8062173d46146101235780630ac7c44c1461014e578063135390f91461017757806321501a95146101a0578063267e75a0146101c9575b600080fd5b34801561012f57600080fd5b50610138610440565b6040516101459190612f7d565b60405180910390f35b34801561015a57600080fd5b50610175600480360381019061017091906126c5565b610466565b005b34801561018357600080fd5b5061019e60048036038101906101999190612741565b6104bd565b005b3480156101ac57600080fd5b506101c760048036038101906101c291906129c0565b6105a4565b005b3480156101d557600080fd5b506101f060048036038101906101eb9190612abe565b610773565b005b3480156101fe57600080fd5b5061021960048036038101906102149190612a64565b610825565b005b34801561022757600080fd5b50610242600480360381019061023d919061254f565b6108d1565b005b34801561025057600080fd5b50610259610a5a565b6040516102669190612f7d565b60405180910390f35b34801561027b57600080fd5b5061029660048036038101906102919190612854565b610a72565b005b6102b260048036038101906102ad919061257c565b610b66565b005b3480156102c057600080fd5b506102c9610ca3565b6040516102d691906131b4565b60405180910390f35b3480156102eb57600080fd5b506102f4610d5c565b005b34801561030257600080fd5b5061031d600480360381019061031891906127b0565b610d70565b005b34801561032b57600080fd5b50610334610e5d565b6040516103419190612f7d565b60405180910390f35b34801561035657600080fd5b50610371600480360381019061036c9190612854565b610e87565b005b34801561037f57600080fd5b5061039a6004803603810190610395919061290a565b6110b9565b005b3480156103a857600080fd5b506103c360048036038101906103be919061290a565b6111ad565b005b3480156103d157600080fd5b506103ec60048036038101906103e7919061254f565b6113df565b005b3480156103fa57600080fd5b506104156004803603810190610410919061254f565b611567565b005b34801561042357600080fd5b5061043e60048036038101906104399190612618565b6115eb565b005b60c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff167f2b5af078ce280d812dc2241658dc5435c93408020e5418eef55a2b536de51c0f8484846040516104b0939291906131cf565b60405180910390a2505050565b60006104c983836117a7565b90503373ffffffffffffffffffffffffffffffffffffffff167f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716838686858773ffffffffffffffffffffffffffffffffffffffff16634d8943bb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561054d57600080fd5b505afa158015610561573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105859190612a91565b60405161059695949392919061311e565b60405180910390a250505050565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461061d576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061069657503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156106cd576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106d78484611a97565b8273ffffffffffffffffffffffffffffffffffffffff1663de43156e8660c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168786866040518663ffffffff1660e01b815260040161073a9594939291906133fa565b600060405180830381600087803b15801561075457600080fd5b505af1158015610768573d6000803e3d6000fd5b505050505050505050565b6107918373735b14bb79463307aacbed86daf3322b1e6226ab611a97565b3373ffffffffffffffffffffffffffffffffffffffff167f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716600073735b14bb79463307aacbed86daf3322b1e6226ab6040516020016107f09190612f36565b6040516020818303038152906040528660008088886040516108189796959493929190612fcf565b60405180910390a2505050565b6108438173735b14bb79463307aacbed86daf3322b1e6226ab611a97565b3373ffffffffffffffffffffffffffffffffffffffff167f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716600073735b14bb79463307aacbed86daf3322b1e6226ab6040516020016108a29190612f36565b604051602081830303815290604052846000806040516108c6959493929190613040565b60405180910390a250565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610960576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095790613265565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661099f611cb3565b73ffffffffffffffffffffffffffffffffffffffff16146109f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ec90613285565b60405180910390fd5b6109fe81611d0a565b610a5781600067ffffffffffffffff811115610a1d57610a1c6136bf565b5b6040519080825280601f01601f191660200182016040528015610a4f5781602001600182028036833780820191505090505b506000611d15565b50565b73735b14bb79463307aacbed86daf3322b1e6226ab81565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610aeb576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff166369582bee87878786866040518663ffffffff1660e01b8152600401610b2c9594939291906133a5565b600060405180830381600087803b158015610b4657600080fd5b505af1158015610b5a573d6000803e3d6000fd5b50505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bec90613265565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610c34611cb3565b73ffffffffffffffffffffffffffffffffffffffff1614610c8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8190613285565b60405180910390fd5b610c9382611d0a565b610c9f82826001611d15565b5050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614610d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2a906132a5565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b905090565b610d64611e92565b610d6e6000611f10565b565b6000610d7c85856117a7565b90503373ffffffffffffffffffffffffffffffffffffffff167f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716858888858973ffffffffffffffffffffffffffffffffffffffff16634d8943bb6040518163ffffffff1660e01b815260040160206040518083038186803b158015610e0057600080fd5b505afa158015610e14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e389190612a91565b8989604051610e4d97969594939291906130ad565b60405180910390a2505050505050565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f00576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610f7957503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15610fb0576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff166347e7ef2484866040518363ffffffff1660e01b8152600401610feb92919061318b565b602060405180830381600087803b15801561100557600080fd5b505af1158015611019573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103d919061266b565b508273ffffffffffffffffffffffffffffffffffffffff166369582bee87878786866040518663ffffffff1660e01b815260040161107f9594939291906133a5565b600060405180830381600087803b15801561109957600080fd5b505af11580156110ad573d6000803e3d6000fd5b50505050505050505050565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611132576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663de43156e87878786866040518663ffffffff1660e01b81526004016111739594939291906133fa565b600060405180830381600087803b15801561118d57600080fd5b505af11580156111a1573d6000803e3d6000fd5b50505050505050505050565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611226576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061129f57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156112d6576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff166347e7ef2484866040518363ffffffff1660e01b815260040161131192919061318b565b602060405180830381600087803b15801561132b57600080fd5b505af115801561133f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611363919061266b565b508273ffffffffffffffffffffffffffffffffffffffff1663de43156e87878786866040518663ffffffff1660e01b81526004016113a59594939291906133fa565b600060405180830381600087803b1580156113bf57600080fd5b505af11580156113d3573d6000803e3d6000fd5b50505050505050505050565b60008060019054906101000a900460ff161590508080156114105750600160008054906101000a900460ff1660ff16105b8061143d575061141f30611fd6565b15801561143c5750600160008054906101000a900460ff1660ff16145b5b61147c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611473906132e5565b60405180910390fd5b60016000806101000a81548160ff021916908360ff16021790555080156114b9576001600060016101000a81548160ff0219169083151502179055505b6114c1611ff9565b6114c9612052565b8160c960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080156115635760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498600160405161155a9190613208565b60405180910390a15b5050565b61156f611e92565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156115df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d690613245565b60405180910390fd5b6115e881611f10565b50565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611664576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806116dd57503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15611714576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff166347e7ef2482846040518363ffffffff1660e01b815260040161174f92919061318b565b602060405180830381600087803b15801561176957600080fd5b505af115801561177d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a1919061266b565b50505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1663d9eeebed6040518163ffffffff1660e01b8152600401604080518083038186803b1580156117f157600080fd5b505afa158015611805573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182991906125d8565b915091508173ffffffffffffffffffffffffffffffffffffffff166323b872dd3373735b14bb79463307aacbed86daf3322b1e6226ab846040518463ffffffff1660e01b815260040161187e93929190612f98565b602060405180830381600087803b15801561189857600080fd5b505af11580156118ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118d0919061266b565b611906576040517f0a7cd6d600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd3330886040518463ffffffff1660e01b815260040161194393929190612f98565b602060405180830381600087803b15801561195d57600080fd5b505af1158015611971573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611995919061266b565b6119cb576040517f4dd9ee8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff166342966c68866040518263ffffffff1660e01b8152600401611a04919061344f565b602060405180830381600087803b158015611a1e57600080fd5b505af1158015611a32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a56919061266b565b611a8c576040517f2c77e05c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b809250505092915050565b60c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b8152600401611af693929190612f98565b602060405180830381600087803b158015611b1057600080fd5b505af1158015611b24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b48919061266b565b611b7e576040517fa8c6fd4a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b8152600401611bd9919061344f565b600060405180830381600087803b158015611bf357600080fd5b505af1158015611c07573d6000803e3d6000fd5b5050505060008173ffffffffffffffffffffffffffffffffffffffff1683604051611c3190612f68565b60006040518083038185875af1925050503d8060008114611c6e576040519150601f19603f3d011682016040523d82523d6000602084013e611c73565b606091505b5050905080611cae576040517fc7ffc47b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b6000611ce17f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6120a3565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611d12611e92565b50565b611d417f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914360001b6120ad565b60000160009054906101000a900460ff1615611d6557611d60836120b7565b611e8d565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611dab57600080fd5b505afa925050508015611ddc57506040513d601f19601f82011682018060405250810190611dd99190612698565b60015b611e1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1290613305565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b8114611e80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e77906132c5565b60405180910390fd5b50611e8c838383612170565b5b505050565b611e9a61219c565b73ffffffffffffffffffffffffffffffffffffffff16611eb8610e5d565b73ffffffffffffffffffffffffffffffffffffffff1614611f0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0590613345565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16612048576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203f90613385565b60405180910390fd5b6120506121a4565b565b600060019054906101000a900460ff166120a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209890613385565b60405180910390fd5b565b6000819050919050565b6000819050919050565b6120c081611fd6565b6120ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f690613325565b60405180910390fd5b8061212c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6120a3565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61217983612205565b6000825111806121865750805b15612197576121958383612254565b505b505050565b600033905090565b600060019054906101000a900460ff166121f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ea90613385565b60405180910390fd5b6122036121fe61219c565b611f10565b565b61220e816120b7565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b60606122798383604051806060016040528060278152602001613ab760279139612281565b905092915050565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516122ab9190612f51565b600060405180830381855af49150503d80600081146122e6576040519150601f19603f3d011682016040523d82523d6000602084013e6122eb565b606091505b50915091506122fc86838387612307565b925050509392505050565b6060831561236a576000835114156123625761232285611fd6565b612361576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235890613365565b60405180910390fd5b5b829050612375565b612374838361237d565b5b949350505050565b6000825111156123905781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c49190613223565b60405180910390fd5b60006123e06123db8461348f565b61346a565b9050828152602081018484840111156123fc576123fb61370c565b5b612407848285613628565b509392505050565b60008135905061241e81613a5a565b92915050565b60008151905061243381613a5a565b92915050565b60008151905061244881613a71565b92915050565b60008151905061245d81613a88565b92915050565b60008083601f840112612479576124786136f8565b5b8235905067ffffffffffffffff811115612496576124956136f3565b5b6020830191508360018202830111156124b2576124b1613707565b5b9250929050565b600082601f8301126124ce576124cd6136f8565b5b81356124de8482602086016123cd565b91505092915050565b6000606082840312156124fd576124fc6136fd565b5b81905092915050565b60006060828403121561251c5761251b6136fd565b5b81905092915050565b60008135905061253481613a9f565b92915050565b60008151905061254981613a9f565b92915050565b6000602082840312156125655761256461371b565b5b60006125738482850161240f565b91505092915050565b600080604083850312156125935761259261371b565b5b60006125a18582860161240f565b925050602083013567ffffffffffffffff8111156125c2576125c1613711565b5b6125ce858286016124b9565b9150509250929050565b600080604083850312156125ef576125ee61371b565b5b60006125fd85828601612424565b925050602061260e8582860161253a565b9150509250929050565b6000806000606084860312156126315761263061371b565b5b600061263f8682870161240f565b935050602061265086828701612525565b92505060406126618682870161240f565b9150509250925092565b6000602082840312156126815761268061371b565b5b600061268f84828501612439565b91505092915050565b6000602082840312156126ae576126ad61371b565b5b60006126bc8482850161244e565b91505092915050565b6000806000604084860312156126de576126dd61371b565b5b600084013567ffffffffffffffff8111156126fc576126fb613711565b5b612708868287016124b9565b935050602084013567ffffffffffffffff81111561272957612728613711565b5b61273586828701612463565b92509250509250925092565b60008060006060848603121561275a5761275961371b565b5b600084013567ffffffffffffffff81111561277857612777613711565b5b612784868287016124b9565b935050602061279586828701612525565b92505060406127a68682870161240f565b9150509250925092565b6000806000806000608086880312156127cc576127cb61371b565b5b600086013567ffffffffffffffff8111156127ea576127e9613711565b5b6127f6888289016124b9565b955050602061280788828901612525565b94505060406128188882890161240f565b935050606086013567ffffffffffffffff81111561283957612838613711565b5b61284588828901612463565b92509250509295509295909350565b60008060008060008060a087890312156128715761287061371b565b5b600087013567ffffffffffffffff81111561288f5761288e613711565b5b61289b89828a016124e7565b96505060206128ac89828a0161240f565b95505060406128bd89828a01612525565b94505060606128ce89828a0161240f565b935050608087013567ffffffffffffffff8111156128ef576128ee613711565b5b6128fb89828a01612463565b92509250509295509295509295565b60008060008060008060a087890312156129275761292661371b565b5b600087013567ffffffffffffffff81111561294557612944613711565b5b61295189828a01612506565b965050602061296289828a0161240f565b955050604061297389828a01612525565b945050606061298489828a0161240f565b935050608087013567ffffffffffffffff8111156129a5576129a4613711565b5b6129b189828a01612463565b92509250509295509295509295565b6000806000806000608086880312156129dc576129db61371b565b5b600086013567ffffffffffffffff8111156129fa576129f9613711565b5b612a0688828901612506565b9550506020612a1788828901612525565b9450506040612a288882890161240f565b935050606086013567ffffffffffffffff811115612a4957612a48613711565b5b612a5588828901612463565b92509250509295509295909350565b600060208284031215612a7a57612a7961371b565b5b6000612a8884828501612525565b91505092915050565b600060208284031215612aa757612aa661371b565b5b6000612ab58482850161253a565b91505092915050565b600080600060408486031215612ad757612ad661371b565b5b6000612ae586828701612525565b935050602084013567ffffffffffffffff811115612b0657612b05613711565b5b612b1286828701612463565b92509250509250925092565b612b27816135a5565b82525050565b612b36816135a5565b82525050565b612b4d612b48826135a5565b61369b565b82525050565b612b5c816135c3565b82525050565b6000612b6e83856134d6565b9350612b7b838584613628565b612b8483613720565b840190509392505050565b6000612b9b83856134e7565b9350612ba8838584613628565b612bb183613720565b840190509392505050565b6000612bc7826134c0565b612bd181856134e7565b9350612be1818560208601613637565b612bea81613720565b840191505092915050565b6000612c00826134c0565b612c0a81856134f8565b9350612c1a818560208601613637565b80840191505092915050565b612c2f81613604565b82525050565b612c3e81613616565b82525050565b6000612c4f826134cb565b612c598185613503565b9350612c69818560208601613637565b612c7281613720565b840191505092915050565b6000612c8a602683613503565b9150612c958261373e565b604082019050919050565b6000612cad602c83613503565b9150612cb88261378d565b604082019050919050565b6000612cd0602c83613503565b9150612cdb826137dc565b604082019050919050565b6000612cf3603883613503565b9150612cfe8261382b565b604082019050919050565b6000612d16602983613503565b9150612d218261387a565b604082019050919050565b6000612d39602e83613503565b9150612d44826138c9565b604082019050919050565b6000612d5c602e83613503565b9150612d6782613918565b604082019050919050565b6000612d7f602d83613503565b9150612d8a82613967565b604082019050919050565b6000612da2602083613503565b9150612dad826139b6565b602082019050919050565b6000612dc56000836134e7565b9150612dd0826139df565b600082019050919050565b6000612de86000836134f8565b9150612df3826139df565b600082019050919050565b6000612e0b601d83613503565b9150612e16826139e2565b602082019050919050565b6000612e2e602b83613503565b9150612e3982613a0b565b604082019050919050565b600060608301612e57600084018461352b565b8583036000870152612e6a838284612b62565b92505050612e7b6020840184613514565b612e886020860182612b1e565b50612e96604084018461358e565b612ea36040860182612f18565b508091505092915050565b600060608301612ec1600084018461352b565b8583036000870152612ed4838284612b62565b92505050612ee56020840184613514565b612ef26020860182612b1e565b50612f00604084018461358e565b612f0d6040860182612f18565b508091505092915050565b612f21816135ed565b82525050565b612f30816135ed565b82525050565b6000612f428284612b3c565b60148201915081905092915050565b6000612f5d8284612bf5565b915081905092915050565b6000612f7382612ddb565b9150819050919050565b6000602082019050612f926000830184612b2d565b92915050565b6000606082019050612fad6000830186612b2d565b612fba6020830185612b2d565b612fc76040830184612f27565b949350505050565b600060c082019050612fe4600083018a612b2d565b8181036020830152612ff68189612bbc565b90506130056040830188612f27565b6130126060830187612c26565b61301f6080830186612c26565b81810360a0830152613032818486612b8f565b905098975050505050505050565b600060c0820190506130556000830188612b2d565b81810360208301526130678187612bbc565b90506130766040830186612f27565b6130836060830185612c26565b6130906080830184612c26565b81810360a08301526130a181612db8565b90509695505050505050565b600060c0820190506130c2600083018a612b2d565b81810360208301526130d48189612bbc565b90506130e36040830188612f27565b6130f06060830187612f27565b6130fd6080830186612f27565b81810360a0830152613110818486612b8f565b905098975050505050505050565b600060c0820190506131336000830188612b2d565b81810360208301526131458187612bbc565b90506131546040830186612f27565b6131616060830185612f27565b61316e6080830184612f27565b81810360a083015261317f81612db8565b90509695505050505050565b60006040820190506131a06000830185612b2d565b6131ad6020830184612f27565b9392505050565b60006020820190506131c96000830184612b53565b92915050565b600060408201905081810360008301526131e98186612bbc565b905081810360208301526131fe818486612b8f565b9050949350505050565b600060208201905061321d6000830184612c35565b92915050565b6000602082019050818103600083015261323d8184612c44565b905092915050565b6000602082019050818103600083015261325e81612c7d565b9050919050565b6000602082019050818103600083015261327e81612ca0565b9050919050565b6000602082019050818103600083015261329e81612cc3565b9050919050565b600060208201905081810360008301526132be81612ce6565b9050919050565b600060208201905081810360008301526132de81612d09565b9050919050565b600060208201905081810360008301526132fe81612d2c565b9050919050565b6000602082019050818103600083015261331e81612d4f565b9050919050565b6000602082019050818103600083015261333e81612d72565b9050919050565b6000602082019050818103600083015261335e81612d95565b9050919050565b6000602082019050818103600083015261337e81612dfe565b9050919050565b6000602082019050818103600083015261339e81612e21565b9050919050565b600060808201905081810360008301526133bf8188612e44565b90506133ce6020830187612b2d565b6133db6040830186612f27565b81810360608301526133ee818486612b8f565b90509695505050505050565b600060808201905081810360008301526134148188612eae565b90506134236020830187612b2d565b6134306040830186612f27565b8181036060830152613443818486612b8f565b90509695505050505050565b60006020820190506134646000830184612f27565b92915050565b6000613474613485565b9050613480828261366a565b919050565b6000604051905090565b600067ffffffffffffffff8211156134aa576134a96136bf565b5b6134b382613720565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000613523602084018461240f565b905092915050565b6000808335600160200384360303811261354857613547613716565b5b83810192508235915060208301925067ffffffffffffffff8211156135705761356f6136ee565b5b60018202360384131561358657613585613702565b5b509250929050565b600061359d6020840184612525565b905092915050565b60006135b0826135cd565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061360f826135ed565b9050919050565b6000613621826135f7565b9050919050565b82818337600083830152505050565b60005b8381101561365557808201518184015260208101905061363a565b83811115613664576000848401525b50505050565b61367382613720565b810181811067ffffffffffffffff82111715613692576136916136bf565b5b80604052505050565b60006136a6826136ad565b9050919050565b60006136b882613731565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f64656c656761746563616c6c0000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f6163746976652070726f78790000000000000000000000000000000000000000602082015250565b7f555550535570677261646561626c653a206d757374206e6f742062652063616c60008201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000602082015250565b7f45524331393637557067726164653a20756e737570706f727465642070726f7860008201527f6961626c65555549440000000000000000000000000000000000000000000000602082015250565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f45524331393637557067726164653a206e657720696d706c656d656e7461746960008201527f6f6e206973206e6f742055555053000000000000000000000000000000000000602082015250565b7f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60008201527f6f74206120636f6e747261637400000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b613a63816135a5565b8114613a6e57600080fd5b50565b613a7a816135b7565b8114613a8557600080fd5b50565b613a91816135c3565b8114613a9c57600080fd5b50565b613aa8816135ed565b8114613ab357600080fd5b5056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212200dd477a7fa41750f0fe91930c4aaeeb63880b6585663dcaae30d49ba9d74c7c664736f6c63430008070033608060405234801561001057600080fd5b50604051610bcd380380610bcd8339818101604052810190610032919061008d565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610108565b600081519050610087816100f1565b92915050565b6000602082840312156100a3576100a26100ec565b5b60006100b184828501610078565b91505092915050565b60006100c5826100cc565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6100fa816100ba565b811461010557600080fd5b50565b610ab6806101176000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630abd890514610046578063116191b614610062578063a0a1730b14610080575b600080fd5b610060600480360381019061005b91906105fd565b61009c565b005b61006a6102af565b6040516100779190610761565b60405180910390f35b61009a6004803603810190610095919061055e565b6102d3565b005b60008383836040516024016100b39392919061082f565b6040516020818303038152906040527fe04d4f97000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090508473ffffffffffffffffffffffffffffffffffffffff1663095ea7b360008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16886040518363ffffffff1660e01b815260040161018d92919061077c565b602060405180830381600087803b1580156101a757600080fd5b505af11580156101bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101df9190610531565b610215576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637993c1e0888888856040518563ffffffff1660e01b815260040161027494939291906107dc565b600060405180830381600087803b15801561028e57600080fd5b505af11580156102a2573d6000803e3d6000fd5b5050505050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008383836040516024016102ea9392919061082f565b6040516020818303038152906040527fe04d4f97000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630ac7c44c86836040518363ffffffff1660e01b81526004016103c49291906107a5565b600060405180830381600087803b1580156103de57600080fd5b505af11580156103f2573d6000803e3d6000fd5b505050505050505050565b600061041061040b84610892565b61086d565b90508281526020810184848401111561042c5761042b610a1b565b5b610437848285610974565b509392505050565b600061045261044d846108c3565b61086d565b90508281526020810184848401111561046e5761046d610a1b565b5b610479848285610974565b509392505050565b60008135905061049081610a3b565b92915050565b6000813590506104a581610a52565b92915050565b6000815190506104ba81610a52565b92915050565b600082601f8301126104d5576104d4610a16565b5b81356104e58482602086016103fd565b91505092915050565b600082601f83011261050357610502610a16565b5b813561051384826020860161043f565b91505092915050565b60008135905061052b81610a69565b92915050565b60006020828403121561054757610546610a25565b5b6000610555848285016104ab565b91505092915050565b6000806000806080858703121561057857610577610a25565b5b600085013567ffffffffffffffff81111561059657610595610a20565b5b6105a2878288016104c0565b945050602085013567ffffffffffffffff8111156105c3576105c2610a20565b5b6105cf878288016104ee565b93505060406105e08782880161051c565b92505060606105f187828801610496565b91505092959194509250565b60008060008060008060c0878903121561061a57610619610a25565b5b600087013567ffffffffffffffff81111561063857610637610a20565b5b61064489828a016104c0565b965050602061065589828a0161051c565b955050604061066689828a01610481565b945050606087013567ffffffffffffffff81111561068757610686610a20565b5b61069389828a016104ee565b93505060806106a489828a0161051c565b92505060a06106b589828a01610496565b9150509295509295509295565b6106cb8161092c565b82525050565b6106da8161093e565b82525050565b60006106eb826108f4565b6106f5818561090a565b9350610705818560208601610983565b61070e81610a2a565b840191505092915050565b6000610724826108ff565b61072e818561091b565b935061073e818560208601610983565b61074781610a2a565b840191505092915050565b61075b8161096a565b82525050565b600060208201905061077660008301846106c2565b92915050565b600060408201905061079160008301856106c2565b61079e6020830184610752565b9392505050565b600060408201905081810360008301526107bf81856106e0565b905081810360208301526107d381846106e0565b90509392505050565b600060808201905081810360008301526107f681876106e0565b90506108056020830186610752565b61081260408301856106c2565b818103606083015261082481846106e0565b905095945050505050565b600060608201905081810360008301526108498186610719565b90506108586020830185610752565b61086560408301846106d1565b949350505050565b6000610877610888565b905061088382826109b6565b919050565b6000604051905090565b600067ffffffffffffffff8211156108ad576108ac6109e7565b5b6108b682610a2a565b9050602081019050919050565b600067ffffffffffffffff8211156108de576108dd6109e7565b5b6108e782610a2a565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006109378261094a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156109a1578082015181840152602081019050610986565b838111156109b0576000848401525b50505050565b6109bf82610a2a565b810181811067ffffffffffffffff821117156109de576109dd6109e7565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b610a448161092c565b8114610a4f57600080fd5b50565b610a5b8161093e565b8114610a6657600080fd5b50565b610a728161096a565b8114610a7d57600080fd5b5056fea264697066735822122071a41b7e8232f98e8257a24fd602c7cc7b7cd2eab6d352fb5c5fbe1412f3398364736f6c6343000807003360806040523480156200001157600080fd5b50604051620010d7380380620010d7833981810160405281019062000037919062000146565b82600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f80699e81136d69cb8367ad52a994e25c722a86da654b561d0c14b61a777e7ac560405160405180910390a1505050620001f5565b6000815190506200014081620001db565b92915050565b600080600060608486031215620001625762000161620001d6565b5b600062000172868287016200012f565b935050602062000185868287016200012f565b925050604062000198868287016200012f565b9150509250925092565b6000620001af82620001b6565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b620001e681620001a2565b8114620001f257600080fd5b50565b610ed280620002056000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c806397770dff1161007157806397770dff14610166578063a7cb050714610182578063c63585cc1461019e578063d7fd7afb146101ce578063d936a012146101fe578063ee2815ba1461021c576100a9565b80630be15547146100ae5780633c669d55146100de578063513a9c05146100fa578063569541b91461012a578063842da36d14610148575b600080fd5b6100c860048036038101906100c3919061094d565b610238565b6040516100d59190610bce565b60405180910390f35b6100f860048036038101906100f39190610898565b61026b565b005b610114600480360381019061010f919061094d565b6103b8565b6040516101219190610bce565b60405180910390f35b6101326103eb565b60405161013f9190610bce565b60405180910390f35b610150610411565b60405161015d9190610bce565b60405180910390f35b610180600480360381019061017b9190610818565b610437565b005b61019c600480360381019061019791906109ba565b6104d4565b005b6101b860048036038101906101b39190610845565b610528565b6040516101c59190610bce565b60405180910390f35b6101e860048036038101906101e3919061094d565b61059a565b6040516101f59190610c67565b60405180910390f35b6102066105b2565b6040516102139190610bce565b60405180910390f35b6102366004803603810190610231919061097a565b6105d8565b005b60016020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060405180606001604052806040518060200160405280600081525081526020013373ffffffffffffffffffffffffffffffffffffffff1681526020014681525090508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87866040518363ffffffff1660e01b81526004016102ea929190610be9565b602060405180830381600087803b15801561030457600080fd5b505af1158015610318573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033c9190610920565b508573ffffffffffffffffffffffffffffffffffffffff1663de43156e82878787876040518663ffffffff1660e01b815260040161037e959493929190610c12565b600060405180830381600087803b15801561039857600080fd5b505af11580156103ac573d6000803e3d6000fd5b50505050505050505050565b60026020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fdba79d534382d1a8ae108e4c8ecb27c6ae42ab8b91d44eedf88bd329f3868d5e600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516104c99190610bce565b60405180910390a150565b80600080848152602001908152602001600020819055507f49f492222906ac486c3c1401fa545626df1f0c0e5a77a05597ea2ed66af9850d828260405161051c929190610cab565b60405180910390a15050565b60008060006105378585610667565b9150915085828260405160200161054f929190610b60565b60405160208183030381529060405280519060200120604051602001610576929190610b8c565b6040516020818303038152906040528051906020012060001c925050509392505050565b60006020528060005260406000206000915090505481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b806001600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd1b36d30f6248e97c473b4d1348ca164a4ef6759022f54a58ec200326c39c45d828260405161065b929190610c82565b60405180910390a15050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156106d0576040517fcb1e7cfe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161061070a57828461070d565b83835b8092508193505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561077c576040517f78b507da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b60008135905061079281610e57565b92915050565b6000815190506107a781610e6e565b92915050565b60008083601f8401126107c3576107c2610dd3565b5b8235905067ffffffffffffffff8111156107e0576107df610dce565b5b6020830191508360018202830111156107fc576107fb610dd8565b5b9250929050565b60008135905061081281610e85565b92915050565b60006020828403121561082e5761082d610de2565b5b600061083c84828501610783565b91505092915050565b60008060006060848603121561085e5761085d610de2565b5b600061086c86828701610783565b935050602061087d86828701610783565b925050604061088e86828701610783565b9150509250925092565b6000806000806000608086880312156108b4576108b3610de2565b5b60006108c288828901610783565b95505060206108d388828901610783565b94505060406108e488828901610803565b935050606086013567ffffffffffffffff81111561090557610904610ddd565b5b610911888289016107ad565b92509250509295509295909350565b60006020828403121561093657610935610de2565b5b600061094484828501610798565b91505092915050565b60006020828403121561096357610962610de2565b5b600061097184828501610803565b91505092915050565b6000806040838503121561099157610990610de2565b5b600061099f85828601610803565b92505060206109b085828601610783565b9150509250929050565b600080604083850312156109d1576109d0610de2565b5b60006109df85828601610803565b92505060206109f085828601610803565b9150509250929050565b610a0381610d0c565b82525050565b610a1281610d0c565b82525050565b610a29610a2482610d0c565b610da0565b82525050565b610a40610a3b82610d2a565b610db2565b82525050565b6000610a528385610cf0565b9350610a5f838584610d5e565b610a6883610de7565b840190509392505050565b6000610a7e82610cd4565b610a888185610cdf565b9350610a98818560208601610d6d565b610aa181610de7565b840191505092915050565b6000610ab9602083610d01565b9150610ac482610e05565b602082019050919050565b6000610adc600183610d01565b9150610ae782610e2e565b600182019050919050565b60006060830160008301518482036000860152610b0f8282610a73565b9150506020830151610b2460208601826109fa565b506040830151610b376040860182610b42565b508091505092915050565b610b4b81610d54565b82525050565b610b5a81610d54565b82525050565b6000610b6c8285610a18565b601482019150610b7c8284610a18565b6014820191508190509392505050565b6000610b9782610acf565b9150610ba38285610a18565b601482019150610bb38284610a2f565b602082019150610bc282610aac565b91508190509392505050565b6000602082019050610be36000830184610a09565b92915050565b6000604082019050610bfe6000830185610a09565b610c0b6020830184610b51565b9392505050565b60006080820190508181036000830152610c2c8188610af2565b9050610c3b6020830187610a09565b610c486040830186610b51565b8181036060830152610c5b818486610a46565b90509695505050505050565b6000602082019050610c7c6000830184610b51565b92915050565b6000604082019050610c976000830185610b51565b610ca46020830184610a09565b9392505050565b6000604082019050610cc06000830185610b51565b610ccd6020830184610b51565b9392505050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000610d1782610d34565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015610d8b578082015181840152602081019050610d70565b83811115610d9a576000848401525b50505050565b6000610dab82610dbc565b9050919050565b6000819050919050565b6000610dc782610df8565b9050919050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f600082015250565b7fff00000000000000000000000000000000000000000000000000000000000000600082015250565b610e6081610d0c565b8114610e6b57600080fd5b50565b610e7781610d1e565b8114610e8257600080fd5b50565b610e8e81610d54565b8114610e9957600080fd5b5056fea26469706673582212200835245fdc75aa593111cf5a43e919740b2258e1512040bc79f39a56cedf119364736f6c6343000807003360c06040523480156200001157600080fd5b506040516200282d3803806200282d83398181016040528101906200003791906200035b565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614620000b1576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8760079080519060200190620000c9929190620001d1565b508660089080519060200190620000e2929190620001d1565b5085600960006101000a81548160ff021916908360ff16021790555084608081815250508360028111156200011c576200011b620005ae565b5b60a0816002811115620001345762000133620005ae565b5b60f81b8152505082600281905550816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505050620006bf565b828054620001df9062000542565b90600052602060002090601f0160209004810192826200020357600085556200024f565b82601f106200021e57805160ff19168380011785556200024f565b828001600101855582156200024f579182015b828111156200024e57825182559160200191906001019062000231565b5b5090506200025e919062000262565b5090565b5b808211156200027d57600081600090555060010162000263565b5090565b60006200029862000292846200048b565b62000462565b905082815260208101848484011115620002b757620002b662000640565b5b620002c48482856200050c565b509392505050565b600081519050620002dd8162000660565b92915050565b600081519050620002f4816200067a565b92915050565b600082601f8301126200031257620003116200063b565b5b81516200032484826020860162000281565b91505092915050565b6000815190506200033e816200068b565b92915050565b6000815190506200035581620006a5565b92915050565b600080600080600080600080610100898b0312156200037f576200037e6200064a565b5b600089015167ffffffffffffffff811115620003a0576200039f62000645565b5b620003ae8b828c01620002fa565b985050602089015167ffffffffffffffff811115620003d257620003d162000645565b5b620003e08b828c01620002fa565b9750506040620003f38b828c0162000344565b9650506060620004068b828c016200032d565b9550506080620004198b828c01620002e3565b94505060a06200042c8b828c016200032d565b93505060c06200043f8b828c01620002cc565b92505060e0620004528b828c01620002cc565b9150509295985092959890939650565b60006200046e62000481565b90506200047c828262000578565b919050565b6000604051905090565b600067ffffffffffffffff821115620004a957620004a86200060c565b5b620004b4826200064f565b9050602081019050919050565b6000620004ce82620004d5565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156200052c5780820151818401526020810190506200050f565b838111156200053c576000848401525b50505050565b600060028204905060018216806200055b57607f821691505b60208210811415620005725762000571620005dd565b5b50919050565b62000583826200064f565b810181811067ffffffffffffffff82111715620005a557620005a46200060c565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b6200066b81620004c1565b81146200067757600080fd5b50565b600381106200068857600080fd5b50565b6200069681620004f5565b8114620006a257600080fd5b50565b620006b081620004ff565b8114620006bc57600080fd5b50565b60805160a05160f81c612137620006f660003960006109580152600081816108a201528181610c250152610d5a01526121376000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806385e1f4d0116100c3578063d9eeebed1161007c578063d9eeebed146103cc578063dd62ed3e146103eb578063e2f535b81461041b578063eddeb12314610439578063f2441b3214610455578063f687d12a146104735761014d565b806385e1f4d0146102f657806395d89b4114610314578063a3413d0314610332578063a9059cbb14610350578063c701262614610380578063c835d7cc146103b05761014d565b8063313ce56711610115578063313ce5671461020c5780633ce4a5bc1461022a57806342966c681461024857806347e7ef24146102785780634d8943bb146102a857806370a08231146102c65761014d565b806306fdde0314610152578063091d278814610170578063095ea7b31461018e57806318160ddd146101be57806323b872dd146101dc575b600080fd5b61015a61048f565b6040516101679190611cad565b60405180910390f35b610178610521565b6040516101859190611ccf565b60405180910390f35b6101a860048036038101906101a3919061196e565b610527565b6040516101b59190611bfb565b60405180910390f35b6101c6610545565b6040516101d39190611ccf565b60405180910390f35b6101f660048036038101906101f1919061191b565b61054f565b6040516102039190611bfb565b60405180910390f35b610214610647565b6040516102219190611cea565b60405180910390f35b61023261065e565b60405161023f9190611b80565b60405180910390f35b610262600480360381019061025d9190611a37565b610676565b60405161026f9190611bfb565b60405180910390f35b610292600480360381019061028d919061196e565b61068b565b60405161029f9190611bfb565b60405180910390f35b6102b0610851565b6040516102bd9190611ccf565b60405180910390f35b6102e060048036038101906102db9190611881565b610857565b6040516102ed9190611ccf565b60405180910390f35b6102fe6108a0565b60405161030b9190611ccf565b60405180910390f35b61031c6108c4565b6040516103299190611cad565b60405180910390f35b61033a610956565b6040516103479190611c92565b60405180910390f35b61036a6004803603810190610365919061196e565b61097a565b6040516103779190611bfb565b60405180910390f35b61039a600480360381019061039591906119db565b610998565b6040516103a79190611bfb565b60405180910390f35b6103ca60048036038101906103c59190611881565b610aee565b005b6103d4610be1565b6040516103e2929190611bd2565b60405180910390f35b610405600480360381019061040091906118db565b610e4e565b6040516104129190611ccf565b60405180910390f35b610423610ed5565b6040516104309190611b80565b60405180910390f35b610453600480360381019061044e9190611a37565b610efb565b005b61045d610fb5565b60405161046a9190611b80565b60405180910390f35b61048d60048036038101906104889190611a37565b610fd9565b005b60606007805461049e90611f33565b80601f01602080910402602001604051908101604052809291908181526020018280546104ca90611f33565b80156105175780601f106104ec57610100808354040283529160200191610517565b820191906000526020600020905b8154815290600101906020018083116104fa57829003601f168201915b5050505050905090565b60025481565b600061053b610534611093565b848461109b565b6001905092915050565b6000600654905090565b600061055c848484611254565b6000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105a7611093565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561061e576040517f10bad14700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61063b8561062a611093565b85846106369190611e43565b61109b565b60019150509392505050565b6000600960009054906101000a900460ff16905090565b73735b14bb79463307aacbed86daf3322b1e6226ab81565b600061068233836114b0565b60019050919050565b600073735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610729575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b80156107835750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b156107ba576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107c48383611668565b8273ffffffffffffffffffffffffffffffffffffffff167f67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab373735b14bb79463307aacbed86daf3322b1e6226ab6040516020016108219190611b65565b6040516020818303038152906040528460405161083f929190611c16565b60405180910390a26001905092915050565b60035481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6060600880546108d390611f33565b80601f01602080910402602001604051908101604052809291908181526020018280546108ff90611f33565b801561094c5780601f106109215761010080835404028352916020019161094c565b820191906000526020600020905b81548152906001019060200180831161092f57829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061098e610987611093565b8484611254565b6001905092915050565b60008060006109a5610be1565b915091508173ffffffffffffffffffffffffffffffffffffffff166323b872dd3373735b14bb79463307aacbed86daf3322b1e6226ab846040518463ffffffff1660e01b81526004016109fa93929190611b9b565b602060405180830381600087803b158015610a1457600080fd5b505af1158015610a28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4c91906119ae565b610a82576040517f0a7cd6d600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a8c33856114b0565b3373ffffffffffffffffffffffffffffffffffffffff167f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d955868684600354604051610ada9493929190611c46565b60405180910390a260019250505092915050565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b67576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae81604051610bd69190611b80565b60405180910390a150565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630be155477f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401610c609190611ccf565b60206040518083038186803b158015610c7857600080fd5b505afa158015610c8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb091906118ae565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d19576040517f78fff39600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d7fd7afb7f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401610d959190611ccf565b60206040518083038186803b158015610dad57600080fd5b505afa158015610dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de59190611a64565b90506000811415610e22576040517fe661aed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060035460025483610e359190611de9565b610e3f9190611d93565b90508281945094505050509091565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f74576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806003819055507fef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f81604051610faa9190611ccf565b60405180910390a150565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611052576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806002819055507fff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a816040516110889190611ccf565b60405180910390a150565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611102576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611169576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112479190611ccf565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112bb576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611322576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156113a0576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81816113ac9190611e43565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461143e9190611d93565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114a29190611ccf565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611517576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611595576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81816115a19190611e43565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600660008282546115f69190611e43565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161165b9190611ccf565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116cf576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600660008282546116e19190611d93565b9250508190555080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117379190611d93565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161179c9190611ccf565b60405180910390a35050565b60006117bb6117b684611d2a565b611d05565b9050828152602081018484840111156117d7576117d661207b565b5b6117e2848285611ef1565b509392505050565b6000813590506117f9816120bc565b92915050565b60008151905061180e816120bc565b92915050565b600081519050611823816120d3565b92915050565b600082601f83011261183e5761183d612076565b5b813561184e8482602086016117a8565b91505092915050565b600081359050611866816120ea565b92915050565b60008151905061187b816120ea565b92915050565b60006020828403121561189757611896612085565b5b60006118a5848285016117ea565b91505092915050565b6000602082840312156118c4576118c3612085565b5b60006118d2848285016117ff565b91505092915050565b600080604083850312156118f2576118f1612085565b5b6000611900858286016117ea565b9250506020611911858286016117ea565b9150509250929050565b60008060006060848603121561193457611933612085565b5b6000611942868287016117ea565b9350506020611953868287016117ea565b925050604061196486828701611857565b9150509250925092565b6000806040838503121561198557611984612085565b5b6000611993858286016117ea565b92505060206119a485828601611857565b9150509250929050565b6000602082840312156119c4576119c3612085565b5b60006119d284828501611814565b91505092915050565b600080604083850312156119f2576119f1612085565b5b600083013567ffffffffffffffff811115611a1057611a0f612080565b5b611a1c85828601611829565b9250506020611a2d85828601611857565b9150509250929050565b600060208284031215611a4d57611a4c612085565b5b6000611a5b84828501611857565b91505092915050565b600060208284031215611a7a57611a79612085565b5b6000611a888482850161186c565b91505092915050565b611a9a81611e77565b82525050565b611ab1611aac82611e77565b611f96565b82525050565b611ac081611e89565b82525050565b6000611ad182611d5b565b611adb8185611d71565b9350611aeb818560208601611f00565b611af48161208a565b840191505092915050565b611b0881611edf565b82525050565b6000611b1982611d66565b611b238185611d82565b9350611b33818560208601611f00565b611b3c8161208a565b840191505092915050565b611b5081611ec8565b82525050565b611b5f81611ed2565b82525050565b6000611b718284611aa0565b60148201915081905092915050565b6000602082019050611b956000830184611a91565b92915050565b6000606082019050611bb06000830186611a91565b611bbd6020830185611a91565b611bca6040830184611b47565b949350505050565b6000604082019050611be76000830185611a91565b611bf46020830184611b47565b9392505050565b6000602082019050611c106000830184611ab7565b92915050565b60006040820190508181036000830152611c308185611ac6565b9050611c3f6020830184611b47565b9392505050565b60006080820190508181036000830152611c608187611ac6565b9050611c6f6020830186611b47565b611c7c6040830185611b47565b611c896060830184611b47565b95945050505050565b6000602082019050611ca76000830184611aff565b92915050565b60006020820190508181036000830152611cc78184611b0e565b905092915050565b6000602082019050611ce46000830184611b47565b92915050565b6000602082019050611cff6000830184611b56565b92915050565b6000611d0f611d20565b9050611d1b8282611f65565b919050565b6000604051905090565b600067ffffffffffffffff821115611d4557611d44612047565b5b611d4e8261208a565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000611d9e82611ec8565b9150611da983611ec8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611dde57611ddd611fba565b5b828201905092915050565b6000611df482611ec8565b9150611dff83611ec8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611e3857611e37611fba565b5b828202905092915050565b6000611e4e82611ec8565b9150611e5983611ec8565b925082821015611e6c57611e6b611fba565b5b828203905092915050565b6000611e8282611ea8565b9050919050565b60008115159050919050565b6000819050611ea3826120a8565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000611eea82611e95565b9050919050565b82818337600083830152505050565b60005b83811015611f1e578082015181840152602081019050611f03565b83811115611f2d576000848401525b50505050565b60006002820490506001821680611f4b57607f821691505b60208210811415611f5f57611f5e612018565b5b50919050565b611f6e8261208a565b810181811067ffffffffffffffff82111715611f8d57611f8c612047565b5b80604052505050565b6000611fa182611fa8565b9050919050565b6000611fb38261209b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b600381106120b9576120b8611fe9565b5b50565b6120c581611e77565b81146120d057600080fd5b50565b6120dc81611e89565b81146120e757600080fd5b50565b6120f381611ec8565b81146120fe57600080fd5b5056fea26469706673582212206982505c1a546edfb86a1aaaca0ad6b7e5542f2d1f24ac30a032805fc80a650e64736f6c63430008070033a2646970667358221220c4176ab65169278ea88f794813ad4a1d4ae35802891e629c00eb44b06934003764736f6c63430008070033"; - -type GatewayEVMZEVMTestConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: GatewayEVMZEVMTestConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class GatewayEVMZEVMTest__factory extends ContractFactory { - constructor(...args: GatewayEVMZEVMTestConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override deploy( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy(overrides || {}) as Promise; - } - override getDeployTransaction( - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); - } - override attach(address: string): GatewayEVMZEVMTest { - return super.attach(address) as GatewayEVMZEVMTest; - } - override connect(signer: Signer): GatewayEVMZEVMTest__factory { - return super.connect(signer) as GatewayEVMZEVMTest__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): GatewayEVMZEVMTestInterface { - return new utils.Interface(_abi) as GatewayEVMZEVMTestInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): GatewayEVMZEVMTest { - return new Contract(address, _abi, signerOrProvider) as GatewayEVMZEVMTest; - } -} diff --git a/typechain-types/factories/contracts/prototypes/test/GatewayEVMZEVM.t.sol/index.ts b/typechain-types/factories/contracts/prototypes/test/GatewayEVMZEVM.t.sol/index.ts deleted file mode 100644 index e6bf3cc8..00000000 --- a/typechain-types/factories/contracts/prototypes/test/GatewayEVMZEVM.t.sol/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { GatewayEVMZEVMTest__factory } from "./GatewayEVMZEVMTest__factory"; diff --git a/typechain-types/factories/contracts/prototypes/test/GatewayIntegration.t.sol/GatewayIntegrationTest__factory.ts b/typechain-types/factories/contracts/prototypes/test/GatewayIntegration.t.sol/GatewayIntegrationTest__factory.ts deleted file mode 100644 index d4983137..00000000 --- a/typechain-types/factories/contracts/prototypes/test/GatewayIntegration.t.sol/GatewayIntegrationTest__factory.ts +++ /dev/null @@ -1,982 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../../../common"; -import type { - GatewayIntegrationTest, - GatewayIntegrationTestInterface, -} from "../../../../../contracts/prototypes/test/GatewayIntegration.t.sol/GatewayIntegrationTest"; - -const _abi = [ - { - inputs: [], - name: "ApprovalFailed", - type: "error", - }, - { - inputs: [], - name: "CustodyInitialized", - type: "error", - }, - { - inputs: [], - name: "DepositFailed", - type: "error", - }, - { - inputs: [], - name: "ExecutionFailed", - type: "error", - }, - { - inputs: [], - name: "InsufficientERC20Amount", - type: "error", - }, - { - inputs: [], - name: "InsufficientETHAmount", - type: "error", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "receiver", - type: "bytes", - }, - { - indexed: false, - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "Call", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "receiver", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "payload", - type: "bytes", - }, - ], - name: "Call", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "receiver", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "asset", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "payload", - type: "bytes", - }, - ], - name: "Deposit", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "destination", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "Executed", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "ExecutedWithERC20", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "token", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "destination", - type: "address", - }, - ], - name: "ReceivedERC20", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "ReceivedNoParams", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "string[]", - name: "strs", - type: "string[]", - }, - { - indexed: false, - internalType: "uint256[]", - name: "nums", - type: "uint256[]", - }, - { - indexed: false, - internalType: "bool", - name: "flag", - type: "bool", - }, - ], - name: "ReceivedNonPayable", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "string", - name: "str", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "num", - type: "uint256", - }, - { - indexed: false, - internalType: "bool", - name: "flag", - type: "bool", - }, - ], - name: "ReceivedPayable", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "to", - type: "bytes", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "gasfee", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "protocolFlatFee", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "Withdrawal", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "", - type: "string", - }, - ], - name: "log", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "", - type: "address", - }, - ], - name: "log_address", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256[]", - name: "val", - type: "uint256[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "int256[]", - name: "val", - type: "int256[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address[]", - name: "val", - type: "address[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - name: "log_bytes", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - name: "log_bytes32", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "int256", - name: "", - type: "int256", - }, - ], - name: "log_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "address", - name: "val", - type: "address", - }, - ], - name: "log_named_address", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256[]", - name: "val", - type: "uint256[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256[]", - name: "val", - type: "int256[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "address[]", - name: "val", - type: "address[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "bytes", - name: "val", - type: "bytes", - }, - ], - name: "log_named_bytes", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "bytes32", - name: "val", - type: "bytes32", - }, - ], - name: "log_named_bytes32", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256", - name: "val", - type: "int256", - }, - { - indexed: false, - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "log_named_decimal_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "val", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "log_named_decimal_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256", - name: "val", - type: "int256", - }, - ], - name: "log_named_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "string", - name: "val", - type: "string", - }, - ], - name: "log_named_string", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "val", - type: "uint256", - }, - ], - name: "log_named_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "", - type: "string", - }, - ], - name: "log_string", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "log_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - name: "logs", - type: "event", - }, - { - inputs: [], - name: "IS_TEST", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeArtifacts", - outputs: [ - { - internalType: "string[]", - name: "excludedArtifacts_", - type: "string[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeContracts", - outputs: [ - { - internalType: "address[]", - name: "excludedContracts_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeSelectors", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzSelector[]", - name: "excludedSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeSenders", - outputs: [ - { - internalType: "address[]", - name: "excludedSenders_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "failed", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "setUp", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "targetArtifactSelectors", - outputs: [ - { - components: [ - { - internalType: "string", - name: "artifact", - type: "string", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzArtifactSelector[]", - name: "targetedArtifactSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetArtifacts", - outputs: [ - { - internalType: "string[]", - name: "targetedArtifacts_", - type: "string[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetContracts", - outputs: [ - { - internalType: "address[]", - name: "targetedContracts_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetInterfaces", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "string[]", - name: "artifacts", - type: "string[]", - }, - ], - internalType: "struct StdInvariant.FuzzInterface[]", - name: "targetedInterfaces_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetSelectors", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzSelector[]", - name: "targetedSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetSenders", - outputs: [ - { - internalType: "address[]", - name: "targetedSenders_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "testCallReceiverEVMFromZEVM", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -const _bytecode = - "0x60806040526001600c60006101000a81548160ff0219169083151502179055506001601f60006101000a81548160ff02191690831515021790555034801561004657600080fd5b506201142f80620000586000396000f3fe60806040523480156200001157600080fd5b5060043610620001005760003560e01c8063916a17c61162000099578063b5508aa9116200006f578063b5508aa9146200022d578063ba414fa6146200024f578063e20c9f711462000271578063fa7626d414620002935762000100565b8063916a17c614620001dd5780639683c69514620001ff578063b0464fdc146200020b5762000100565b80633e5e3c2311620000db5780633e5e3c2314620001555780633f7286f4146200017757806366d9a9a0146200019957806385226c8114620001bb5762000100565b80630a9254e414620001055780631ed7831c14620001115780632ade38801462000133575b600080fd5b6200010f620002b5565b005b6200011b620010b4565b6040516200012a919062002c9b565b60405180910390f35b6200013d62001144565b6040516200014c919062002d07565b60405180910390f35b6200015f620012de565b6040516200016e919062002c9b565b60405180910390f35b620001816200136e565b60405162000190919062002c9b565b60405180910390f35b620001a3620013fe565b604051620001b2919062002ce3565b60405180910390f35b620001c562001595565b604051620001d4919062002cbf565b60405180910390f35b620001e762001678565b604051620001f6919062002d2b565b60405180910390f35b62000209620017cb565b005b6200021562001e6a565b60405162000224919062002d2b565b60405180910390f35b6200023762001fbd565b60405162000246919062002cbf565b60405180910390f35b62000259620020a0565b60405162000268919062002d4f565b60405180910390f35b6200027b620021d3565b6040516200028a919062002c9b565b60405180910390f35b6200029d62002263565b604051620002ac919062002d4f565b60405180910390f35b30602360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611234602460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550615678602560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550614321602a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051620003cd9062002276565b620003d89062002f3a565b604051809103906000f080158015620003f5573d6000803e3d6000fd5b50602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051620004449062002284565b604051809103906000f08015801562000461573d6000803e3d6000fd5b50601f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051620004d39062002292565b620004df919062002b59565b604051809103906000f080158015620004fc573d6000803e3d6000fd5b50602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c4d66de8602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401620005bc919062002b59565b600060405180830381600087803b158015620005d757600080fd5b505af1158015620005ec573d6000803e3d6000fd5b50505050601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ae7a3a6f602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016200066f919062002b59565b600060405180830381600087803b1580156200068a57600080fd5b505af11580156200069f573d6000803e3d6000fd5b50505050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f19602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620f42406040518363ffffffff1660e01b81526004016200072792919062002c14565b600060405180830381600087803b1580156200074257600080fd5b505af115801562000757573d6000803e3d6000fd5b50505050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166207a1206040518363ffffffff1660e01b8152600401620007df92919062002c41565b602060405180830381600087803b158015620007fa57600080fd5b505af11580156200080f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000835919062002392565b506040516200084490620022a0565b604051809103906000f08015801562000861573d6000803e3d6000fd5b50602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051620008b090620022ae565b604051809103906000f080158015620008cd573d6000803e3d6000fd5b50602660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516200093f90620022bc565b6200094b919062002b59565b604051809103906000f08015801562000968573d6000803e3d6000fd5b50602760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073735b14bb79463307aacbed86daf3322b1e6226ab90507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff166306447d56826040518263ffffffff1660e01b815260040162000a20919062002b59565b600060405180830381600087803b15801562000a3b57600080fd5b505af115801562000a50573d6000803e3d6000fd5b50505050600080600060405162000a6790620022ca565b62000a759392919062002b76565b604051809103906000f08015801562000a92573d6000803e3d6000fd5b50602860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060126001600080602860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405162000b2e90620022d8565b62000b3f9695949392919062002ea2565b604051809103906000f08015801562000b5c573d6000803e3d6000fd5b50602960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ee2815ba6001602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b815260040162000c1f92919062002e04565b600060405180830381600087803b15801562000c3a57600080fd5b505af115801562000c4f573d6000803e3d6000fd5b50505050602860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a7cb05076001806040518363ffffffff1660e01b815260040162000cb392919062002e31565b600060405180830381600087803b15801562000cce57600080fd5b505af115801562000ce3573d6000803e3d6000fd5b50505050602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166347e7ef24602a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620f42406040518363ffffffff1660e01b815260040162000d6b92919062002c14565b602060405180830381600087803b15801562000d8657600080fd5b505af115801562000d9b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000dc1919062002392565b50602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166347e7ef24602760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620f42406040518363ffffffff1660e01b815260040162000e4692919062002c14565b602060405180830381600087803b15801562000e6157600080fd5b505af115801562000e76573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e9c919062002392565b507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562000f0957600080fd5b505af115801562000f1e573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff1663ca669fa7602a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040162000fa2919062002b59565b600060405180830381600087803b15801562000fbd57600080fd5b505af115801562000fd2573d6000803e3d6000fd5b50505050602960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620f42406040518363ffffffff1660e01b81526004016200105a92919062002c14565b602060405180830381600087803b1580156200107557600080fd5b505af11580156200108a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620010b0919062002392565b5050565b606060168054806020026020016040519081016040528092919081815260200182805480156200113a57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311620010ef575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020016000905b82821015620012d557838290600052602060002090600202016040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020016000905b82821015620012bd578382906000526020600020018054620012299062003340565b80601f0160208091040260200160405190810160405280929190818152602001828054620012579062003340565b8015620012a85780601f106200127c57610100808354040283529160200191620012a8565b820191906000526020600020905b8154815290600101906020018083116200128a57829003601f168201915b50505050508152602001906001019062001207565b50505050815250508152602001906001019062001168565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156200136457602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831162001319575b5050505050905090565b60606017805480602002602001604051908101604052809291908181526020018280548015620013f457602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311620013a9575b5050505050905090565b6060601b805480602002602001604051908101604052809291908181526020016000905b828210156200158c5783829060005260206000209060020201604051806040016040529081600082018054620014589062003340565b80601f0160208091040260200160405190810160405280929190818152602001828054620014869062003340565b8015620014d75780601f10620014ab57610100808354040283529160200191620014d7565b820191906000526020600020905b815481529060010190602001808311620014b957829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156200157357602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116200151f5790505b5050505050815250508152602001906001019062001422565b50505050905090565b6060601a805480602002602001604051908101604052809291908181526020016000905b828210156200166f578382906000526020600020018054620015db9062003340565b80601f0160208091040260200160405190810160405280929190818152602001828054620016099062003340565b80156200165a5780601f106200162e576101008083540402835291602001916200165a565b820191906000526020600020905b8154815290600101906020018083116200163c57829003601f168201915b505050505081526020019060010190620015b9565b50505050905090565b6060601d805480602002602001604051908101604052809291908181526020016000905b82821015620017c257838290600052602060002090600202016040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020018280548015620017a957602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620017555790505b505050505081525050815260200190600101906200169c565b50505050905090565b60006040518060400160405280600f81526020017f48656c6c6f2c204861726468617421000000000000000000000000000000000081525090506000602a90506000600190506000670de0b6b3a76400009050600063e04d4f9760e01b8585856040516024016200183f9392919062002e5e565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff1663ca669fa7602a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016200191e919062002b59565b600060405180830381600087803b1580156200193957600080fd5b505af11580156200194e573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff166381bad6f3600180600180602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518663ffffffff1660e01b8152600401620019dc95949392919062002d6c565b600060405180830381600087803b158015620019f757600080fd5b505af115801562001a0c573d6000803e3d6000fd5b50505050602a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f2b5af078ce280d812dc2241658dc5435c93408020e5418eef55a2b536de51c0f602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405160200162001a9f919062002b3c565b6040516020818303038152906040528360405162001abf92919062002dc9565b60405180910390a2602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630ac7c44c602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405160200162001b3a919062002b3c565b604051602081830303815290604052836040518363ffffffff1660e01b815260040162001b6992919062002dc9565b600060405180830381600087803b15801562001b8457600080fd5b505af115801562001b99573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff1663c88a5e6d601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b815260040162001c1f92919062002c6e565b600060405180830381600087803b15801562001c3a57600080fd5b505af115801562001c4f573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff166381bad6f3600180600180601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518663ffffffff1660e01b815260040162001cdd95949392919062002d6c565b600060405180830381600087803b15801562001cf857600080fd5b505af115801562001d0d573d6000803e3d6000fd5b50505050602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f838360405162001d7d92919062002f71565b60405180910390a2601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631cff79cd83602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b815260040162001e0792919062002be0565b6000604051808303818588803b15801562001e2157600080fd5b505af115801562001e36573d6000803e3d6000fd5b50505050506040513d6000823e3d601f19601f8201168201806040525081019062001e629190620023f6565b505050505050565b6060601c805480602002602001604051908101604052809291908181526020016000905b8282101562001fb457838290600052602060002090600202016040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820180548060200260200160405190810160405280929190818152602001828054801562001f9b57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162001f475790505b5050505050815250508152602001906001019062001e8e565b50505050905090565b60606019805480602002602001604051908101604052809291908181526020016000905b8282101562002097578382906000526020600020018054620020039062003340565b80601f0160208091040260200160405190810160405280929190818152602001828054620020319062003340565b8015620020825780601f10620020565761010080835404028352916020019162002082565b820191906000526020600020905b8154815290600101906020018083116200206457829003601f168201915b50505050508152602001906001019062001fe1565b50505050905090565b6000600860009054906101000a900460ff1615620020d057600860009054906101000a900460ff169050620021d0565b6000801b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff1663667f9d707f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c7f6661696c656400000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b81526004016200217792919062002bb3565b60206040518083038186803b1580156200219057600080fd5b505afa158015620021a5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620021cb9190620023c4565b141590505b90565b606060158054806020026020016040519081016040528092919081815260200182805480156200225957602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116200220e575b5050505050905090565b601f60009054906101000a900460ff1681565b611813806200358383390190565b6131a48062004d9683390190565b6110908062007f3a83390190565b6110aa8062008fca83390190565b612eb5806200a07483390190565b610bcd806200cf2983390190565b6110d7806200daf683390190565b61282d806200ebcd83390190565b6000620022fd620022f78462002fce565b62002fa5565b9050828152602081018484840111156200231c576200231b62003466565b5b620023298482856200330a565b509392505050565b60008151905062002342816200354e565b92915050565b600081519050620023598162003568565b92915050565b600082601f83011262002377576200237662003461565b5b815162002389848260208601620022e6565b91505092915050565b600060208284031215620023ab57620023aa62003470565b5b6000620023bb8482850162002331565b91505092915050565b600060208284031215620023dd57620023dc62003470565b5b6000620023ed8482850162002348565b91505092915050565b6000602082840312156200240f576200240e62003470565b5b600082015167ffffffffffffffff81111562002430576200242f6200346b565b5b6200243e848285016200235f565b91505092915050565b6000620024558383620024d3565b60208301905092915050565b60006200246f838362002870565b60208301905092915050565b600062002489838362002943565b905092915050565b60006200249f838362002a61565b905092915050565b6000620024b5838362002aa9565b905092915050565b6000620024cb838362002aea565b905092915050565b620024de81620031b4565b82525050565b620024ef81620031b4565b82525050565b6000620025028262003064565b6200250e81856200310a565b93506200251b8362003004565b8060005b838110156200255257815162002536888262002447565b97506200254383620030bc565b9250506001810190506200251f565b5085935050505092915050565b60006200256c826200306f565b6200257881856200311b565b9350620025858362003014565b8060005b83811015620025bc578151620025a0888262002461565b9750620025ad83620030c9565b92505060018101905062002589565b5085935050505092915050565b6000620025d6826200307a565b620025e281856200312c565b935083602082028501620025f68562003024565b8060005b858110156200263857848403895281516200261685826200247b565b94506200262383620030d6565b925060208a01995050600181019050620025fa565b50829750879550505050505092915050565b600062002657826200307a565b6200266381856200313d565b935083602082028501620026778562003024565b8060005b85811015620026b957848403895281516200269785826200247b565b9450620026a483620030d6565b925060208a019950506001810190506200267b565b50829750879550505050505092915050565b6000620026d88262003085565b620026e481856200314e565b935083602082028501620026f88562003034565b8060005b858110156200273a578484038952815162002718858262002491565b94506200272583620030e3565b925060208a01995050600181019050620026fc565b50829750879550505050505092915050565b6000620027598262003090565b6200276581856200315f565b935083602082028501620027798562003044565b8060005b85811015620027bb5784840389528151620027998582620024a7565b9450620027a683620030f0565b925060208a019950506001810190506200277d565b50829750879550505050505092915050565b6000620027da826200309b565b620027e6818562003170565b935083602082028501620027fa8562003054565b8060005b858110156200283c57848403895281516200281a8582620024bd565b94506200282783620030fd565b925060208a01995050600181019050620027fe565b50829750879550505050505092915050565b6200285981620031c8565b82525050565b6200286a81620031d4565b82525050565b6200287b81620031de565b82525050565b60006200288e82620030a6565b6200289a818562003181565b9350620028ac8185602086016200330a565b620028b78162003475565b840191505092915050565b620028d7620028d18262003256565b620033ac565b82525050565b620028e8816200326a565b82525050565b620028f9816200327e565b82525050565b6200290a8162003292565b82525050565b6200291b81620032a6565b82525050565b6200292c81620032ba565b82525050565b6200293d81620032ce565b82525050565b60006200295082620030b1565b6200295c818562003192565b93506200296e8185602086016200330a565b620029798162003475565b840191505092915050565b60006200299182620030b1565b6200299d8185620031a3565b9350620029af8185602086016200330a565b620029ba8162003475565b840191505092915050565b6000620029d4600383620031a3565b9150620029e18262003493565b602082019050919050565b6000620029fb600583620031a3565b915062002a0882620034bc565b602082019050919050565b600062002a22600483620031a3565b915062002a2f82620034e5565b602082019050919050565b600062002a49600383620031a3565b915062002a56826200350e565b602082019050919050565b6000604083016000830151848203600086015262002a80828262002943565b9150506020830151848203602086015262002a9c82826200255f565b9150508091505092915050565b600060408301600083015162002ac36000860182620024d3565b506020830151848203602086015262002add8282620025c9565b9150508091505092915050565b600060408301600083015162002b046000860182620024d3565b506020830151848203602086015262002b1e82826200255f565b9150508091505092915050565b62002b36816200323f565b82525050565b600062002b4a8284620028c2565b60148201915081905092915050565b600060208201905062002b706000830184620024e4565b92915050565b600060608201905062002b8d6000830186620024e4565b62002b9c6020830185620024e4565b62002bab6040830184620024e4565b949350505050565b600060408201905062002bca6000830185620024e4565b62002bd960208301846200285f565b9392505050565b600060408201905062002bf76000830185620024e4565b818103602083015262002c0b818462002881565b90509392505050565b600060408201905062002c2b6000830185620024e4565b62002c3a6020830184620028ff565b9392505050565b600060408201905062002c586000830185620024e4565b62002c67602083018462002932565b9392505050565b600060408201905062002c856000830185620024e4565b62002c94602083018462002b2b565b9392505050565b6000602082019050818103600083015262002cb78184620024f5565b905092915050565b6000602082019050818103600083015262002cdb81846200264a565b905092915050565b6000602082019050818103600083015262002cff8184620026cb565b905092915050565b6000602082019050818103600083015262002d2381846200274c565b905092915050565b6000602082019050818103600083015262002d478184620027cd565b905092915050565b600060208201905062002d6660008301846200284e565b92915050565b600060a08201905062002d8360008301886200284e565b62002d9260208301876200284e565b62002da160408301866200284e565b62002db060608301856200284e565b62002dbf6080830184620024e4565b9695505050505050565b6000604082019050818103600083015262002de5818562002881565b9050818103602083015262002dfb818462002881565b90509392505050565b600060408201905062002e1b600083018562002921565b62002e2a6020830184620024e4565b9392505050565b600060408201905062002e48600083018562002921565b62002e57602083018462002921565b9392505050565b6000606082019050818103600083015262002e7a818662002984565b905062002e8b602083018562002b2b565b62002e9a60408301846200284e565b949350505050565b600061010082019050818103600083015262002ebe81620029ec565b9050818103602083015262002ed38162002a3a565b905062002ee4604083018962002910565b62002ef3606083018862002921565b62002f026080830187620028dd565b62002f1160a0830186620028ee565b62002f2060c0830185620024e4565b62002f2f60e0830184620024e4565b979650505050505050565b6000604082019050818103600083015262002f558162002a13565b9050818103602083015262002f6a81620029c5565b9050919050565b600060408201905062002f88600083018562002b2b565b818103602083015262002f9c818462002881565b90509392505050565b600062002fb162002fc4565b905062002fbf828262003376565b919050565b6000604051905090565b600067ffffffffffffffff82111562002fec5762002feb62003432565b5b62002ff78262003475565b9050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000620031c1826200321f565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b60008190506200321a8262003537565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006200326382620032e2565b9050919050565b600062003277826200320a565b9050919050565b60006200328b826200323f565b9050919050565b60006200329f826200323f565b9050919050565b6000620032b38262003249565b9050919050565b6000620032c7826200323f565b9050919050565b6000620032db826200323f565b9050919050565b6000620032ef82620032f6565b9050919050565b600062003303826200321f565b9050919050565b60005b838110156200332a5780820151818401526020810190506200330d565b838111156200333a576000848401525b50505050565b600060028204905060018216806200335957607f821691505b6020821081141562003370576200336f62003403565b5b50919050565b620033818262003475565b810181811067ffffffffffffffff82111715620033a357620033a262003432565b5b80604052505050565b6000620033b982620033c0565b9050919050565b6000620033cd8262003486565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f54544b0000000000000000000000000000000000000000000000000000000000600082015250565b7f544f4b454e000000000000000000000000000000000000000000000000000000600082015250565b7f7465737400000000000000000000000000000000000000000000000000000000600082015250565b7f544b4e0000000000000000000000000000000000000000000000000000000000600082015250565b600381106200354b576200354a620033d4565b5b50565b6200355981620031c8565b81146200356557600080fd5b50565b6200357381620031d4565b81146200357f57600080fd5b5056fe60806040523480156200001157600080fd5b5060405162001813380380620018138339818101604052810190620000379190620001a3565b818181600390805190602001906200005192919062000075565b5080600490805190602001906200006a92919062000075565b5050505050620003ac565b8280546200008390620002bd565b90600052602060002090601f016020900481019282620000a75760008555620000f3565b82601f10620000c257805160ff1916838001178555620000f3565b82800160010185558215620000f3579182015b82811115620000f2578251825591602001919060010190620000d5565b5b50905062000102919062000106565b5090565b5b808211156200012157600081600090555060010162000107565b5090565b60006200013c620001368462000251565b62000228565b9050828152602081018484840111156200015b576200015a6200038c565b5b6200016884828562000287565b509392505050565b600082601f83011262000188576200018762000387565b5b81516200019a84826020860162000125565b91505092915050565b60008060408385031215620001bd57620001bc62000396565b5b600083015167ffffffffffffffff811115620001de57620001dd62000391565b5b620001ec8582860162000170565b925050602083015167ffffffffffffffff81111562000210576200020f62000391565b5b6200021e8582860162000170565b9150509250929050565b60006200023462000247565b9050620002428282620002f3565b919050565b6000604051905090565b600067ffffffffffffffff8211156200026f576200026e62000358565b5b6200027a826200039b565b9050602081019050919050565b60005b83811015620002a75780820151818401526020810190506200028a565b83811115620002b7576000848401525b50505050565b60006002820490506001821680620002d657607f821691505b60208210811415620002ed57620002ec62000329565b5b50919050565b620002fe826200039b565b810181811067ffffffffffffffff8211171562000320576200031f62000358565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b61145780620003bc6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806340c10f191161007157806340c10f19146101a357806370a08231146101bf57806395d89b41146101ef578063a457c2d71461020d578063a9059cbb1461023d578063dd62ed3e1461026d576100b4565b806306fdde03146100b9578063095ea7b3146100d757806318160ddd1461010757806323b872dd14610125578063313ce567146101555780633950935114610173575b600080fd5b6100c161029d565b6040516100ce9190610ecf565b60405180910390f35b6100f160048036038101906100ec9190610cf6565b61032f565b6040516100fe9190610eb4565b60405180910390f35b61010f610352565b60405161011c9190610ff1565b60405180910390f35b61013f600480360381019061013a9190610ca3565b61035c565b60405161014c9190610eb4565b60405180910390f35b61015d61038b565b60405161016a919061100c565b60405180910390f35b61018d60048036038101906101889190610cf6565b610394565b60405161019a9190610eb4565b60405180910390f35b6101bd60048036038101906101b89190610cf6565b6103cb565b005b6101d960048036038101906101d49190610c36565b6103d9565b6040516101e69190610ff1565b60405180910390f35b6101f7610421565b6040516102049190610ecf565b60405180910390f35b61022760048036038101906102229190610cf6565b6104b3565b6040516102349190610eb4565b60405180910390f35b61025760048036038101906102529190610cf6565b61052a565b6040516102649190610eb4565b60405180910390f35b61028760048036038101906102829190610c63565b61054d565b6040516102949190610ff1565b60405180910390f35b6060600380546102ac90611121565b80601f01602080910402602001604051908101604052809291908181526020018280546102d890611121565b80156103255780601f106102fa57610100808354040283529160200191610325565b820191906000526020600020905b81548152906001019060200180831161030857829003601f168201915b5050505050905090565b60008061033a6105d4565b90506103478185856105dc565b600191505092915050565b6000600254905090565b6000806103676105d4565b90506103748582856107a7565b61037f858585610833565b60019150509392505050565b60006012905090565b60008061039f6105d4565b90506103c08185856103b1858961054d565b6103bb9190611043565b6105dc565b600191505092915050565b6103d58282610aab565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461043090611121565b80601f016020809104026020016040519081016040528092919081815260200182805461045c90611121565b80156104a95780601f1061047e576101008083540402835291602001916104a9565b820191906000526020600020905b81548152906001019060200180831161048c57829003601f168201915b5050505050905090565b6000806104be6105d4565b905060006104cc828661054d565b905083811015610511576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050890610fb1565b60405180910390fd5b61051e82868684036105dc565b60019250505092915050565b6000806105356105d4565b9050610542818585610833565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561064c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064390610f91565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156106bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b390610f11565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161079a9190610ff1565b60405180910390a3505050565b60006107b3848461054d565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461082d578181101561081f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081690610f31565b60405180910390fd5b61082c84848484036105dc565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156108a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089a90610f71565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090a90610ef1565b60405180910390fd5b61091e838383610c02565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156109a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099b90610f51565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a929190610ff1565b60405180910390a3610aa5848484610c07565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1290610fd1565b60405180910390fd5b610b2760008383610c02565b8060026000828254610b399190611043565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610bea9190610ff1565b60405180910390a3610bfe60008383610c07565b5050565b505050565b505050565b600081359050610c1b816113f3565b92915050565b600081359050610c308161140a565b92915050565b600060208284031215610c4c57610c4b6111b1565b5b6000610c5a84828501610c0c565b91505092915050565b60008060408385031215610c7a57610c796111b1565b5b6000610c8885828601610c0c565b9250506020610c9985828601610c0c565b9150509250929050565b600080600060608486031215610cbc57610cbb6111b1565b5b6000610cca86828701610c0c565b9350506020610cdb86828701610c0c565b9250506040610cec86828701610c21565b9150509250925092565b60008060408385031215610d0d57610d0c6111b1565b5b6000610d1b85828601610c0c565b9250506020610d2c85828601610c21565b9150509250929050565b610d3f816110ab565b82525050565b6000610d5082611027565b610d5a8185611032565b9350610d6a8185602086016110ee565b610d73816111b6565b840191505092915050565b6000610d8b602383611032565b9150610d96826111c7565b604082019050919050565b6000610dae602283611032565b9150610db982611216565b604082019050919050565b6000610dd1601d83611032565b9150610ddc82611265565b602082019050919050565b6000610df4602683611032565b9150610dff8261128e565b604082019050919050565b6000610e17602583611032565b9150610e22826112dd565b604082019050919050565b6000610e3a602483611032565b9150610e458261132c565b604082019050919050565b6000610e5d602583611032565b9150610e688261137b565b604082019050919050565b6000610e80601f83611032565b9150610e8b826113ca565b602082019050919050565b610e9f816110d7565b82525050565b610eae816110e1565b82525050565b6000602082019050610ec96000830184610d36565b92915050565b60006020820190508181036000830152610ee98184610d45565b905092915050565b60006020820190508181036000830152610f0a81610d7e565b9050919050565b60006020820190508181036000830152610f2a81610da1565b9050919050565b60006020820190508181036000830152610f4a81610dc4565b9050919050565b60006020820190508181036000830152610f6a81610de7565b9050919050565b60006020820190508181036000830152610f8a81610e0a565b9050919050565b60006020820190508181036000830152610faa81610e2d565b9050919050565b60006020820190508181036000830152610fca81610e50565b9050919050565b60006020820190508181036000830152610fea81610e73565b9050919050565b60006020820190506110066000830184610e96565b92915050565b60006020820190506110216000830184610ea5565b92915050565b600081519050919050565b600082825260208201905092915050565b600061104e826110d7565b9150611059836110d7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561108e5761108d611153565b5b828201905092915050565b60006110a4826110b7565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101561110c5780820151818401526020810190506110f1565b8381111561111b576000848401525b50505050565b6000600282049050600182168061113957607f821691505b6020821081141561114d5761114c611182565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6113fc81611099565b811461140757600080fd5b50565b611413816110d7565b811461141e57600080fd5b5056fea2646970667358221220d4c96329400732e284f624232c8d7228fc90c00ee7b1a48a85080262107815d864736f6c6343000807003360a06040523073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b81525034801561004657600080fd5b5060805160601c613123610081600039600081816105fc0152818161068b01528181610785015281816108140152610bae01526131236000f3fe6080604052600436106100fe5760003560e01c8063715018a611610095578063c4d66de811610064578063c4d66de8146102e4578063dda79b751461030d578063f2fde38b14610338578063f340fa0114610361578063f45346dc1461037d576100fe565b8063715018a6146102505780638c6f037f146102675780638da5cb5b14610290578063ae7a3a6f146102bb576100fe565b80634f1ef286116100d15780634f1ef286146101a15780635131ab59146101bd57806352d1902d146101fa5780635b11259114610225576100fe565b80631b8b921d146101035780631cff79cd1461012c57806329c59b5d1461015c5780633659cfe614610178575b600080fd5b34801561010f57600080fd5b5061012a60048036038101906101259190612183565b6103a6565b005b61014660048036038101906101419190612183565b610412565b6040516101539190612816565b60405180910390f35b61017660048036038101906101719190612183565b610480565b005b34801561018457600080fd5b5061019f600480360381019061019a91906120ce565b6105fa565b005b6101bb60048036038101906101b691906121e3565b610783565b005b3480156101c957600080fd5b506101e460048036038101906101df91906120fb565b6108c0565b6040516101f19190612816565b60405180910390f35b34801561020657600080fd5b5061020f610baa565b60405161021c91906127d7565b60405180910390f35b34801561023157600080fd5b5061023a610c63565b6040516102479190612733565b60405180910390f35b34801561025c57600080fd5b50610265610c89565b005b34801561027357600080fd5b5061028e60048036038101906102899190612292565b610c9d565b005b34801561029c57600080fd5b506102a5610d99565b6040516102b29190612733565b60405180910390f35b3480156102c757600080fd5b506102e260048036038101906102dd91906120ce565b610dc3565b005b3480156102f057600080fd5b5061030b600480360381019061030691906120ce565b610e8f565b005b34801561031957600080fd5b5061032261107e565b60405161032f9190612733565b60405180910390f35b34801561034457600080fd5b5061035f600480360381019061035a91906120ce565b6110a4565b005b61037b600480360381019061037691906120ce565b611128565b005b34801561038957600080fd5b506103a4600480360381019061039f919061223f565b61129c565b005b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde384846040516104059291906127f2565b60405180910390a3505050565b60606000610421858585611392565b90508473ffffffffffffffffffffffffffffffffffffffff167fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f34868660405161046d93929190612a91565b60405180910390a2809150509392505050565b60003414156104bb576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16346040516105039061271e565b60006040518083038185875af1925050503d8060008114610540576040519150601f19603f3d011682016040523d82523d6000602084013e610545565b606091505b50509050600015158115151415610588576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a434600087876040516105ec9493929190612a15565b60405180910390a350505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610689576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068090612895565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166106c8611449565b73ffffffffffffffffffffffffffffffffffffffff161461071e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610715906128b5565b60405180910390fd5b610727816114a0565b61078081600067ffffffffffffffff81111561074657610745612c52565b5b6040519080825280601f01601f1916602001820160405280156107785781602001600182028036833780820191505090505b5060006114ab565b50565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610812576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080990612895565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610851611449565b73ffffffffffffffffffffffffffffffffffffffff16146108a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089e906128b5565b60405180910390fd5b6108b0826114a0565b6108bc828260016114ab565b5050565b606060008414156108fd576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109078686611628565b61093d576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff1663095ea7b386866040518363ffffffff1660e01b81526004016109789291906127ae565b602060405180830381600087803b15801561099257600080fd5b505af11580156109a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ca919061231a565b610a00576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610a0d868585611392565b9050610a198787611628565b610a4f576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a8a9190612733565b60206040518083038186803b158015610aa257600080fd5b505afa158015610ab6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ada9190612374565b90506000811115610b3357610b3260c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828a73ffffffffffffffffffffffffffffffffffffffff166116c09092919063ffffffff16565b5b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382888888604051610b9493929190612a91565b60405180910390a3819250505095945050505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614610c3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c31906128f5565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b905090565b60ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c91611746565b610c9b60006117c4565b565b6000841415610cd8576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d273360c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16868673ffffffffffffffffffffffffffffffffffffffff1661188a909392919063ffffffff16565b8473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a486868686604051610d8a9493929190612a15565b60405180910390a35050505050565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff1660c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e4b576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060c960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060019054906101000a900460ff16159050808015610ec05750600160008054906101000a900460ff1660ff16105b80610eed5750610ecf30611913565b158015610eec5750600160008054906101000a900460ff1660ff16145b5b610f2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2390612935565b60405180910390fd5b60016000806101000a81548160ff021916908360ff1602179055508015610f69576001600060016101000a81548160ff0219169083151502179055505b610f71611936565b610f7961198f565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fe0576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8160ca60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550801561107a5760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860016040516110719190612838565b60405180910390a15b5050565b60c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6110ac611746565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561111c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111390612875565b60405180910390fd5b611125816117c4565b50565b6000341415611163576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060ca60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16346040516111ab9061271e565b60006040518083038185875af1925050503d80600081146111e8576040519150601f19603f3d011682016040523d82523d6000602084013e6111ed565b606091505b50509050600015158115151415611230576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4346000604051611290929190612a55565b60405180910390a35050565b60008214156112d7576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113263360c960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848473ffffffffffffffffffffffffffffffffffffffff1661188a909392919063ffffffff16565b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a48484604051611385929190612a55565b60405180910390a3505050565b60606000808573ffffffffffffffffffffffffffffffffffffffff163486866040516113bf9291906126ee565b60006040518083038185875af1925050503d80600081146113fc576040519150601f19603f3d011682016040523d82523d6000602084013e611401565b606091505b50915091508161143d576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80925050509392505050565b60006114777f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6119e0565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6114a8611746565b50565b6114d77f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914360001b6119ea565b60000160009054906101000a900460ff16156114fb576114f6836119f4565b611623565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561154157600080fd5b505afa92505050801561157257506040513d601f19601f8201168201806040525081019061156f9190612347565b60015b6115b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a890612955565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b8114611616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160d90612915565b60405180910390fd5b50611622838383611aad565b5b505050565b60008273ffffffffffffffffffffffffffffffffffffffff1663095ea7b38360006040518363ffffffff1660e01b8152600401611666929190612785565b602060405180830381600087803b15801561168057600080fd5b505af1158015611694573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b8919061231a565b905092915050565b6117418363a9059cbb60e01b84846040516024016116df9291906127ae565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611ad9565b505050565b61174e611ba0565b73ffffffffffffffffffffffffffffffffffffffff1661176c610d99565b73ffffffffffffffffffffffffffffffffffffffff16146117c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b990612995565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61190d846323b872dd60e01b8585856040516024016118ab9392919061274e565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611ad9565b50505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16611985576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197c906129d5565b60405180910390fd5b61198d611ba8565b565b600060019054906101000a900460ff166119de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d5906129d5565b60405180910390fd5b565b6000819050919050565b6000819050919050565b6119fd81611913565b611a3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3390612975565b60405180910390fd5b80611a697f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6119e0565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611ab683611c09565b600082511180611ac35750805b15611ad457611ad28383611c58565b505b505050565b6000611b3b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16611c859092919063ffffffff16565b9050600081511115611b9b5780806020019051810190611b5b919061231a565b611b9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b91906129f5565b60405180910390fd5b5b505050565b600033905090565b600060019054906101000a900460ff16611bf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bee906129d5565b60405180910390fd5b611c07611c02611ba0565b6117c4565b565b611c12816119f4565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b6060611c7d83836040518060600160405280602781526020016130c760279139611c9d565b905092915050565b6060611c948484600085611d23565b90509392505050565b60606000808573ffffffffffffffffffffffffffffffffffffffff1685604051611cc79190612707565b600060405180830381855af49150503d8060008114611d02576040519150601f19603f3d011682016040523d82523d6000602084013e611d07565b606091505b5091509150611d1886838387611df0565b925050509392505050565b606082471015611d68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5f906128d5565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051611d919190612707565b60006040518083038185875af1925050503d8060008114611dce576040519150601f19603f3d011682016040523d82523d6000602084013e611dd3565b606091505b5091509150611de487838387611e66565b92505050949350505050565b60608315611e5357600083511415611e4b57611e0b85611913565b611e4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e41906129b5565b60405180910390fd5b5b829050611e5e565b611e5d8383611edc565b5b949350505050565b60608315611ec957600083511415611ec157611e8185611f2c565b611ec0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb7906129b5565b60405180910390fd5b5b829050611ed4565b611ed38383611f4f565b5b949350505050565b600082511115611eef5781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f239190612853565b60405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600082511115611f625781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f969190612853565b60405180910390fd5b6000611fb2611fad84612ae8565b612ac3565b905082815260208101848484011115611fce57611fcd612c90565b5b611fd9848285612bdf565b509392505050565b600081359050611ff08161306a565b92915050565b60008151905061200581613081565b92915050565b60008151905061201a81613098565b92915050565b60008083601f84011261203657612035612c86565b5b8235905067ffffffffffffffff81111561205357612052612c81565b5b60208301915083600182028301111561206f5761206e612c8b565b5b9250929050565b600082601f83011261208b5761208a612c86565b5b813561209b848260208601611f9f565b91505092915050565b6000813590506120b3816130af565b92915050565b6000815190506120c8816130af565b92915050565b6000602082840312156120e4576120e3612c9a565b5b60006120f284828501611fe1565b91505092915050565b60008060008060006080868803121561211757612116612c9a565b5b600061212588828901611fe1565b955050602061213688828901611fe1565b9450506040612147888289016120a4565b935050606086013567ffffffffffffffff81111561216857612167612c95565b5b61217488828901612020565b92509250509295509295909350565b60008060006040848603121561219c5761219b612c9a565b5b60006121aa86828701611fe1565b935050602084013567ffffffffffffffff8111156121cb576121ca612c95565b5b6121d786828701612020565b92509250509250925092565b600080604083850312156121fa576121f9612c9a565b5b600061220885828601611fe1565b925050602083013567ffffffffffffffff81111561222957612228612c95565b5b61223585828601612076565b9150509250929050565b60008060006060848603121561225857612257612c9a565b5b600061226686828701611fe1565b9350506020612277868287016120a4565b925050604061228886828701611fe1565b9150509250925092565b6000806000806000608086880312156122ae576122ad612c9a565b5b60006122bc88828901611fe1565b95505060206122cd888289016120a4565b94505060406122de88828901611fe1565b935050606086013567ffffffffffffffff8111156122ff576122fe612c95565b5b61230b88828901612020565b92509250509295509295909350565b6000602082840312156123305761232f612c9a565b5b600061233e84828501611ff6565b91505092915050565b60006020828403121561235d5761235c612c9a565b5b600061236b8482850161200b565b91505092915050565b60006020828403121561238a57612389612c9a565b5b6000612398848285016120b9565b91505092915050565b6123aa81612b5c565b82525050565b6123b981612b7a565b82525050565b60006123cb8385612b2f565b93506123d8838584612bdf565b6123e183612c9f565b840190509392505050565b60006123f88385612b40565b9350612405838584612bdf565b82840190509392505050565b600061241c82612b19565b6124268185612b2f565b9350612436818560208601612bee565b61243f81612c9f565b840191505092915050565b600061245582612b19565b61245f8185612b40565b935061246f818560208601612bee565b80840191505092915050565b61248481612bbb565b82525050565b61249381612bcd565b82525050565b60006124a482612b24565b6124ae8185612b4b565b93506124be818560208601612bee565b6124c781612c9f565b840191505092915050565b60006124df602683612b4b565b91506124ea82612cb0565b604082019050919050565b6000612502602c83612b4b565b915061250d82612cff565b604082019050919050565b6000612525602c83612b4b565b915061253082612d4e565b604082019050919050565b6000612548602683612b4b565b915061255382612d9d565b604082019050919050565b600061256b603883612b4b565b915061257682612dec565b604082019050919050565b600061258e602983612b4b565b915061259982612e3b565b604082019050919050565b60006125b1602e83612b4b565b91506125bc82612e8a565b604082019050919050565b60006125d4602e83612b4b565b91506125df82612ed9565b604082019050919050565b60006125f7602d83612b4b565b915061260282612f28565b604082019050919050565b600061261a602083612b4b565b915061262582612f77565b602082019050919050565b600061263d600083612b2f565b915061264882612fa0565b600082019050919050565b6000612660600083612b40565b915061266b82612fa0565b600082019050919050565b6000612683601d83612b4b565b915061268e82612fa3565b602082019050919050565b60006126a6602b83612b4b565b91506126b182612fcc565b604082019050919050565b60006126c9602a83612b4b565b91506126d48261301b565b604082019050919050565b6126e881612ba4565b82525050565b60006126fb8284866123ec565b91508190509392505050565b6000612713828461244a565b915081905092915050565b600061272982612653565b9150819050919050565b600060208201905061274860008301846123a1565b92915050565b600060608201905061276360008301866123a1565b61277060208301856123a1565b61277d60408301846126df565b949350505050565b600060408201905061279a60008301856123a1565b6127a7602083018461247b565b9392505050565b60006040820190506127c360008301856123a1565b6127d060208301846126df565b9392505050565b60006020820190506127ec60008301846123b0565b92915050565b6000602082019050818103600083015261280d8184866123bf565b90509392505050565b600060208201905081810360008301526128308184612411565b905092915050565b600060208201905061284d600083018461248a565b92915050565b6000602082019050818103600083015261286d8184612499565b905092915050565b6000602082019050818103600083015261288e816124d2565b9050919050565b600060208201905081810360008301526128ae816124f5565b9050919050565b600060208201905081810360008301526128ce81612518565b9050919050565b600060208201905081810360008301526128ee8161253b565b9050919050565b6000602082019050818103600083015261290e8161255e565b9050919050565b6000602082019050818103600083015261292e81612581565b9050919050565b6000602082019050818103600083015261294e816125a4565b9050919050565b6000602082019050818103600083015261296e816125c7565b9050919050565b6000602082019050818103600083015261298e816125ea565b9050919050565b600060208201905081810360008301526129ae8161260d565b9050919050565b600060208201905081810360008301526129ce81612676565b9050919050565b600060208201905081810360008301526129ee81612699565b9050919050565b60006020820190508181036000830152612a0e816126bc565b9050919050565b6000606082019050612a2a60008301876126df565b612a3760208301866123a1565b8181036040830152612a4a8184866123bf565b905095945050505050565b6000606082019050612a6a60008301856126df565b612a7760208301846123a1565b8181036040830152612a8881612630565b90509392505050565b6000604082019050612aa660008301866126df565b8181036020830152612ab98184866123bf565b9050949350505050565b6000612acd612ade565b9050612ad98282612c21565b919050565b6000604051905090565b600067ffffffffffffffff821115612b0357612b02612c52565b5b612b0c82612c9f565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000612b6782612b84565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612bc682612ba4565b9050919050565b6000612bd882612bae565b9050919050565b82818337600083830152505050565b60005b83811015612c0c578082015181840152602081019050612bf1565b83811115612c1b576000848401525b50505050565b612c2a82612c9f565b810181811067ffffffffffffffff82111715612c4957612c48612c52565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f64656c656761746563616c6c0000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f6163746976652070726f78790000000000000000000000000000000000000000602082015250565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f555550535570677261646561626c653a206d757374206e6f742062652063616c60008201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000602082015250565b7f45524331393637557067726164653a20756e737570706f727465642070726f7860008201527f6961626c65555549440000000000000000000000000000000000000000000000602082015250565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f45524331393637557067726164653a206e657720696d706c656d656e7461746960008201527f6f6e206973206e6f742055555053000000000000000000000000000000000000602082015250565b7f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60008201527f6f74206120636f6e747261637400000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b61307381612b5c565b811461307e57600080fd5b50565b61308a81612b6e565b811461309557600080fd5b50565b6130a181612b7a565b81146130ac57600080fd5b50565b6130b881612ba4565b81146130c357600080fd5b5056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220154452ab17b7ec6558ae20cf0777deee4780b8e192489db9d10e2ac9e3d689a364736f6c6343000807003360806040523480156200001157600080fd5b506040516200109038038062001090833981810160405281019062000037919062000106565b6001600081905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620000a7576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506200018b565b600081519050620001008162000171565b92915050565b6000602082840312156200011f576200011e6200016c565b5b60006200012f84828501620000ef565b91505092915050565b600062000145826200014c565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6200017c8162000138565b81146200018857600080fd5b50565b610ef5806200019b6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063116191b61461004657806321fc65f214610064578063d9caed1214610080575b600080fd5b61004e61009c565b60405161005b9190610a98565b60405180910390f35b61007e600480360381019061007991906107bc565b6100c2565b005b61009a60048036038101906100959190610769565b61024a565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6100ca6102ef565b610117600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848773ffffffffffffffffffffffffffffffffffffffff1661033f9092919063ffffffff16565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635131ab5986868686866040518663ffffffff1660e01b815260040161017a959493929190610a21565b600060405180830381600087803b15801561019457600080fd5b505af11580156101a8573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906101d19190610871565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e85858560405161023393929190610b70565b60405180910390a36102436103c5565b5050505050565b6102526102ef565b61027d82828573ffffffffffffffffffffffffffffffffffffffff1661033f9092919063ffffffff16565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb836040516102da9190610b55565b60405180910390a36102ea6103c5565b505050565b60026000541415610335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032c90610b35565b60405180910390fd5b6002600081905550565b6103c08363a9059cbb60e01b848460405160240161035e929190610a6f565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506103cf565b505050565b6001600081905550565b6000610431826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166104969092919063ffffffff16565b905060008151111561049157808060200190518101906104519190610844565b610490576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048790610b15565b60405180910390fd5b5b505050565b60606104a584846000856104ae565b90509392505050565b6060824710156104f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ea90610ad5565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161051c9190610a0a565b60006040518083038185875af1925050503d8060008114610559576040519150601f19603f3d011682016040523d82523d6000602084013e61055e565b606091505b509150915061056f8783838761057b565b92505050949350505050565b606083156105de576000835114156105d657610596856105f1565b6105d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105cc90610af5565b60405180910390fd5b5b8290506105e9565b6105e88383610614565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156106275781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065b9190610ab3565b60405180910390fd5b600061067761067284610bc7565b610ba2565b90508281526020810184848401111561069357610692610d6a565b5b61069e848285610cc8565b509392505050565b6000813590506106b581610e7a565b92915050565b6000815190506106ca81610e91565b92915050565b60008083601f8401126106e6576106e5610d60565b5b8235905067ffffffffffffffff81111561070357610702610d5b565b5b60208301915083600182028301111561071f5761071e610d65565b5b9250929050565b600082601f83011261073b5761073a610d60565b5b815161074b848260208601610664565b91505092915050565b60008135905061076381610ea8565b92915050565b60008060006060848603121561078257610781610d74565b5b6000610790868287016106a6565b93505060206107a1868287016106a6565b92505060406107b286828701610754565b9150509250925092565b6000806000806000608086880312156107d8576107d7610d74565b5b60006107e6888289016106a6565b95505060206107f7888289016106a6565b945050604061080888828901610754565b935050606086013567ffffffffffffffff81111561082957610828610d6f565b5b610835888289016106d0565b92509250509295509295909350565b60006020828403121561085a57610859610d74565b5b6000610868848285016106bb565b91505092915050565b60006020828403121561088757610886610d74565b5b600082015167ffffffffffffffff8111156108a5576108a4610d6f565b5b6108b184828501610726565b91505092915050565b6108c381610c3b565b82525050565b60006108d58385610c0e565b93506108e2838584610cb9565b6108eb83610d79565b840190509392505050565b600061090182610bf8565b61090b8185610c1f565b935061091b818560208601610cc8565b80840191505092915050565b61093081610c83565b82525050565b600061094182610c03565b61094b8185610c2a565b935061095b818560208601610cc8565b61096481610d79565b840191505092915050565b600061097c602683610c2a565b915061098782610d8a565b604082019050919050565b600061099f601d83610c2a565b91506109aa82610dd9565b602082019050919050565b60006109c2602a83610c2a565b91506109cd82610e02565b604082019050919050565b60006109e5601f83610c2a565b91506109f082610e51565b602082019050919050565b610a0481610c79565b82525050565b6000610a1682846108f6565b915081905092915050565b6000608082019050610a3660008301886108ba565b610a4360208301876108ba565b610a5060408301866109fb565b8181036060830152610a638184866108c9565b90509695505050505050565b6000604082019050610a8460008301856108ba565b610a9160208301846109fb565b9392505050565b6000602082019050610aad6000830184610927565b92915050565b60006020820190508181036000830152610acd8184610936565b905092915050565b60006020820190508181036000830152610aee8161096f565b9050919050565b60006020820190508181036000830152610b0e81610992565b9050919050565b60006020820190508181036000830152610b2e816109b5565b9050919050565b60006020820190508181036000830152610b4e816109d8565b9050919050565b6000602082019050610b6a60008301846109fb565b92915050565b6000604082019050610b8560008301866109fb565b8181036020830152610b988184866108c9565b9050949350505050565b6000610bac610bbd565b9050610bb88282610cfb565b919050565b6000604051905090565b600067ffffffffffffffff821115610be257610be1610d2c565b5b610beb82610d79565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000610c4682610c59565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610c8e82610c95565b9050919050565b6000610ca082610ca7565b9050919050565b6000610cb282610c59565b9050919050565b82818337600083830152505050565b60005b83811015610ce6578082015181840152602081019050610ccb565b83811115610cf5576000848401525b50505050565b610d0482610d79565b810181811067ffffffffffffffff82111715610d2357610d22610d2c565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b610e8381610c3b565b8114610e8e57600080fd5b50565b610e9a81610c4d565b8114610ea557600080fd5b50565b610eb181610c79565b8114610ebc57600080fd5b5056fea2646970667358221220c6f7c0f9935341aaaabcabf7504d01bbd38a0606132004742a97e6a200eb432564736f6c63430008070033608060405234801561001057600080fd5b5061108a806100206000396000f3fe60806040526004361061003f5760003560e01c8063357fc5a2146100445780636ed701691461006d578063e04d4f9714610084578063f05b6abf146100a0575b600080fd5b34801561005057600080fd5b5061006b6004803603810190610066919061085a565b6100c9565b005b34801561007957600080fd5b50610082610138565b005b61009e600480360381019061009991906107eb565b610171565b005b3480156100ac57600080fd5b506100c760048036038101906100c29190610733565b6101b5565b005b6100f63382858573ffffffffffffffffffffffffffffffffffffffff166101f7909392919063ffffffff16565b7f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af603384848460405161012b9493929190610bb0565b60405180910390a1505050565b7fbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a0336040516101679190610b0b565b60405180910390a1565b7f1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa33348585856040516101a8959493929190610bf5565b60405180910390a1505050565b7f74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146338484846040516101ea9493929190610b5d565b60405180910390a1505050565b61027a846323b872dd60e01b85858560405160240161021893929190610b26565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610280565b50505050565b60006102e2826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166103479092919063ffffffff16565b9050600081511115610342578080602001905181019061030291906107be565b610341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161033890610cb1565b60405180910390fd5b5b505050565b6060610356848460008561035f565b90509392505050565b6060824710156103a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039b90610c71565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516103cd9190610af4565b60006040518083038185875af1925050503d806000811461040a576040519150601f19603f3d011682016040523d82523d6000602084013e61040f565b606091505b50915091506104208783838761042c565b92505050949350505050565b6060831561048f5760008351141561048757610447856104a2565b610486576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047d90610c91565b60405180910390fd5b5b82905061049a565b61049983836104c5565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156104d85781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050c9190610c4f565b60405180910390fd5b600061052861052384610cf6565b610cd1565b9050808382526020820190508285602086028201111561054b5761054a610f23565b5b60005b8581101561059957813567ffffffffffffffff81111561057157610570610f1e565b5b80860161057e89826106f0565b8552602085019450602084019350505060018101905061054e565b5050509392505050565b60006105b66105b184610d22565b610cd1565b905080838252602082019050828560208602820111156105d9576105d8610f23565b5b60005b8581101561060957816105ef888261071e565b8452602084019350602083019250506001810190506105dc565b5050509392505050565b600061062661062184610d4e565b610cd1565b90508281526020810184848401111561064257610641610f28565b5b61064d848285610e7c565b509392505050565b6000813590506106648161100f565b92915050565b600082601f83011261067f5761067e610f1e565b5b813561068f848260208601610515565b91505092915050565b600082601f8301126106ad576106ac610f1e565b5b81356106bd8482602086016105a3565b91505092915050565b6000813590506106d581611026565b92915050565b6000815190506106ea81611026565b92915050565b600082601f83011261070557610704610f1e565b5b8135610715848260208601610613565b91505092915050565b60008135905061072d8161103d565b92915050565b60008060006060848603121561074c5761074b610f32565b5b600084013567ffffffffffffffff81111561076a57610769610f2d565b5b6107768682870161066a565b935050602084013567ffffffffffffffff81111561079757610796610f2d565b5b6107a386828701610698565b92505060406107b4868287016106c6565b9150509250925092565b6000602082840312156107d4576107d3610f32565b5b60006107e2848285016106db565b91505092915050565b60008060006060848603121561080457610803610f32565b5b600084013567ffffffffffffffff81111561082257610821610f2d565b5b61082e868287016106f0565b935050602061083f8682870161071e565b9250506040610850868287016106c6565b9150509250925092565b60008060006060848603121561087357610872610f32565b5b60006108818682870161071e565b935050602061089286828701610655565b92505060406108a386828701610655565b9150509250925092565b60006108b983836109fb565b905092915050565b60006108cd8383610ad6565b60208301905092915050565b6108e281610e34565b82525050565b60006108f382610d9f565b6108fd8185610de5565b93508360208202850161090f85610d7f565b8060005b8581101561094b578484038952815161092c85826108ad565b945061093783610dcb565b925060208a01995050600181019050610913565b50829750879550505050505092915050565b600061096882610daa565b6109728185610df6565b935061097d83610d8f565b8060005b838110156109ae57815161099588826108c1565b97506109a083610dd8565b925050600181019050610981565b5085935050505092915050565b6109c481610e46565b82525050565b60006109d582610db5565b6109df8185610e07565b93506109ef818560208601610e8b565b80840191505092915050565b6000610a0682610dc0565b610a108185610e12565b9350610a20818560208601610e8b565b610a2981610f37565b840191505092915050565b6000610a3f82610dc0565b610a498185610e23565b9350610a59818560208601610e8b565b610a6281610f37565b840191505092915050565b6000610a7a602683610e23565b9150610a8582610f48565b604082019050919050565b6000610a9d601d83610e23565b9150610aa882610f97565b602082019050919050565b6000610ac0602a83610e23565b9150610acb82610fc0565b604082019050919050565b610adf81610e72565b82525050565b610aee81610e72565b82525050565b6000610b0082846109ca565b915081905092915050565b6000602082019050610b2060008301846108d9565b92915050565b6000606082019050610b3b60008301866108d9565b610b4860208301856108d9565b610b556040830184610ae5565b949350505050565b6000608082019050610b7260008301876108d9565b8181036020830152610b8481866108e8565b90508181036040830152610b98818561095d565b9050610ba760608301846109bb565b95945050505050565b6000608082019050610bc560008301876108d9565b610bd26020830186610ae5565b610bdf60408301856108d9565b610bec60608301846108d9565b95945050505050565b600060a082019050610c0a60008301886108d9565b610c176020830187610ae5565b8181036040830152610c298186610a34565b9050610c386060830185610ae5565b610c4560808301846109bb565b9695505050505050565b60006020820190508181036000830152610c698184610a34565b905092915050565b60006020820190508181036000830152610c8a81610a6d565b9050919050565b60006020820190508181036000830152610caa81610a90565b9050919050565b60006020820190508181036000830152610cca81610ab3565b9050919050565b6000610cdb610cec565b9050610ce78282610ebe565b919050565b6000604051905090565b600067ffffffffffffffff821115610d1157610d10610eef565b5b602082029050602081019050919050565b600067ffffffffffffffff821115610d3d57610d3c610eef565b5b602082029050602081019050919050565b600067ffffffffffffffff821115610d6957610d68610eef565b5b610d7282610f37565b9050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000610e3f82610e52565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015610ea9578082015181840152602081019050610e8e565b83811115610eb8576000848401525b50505050565b610ec782610f37565b810181811067ffffffffffffffff82111715610ee657610ee5610eef565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b61101881610e34565b811461102357600080fd5b50565b61102f81610e46565b811461103a57600080fd5b50565b61104681610e72565b811461105157600080fd5b5056fea2646970667358221220086a1c9f56ed96506c7198d50cf431a5b03003c16cd4168d2395cdedfc1ac06164736f6c6343000807003360a06040523073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152503480156200004757600080fd5b50620000586200005e60201b60201c565b62000208565b600060019054906101000a900460ff1615620000b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000a8906200015c565b60405180910390fd5b60ff801660008054906101000a900460ff1660ff1614620001225760ff6000806101000a81548160ff021916908360ff1602179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860ff6040516200011991906200017e565b60405180910390a15b565b6000620001336027836200019b565b91506200014082620001b9565b604082019050919050565b6200015681620001ac565b82525050565b60006020820190508181036000830152620001778162000124565b9050919050565b60006020820190506200019560008301846200014b565b92915050565b600082825260208201905092915050565b600060ff82169050919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320696e69746960008201527f616c697a696e6700000000000000000000000000000000000000000000000000602082015250565b60805160601c612c726200024360003960008181610433015281816104c2015281816105d40152818161066301526107130152612c726000f3fe6080604052600436106100dd5760003560e01c80637993c1e01161007f578063bcf7f32b11610059578063bcf7f32b14610251578063c39aca371461027a578063f2fde38b146102a3578063f45346dc146102cc576100dd565b80637993c1e0146101e65780638129fc1c1461020f5780638da5cb5b14610226576100dd565b80633ce4a5bc116100bb5780633ce4a5bc1461015d5780634f1ef2861461018857806352d1902d146101a4578063715018a6146101cf576100dd565b80630ac7c44c146100e2578063135390f91461010b5780633659cfe614610134575b600080fd5b3480156100ee57600080fd5b5061010960048036038101906101049190611c80565b6102f5565b005b34801561011757600080fd5b50610132600480360381019061012d9190611cfc565b61034c565b005b34801561014057600080fd5b5061015b60048036038101906101569190611b0a565b610431565b005b34801561016957600080fd5b506101726105ba565b60405161017f919061226e565b60405180910390f35b6101a2600480360381019061019d9190611b37565b6105d2565b005b3480156101b057600080fd5b506101b961070f565b6040516101c691906122e9565b60405180910390f35b3480156101db57600080fd5b506101e46107c8565b005b3480156101f257600080fd5b5061020d60048036038101906102089190611d6b565b6107dc565b005b34801561021b57600080fd5b506102246108c7565b005b34801561023257600080fd5b5061023b610a0d565b604051610248919061226e565b60405180910390f35b34801561025d57600080fd5b5061027860048036038101906102739190611e0f565b610a37565b005b34801561028657600080fd5b506102a1600480360381019061029c9190611e0f565b610b2b565b005b3480156102af57600080fd5b506102ca60048036038101906102c59190611b0a565b610d5d565b005b3480156102d857600080fd5b506102f360048036038101906102ee9190611bd3565b610de1565b005b3373ffffffffffffffffffffffffffffffffffffffff167f2b5af078ce280d812dc2241658dc5435c93408020e5418eef55a2b536de51c0f84848460405161033f93929190612304565b60405180910390a2505050565b60006103588383610f9d565b90503373ffffffffffffffffffffffffffffffffffffffff167f1866ad2994816c79f4103e1eddacc7b085eb7c635205243a28940be69b01536d8585848673ffffffffffffffffffffffffffffffffffffffff16634d8943bb6040518163ffffffff1660e01b815260040160206040518083038186803b1580156103db57600080fd5b505afa1580156103ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104139190611ec5565b60405161042394939291906123a0565b60405180910390a250505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614156104c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104b79061245c565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166104ff61128d565b73ffffffffffffffffffffffffffffffffffffffff1614610555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054c9061247c565b60405180910390fd5b61055e816112e4565b6105b781600067ffffffffffffffff81111561057d5761057c61282b565b5b6040519080825280601f01601f1916602001820160405280156105af5781602001600182028036833780820191505090505b5060006112ef565b50565b73735b14bb79463307aacbed86daf3322b1e6226ab81565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610661576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106589061245c565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166106a061128d565b73ffffffffffffffffffffffffffffffffffffffff16146106f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ed9061247c565b60405180910390fd5b6106ff826112e4565b61070b828260016112ef565b5050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161461079f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107969061249c565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b905090565b6107d061146c565b6107da60006114ea565b565b60006107e88585610f9d565b90503373ffffffffffffffffffffffffffffffffffffffff167f1866ad2994816c79f4103e1eddacc7b085eb7c635205243a28940be69b01536d8787848873ffffffffffffffffffffffffffffffffffffffff16634d8943bb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561086b57600080fd5b505afa15801561087f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a39190611ec5565b88886040516108b79695949392919061233d565b60405180910390a2505050505050565b60008060019054906101000a900460ff161590508080156108f85750600160008054906101000a900460ff1660ff16105b806109255750610907306115b0565b1580156109245750600160008054906101000a900460ff1660ff16145b5b610964576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095b906124dc565b60405180910390fd5b60016000806101000a81548160ff021916908360ff16021790555080156109a1576001600060016101000a81548160ff0219169083151502179055505b6109a96115d3565b6109b161162c565b8015610a0a5760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986001604051610a0191906123ff565b60405180910390a15b50565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ab0576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663de43156e87878786866040518663ffffffff1660e01b8152600401610af195949392919061259c565b600060405180830381600087803b158015610b0b57600080fd5b505af1158015610b1f573d6000803e3d6000fd5b50505050505050505050565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ba4576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610c1d57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15610c54576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff166347e7ef2484866040518363ffffffff1660e01b8152600401610c8f9291906122c0565b602060405180830381600087803b158015610ca957600080fd5b505af1158015610cbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce19190611c26565b508273ffffffffffffffffffffffffffffffffffffffff1663de43156e87878786866040518663ffffffff1660e01b8152600401610d2395949392919061259c565b600060405180830381600087803b158015610d3d57600080fd5b505af1158015610d51573d6000803e3d6000fd5b50505050505050505050565b610d6561146c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610dd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcc9061243c565b60405180910390fd5b610dde816114ea565b50565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e5a576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480610ed357503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15610f0a576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff166347e7ef2482846040518363ffffffff1660e01b8152600401610f459291906122c0565b602060405180830381600087803b158015610f5f57600080fd5b505af1158015610f73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f979190611c26565b50505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1663d9eeebed6040518163ffffffff1660e01b8152600401604080518083038186803b158015610fe757600080fd5b505afa158015610ffb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101f9190611b93565b915091508173ffffffffffffffffffffffffffffffffffffffff166323b872dd3373735b14bb79463307aacbed86daf3322b1e6226ab846040518463ffffffff1660e01b815260040161107493929190612289565b602060405180830381600087803b15801561108e57600080fd5b505af11580156110a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c69190611c26565b6110fc576040517f0a7cd6d600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd3330886040518463ffffffff1660e01b815260040161113993929190612289565b602060405180830381600087803b15801561115357600080fd5b505af1158015611167573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118b9190611c26565b6111c1576040517f4dd9ee8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff166342966c68866040518263ffffffff1660e01b81526004016111fa91906125f1565b602060405180830381600087803b15801561121457600080fd5b505af1158015611228573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124c9190611c26565b611282576040517f2c77e05c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b809250505092915050565b60006112bb7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61167d565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6112ec61146c565b50565b61131b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914360001b611687565b60000160009054906101000a900460ff161561133f5761133a83611691565b611467565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561138557600080fd5b505afa9250505080156113b657506040513d601f19601f820116820180604052508101906113b39190611c53565b60015b6113f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ec906124fc565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b811461145a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611451906124bc565b60405180910390fd5b5061146683838361174a565b5b505050565b611474611776565b73ffffffffffffffffffffffffffffffffffffffff16611492610a0d565b73ffffffffffffffffffffffffffffffffffffffff16146114e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114df9061253c565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16611622576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116199061257c565b60405180910390fd5b61162a61177e565b565b600060019054906101000a900460ff1661167b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116729061257c565b60405180910390fd5b565b6000819050919050565b6000819050919050565b61169a816115b0565b6116d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d09061251c565b60405180910390fd5b806117067f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61167d565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611753836117df565b6000825111806117605750805b156117715761176f838361182e565b505b505050565b600033905090565b600060019054906101000a900460ff166117cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c49061257c565b60405180910390fd5b6117dd6117d8611776565b6114ea565b565b6117e881611691565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b60606118538383604051806060016040528060278152602001612c166027913961185b565b905092915050565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516118859190612257565b600060405180830381855af49150503d80600081146118c0576040519150601f19603f3d011682016040523d82523d6000602084013e6118c5565b606091505b50915091506118d6868383876118e1565b925050509392505050565b606083156119445760008351141561193c576118fc856115b0565b61193b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119329061255c565b60405180910390fd5b5b82905061194f565b61194e8383611957565b5b949350505050565b60008251111561196a5781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199e919061241a565b60405180910390fd5b60006119ba6119b584612631565b61260c565b9050828152602081018484840111156119d6576119d5612878565b5b6119e18482856127b8565b509392505050565b6000813590506119f881612bb9565b92915050565b600081519050611a0d81612bb9565b92915050565b600081519050611a2281612bd0565b92915050565b600081519050611a3781612be7565b92915050565b60008083601f840112611a5357611a52612864565b5b8235905067ffffffffffffffff811115611a7057611a6f61285f565b5b602083019150836001820283011115611a8c57611a8b612873565b5b9250929050565b600082601f830112611aa857611aa7612864565b5b8135611ab88482602086016119a7565b91505092915050565b600060608284031215611ad757611ad6612869565b5b81905092915050565b600081359050611aef81612bfe565b92915050565b600081519050611b0481612bfe565b92915050565b600060208284031215611b2057611b1f612887565b5b6000611b2e848285016119e9565b91505092915050565b60008060408385031215611b4e57611b4d612887565b5b6000611b5c858286016119e9565b925050602083013567ffffffffffffffff811115611b7d57611b7c61287d565b5b611b8985828601611a93565b9150509250929050565b60008060408385031215611baa57611ba9612887565b5b6000611bb8858286016119fe565b9250506020611bc985828601611af5565b9150509250929050565b600080600060608486031215611bec57611beb612887565b5b6000611bfa868287016119e9565b9350506020611c0b86828701611ae0565b9250506040611c1c868287016119e9565b9150509250925092565b600060208284031215611c3c57611c3b612887565b5b6000611c4a84828501611a13565b91505092915050565b600060208284031215611c6957611c68612887565b5b6000611c7784828501611a28565b91505092915050565b600080600060408486031215611c9957611c98612887565b5b600084013567ffffffffffffffff811115611cb757611cb661287d565b5b611cc386828701611a93565b935050602084013567ffffffffffffffff811115611ce457611ce361287d565b5b611cf086828701611a3d565b92509250509250925092565b600080600060608486031215611d1557611d14612887565b5b600084013567ffffffffffffffff811115611d3357611d3261287d565b5b611d3f86828701611a93565b9350506020611d5086828701611ae0565b9250506040611d61868287016119e9565b9150509250925092565b600080600080600060808688031215611d8757611d86612887565b5b600086013567ffffffffffffffff811115611da557611da461287d565b5b611db188828901611a93565b9550506020611dc288828901611ae0565b9450506040611dd3888289016119e9565b935050606086013567ffffffffffffffff811115611df457611df361287d565b5b611e0088828901611a3d565b92509250509295509295909350565b60008060008060008060a08789031215611e2c57611e2b612887565b5b600087013567ffffffffffffffff811115611e4a57611e4961287d565b5b611e5689828a01611ac1565b9650506020611e6789828a016119e9565b9550506040611e7889828a01611ae0565b9450506060611e8989828a016119e9565b935050608087013567ffffffffffffffff811115611eaa57611ea961287d565b5b611eb689828a01611a3d565b92509250509295509295509295565b600060208284031215611edb57611eda612887565b5b6000611ee984828501611af5565b91505092915050565b611efb81612747565b82525050565b611f0a81612747565b82525050565b611f1981612765565b82525050565b6000611f2b8385612678565b9350611f388385846127b8565b611f418361288c565b840190509392505050565b6000611f588385612689565b9350611f658385846127b8565b611f6e8361288c565b840190509392505050565b6000611f8482612662565b611f8e8185612689565b9350611f9e8185602086016127c7565b611fa78161288c565b840191505092915050565b6000611fbd82612662565b611fc7818561269a565b9350611fd78185602086016127c7565b80840191505092915050565b611fec816127a6565b82525050565b6000611ffd8261266d565b61200781856126a5565b93506120178185602086016127c7565b6120208161288c565b840191505092915050565b60006120386026836126a5565b91506120438261289d565b604082019050919050565b600061205b602c836126a5565b9150612066826128ec565b604082019050919050565b600061207e602c836126a5565b91506120898261293b565b604082019050919050565b60006120a16038836126a5565b91506120ac8261298a565b604082019050919050565b60006120c46029836126a5565b91506120cf826129d9565b604082019050919050565b60006120e7602e836126a5565b91506120f282612a28565b604082019050919050565b600061210a602e836126a5565b915061211582612a77565b604082019050919050565b600061212d602d836126a5565b915061213882612ac6565b604082019050919050565b60006121506020836126a5565b915061215b82612b15565b602082019050919050565b6000612173600083612689565b915061217e82612b3e565b600082019050919050565b6000612196601d836126a5565b91506121a182612b41565b602082019050919050565b60006121b9602b836126a5565b91506121c482612b6a565b604082019050919050565b6000606083016121e260008401846126cd565b85830360008701526121f5838284611f1f565b9250505061220660208401846126b6565b6122136020860182611ef2565b506122216040840184612730565b61222e6040860182612239565b508091505092915050565b6122428161278f565b82525050565b6122518161278f565b82525050565b60006122638284611fb2565b915081905092915050565b60006020820190506122836000830184611f01565b92915050565b600060608201905061229e6000830186611f01565b6122ab6020830185611f01565b6122b86040830184612248565b949350505050565b60006040820190506122d56000830185611f01565b6122e26020830184612248565b9392505050565b60006020820190506122fe6000830184611f10565b92915050565b6000604082019050818103600083015261231e8186611f79565b90508181036020830152612333818486611f4c565b9050949350505050565b600060a08201905081810360008301526123578189611f79565b90506123666020830188612248565b6123736040830187612248565b6123806060830186612248565b8181036080830152612393818486611f4c565b9050979650505050505050565b600060a08201905081810360008301526123ba8187611f79565b90506123c96020830186612248565b6123d66040830185612248565b6123e36060830184612248565b81810360808301526123f481612166565b905095945050505050565b60006020820190506124146000830184611fe3565b92915050565b600060208201905081810360008301526124348184611ff2565b905092915050565b600060208201905081810360008301526124558161202b565b9050919050565b600060208201905081810360008301526124758161204e565b9050919050565b6000602082019050818103600083015261249581612071565b9050919050565b600060208201905081810360008301526124b581612094565b9050919050565b600060208201905081810360008301526124d5816120b7565b9050919050565b600060208201905081810360008301526124f5816120da565b9050919050565b60006020820190508181036000830152612515816120fd565b9050919050565b6000602082019050818103600083015261253581612120565b9050919050565b6000602082019050818103600083015261255581612143565b9050919050565b6000602082019050818103600083015261257581612189565b9050919050565b60006020820190508181036000830152612595816121ac565b9050919050565b600060808201905081810360008301526125b681886121cf565b90506125c56020830187611f01565b6125d26040830186612248565b81810360608301526125e5818486611f4c565b90509695505050505050565b60006020820190506126066000830184612248565b92915050565b6000612616612627565b905061262282826127fa565b919050565b6000604051905090565b600067ffffffffffffffff82111561264c5761264b61282b565b5b6126558261288c565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006126c560208401846119e9565b905092915050565b600080833560016020038436030381126126ea576126e9612882565b5b83810192508235915060208301925067ffffffffffffffff8211156127125761271161285a565b5b6001820236038413156127285761272761286e565b5b509250929050565b600061273f6020840184611ae0565b905092915050565b60006127528261276f565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006127b182612799565b9050919050565b82818337600083830152505050565b60005b838110156127e55780820151818401526020810190506127ca565b838111156127f4576000848401525b50505050565b6128038261288c565b810181811067ffffffffffffffff821117156128225761282161282b565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f64656c656761746563616c6c0000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f6163746976652070726f78790000000000000000000000000000000000000000602082015250565b7f555550535570677261646561626c653a206d757374206e6f742062652063616c60008201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000602082015250565b7f45524331393637557067726164653a20756e737570706f727465642070726f7860008201527f6961626c65555549440000000000000000000000000000000000000000000000602082015250565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f45524331393637557067726164653a206e657720696d706c656d656e7461746960008201527f6f6e206973206e6f742055555053000000000000000000000000000000000000602082015250565b7f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60008201527f6f74206120636f6e747261637400000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b612bc281612747565b8114612bcd57600080fd5b50565b612bd981612759565b8114612be457600080fd5b50565b612bf081612765565b8114612bfb57600080fd5b50565b612c078161278f565b8114612c1257600080fd5b5056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122015c949adac746922ae292180700af4f4a4ce97a3db9d7b2c84f6c7beb1452aaa64736f6c63430008070033608060405234801561001057600080fd5b50604051610bcd380380610bcd8339818101604052810190610032919061008d565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610108565b600081519050610087816100f1565b92915050565b6000602082840312156100a3576100a26100ec565b5b60006100b184828501610078565b91505092915050565b60006100c5826100cc565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6100fa816100ba565b811461010557600080fd5b50565b610ab6806101176000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630abd890514610046578063116191b614610062578063a0a1730b14610080575b600080fd5b610060600480360381019061005b91906105fd565b61009c565b005b61006a6102af565b6040516100779190610761565b60405180910390f35b61009a6004803603810190610095919061055e565b6102d3565b005b60008383836040516024016100b39392919061082f565b6040516020818303038152906040527fe04d4f97000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090508473ffffffffffffffffffffffffffffffffffffffff1663095ea7b360008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16886040518363ffffffff1660e01b815260040161018d92919061077c565b602060405180830381600087803b1580156101a757600080fd5b505af11580156101bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101df9190610531565b610215576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637993c1e0888888856040518563ffffffff1660e01b815260040161027494939291906107dc565b600060405180830381600087803b15801561028e57600080fd5b505af11580156102a2573d6000803e3d6000fd5b5050505050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008383836040516024016102ea9392919061082f565b6040516020818303038152906040527fe04d4f97000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630ac7c44c86836040518363ffffffff1660e01b81526004016103c49291906107a5565b600060405180830381600087803b1580156103de57600080fd5b505af11580156103f2573d6000803e3d6000fd5b505050505050505050565b600061041061040b84610892565b61086d565b90508281526020810184848401111561042c5761042b610a1b565b5b610437848285610974565b509392505050565b600061045261044d846108c3565b61086d565b90508281526020810184848401111561046e5761046d610a1b565b5b610479848285610974565b509392505050565b60008135905061049081610a3b565b92915050565b6000813590506104a581610a52565b92915050565b6000815190506104ba81610a52565b92915050565b600082601f8301126104d5576104d4610a16565b5b81356104e58482602086016103fd565b91505092915050565b600082601f83011261050357610502610a16565b5b813561051384826020860161043f565b91505092915050565b60008135905061052b81610a69565b92915050565b60006020828403121561054757610546610a25565b5b6000610555848285016104ab565b91505092915050565b6000806000806080858703121561057857610577610a25565b5b600085013567ffffffffffffffff81111561059657610595610a20565b5b6105a2878288016104c0565b945050602085013567ffffffffffffffff8111156105c3576105c2610a20565b5b6105cf878288016104ee565b93505060406105e08782880161051c565b92505060606105f187828801610496565b91505092959194509250565b60008060008060008060c0878903121561061a57610619610a25565b5b600087013567ffffffffffffffff81111561063857610637610a20565b5b61064489828a016104c0565b965050602061065589828a0161051c565b955050604061066689828a01610481565b945050606087013567ffffffffffffffff81111561068757610686610a20565b5b61069389828a016104ee565b93505060806106a489828a0161051c565b92505060a06106b589828a01610496565b9150509295509295509295565b6106cb8161092c565b82525050565b6106da8161093e565b82525050565b60006106eb826108f4565b6106f5818561090a565b9350610705818560208601610983565b61070e81610a2a565b840191505092915050565b6000610724826108ff565b61072e818561091b565b935061073e818560208601610983565b61074781610a2a565b840191505092915050565b61075b8161096a565b82525050565b600060208201905061077660008301846106c2565b92915050565b600060408201905061079160008301856106c2565b61079e6020830184610752565b9392505050565b600060408201905081810360008301526107bf81856106e0565b905081810360208301526107d381846106e0565b90509392505050565b600060808201905081810360008301526107f681876106e0565b90506108056020830186610752565b61081260408301856106c2565b818103606083015261082481846106e0565b905095945050505050565b600060608201905081810360008301526108498186610719565b90506108586020830185610752565b61086560408301846106d1565b949350505050565b6000610877610888565b905061088382826109b6565b919050565b6000604051905090565b600067ffffffffffffffff8211156108ad576108ac6109e7565b5b6108b682610a2a565b9050602081019050919050565b600067ffffffffffffffff8211156108de576108dd6109e7565b5b6108e782610a2a565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006109378261094a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156109a1578082015181840152602081019050610986565b838111156109b0576000848401525b50505050565b6109bf82610a2a565b810181811067ffffffffffffffff821117156109de576109dd6109e7565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b610a448161092c565b8114610a4f57600080fd5b50565b610a5b8161093e565b8114610a6657600080fd5b50565b610a728161096a565b8114610a7d57600080fd5b5056fea26469706673582212205b143977db6155828f5d21dccf3e39e1abbc3e6abfa0cfb9b988a47a7ff289c864736f6c6343000807003360806040523480156200001157600080fd5b50604051620010d7380380620010d7833981810160405281019062000037919062000146565b82600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f80699e81136d69cb8367ad52a994e25c722a86da654b561d0c14b61a777e7ac560405160405180910390a1505050620001f5565b6000815190506200014081620001db565b92915050565b600080600060608486031215620001625762000161620001d6565b5b600062000172868287016200012f565b935050602062000185868287016200012f565b925050604062000198868287016200012f565b9150509250925092565b6000620001af82620001b6565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b620001e681620001a2565b8114620001f257600080fd5b50565b610ed280620002056000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c806397770dff1161007157806397770dff14610166578063a7cb050714610182578063c63585cc1461019e578063d7fd7afb146101ce578063d936a012146101fe578063ee2815ba1461021c576100a9565b80630be15547146100ae5780633c669d55146100de578063513a9c05146100fa578063569541b91461012a578063842da36d14610148575b600080fd5b6100c860048036038101906100c3919061094d565b610238565b6040516100d59190610bce565b60405180910390f35b6100f860048036038101906100f39190610898565b61026b565b005b610114600480360381019061010f919061094d565b6103b8565b6040516101219190610bce565b60405180910390f35b6101326103eb565b60405161013f9190610bce565b60405180910390f35b610150610411565b60405161015d9190610bce565b60405180910390f35b610180600480360381019061017b9190610818565b610437565b005b61019c600480360381019061019791906109ba565b6104d4565b005b6101b860048036038101906101b39190610845565b610528565b6040516101c59190610bce565b60405180910390f35b6101e860048036038101906101e3919061094d565b61059a565b6040516101f59190610c67565b60405180910390f35b6102066105b2565b6040516102139190610bce565b60405180910390f35b6102366004803603810190610231919061097a565b6105d8565b005b60016020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060405180606001604052806040518060200160405280600081525081526020013373ffffffffffffffffffffffffffffffffffffffff1681526020014681525090508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87866040518363ffffffff1660e01b81526004016102ea929190610be9565b602060405180830381600087803b15801561030457600080fd5b505af1158015610318573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033c9190610920565b508573ffffffffffffffffffffffffffffffffffffffff1663de43156e82878787876040518663ffffffff1660e01b815260040161037e959493929190610c12565b600060405180830381600087803b15801561039857600080fd5b505af11580156103ac573d6000803e3d6000fd5b50505050505050505050565b60026020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fdba79d534382d1a8ae108e4c8ecb27c6ae42ab8b91d44eedf88bd329f3868d5e600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516104c99190610bce565b60405180910390a150565b80600080848152602001908152602001600020819055507f49f492222906ac486c3c1401fa545626df1f0c0e5a77a05597ea2ed66af9850d828260405161051c929190610cab565b60405180910390a15050565b60008060006105378585610667565b9150915085828260405160200161054f929190610b60565b60405160208183030381529060405280519060200120604051602001610576929190610b8c565b6040516020818303038152906040528051906020012060001c925050509392505050565b60006020528060005260406000206000915090505481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b806001600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd1b36d30f6248e97c473b4d1348ca164a4ef6759022f54a58ec200326c39c45d828260405161065b929190610c82565b60405180910390a15050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156106d0576040517fcb1e7cfe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161061070a57828461070d565b83835b8092508193505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561077c576040517f78b507da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b60008135905061079281610e57565b92915050565b6000815190506107a781610e6e565b92915050565b60008083601f8401126107c3576107c2610dd3565b5b8235905067ffffffffffffffff8111156107e0576107df610dce565b5b6020830191508360018202830111156107fc576107fb610dd8565b5b9250929050565b60008135905061081281610e85565b92915050565b60006020828403121561082e5761082d610de2565b5b600061083c84828501610783565b91505092915050565b60008060006060848603121561085e5761085d610de2565b5b600061086c86828701610783565b935050602061087d86828701610783565b925050604061088e86828701610783565b9150509250925092565b6000806000806000608086880312156108b4576108b3610de2565b5b60006108c288828901610783565b95505060206108d388828901610783565b94505060406108e488828901610803565b935050606086013567ffffffffffffffff81111561090557610904610ddd565b5b610911888289016107ad565b92509250509295509295909350565b60006020828403121561093657610935610de2565b5b600061094484828501610798565b91505092915050565b60006020828403121561096357610962610de2565b5b600061097184828501610803565b91505092915050565b6000806040838503121561099157610990610de2565b5b600061099f85828601610803565b92505060206109b085828601610783565b9150509250929050565b600080604083850312156109d1576109d0610de2565b5b60006109df85828601610803565b92505060206109f085828601610803565b9150509250929050565b610a0381610d0c565b82525050565b610a1281610d0c565b82525050565b610a29610a2482610d0c565b610da0565b82525050565b610a40610a3b82610d2a565b610db2565b82525050565b6000610a528385610cf0565b9350610a5f838584610d5e565b610a6883610de7565b840190509392505050565b6000610a7e82610cd4565b610a888185610cdf565b9350610a98818560208601610d6d565b610aa181610de7565b840191505092915050565b6000610ab9602083610d01565b9150610ac482610e05565b602082019050919050565b6000610adc600183610d01565b9150610ae782610e2e565b600182019050919050565b60006060830160008301518482036000860152610b0f8282610a73565b9150506020830151610b2460208601826109fa565b506040830151610b376040860182610b42565b508091505092915050565b610b4b81610d54565b82525050565b610b5a81610d54565b82525050565b6000610b6c8285610a18565b601482019150610b7c8284610a18565b6014820191508190509392505050565b6000610b9782610acf565b9150610ba38285610a18565b601482019150610bb38284610a2f565b602082019150610bc282610aac565b91508190509392505050565b6000602082019050610be36000830184610a09565b92915050565b6000604082019050610bfe6000830185610a09565b610c0b6020830184610b51565b9392505050565b60006080820190508181036000830152610c2c8188610af2565b9050610c3b6020830187610a09565b610c486040830186610b51565b8181036060830152610c5b818486610a46565b90509695505050505050565b6000602082019050610c7c6000830184610b51565b92915050565b6000604082019050610c976000830185610b51565b610ca46020830184610a09565b9392505050565b6000604082019050610cc06000830185610b51565b610ccd6020830184610b51565b9392505050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000610d1782610d34565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015610d8b578082015181840152602081019050610d70565b83811115610d9a576000848401525b50505050565b6000610dab82610dbc565b9050919050565b6000819050919050565b6000610dc782610df8565b9050919050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f600082015250565b7fff00000000000000000000000000000000000000000000000000000000000000600082015250565b610e6081610d0c565b8114610e6b57600080fd5b50565b610e7781610d1e565b8114610e8257600080fd5b50565b610e8e81610d54565b8114610e9957600080fd5b5056fea26469706673582212202a32df31a933796903f60b841b0f44768ba91c1035d163fc0f04fe249f5f2e7464736f6c6343000807003360c06040523480156200001157600080fd5b506040516200282d3803806200282d83398181016040528101906200003791906200035b565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614620000b1576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8760079080519060200190620000c9929190620001d1565b508660089080519060200190620000e2929190620001d1565b5085600960006101000a81548160ff021916908360ff16021790555084608081815250508360028111156200011c576200011b620005ae565b5b60a0816002811115620001345762000133620005ae565b5b60f81b8152505082600281905550816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505050620006bf565b828054620001df9062000542565b90600052602060002090601f0160209004810192826200020357600085556200024f565b82601f106200021e57805160ff19168380011785556200024f565b828001600101855582156200024f579182015b828111156200024e57825182559160200191906001019062000231565b5b5090506200025e919062000262565b5090565b5b808211156200027d57600081600090555060010162000263565b5090565b60006200029862000292846200048b565b62000462565b905082815260208101848484011115620002b757620002b662000640565b5b620002c48482856200050c565b509392505050565b600081519050620002dd8162000660565b92915050565b600081519050620002f4816200067a565b92915050565b600082601f8301126200031257620003116200063b565b5b81516200032484826020860162000281565b91505092915050565b6000815190506200033e816200068b565b92915050565b6000815190506200035581620006a5565b92915050565b600080600080600080600080610100898b0312156200037f576200037e6200064a565b5b600089015167ffffffffffffffff811115620003a0576200039f62000645565b5b620003ae8b828c01620002fa565b985050602089015167ffffffffffffffff811115620003d257620003d162000645565b5b620003e08b828c01620002fa565b9750506040620003f38b828c0162000344565b9650506060620004068b828c016200032d565b9550506080620004198b828c01620002e3565b94505060a06200042c8b828c016200032d565b93505060c06200043f8b828c01620002cc565b92505060e0620004528b828c01620002cc565b9150509295985092959890939650565b60006200046e62000481565b90506200047c828262000578565b919050565b6000604051905090565b600067ffffffffffffffff821115620004a957620004a86200060c565b5b620004b4826200064f565b9050602081019050919050565b6000620004ce82620004d5565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156200052c5780820151818401526020810190506200050f565b838111156200053c576000848401525b50505050565b600060028204905060018216806200055b57607f821691505b60208210811415620005725762000571620005dd565b5b50919050565b62000583826200064f565b810181811067ffffffffffffffff82111715620005a557620005a46200060c565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b6200066b81620004c1565b81146200067757600080fd5b50565b600381106200068857600080fd5b50565b6200069681620004f5565b8114620006a257600080fd5b50565b620006b081620004ff565b8114620006bc57600080fd5b50565b60805160a05160f81c612137620006f660003960006109580152600081816108a201528181610c250152610d5a01526121376000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806385e1f4d0116100c3578063d9eeebed1161007c578063d9eeebed146103cc578063dd62ed3e146103eb578063e2f535b81461041b578063eddeb12314610439578063f2441b3214610455578063f687d12a146104735761014d565b806385e1f4d0146102f657806395d89b4114610314578063a3413d0314610332578063a9059cbb14610350578063c701262614610380578063c835d7cc146103b05761014d565b8063313ce56711610115578063313ce5671461020c5780633ce4a5bc1461022a57806342966c681461024857806347e7ef24146102785780634d8943bb146102a857806370a08231146102c65761014d565b806306fdde0314610152578063091d278814610170578063095ea7b31461018e57806318160ddd146101be57806323b872dd146101dc575b600080fd5b61015a61048f565b6040516101679190611cad565b60405180910390f35b610178610521565b6040516101859190611ccf565b60405180910390f35b6101a860048036038101906101a3919061196e565b610527565b6040516101b59190611bfb565b60405180910390f35b6101c6610545565b6040516101d39190611ccf565b60405180910390f35b6101f660048036038101906101f1919061191b565b61054f565b6040516102039190611bfb565b60405180910390f35b610214610647565b6040516102219190611cea565b60405180910390f35b61023261065e565b60405161023f9190611b80565b60405180910390f35b610262600480360381019061025d9190611a37565b610676565b60405161026f9190611bfb565b60405180910390f35b610292600480360381019061028d919061196e565b61068b565b60405161029f9190611bfb565b60405180910390f35b6102b0610851565b6040516102bd9190611ccf565b60405180910390f35b6102e060048036038101906102db9190611881565b610857565b6040516102ed9190611ccf565b60405180910390f35b6102fe6108a0565b60405161030b9190611ccf565b60405180910390f35b61031c6108c4565b6040516103299190611cad565b60405180910390f35b61033a610956565b6040516103479190611c92565b60405180910390f35b61036a6004803603810190610365919061196e565b61097a565b6040516103779190611bfb565b60405180910390f35b61039a600480360381019061039591906119db565b610998565b6040516103a79190611bfb565b60405180910390f35b6103ca60048036038101906103c59190611881565b610aee565b005b6103d4610be1565b6040516103e2929190611bd2565b60405180910390f35b610405600480360381019061040091906118db565b610e4e565b6040516104129190611ccf565b60405180910390f35b610423610ed5565b6040516104309190611b80565b60405180910390f35b610453600480360381019061044e9190611a37565b610efb565b005b61045d610fb5565b60405161046a9190611b80565b60405180910390f35b61048d60048036038101906104889190611a37565b610fd9565b005b60606007805461049e90611f33565b80601f01602080910402602001604051908101604052809291908181526020018280546104ca90611f33565b80156105175780601f106104ec57610100808354040283529160200191610517565b820191906000526020600020905b8154815290600101906020018083116104fa57829003601f168201915b5050505050905090565b60025481565b600061053b610534611093565b848461109b565b6001905092915050565b6000600654905090565b600061055c848484611254565b6000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105a7611093565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561061e576040517f10bad14700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61063b8561062a611093565b85846106369190611e43565b61109b565b60019150509392505050565b6000600960009054906101000a900460ff16905090565b73735b14bb79463307aacbed86daf3322b1e6226ab81565b600061068233836114b0565b60019050919050565b600073735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610729575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b80156107835750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b156107ba576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107c48383611668565b8273ffffffffffffffffffffffffffffffffffffffff167f67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab373735b14bb79463307aacbed86daf3322b1e6226ab6040516020016108219190611b65565b6040516020818303038152906040528460405161083f929190611c16565b60405180910390a26001905092915050565b60035481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6060600880546108d390611f33565b80601f01602080910402602001604051908101604052809291908181526020018280546108ff90611f33565b801561094c5780601f106109215761010080835404028352916020019161094c565b820191906000526020600020905b81548152906001019060200180831161092f57829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061098e610987611093565b8484611254565b6001905092915050565b60008060006109a5610be1565b915091508173ffffffffffffffffffffffffffffffffffffffff166323b872dd3373735b14bb79463307aacbed86daf3322b1e6226ab846040518463ffffffff1660e01b81526004016109fa93929190611b9b565b602060405180830381600087803b158015610a1457600080fd5b505af1158015610a28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4c91906119ae565b610a82576040517f0a7cd6d600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a8c33856114b0565b3373ffffffffffffffffffffffffffffffffffffffff167f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d955868684600354604051610ada9493929190611c46565b60405180910390a260019250505092915050565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b67576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae81604051610bd69190611b80565b60405180910390a150565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630be155477f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401610c609190611ccf565b60206040518083038186803b158015610c7857600080fd5b505afa158015610c8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb091906118ae565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d19576040517f78fff39600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d7fd7afb7f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401610d959190611ccf565b60206040518083038186803b158015610dad57600080fd5b505afa158015610dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de59190611a64565b90506000811415610e22576040517fe661aed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060035460025483610e359190611de9565b610e3f9190611d93565b90508281945094505050509091565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f74576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806003819055507fef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f81604051610faa9190611ccf565b60405180910390a150565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611052576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806002819055507fff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a816040516110889190611ccf565b60405180910390a150565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611102576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611169576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112479190611ccf565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112bb576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611322576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156113a0576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81816113ac9190611e43565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461143e9190611d93565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114a29190611ccf565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611517576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611595576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81816115a19190611e43565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600660008282546115f69190611e43565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161165b9190611ccf565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116cf576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600660008282546116e19190611d93565b9250508190555080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117379190611d93565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161179c9190611ccf565b60405180910390a35050565b60006117bb6117b684611d2a565b611d05565b9050828152602081018484840111156117d7576117d661207b565b5b6117e2848285611ef1565b509392505050565b6000813590506117f9816120bc565b92915050565b60008151905061180e816120bc565b92915050565b600081519050611823816120d3565b92915050565b600082601f83011261183e5761183d612076565b5b813561184e8482602086016117a8565b91505092915050565b600081359050611866816120ea565b92915050565b60008151905061187b816120ea565b92915050565b60006020828403121561189757611896612085565b5b60006118a5848285016117ea565b91505092915050565b6000602082840312156118c4576118c3612085565b5b60006118d2848285016117ff565b91505092915050565b600080604083850312156118f2576118f1612085565b5b6000611900858286016117ea565b9250506020611911858286016117ea565b9150509250929050565b60008060006060848603121561193457611933612085565b5b6000611942868287016117ea565b9350506020611953868287016117ea565b925050604061196486828701611857565b9150509250925092565b6000806040838503121561198557611984612085565b5b6000611993858286016117ea565b92505060206119a485828601611857565b9150509250929050565b6000602082840312156119c4576119c3612085565b5b60006119d284828501611814565b91505092915050565b600080604083850312156119f2576119f1612085565b5b600083013567ffffffffffffffff811115611a1057611a0f612080565b5b611a1c85828601611829565b9250506020611a2d85828601611857565b9150509250929050565b600060208284031215611a4d57611a4c612085565b5b6000611a5b84828501611857565b91505092915050565b600060208284031215611a7a57611a79612085565b5b6000611a888482850161186c565b91505092915050565b611a9a81611e77565b82525050565b611ab1611aac82611e77565b611f96565b82525050565b611ac081611e89565b82525050565b6000611ad182611d5b565b611adb8185611d71565b9350611aeb818560208601611f00565b611af48161208a565b840191505092915050565b611b0881611edf565b82525050565b6000611b1982611d66565b611b238185611d82565b9350611b33818560208601611f00565b611b3c8161208a565b840191505092915050565b611b5081611ec8565b82525050565b611b5f81611ed2565b82525050565b6000611b718284611aa0565b60148201915081905092915050565b6000602082019050611b956000830184611a91565b92915050565b6000606082019050611bb06000830186611a91565b611bbd6020830185611a91565b611bca6040830184611b47565b949350505050565b6000604082019050611be76000830185611a91565b611bf46020830184611b47565b9392505050565b6000602082019050611c106000830184611ab7565b92915050565b60006040820190508181036000830152611c308185611ac6565b9050611c3f6020830184611b47565b9392505050565b60006080820190508181036000830152611c608187611ac6565b9050611c6f6020830186611b47565b611c7c6040830185611b47565b611c896060830184611b47565b95945050505050565b6000602082019050611ca76000830184611aff565b92915050565b60006020820190508181036000830152611cc78184611b0e565b905092915050565b6000602082019050611ce46000830184611b47565b92915050565b6000602082019050611cff6000830184611b56565b92915050565b6000611d0f611d20565b9050611d1b8282611f65565b919050565b6000604051905090565b600067ffffffffffffffff821115611d4557611d44612047565b5b611d4e8261208a565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000611d9e82611ec8565b9150611da983611ec8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611dde57611ddd611fba565b5b828201905092915050565b6000611df482611ec8565b9150611dff83611ec8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611e3857611e37611fba565b5b828202905092915050565b6000611e4e82611ec8565b9150611e5983611ec8565b925082821015611e6c57611e6b611fba565b5b828203905092915050565b6000611e8282611ea8565b9050919050565b60008115159050919050565b6000819050611ea3826120a8565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000611eea82611e95565b9050919050565b82818337600083830152505050565b60005b83811015611f1e578082015181840152602081019050611f03565b83811115611f2d576000848401525b50505050565b60006002820490506001821680611f4b57607f821691505b60208210811415611f5f57611f5e612018565b5b50919050565b611f6e8261208a565b810181811067ffffffffffffffff82111715611f8d57611f8c612047565b5b80604052505050565b6000611fa182611fa8565b9050919050565b6000611fb38261209b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b600381106120b9576120b8611fe9565b5b50565b6120c581611e77565b81146120d057600080fd5b50565b6120dc81611e89565b81146120e757600080fd5b50565b6120f381611ec8565b81146120fe57600080fd5b5056fea26469706673582212204256743d8281ef8d828896d1bab08cb03656cd913941f2ab189ea466016eead564736f6c63430008070033a264697066735822122061a51f9afd0e3be660d02e15aa3ec2c11dcb8b25643f9be51d4c39275da350c064736f6c63430008070033"; - -type GatewayIntegrationTestConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: GatewayIntegrationTestConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class GatewayIntegrationTest__factory extends ContractFactory { - constructor(...args: GatewayIntegrationTestConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override deploy( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy(overrides || {}) as Promise; - } - override getDeployTransaction( - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); - } - override attach(address: string): GatewayIntegrationTest { - return super.attach(address) as GatewayIntegrationTest; - } - override connect(signer: Signer): GatewayIntegrationTest__factory { - return super.connect(signer) as GatewayIntegrationTest__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): GatewayIntegrationTestInterface { - return new utils.Interface(_abi) as GatewayIntegrationTestInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): GatewayIntegrationTest { - return new Contract( - address, - _abi, - signerOrProvider - ) as GatewayIntegrationTest; - } -} diff --git a/typechain-types/factories/contracts/prototypes/test/GatewayIntegration.t.sol/index.ts b/typechain-types/factories/contracts/prototypes/test/GatewayIntegration.t.sol/index.ts deleted file mode 100644 index c9d4b01a..00000000 --- a/typechain-types/factories/contracts/prototypes/test/GatewayIntegration.t.sol/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { GatewayIntegrationTest__factory } from "./GatewayIntegrationTest__factory"; diff --git a/typechain-types/factories/contracts/prototypes/test/GatewayZEVM.t.sol/GatewayZEVMInboundTest__factory.ts b/typechain-types/factories/contracts/prototypes/test/GatewayZEVM.t.sol/GatewayZEVMInboundTest__factory.ts deleted file mode 100644 index 12f9f220..00000000 --- a/typechain-types/factories/contracts/prototypes/test/GatewayZEVM.t.sol/GatewayZEVMInboundTest__factory.ts +++ /dev/null @@ -1,766 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../../../common"; -import type { - GatewayZEVMInboundTest, - GatewayZEVMInboundTestInterface, -} from "../../../../../contracts/prototypes/test/GatewayZEVM.t.sol/GatewayZEVMInboundTest"; - -const _abi = [ - { - inputs: [], - name: "CallerIsNotFungibleModule", - type: "error", - }, - { - inputs: [], - name: "GasFeeTransferFailed", - type: "error", - }, - { - inputs: [], - name: "InsufficientZRC20Amount", - type: "error", - }, - { - inputs: [], - name: "InvalidTarget", - type: "error", - }, - { - inputs: [], - name: "WithdrawalFailed", - type: "error", - }, - { - inputs: [], - name: "ZRC20BurnFailed", - type: "error", - }, - { - inputs: [], - name: "ZRC20TransferFailed", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "receiver", - type: "bytes", - }, - { - indexed: false, - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "Call", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "to", - type: "bytes", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "gasfee", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "protocolFlatFee", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "Withdrawal", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "", - type: "string", - }, - ], - name: "log", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "", - type: "address", - }, - ], - name: "log_address", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256[]", - name: "val", - type: "uint256[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "int256[]", - name: "val", - type: "int256[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address[]", - name: "val", - type: "address[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - name: "log_bytes", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - name: "log_bytes32", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "int256", - name: "", - type: "int256", - }, - ], - name: "log_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "address", - name: "val", - type: "address", - }, - ], - name: "log_named_address", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256[]", - name: "val", - type: "uint256[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256[]", - name: "val", - type: "int256[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "address[]", - name: "val", - type: "address[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "bytes", - name: "val", - type: "bytes", - }, - ], - name: "log_named_bytes", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "bytes32", - name: "val", - type: "bytes32", - }, - ], - name: "log_named_bytes32", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256", - name: "val", - type: "int256", - }, - { - indexed: false, - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "log_named_decimal_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "val", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "log_named_decimal_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256", - name: "val", - type: "int256", - }, - ], - name: "log_named_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "string", - name: "val", - type: "string", - }, - ], - name: "log_named_string", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "val", - type: "uint256", - }, - ], - name: "log_named_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "", - type: "string", - }, - ], - name: "log_string", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "log_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - name: "logs", - type: "event", - }, - { - inputs: [], - name: "IS_TEST", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeArtifacts", - outputs: [ - { - internalType: "string[]", - name: "excludedArtifacts_", - type: "string[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeContracts", - outputs: [ - { - internalType: "address[]", - name: "excludedContracts_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeSelectors", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzSelector[]", - name: "excludedSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeSenders", - outputs: [ - { - internalType: "address[]", - name: "excludedSenders_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "failed", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "setUp", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "targetArtifactSelectors", - outputs: [ - { - components: [ - { - internalType: "string", - name: "artifact", - type: "string", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzArtifactSelector[]", - name: "targetedArtifactSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetArtifacts", - outputs: [ - { - internalType: "string[]", - name: "targetedArtifacts_", - type: "string[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetContracts", - outputs: [ - { - internalType: "address[]", - name: "targetedContracts_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetInterfaces", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "string[]", - name: "artifacts", - type: "string[]", - }, - ], - internalType: "struct StdInvariant.FuzzInterface[]", - name: "targetedInterfaces_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetSelectors", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzSelector[]", - name: "targetedSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetSenders", - outputs: [ - { - internalType: "address[]", - name: "targetedSenders_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "testCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "testWithdrawZRC20", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "testWithdrawZRC20WithMessage", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -const _bytecode = - "0x60806040526001600c60006101000a81548160ff0219169083151502179055506001601f60006101000a81548160ff02191690831515021790555034801561004657600080fd5b5061ad9f80620000576000396000f3fe60806040523480156200001157600080fd5b5060043610620001185760003560e01c8063916a17c611620000a5578063ba414fa6116200006f578063ba414fa61462000273578063e20c9f711462000295578063fa7626d414620002b7578063fbc611c814620002d95762000118565b8063916a17c61462000201578063b0464fdc1462000223578063b5508aa91462000245578063b7f0583614620002675762000118565b80633e5e3c2311620000e75780633e5e3c2314620001795780633f7286f4146200019b57806366d9a9a014620001bd57806385226c8114620001df5762000118565b80630a9254e4146200011d5780631e63d2b914620001295780631ed7831c14620001355780632ade38801462000157575b600080fd5b62000127620002e5565b005b6200013362000c35565b005b6200013f620011d5565b6040516200014e919062002e5e565b60405180910390f35b6200016162001265565b60405162000170919062002eca565b60405180910390f35b62000183620013ff565b60405162000192919062002e5e565b60405180910390f35b620001a56200148f565b604051620001b4919062002e5e565b60405180910390f35b620001c76200151f565b604051620001d6919062002ea6565b60405180910390f35b620001e9620016b6565b604051620001f8919062002e82565b60405180910390f35b6200020b62001799565b6040516200021a919062002eee565b60405180910390f35b6200022d620018ec565b6040516200023c919062002eee565b60405180910390f35b6200024f62001a3f565b6040516200025e919062002e82565b60405180910390f35b6200027162001b22565b005b6200027d62001e26565b6040516200028c919062002f12565b60405180910390f35b6200029f62001f59565b604051620002ae919062002e5e565b60405180910390f35b620002c162001fe9565b604051620002d0919062002f12565b60405180910390f35b620002e362001ffc565b005b30602360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611234602460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051620003779062002577565b604051809103906000f08015801562000394573d6000803e3d6000fd5b50601f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051620003e39062002585565b604051809103906000f08015801562000400573d6000803e3d6000fd5b50602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff166306447d56601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633ce4a5bc6040518163ffffffff1660e01b815260040160206040518083038186803b158015620004e957600080fd5b505afa158015620004fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200052491906200260b565b6040518263ffffffff1660e01b815260040162000542919062002d7d565b600060405180830381600087803b1580156200055d57600080fd5b505af115801562000572573d6000803e3d6000fd5b505050506000806000604051620005899062002593565b620005979392919062002d9a565b604051809103906000f080158015620005b4573d6000803e3d6000fd5b50602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060126001806000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516200065090620025a1565b620006619695949392919062003194565b604051809103906000f0801580156200067e573d6000803e3d6000fd5b50602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ee2815ba6001602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401620007419291906200313a565b600060405180830381600087803b1580156200075c57600080fd5b505af115801562000771573d6000803e3d6000fd5b50505050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a7cb05076001806040518363ffffffff1660e01b8152600401620007d592919062003167565b600060405180830381600087803b158015620007f057600080fd5b505af115801562000805573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff1663c88a5e6d601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633ce4a5bc6040518163ffffffff1660e01b815260040160206040518083038186803b158015620008b157600080fd5b505afa158015620008c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620008ec91906200260b565b633b9aca006040518363ffffffff1660e01b81526004016200091092919062002e04565b600060405180830381600087803b1580156200092b57600080fd5b505af115801562000940573d6000803e3d6000fd5b50505050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166347e7ef24602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620186a06040518363ffffffff1660e01b8152600401620009c892919062002e31565b602060405180830381600087803b158015620009e357600080fd5b505af1158015620009f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a1e91906200263d565b507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562000a8b57600080fd5b505af115801562000aa0573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff1663ca669fa7602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040162000b24919062002d7d565b600060405180830381600087803b15801562000b3f57600080fd5b505af115801562000b54573d6000803e3d6000fd5b50505050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620186a06040518363ffffffff1660e01b815260040162000bdc92919062002e31565b602060405180830381600087803b15801562000bf757600080fd5b505af115801562000c0c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c3291906200263d565b50565b6000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040162000cb6919062002d7d565b60206040518083038186803b15801562000ccf57600080fd5b505afa15801562000ce4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000d0a9190620026a1565b90506000602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405160240162000d43919062002d7d565b6040516020818303038152906040527f84fae760000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff166381bad6f3600180600180601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518663ffffffff1660e01b815260040162000e4c95949392919062002f2f565b600060405180830381600087803b15801562000e6757600080fd5b505af115801562000e7c573d6000803e3d6000fd5b50505050602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f1866ad2994816c79f4103e1eddacc7b085eb7c635205243a28940be69b01536d602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405160200162000f0f919062002d60565b60405160208183030381529060405260016000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634d8943bb6040518163ffffffff1660e01b815260040160206040518083038186803b15801562000f8b57600080fd5b505afa15801562000fa0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000fc69190620026a1565b8660405162000fda95949392919062003066565b60405180910390a2601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637993c1e0602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405160200162001055919062002d60565b6040516020818303038152906040526001602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518563ffffffff1660e01b8152600401620010ab94939291906200300b565b600060405180830381600087803b158015620010c657600080fd5b505af1158015620010db573d6000803e3d6000fd5b505050506000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040162001160919062002d7d565b60206040518083038186803b1580156200117957600080fd5b505afa1580156200118e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620011b49190620026a1565b9050620011d0600184620011c9919062003409565b82620024e1565b505050565b606060168054806020026020016040519081016040528092919081815260200182805480156200125b57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831162001210575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020016000905b82821015620013f657838290600052602060002090600202016040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020016000905b82821015620013de5783829060005260206000200180546200134a9062003594565b80601f0160208091040260200160405190810160405280929190818152602001828054620013789062003594565b8015620013c95780601f106200139d57610100808354040283529160200191620013c9565b820191906000526020600020905b815481529060010190602001808311620013ab57829003601f168201915b50505050508152602001906001019062001328565b50505050815250508152602001906001019062001289565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156200148557602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116200143a575b5050505050905090565b606060178054806020026020016040519081016040528092919081815260200182805480156200151557602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311620014ca575b5050505050905090565b6060601b805480602002602001604051908101604052809291908181526020016000905b82821015620016ad5783829060005260206000209060020201604051806040016040529081600082018054620015799062003594565b80601f0160208091040260200160405190810160405280929190818152602001828054620015a79062003594565b8015620015f85780601f10620015cc57610100808354040283529160200191620015f8565b820191906000526020600020905b815481529060010190602001808311620015da57829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156200169457602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620016405790505b5050505050815250508152602001906001019062001543565b50505050905090565b6060601a805480602002602001604051908101604052809291908181526020016000905b8282101562001790578382906000526020600020018054620016fc9062003594565b80601f01602080910402602001604051908101604052809291908181526020018280546200172a9062003594565b80156200177b5780601f106200174f576101008083540402835291602001916200177b565b820191906000526020600020905b8154815290600101906020018083116200175d57829003601f168201915b505050505081526020019060010190620016da565b50505050905090565b6060601d805480602002602001604051908101604052809291908181526020016000905b82821015620018e357838290600052602060002090600202016040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020018280548015620018ca57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620018765790505b50505050508152505081526020019060010190620017bd565b50505050905090565b6060601c805480602002602001604051908101604052809291908181526020016000905b8282101562001a3657838290600052602060002090600202016040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820180548060200260200160405190810160405280929190818152602001828054801562001a1d57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620019c95790505b5050505050815250508152602001906001019062001910565b50505050905090565b60606019805480602002602001604051908101604052809291908181526020016000905b8282101562001b1957838290600052602060002001805462001a859062003594565b80601f016020809104026020016040519081016040528092919081815260200182805462001ab39062003594565b801562001b045780601f1062001ad85761010080835404028352916020019162001b04565b820191906000526020600020905b81548152906001019060200180831162001ae657829003601f168201915b50505050508152602001906001019062001a63565b50505050905090565b6000602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405160240162001b59919062002d7d565b6040516020818303038152906040527f84fae760000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff166381bad6f3600180600180601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518663ffffffff1660e01b815260040162001c6295949392919062002f2f565b600060405180830381600087803b15801562001c7d57600080fd5b505af115801562001c92573d6000803e3d6000fd5b50505050602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f2b5af078ce280d812dc2241658dc5435c93408020e5418eef55a2b536de51c0f602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405160200162001d25919062002d60565b6040516020818303038152906040528360405162001d4592919062002f8c565b60405180910390a2601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630ac7c44c602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405160200162001dc0919062002d60565b604051602081830303815290604052836040518363ffffffff1660e01b815260040162001def92919062002f8c565b600060405180830381600087803b15801562001e0a57600080fd5b505af115801562001e1f573d6000803e3d6000fd5b5050505050565b6000600860009054906101000a900460ff161562001e5657600860009054906101000a900460ff16905062001f56565b6000801b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff1663667f9d707f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c7f6661696c656400000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b815260040162001efd92919062002dd7565b60206040518083038186803b15801562001f1657600080fd5b505afa15801562001f2b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001f5191906200266f565b141590505b90565b6060601580548060200260200160405190810160405280929190818152602001828054801562001fdf57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831162001f94575b5050505050905090565b601f60009054906101000a900460ff1681565b6000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016200207d919062002d7d565b60206040518083038186803b1580156200209657600080fd5b505afa158015620020ab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620020d19190620026a1565b90507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff166381bad6f3600180600180601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518663ffffffff1660e01b81526004016200215d95949392919062002f2f565b600060405180830381600087803b1580156200217857600080fd5b505af11580156200218d573d6000803e3d6000fd5b50505050602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f1866ad2994816c79f4103e1eddacc7b085eb7c635205243a28940be69b01536d602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405160200162002220919062002d60565b60405160208183030381529060405260016000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634d8943bb6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200229c57600080fd5b505afa158015620022b1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620022d79190620026a1565b604051620022e99493929190620030d1565b60405180910390a2601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663135390f9602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405160200162002364919062002d60565b6040516020818303038152906040526001602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518463ffffffff1660e01b8152600401620023b89392919062002fc7565b600060405180830381600087803b158015620023d357600080fd5b505af1158015620023e8573d6000803e3d6000fd5b505050506000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016200246d919062002d7d565b60206040518083038186803b1580156200248657600080fd5b505afa1580156200249b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620024c19190620026a1565b9050620024dd600183620024d6919062003409565b82620024e1565b5050565b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff166398296c5483836040518363ffffffff1660e01b8152600401620025419291906200322c565b60006040518083038186803b1580156200255a57600080fd5b505afa1580156200256f573d6000803e3d6000fd5b505050505050565b612eb5806200377783390190565b610667806200662c83390190565b6118aa8062006c9383390190565b61282d806200853d83390190565b600081519050620025c0816200370e565b92915050565b600081519050620025d78162003728565b92915050565b600081519050620025ee8162003742565b92915050565b60008151905062002605816200375c565b92915050565b6000602082840312156200262457620026236200367f565b5b60006200263484828501620025af565b91505092915050565b6000602082840312156200265657620026556200367f565b5b60006200266684828501620025c6565b91505092915050565b6000602082840312156200268857620026876200367f565b5b60006200269884828501620025dd565b91505092915050565b600060208284031215620026ba57620026b96200367f565b5b6000620026ca84828501620025f4565b91505092915050565b6000620026e183836200275f565b60208301905092915050565b6000620026fb838362002b17565b60208301905092915050565b600062002715838362002bcf565b905092915050565b60006200272b838362002c85565b905092915050565b600062002741838362002ccd565b905092915050565b600062002757838362002d0e565b905092915050565b6200276a8162003444565b82525050565b6200277b8162003444565b82525050565b62002796620027908262003444565b620035ca565b82525050565b6000620027a982620032b9565b620027b581856200335f565b9350620027c28362003259565b8060005b83811015620027f9578151620027dd8882620026d3565b9750620027ea8362003311565b925050600181019050620027c6565b5085935050505092915050565b60006200281382620032c4565b6200281f818562003370565b93506200282c8362003269565b8060005b8381101562002863578151620028478882620026ed565b975062002854836200331e565b92505060018101905062002830565b5085935050505092915050565b60006200287d82620032cf565b62002889818562003381565b9350836020820285016200289d8562003279565b8060005b85811015620028df5784840389528151620028bd858262002707565b9450620028ca836200332b565b925060208a01995050600181019050620028a1565b50829750879550505050505092915050565b6000620028fe82620032cf565b6200290a818562003392565b9350836020820285016200291e8562003279565b8060005b858110156200296057848403895281516200293e858262002707565b94506200294b836200332b565b925060208a0199505060018101905062002922565b50829750879550505050505092915050565b60006200297f82620032da565b6200298b8185620033a3565b9350836020820285016200299f8562003289565b8060005b85811015620029e15784840389528151620029bf85826200271d565b9450620029cc8362003338565b925060208a01995050600181019050620029a3565b50829750879550505050505092915050565b600062002a0082620032e5565b62002a0c8185620033b4565b93508360208202850162002a208562003299565b8060005b8581101562002a62578484038952815162002a40858262002733565b945062002a4d8362003345565b925060208a0199505060018101905062002a24565b50829750879550505050505092915050565b600062002a8182620032f0565b62002a8d8185620033c5565b93508360208202850162002aa185620032a9565b8060005b8581101562002ae3578484038952815162002ac1858262002749565b945062002ace8362003352565b925060208a0199505060018101905062002aa5565b50829750879550505050505092915050565b62002b008162003458565b82525050565b62002b118162003464565b82525050565b62002b22816200346e565b82525050565b600062002b3582620032fb565b62002b418185620033d6565b935062002b538185602086016200355e565b62002b5e8162003684565b840191505092915050565b62002b7481620034e6565b82525050565b62002b8581620034fa565b82525050565b62002b96816200350e565b82525050565b62002ba78162003522565b82525050565b62002bb88162003536565b82525050565b62002bc9816200354a565b82525050565b600062002bdc8262003306565b62002be88185620033e7565b935062002bfa8185602086016200355e565b62002c058162003684565b840191505092915050565b600062002c1f600583620033f8565b915062002c2c82620036a2565b602082019050919050565b600062002c46600383620033f8565b915062002c5382620036cb565b602082019050919050565b600062002c6d600083620033d6565b915062002c7a82620036f4565b600082019050919050565b6000604083016000830151848203600086015262002ca4828262002bcf565b9150506020830151848203602086015262002cc0828262002806565b9150508091505092915050565b600060408301600083015162002ce760008601826200275f565b506020830151848203602086015262002d01828262002870565b9150508091505092915050565b600060408301600083015162002d2860008601826200275f565b506020830151848203602086015262002d42828262002806565b9150508091505092915050565b62002d5a81620034cf565b82525050565b600062002d6e828462002781565b60148201915081905092915050565b600060208201905062002d94600083018462002770565b92915050565b600060608201905062002db1600083018662002770565b62002dc0602083018562002770565b62002dcf604083018462002770565b949350505050565b600060408201905062002dee600083018562002770565b62002dfd602083018462002b06565b9392505050565b600060408201905062002e1b600083018562002770565b62002e2a602083018462002b8b565b9392505050565b600060408201905062002e48600083018562002770565b62002e57602083018462002b9c565b9392505050565b6000602082019050818103600083015262002e7a81846200279c565b905092915050565b6000602082019050818103600083015262002e9e8184620028f1565b905092915050565b6000602082019050818103600083015262002ec2818462002972565b905092915050565b6000602082019050818103600083015262002ee68184620029f3565b905092915050565b6000602082019050818103600083015262002f0a818462002a74565b905092915050565b600060208201905062002f29600083018462002af5565b92915050565b600060a08201905062002f46600083018862002af5565b62002f55602083018762002af5565b62002f64604083018662002af5565b62002f73606083018562002af5565b62002f82608083018462002770565b9695505050505050565b6000604082019050818103600083015262002fa8818562002b28565b9050818103602083015262002fbe818462002b28565b90509392505050565b6000606082019050818103600083015262002fe3818662002b28565b905062002ff4602083018562002bbe565b62003003604083018462002770565b949350505050565b6000608082019050818103600083015262003027818762002b28565b905062003038602083018662002bbe565b62003047604083018562002770565b81810360608301526200305b818462002b28565b905095945050505050565b600060a082019050818103600083015262003082818862002b28565b905062003093602083018762002bbe565b620030a2604083018662002b7a565b620030b1606083018562002d4f565b8181036080830152620030c5818462002b28565b90509695505050505050565b600060a0820190508181036000830152620030ed818762002b28565b9050620030fe602083018662002bbe565b6200310d604083018562002b7a565b6200311c606083018462002d4f565b81810360808301526200312f8162002c5e565b905095945050505050565b600060408201905062003151600083018562002bbe565b62003160602083018462002770565b9392505050565b60006040820190506200317e600083018562002bbe565b6200318d602083018462002bbe565b9392505050565b6000610100820190508181036000830152620031b08162002c10565b90508181036020830152620031c58162002c37565b9050620031d6604083018962002bad565b620031e5606083018862002bbe565b620031f4608083018762002b69565b6200320360a083018662002b7a565b6200321260c083018562002770565b6200322160e083018462002770565b979650505050505050565b600060408201905062003243600083018562002d4f565b62003252602083018462002d4f565b9392505050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b60006200341682620034cf565b91506200342383620034cf565b925082821015620034395762003438620035f2565b5b828203905092915050565b60006200345182620034af565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6000819050620034aa82620036f7565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000620034f3826200349a565b9050919050565b60006200350782620034cf565b9050919050565b60006200351b82620034cf565b9050919050565b60006200352f82620034cf565b9050919050565b60006200354382620034d9565b9050919050565b60006200355782620034cf565b9050919050565b60005b838110156200357e57808201518184015260208101905062003561565b838111156200358e576000848401525b50505050565b60006002820490506001821680620035ad57607f821691505b60208210811415620035c457620035c362003650565b5b50919050565b6000620035d782620035de565b9050919050565b6000620035eb8262003695565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f544f4b454e000000000000000000000000000000000000000000000000000000600082015250565b7f544b4e0000000000000000000000000000000000000000000000000000000000600082015250565b50565b600381106200370b576200370a62003621565b5b50565b620037198162003444565b81146200372557600080fd5b50565b620037338162003458565b81146200373f57600080fd5b50565b6200374d8162003464565b81146200375957600080fd5b50565b6200376781620034cf565b81146200377357600080fd5b5056fe60a06040523073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152503480156200004757600080fd5b50620000586200005e60201b60201c565b62000208565b600060019054906101000a900460ff1615620000b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000a8906200015c565b60405180910390fd5b60ff801660008054906101000a900460ff1660ff1614620001225760ff6000806101000a81548160ff021916908360ff1602179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860ff6040516200011991906200017e565b60405180910390a15b565b6000620001336027836200019b565b91506200014082620001b9565b604082019050919050565b6200015681620001ac565b82525050565b60006020820190508181036000830152620001778162000124565b9050919050565b60006020820190506200019560008301846200014b565b92915050565b600082825260208201905092915050565b600060ff82169050919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320696e69746960008201527f616c697a696e6700000000000000000000000000000000000000000000000000602082015250565b60805160601c612c726200024360003960008181610433015281816104c2015281816105d40152818161066301526107130152612c726000f3fe6080604052600436106100dd5760003560e01c80637993c1e01161007f578063bcf7f32b11610059578063bcf7f32b14610251578063c39aca371461027a578063f2fde38b146102a3578063f45346dc146102cc576100dd565b80637993c1e0146101e65780638129fc1c1461020f5780638da5cb5b14610226576100dd565b80633ce4a5bc116100bb5780633ce4a5bc1461015d5780634f1ef2861461018857806352d1902d146101a4578063715018a6146101cf576100dd565b80630ac7c44c146100e2578063135390f91461010b5780633659cfe614610134575b600080fd5b3480156100ee57600080fd5b5061010960048036038101906101049190611c80565b6102f5565b005b34801561011757600080fd5b50610132600480360381019061012d9190611cfc565b61034c565b005b34801561014057600080fd5b5061015b60048036038101906101569190611b0a565b610431565b005b34801561016957600080fd5b506101726105ba565b60405161017f919061226e565b60405180910390f35b6101a2600480360381019061019d9190611b37565b6105d2565b005b3480156101b057600080fd5b506101b961070f565b6040516101c691906122e9565b60405180910390f35b3480156101db57600080fd5b506101e46107c8565b005b3480156101f257600080fd5b5061020d60048036038101906102089190611d6b565b6107dc565b005b34801561021b57600080fd5b506102246108c7565b005b34801561023257600080fd5b5061023b610a0d565b604051610248919061226e565b60405180910390f35b34801561025d57600080fd5b5061027860048036038101906102739190611e0f565b610a37565b005b34801561028657600080fd5b506102a1600480360381019061029c9190611e0f565b610b2b565b005b3480156102af57600080fd5b506102ca60048036038101906102c59190611b0a565b610d5d565b005b3480156102d857600080fd5b506102f360048036038101906102ee9190611bd3565b610de1565b005b3373ffffffffffffffffffffffffffffffffffffffff167f2b5af078ce280d812dc2241658dc5435c93408020e5418eef55a2b536de51c0f84848460405161033f93929190612304565b60405180910390a2505050565b60006103588383610f9d565b90503373ffffffffffffffffffffffffffffffffffffffff167f1866ad2994816c79f4103e1eddacc7b085eb7c635205243a28940be69b01536d8585848673ffffffffffffffffffffffffffffffffffffffff16634d8943bb6040518163ffffffff1660e01b815260040160206040518083038186803b1580156103db57600080fd5b505afa1580156103ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104139190611ec5565b60405161042394939291906123a0565b60405180910390a250505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614156104c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104b79061245c565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166104ff61128d565b73ffffffffffffffffffffffffffffffffffffffff1614610555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054c9061247c565b60405180910390fd5b61055e816112e4565b6105b781600067ffffffffffffffff81111561057d5761057c61282b565b5b6040519080825280601f01601f1916602001820160405280156105af5781602001600182028036833780820191505090505b5060006112ef565b50565b73735b14bb79463307aacbed86daf3322b1e6226ab81565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610661576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106589061245c565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166106a061128d565b73ffffffffffffffffffffffffffffffffffffffff16146106f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ed9061247c565b60405180910390fd5b6106ff826112e4565b61070b828260016112ef565b5050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161461079f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107969061249c565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b905090565b6107d061146c565b6107da60006114ea565b565b60006107e88585610f9d565b90503373ffffffffffffffffffffffffffffffffffffffff167f1866ad2994816c79f4103e1eddacc7b085eb7c635205243a28940be69b01536d8787848873ffffffffffffffffffffffffffffffffffffffff16634d8943bb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561086b57600080fd5b505afa15801561087f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a39190611ec5565b88886040516108b79695949392919061233d565b60405180910390a2505050505050565b60008060019054906101000a900460ff161590508080156108f85750600160008054906101000a900460ff1660ff16105b806109255750610907306115b0565b1580156109245750600160008054906101000a900460ff1660ff16145b5b610964576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095b906124dc565b60405180910390fd5b60016000806101000a81548160ff021916908360ff16021790555080156109a1576001600060016101000a81548160ff0219169083151502179055505b6109a96115d3565b6109b161162c565b8015610a0a5760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986001604051610a0191906123ff565b60405180910390a15b50565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ab0576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663de43156e87878786866040518663ffffffff1660e01b8152600401610af195949392919061259c565b600060405180830381600087803b158015610b0b57600080fd5b505af1158015610b1f573d6000803e3d6000fd5b50505050505050505050565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ba4576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610c1d57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15610c54576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff166347e7ef2484866040518363ffffffff1660e01b8152600401610c8f9291906122c0565b602060405180830381600087803b158015610ca957600080fd5b505af1158015610cbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce19190611c26565b508273ffffffffffffffffffffffffffffffffffffffff1663de43156e87878786866040518663ffffffff1660e01b8152600401610d2395949392919061259c565b600060405180830381600087803b158015610d3d57600080fd5b505af1158015610d51573d6000803e3d6000fd5b50505050505050505050565b610d6561146c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610dd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcc9061243c565b60405180910390fd5b610dde816114ea565b50565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e5a576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480610ed357503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15610f0a576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff166347e7ef2482846040518363ffffffff1660e01b8152600401610f459291906122c0565b602060405180830381600087803b158015610f5f57600080fd5b505af1158015610f73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f979190611c26565b50505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1663d9eeebed6040518163ffffffff1660e01b8152600401604080518083038186803b158015610fe757600080fd5b505afa158015610ffb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101f9190611b93565b915091508173ffffffffffffffffffffffffffffffffffffffff166323b872dd3373735b14bb79463307aacbed86daf3322b1e6226ab846040518463ffffffff1660e01b815260040161107493929190612289565b602060405180830381600087803b15801561108e57600080fd5b505af11580156110a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c69190611c26565b6110fc576040517f0a7cd6d600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd3330886040518463ffffffff1660e01b815260040161113993929190612289565b602060405180830381600087803b15801561115357600080fd5b505af1158015611167573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118b9190611c26565b6111c1576040517f4dd9ee8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff166342966c68866040518263ffffffff1660e01b81526004016111fa91906125f1565b602060405180830381600087803b15801561121457600080fd5b505af1158015611228573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124c9190611c26565b611282576040517f2c77e05c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b809250505092915050565b60006112bb7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61167d565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6112ec61146c565b50565b61131b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914360001b611687565b60000160009054906101000a900460ff161561133f5761133a83611691565b611467565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561138557600080fd5b505afa9250505080156113b657506040513d601f19601f820116820180604052508101906113b39190611c53565b60015b6113f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ec906124fc565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b811461145a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611451906124bc565b60405180910390fd5b5061146683838361174a565b5b505050565b611474611776565b73ffffffffffffffffffffffffffffffffffffffff16611492610a0d565b73ffffffffffffffffffffffffffffffffffffffff16146114e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114df9061253c565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16611622576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116199061257c565b60405180910390fd5b61162a61177e565b565b600060019054906101000a900460ff1661167b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116729061257c565b60405180910390fd5b565b6000819050919050565b6000819050919050565b61169a816115b0565b6116d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d09061251c565b60405180910390fd5b806117067f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61167d565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611753836117df565b6000825111806117605750805b156117715761176f838361182e565b505b505050565b600033905090565b600060019054906101000a900460ff166117cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c49061257c565b60405180910390fd5b6117dd6117d8611776565b6114ea565b565b6117e881611691565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b60606118538383604051806060016040528060278152602001612c166027913961185b565b905092915050565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516118859190612257565b600060405180830381855af49150503d80600081146118c0576040519150601f19603f3d011682016040523d82523d6000602084013e6118c5565b606091505b50915091506118d6868383876118e1565b925050509392505050565b606083156119445760008351141561193c576118fc856115b0565b61193b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119329061255c565b60405180910390fd5b5b82905061194f565b61194e8383611957565b5b949350505050565b60008251111561196a5781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199e919061241a565b60405180910390fd5b60006119ba6119b584612631565b61260c565b9050828152602081018484840111156119d6576119d5612878565b5b6119e18482856127b8565b509392505050565b6000813590506119f881612bb9565b92915050565b600081519050611a0d81612bb9565b92915050565b600081519050611a2281612bd0565b92915050565b600081519050611a3781612be7565b92915050565b60008083601f840112611a5357611a52612864565b5b8235905067ffffffffffffffff811115611a7057611a6f61285f565b5b602083019150836001820283011115611a8c57611a8b612873565b5b9250929050565b600082601f830112611aa857611aa7612864565b5b8135611ab88482602086016119a7565b91505092915050565b600060608284031215611ad757611ad6612869565b5b81905092915050565b600081359050611aef81612bfe565b92915050565b600081519050611b0481612bfe565b92915050565b600060208284031215611b2057611b1f612887565b5b6000611b2e848285016119e9565b91505092915050565b60008060408385031215611b4e57611b4d612887565b5b6000611b5c858286016119e9565b925050602083013567ffffffffffffffff811115611b7d57611b7c61287d565b5b611b8985828601611a93565b9150509250929050565b60008060408385031215611baa57611ba9612887565b5b6000611bb8858286016119fe565b9250506020611bc985828601611af5565b9150509250929050565b600080600060608486031215611bec57611beb612887565b5b6000611bfa868287016119e9565b9350506020611c0b86828701611ae0565b9250506040611c1c868287016119e9565b9150509250925092565b600060208284031215611c3c57611c3b612887565b5b6000611c4a84828501611a13565b91505092915050565b600060208284031215611c6957611c68612887565b5b6000611c7784828501611a28565b91505092915050565b600080600060408486031215611c9957611c98612887565b5b600084013567ffffffffffffffff811115611cb757611cb661287d565b5b611cc386828701611a93565b935050602084013567ffffffffffffffff811115611ce457611ce361287d565b5b611cf086828701611a3d565b92509250509250925092565b600080600060608486031215611d1557611d14612887565b5b600084013567ffffffffffffffff811115611d3357611d3261287d565b5b611d3f86828701611a93565b9350506020611d5086828701611ae0565b9250506040611d61868287016119e9565b9150509250925092565b600080600080600060808688031215611d8757611d86612887565b5b600086013567ffffffffffffffff811115611da557611da461287d565b5b611db188828901611a93565b9550506020611dc288828901611ae0565b9450506040611dd3888289016119e9565b935050606086013567ffffffffffffffff811115611df457611df361287d565b5b611e0088828901611a3d565b92509250509295509295909350565b60008060008060008060a08789031215611e2c57611e2b612887565b5b600087013567ffffffffffffffff811115611e4a57611e4961287d565b5b611e5689828a01611ac1565b9650506020611e6789828a016119e9565b9550506040611e7889828a01611ae0565b9450506060611e8989828a016119e9565b935050608087013567ffffffffffffffff811115611eaa57611ea961287d565b5b611eb689828a01611a3d565b92509250509295509295509295565b600060208284031215611edb57611eda612887565b5b6000611ee984828501611af5565b91505092915050565b611efb81612747565b82525050565b611f0a81612747565b82525050565b611f1981612765565b82525050565b6000611f2b8385612678565b9350611f388385846127b8565b611f418361288c565b840190509392505050565b6000611f588385612689565b9350611f658385846127b8565b611f6e8361288c565b840190509392505050565b6000611f8482612662565b611f8e8185612689565b9350611f9e8185602086016127c7565b611fa78161288c565b840191505092915050565b6000611fbd82612662565b611fc7818561269a565b9350611fd78185602086016127c7565b80840191505092915050565b611fec816127a6565b82525050565b6000611ffd8261266d565b61200781856126a5565b93506120178185602086016127c7565b6120208161288c565b840191505092915050565b60006120386026836126a5565b91506120438261289d565b604082019050919050565b600061205b602c836126a5565b9150612066826128ec565b604082019050919050565b600061207e602c836126a5565b91506120898261293b565b604082019050919050565b60006120a16038836126a5565b91506120ac8261298a565b604082019050919050565b60006120c46029836126a5565b91506120cf826129d9565b604082019050919050565b60006120e7602e836126a5565b91506120f282612a28565b604082019050919050565b600061210a602e836126a5565b915061211582612a77565b604082019050919050565b600061212d602d836126a5565b915061213882612ac6565b604082019050919050565b60006121506020836126a5565b915061215b82612b15565b602082019050919050565b6000612173600083612689565b915061217e82612b3e565b600082019050919050565b6000612196601d836126a5565b91506121a182612b41565b602082019050919050565b60006121b9602b836126a5565b91506121c482612b6a565b604082019050919050565b6000606083016121e260008401846126cd565b85830360008701526121f5838284611f1f565b9250505061220660208401846126b6565b6122136020860182611ef2565b506122216040840184612730565b61222e6040860182612239565b508091505092915050565b6122428161278f565b82525050565b6122518161278f565b82525050565b60006122638284611fb2565b915081905092915050565b60006020820190506122836000830184611f01565b92915050565b600060608201905061229e6000830186611f01565b6122ab6020830185611f01565b6122b86040830184612248565b949350505050565b60006040820190506122d56000830185611f01565b6122e26020830184612248565b9392505050565b60006020820190506122fe6000830184611f10565b92915050565b6000604082019050818103600083015261231e8186611f79565b90508181036020830152612333818486611f4c565b9050949350505050565b600060a08201905081810360008301526123578189611f79565b90506123666020830188612248565b6123736040830187612248565b6123806060830186612248565b8181036080830152612393818486611f4c565b9050979650505050505050565b600060a08201905081810360008301526123ba8187611f79565b90506123c96020830186612248565b6123d66040830185612248565b6123e36060830184612248565b81810360808301526123f481612166565b905095945050505050565b60006020820190506124146000830184611fe3565b92915050565b600060208201905081810360008301526124348184611ff2565b905092915050565b600060208201905081810360008301526124558161202b565b9050919050565b600060208201905081810360008301526124758161204e565b9050919050565b6000602082019050818103600083015261249581612071565b9050919050565b600060208201905081810360008301526124b581612094565b9050919050565b600060208201905081810360008301526124d5816120b7565b9050919050565b600060208201905081810360008301526124f5816120da565b9050919050565b60006020820190508181036000830152612515816120fd565b9050919050565b6000602082019050818103600083015261253581612120565b9050919050565b6000602082019050818103600083015261255581612143565b9050919050565b6000602082019050818103600083015261257581612189565b9050919050565b60006020820190508181036000830152612595816121ac565b9050919050565b600060808201905081810360008301526125b681886121cf565b90506125c56020830187611f01565b6125d26040830186612248565b81810360608301526125e5818486611f4c565b90509695505050505050565b60006020820190506126066000830184612248565b92915050565b6000612616612627565b905061262282826127fa565b919050565b6000604051905090565b600067ffffffffffffffff82111561264c5761264b61282b565b5b6126558261288c565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006126c560208401846119e9565b905092915050565b600080833560016020038436030381126126ea576126e9612882565b5b83810192508235915060208301925067ffffffffffffffff8211156127125761271161285a565b5b6001820236038413156127285761272761286e565b5b509250929050565b600061273f6020840184611ae0565b905092915050565b60006127528261276f565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006127b182612799565b9050919050565b82818337600083830152505050565b60005b838110156127e55780820151818401526020810190506127ca565b838111156127f4576000848401525b50505050565b6128038261288c565b810181811067ffffffffffffffff821117156128225761282161282b565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f64656c656761746563616c6c0000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f6163746976652070726f78790000000000000000000000000000000000000000602082015250565b7f555550535570677261646561626c653a206d757374206e6f742062652063616c60008201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000602082015250565b7f45524331393637557067726164653a20756e737570706f727465642070726f7860008201527f6961626c65555549440000000000000000000000000000000000000000000000602082015250565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f45524331393637557067726164653a206e657720696d706c656d656e7461746960008201527f6f6e206973206e6f742055555053000000000000000000000000000000000000602082015250565b7f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60008201527f6f74206120636f6e747261637400000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b612bc281612747565b8114612bcd57600080fd5b50565b612bd981612759565b8114612be457600080fd5b50565b612bf081612765565b8114612bfb57600080fd5b50565b612c078161278f565b8114612c1257600080fd5b5056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220627eb039ecb52d09fd70ebde1f5eca61fe0f91321a96929ebe38dc8e38d999ab64736f6c63430008070033608060405234801561001057600080fd5b50610647806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063de43156e14610030575b600080fd5b61004a60048036038101906100459190610251565b61004c565b005b6000828281019061005d9190610208565b90507fcdc8ee677dc5ebe680fb18cebda5e26ba5ea1f0ba504a47e2a9a2ecb476dc98e86806000019061009091906103dc565b8860200160208101906100a391906101db565b896040013533866040516100bc96959493929190610379565b60405180910390a1505050505050565b60006100df6100da84610464565b61043f565b9050828152602081018484840111156100fb576100fa6105c3565b5b6101068482856104fe565b509392505050565b60008135905061011d816105e3565b92915050565b60008083601f840112610139576101386105a5565b5b8235905067ffffffffffffffff811115610156576101556105a0565b5b602083019150836001820283011115610172576101716105b9565b5b9250929050565b600082601f83011261018e5761018d6105a5565b5b813561019e8482602086016100cc565b91505092915050565b6000606082840312156101bd576101bc6105af565b5b81905092915050565b6000813590506101d5816105fa565b92915050565b6000602082840312156101f1576101f06105cd565b5b60006101ff8482850161010e565b91505092915050565b60006020828403121561021e5761021d6105cd565b5b600082013567ffffffffffffffff81111561023c5761023b6105c8565b5b61024884828501610179565b91505092915050565b60008060008060006080868803121561026d5761026c6105cd565b5b600086013567ffffffffffffffff81111561028b5761028a6105c8565b5b610297888289016101a7565b95505060206102a88882890161010e565b94505060406102b9888289016101c6565b935050606086013567ffffffffffffffff8111156102da576102d96105c8565b5b6102e688828901610123565b92509250509295509295909350565b6102fe816104c2565b82525050565b600061031083856104a0565b935061031d8385846104fe565b610326836105d2565b840190509392505050565b600061033c82610495565b61034681856104b1565b935061035681856020860161050d565b61035f816105d2565b840191505092915050565b610373816104f4565b82525050565b600060a082019050818103600083015261039481888a610304565b90506103a360208301876102f5565b6103b0604083018661036a565b6103bd60608301856102f5565b81810360808301526103cf8184610331565b9050979650505050505050565b600080833560016020038436030381126103f9576103f86105b4565b5b80840192508235915067ffffffffffffffff82111561041b5761041a6105aa565b5b602083019250600182023603831315610437576104366105be565b5b509250929050565b600061044961045a565b90506104558282610540565b919050565b6000604051905090565b600067ffffffffffffffff82111561047f5761047e610571565b5b610488826105d2565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006104cd826104d4565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561052b578082015181840152602081019050610510565b8381111561053a576000848401525b50505050565b610549826105d2565b810181811067ffffffffffffffff8211171561056857610567610571565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b6105ec816104c2565b81146105f757600080fd5b50565b610603816104f4565b811461060e57600080fd5b5056fea2646970667358221220658b8c56b21b674d6677fa444091a4a714b74ee72bac7b4972c1063bda6d73d764736f6c6343000807003360c06040523480156200001157600080fd5b50604051620018aa380380620018aa8339818101604052810190620000379190620001ac565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614620000b1576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b815250507f80699e81136d69cb8367ad52a994e25c722a86da654b561d0c14b61a777e7ac560405160405180910390a15050506200025b565b600081519050620001a68162000241565b92915050565b600080600060608486031215620001c857620001c76200023c565b5b6000620001d88682870162000195565b9350506020620001eb8682870162000195565b9250506040620001fe8682870162000195565b9150509250925092565b600062000215826200021c565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6200024c8162000208565b81146200025857600080fd5b50565b60805160601c60a05160601c61161c6200028e600039600061051b0152600081816105bd0152610bc5015261161c6000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806397770dff11610097578063c63585cc11610066578063c63585cc1461025e578063d7fd7afb1461028e578063d936a012146102be578063ee2815ba146102dc576100f5565b806397770dff146101ec578063a7cb050714610208578063c39aca3714610224578063c62178ac14610240576100f5565b8063513a9c05116100d3578063513a9c0514610164578063569541b914610194578063842da36d146101b257806391dd645f146101d0576100f5565b80630be15547146100fa5780631f0e251b1461012a5780633ce4a5bc14610146575b600080fd5b610114600480360381019061010f9190611022565b6102f8565b60405161012191906112b1565b60405180910390f35b610144600480360381019061013f9190610ebf565b61032b565b005b61014e6104a8565b60405161015b91906112b1565b60405180910390f35b61017e60048036038101906101799190611022565b6104c0565b60405161018b91906112b1565b60405180910390f35b61019c6104f3565b6040516101a991906112b1565b60405180910390f35b6101ba610519565b6040516101c791906112b1565b60405180910390f35b6101ea60048036038101906101e5919061104f565b61053d565b005b61020660048036038101906102019190610ebf565b610697565b005b610222600480360381019061021d919061108f565b610814565b005b61023e60048036038101906102399190610f6c565b6108e1565b005b610248610b13565b60405161025591906112b1565b60405180910390f35b61027860048036038101906102739190610eec565b610b39565b60405161028591906112b1565b60405180910390f35b6102a860048036038101906102a39190611022565b610bab565b6040516102b5919061134a565b60405180910390f35b6102c6610bc3565b6040516102d391906112b1565b60405180910390f35b6102f660048036038101906102f1919061104f565b610be7565b005b60016020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103a4576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561040b576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f3ade88e3922d64780e1bf4460d364c2970b69da813f9c0c07a1c187b5647636c600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161049d91906112b1565b60405180910390a150565b73735b14bb79463307aacbed86daf3322b1e6226ab81565b60026020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105b6576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006106057f0000000000000000000000000000000000000000000000000000000000000000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610b39565b9050806002600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f0ecec485166da6139b13bb7e033e9446e2d35348e80ebf1180d4afe2dba1704e838260405161068a929190611365565b60405180910390a1505050565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610710576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610777576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fdba79d534382d1a8ae108e4c8ecb27c6ae42ab8b91d44eedf88bd329f3868d5e600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161080991906112b1565b60405180910390a150565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461088d576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600080848152602001908152602001600020819055507f49f492222906ac486c3c1401fa545626df1f0c0e5a77a05597ea2ed66af9850d82826040516108d592919061138e565b60405180910390a15050565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461095a576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806109d357503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15610a0a576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff166347e7ef2484866040518363ffffffff1660e01b8152600401610a459291906112cc565b602060405180830381600087803b158015610a5f57600080fd5b505af1158015610a73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a979190610f3f565b508273ffffffffffffffffffffffffffffffffffffffff1663de43156e87878786866040518663ffffffff1660e01b8152600401610ad99594939291906112f5565b600060405180830381600087803b158015610af357600080fd5b505af1158015610b07573d6000803e3d6000fd5b50505050505050505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000610b488585610cef565b91509150858282604051602001610b60929190611243565b60405160208183030381529060405280519060200120604051602001610b8792919061126f565b6040516020818303038152906040528051906020012060001c925050509392505050565b60006020528060005260406000206000915090505481565b7f000000000000000000000000000000000000000000000000000000000000000081565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c60576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806001600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd1b36d30f6248e97c473b4d1348ca164a4ef6759022f54a58ec200326c39c45d8282604051610ce3929190611365565b60405180910390a15050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610d58576040517fcb1e7cfe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610d92578284610d95565b83835b8092508193505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e04576040517f78b507da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b600081359050610e1a816115a1565b92915050565b600081519050610e2f816115b8565b92915050565b60008083601f840112610e4b57610e4a61150e565b5b8235905067ffffffffffffffff811115610e6857610e67611509565b5b602083019150836001820283011115610e8457610e8361151d565b5b9250929050565b600060608284031215610ea157610ea0611513565b5b81905092915050565b600081359050610eb9816115cf565b92915050565b600060208284031215610ed557610ed461152c565b5b6000610ee384828501610e0b565b91505092915050565b600080600060608486031215610f0557610f0461152c565b5b6000610f1386828701610e0b565b9350506020610f2486828701610e0b565b9250506040610f3586828701610e0b565b9150509250925092565b600060208284031215610f5557610f5461152c565b5b6000610f6384828501610e20565b91505092915050565b60008060008060008060a08789031215610f8957610f8861152c565b5b600087013567ffffffffffffffff811115610fa757610fa6611522565b5b610fb389828a01610e8b565b9650506020610fc489828a01610e0b565b9550506040610fd589828a01610eaa565b9450506060610fe689828a01610e0b565b935050608087013567ffffffffffffffff81111561100757611006611522565b5b61101389828a01610e35565b92509250509295509295509295565b6000602082840312156110385761103761152c565b5b600061104684828501610eaa565b91505092915050565b600080604083850312156110665761106561152c565b5b600061107485828601610eaa565b925050602061108585828601610e0b565b9150509250929050565b600080604083850312156110a6576110a561152c565b5b60006110b485828601610eaa565b92505060206110c585828601610eaa565b9150509250929050565b6110d881611475565b82525050565b6110e781611475565b82525050565b6110fe6110f982611475565b6114d6565b82525050565b61111561111082611493565b6114e8565b82525050565b600061112783856113b7565b93506111348385846114c7565b61113d83611531565b840190509392505050565b600061115483856113c8565b93506111618385846114c7565b61116a83611531565b840190509392505050565b60006111826020836113d9565b915061118d8261154f565b602082019050919050565b60006111a56001836113d9565b91506111b082611578565b600182019050919050565b6000606083016111ce60008401846113fb565b85830360008701526111e183828461111b565b925050506111f260208401846113e4565b6111ff60208601826110cf565b5061120d604084018461145e565b61121a6040860182611225565b508091505092915050565b61122e816114bd565b82525050565b61123d816114bd565b82525050565b600061124f82856110ed565b60148201915061125f82846110ed565b6014820191508190509392505050565b600061127a82611198565b915061128682856110ed565b6014820191506112968284611104565b6020820191506112a582611175565b91508190509392505050565b60006020820190506112c660008301846110de565b92915050565b60006040820190506112e160008301856110de565b6112ee6020830184611234565b9392505050565b6000608082019050818103600083015261130f81886111bb565b905061131e60208301876110de565b61132b6040830186611234565b818103606083015261133e818486611148565b90509695505050505050565b600060208201905061135f6000830184611234565b92915050565b600060408201905061137a6000830185611234565b61138760208301846110de565b9392505050565b60006040820190506113a36000830185611234565b6113b06020830184611234565b9392505050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b60006113f36020840184610e0b565b905092915050565b6000808335600160200384360303811261141857611417611527565b5b83810192508235915060208301925067ffffffffffffffff8211156114405761143f611504565b5b60018202360384131561145657611455611518565b5b509250929050565b600061146d6020840184610eaa565b905092915050565b60006114808261149d565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60006114e1826114f2565b9050919050565b6000819050919050565b60006114fd82611542565b9050919050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f600082015250565b7fff00000000000000000000000000000000000000000000000000000000000000600082015250565b6115aa81611475565b81146115b557600080fd5b50565b6115c181611487565b81146115cc57600080fd5b50565b6115d8816114bd565b81146115e357600080fd5b5056fea2646970667358221220d4ce96458ff64ee4f053e26fd8b557fd7f878bb640565177b81a6aa0b251c3d964736f6c6343000807003360c06040523480156200001157600080fd5b506040516200282d3803806200282d83398181016040528101906200003791906200035b565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614620000b1576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8760079080519060200190620000c9929190620001d1565b508660089080519060200190620000e2929190620001d1565b5085600960006101000a81548160ff021916908360ff16021790555084608081815250508360028111156200011c576200011b620005ae565b5b60a0816002811115620001345762000133620005ae565b5b60f81b8152505082600281905550816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505050620006bf565b828054620001df9062000542565b90600052602060002090601f0160209004810192826200020357600085556200024f565b82601f106200021e57805160ff19168380011785556200024f565b828001600101855582156200024f579182015b828111156200024e57825182559160200191906001019062000231565b5b5090506200025e919062000262565b5090565b5b808211156200027d57600081600090555060010162000263565b5090565b60006200029862000292846200048b565b62000462565b905082815260208101848484011115620002b757620002b662000640565b5b620002c48482856200050c565b509392505050565b600081519050620002dd8162000660565b92915050565b600081519050620002f4816200067a565b92915050565b600082601f8301126200031257620003116200063b565b5b81516200032484826020860162000281565b91505092915050565b6000815190506200033e816200068b565b92915050565b6000815190506200035581620006a5565b92915050565b600080600080600080600080610100898b0312156200037f576200037e6200064a565b5b600089015167ffffffffffffffff811115620003a0576200039f62000645565b5b620003ae8b828c01620002fa565b985050602089015167ffffffffffffffff811115620003d257620003d162000645565b5b620003e08b828c01620002fa565b9750506040620003f38b828c0162000344565b9650506060620004068b828c016200032d565b9550506080620004198b828c01620002e3565b94505060a06200042c8b828c016200032d565b93505060c06200043f8b828c01620002cc565b92505060e0620004528b828c01620002cc565b9150509295985092959890939650565b60006200046e62000481565b90506200047c828262000578565b919050565b6000604051905090565b600067ffffffffffffffff821115620004a957620004a86200060c565b5b620004b4826200064f565b9050602081019050919050565b6000620004ce82620004d5565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156200052c5780820151818401526020810190506200050f565b838111156200053c576000848401525b50505050565b600060028204905060018216806200055b57607f821691505b60208210811415620005725762000571620005dd565b5b50919050565b62000583826200064f565b810181811067ffffffffffffffff82111715620005a557620005a46200060c565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b6200066b81620004c1565b81146200067757600080fd5b50565b600381106200068857600080fd5b50565b6200069681620004f5565b8114620006a257600080fd5b50565b620006b081620004ff565b8114620006bc57600080fd5b50565b60805160a05160f81c612137620006f660003960006109580152600081816108a201528181610c250152610d5a01526121376000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806385e1f4d0116100c3578063d9eeebed1161007c578063d9eeebed146103cc578063dd62ed3e146103eb578063e2f535b81461041b578063eddeb12314610439578063f2441b3214610455578063f687d12a146104735761014d565b806385e1f4d0146102f657806395d89b4114610314578063a3413d0314610332578063a9059cbb14610350578063c701262614610380578063c835d7cc146103b05761014d565b8063313ce56711610115578063313ce5671461020c5780633ce4a5bc1461022a57806342966c681461024857806347e7ef24146102785780634d8943bb146102a857806370a08231146102c65761014d565b806306fdde0314610152578063091d278814610170578063095ea7b31461018e57806318160ddd146101be57806323b872dd146101dc575b600080fd5b61015a61048f565b6040516101679190611cad565b60405180910390f35b610178610521565b6040516101859190611ccf565b60405180910390f35b6101a860048036038101906101a3919061196e565b610527565b6040516101b59190611bfb565b60405180910390f35b6101c6610545565b6040516101d39190611ccf565b60405180910390f35b6101f660048036038101906101f1919061191b565b61054f565b6040516102039190611bfb565b60405180910390f35b610214610647565b6040516102219190611cea565b60405180910390f35b61023261065e565b60405161023f9190611b80565b60405180910390f35b610262600480360381019061025d9190611a37565b610676565b60405161026f9190611bfb565b60405180910390f35b610292600480360381019061028d919061196e565b61068b565b60405161029f9190611bfb565b60405180910390f35b6102b0610851565b6040516102bd9190611ccf565b60405180910390f35b6102e060048036038101906102db9190611881565b610857565b6040516102ed9190611ccf565b60405180910390f35b6102fe6108a0565b60405161030b9190611ccf565b60405180910390f35b61031c6108c4565b6040516103299190611cad565b60405180910390f35b61033a610956565b6040516103479190611c92565b60405180910390f35b61036a6004803603810190610365919061196e565b61097a565b6040516103779190611bfb565b60405180910390f35b61039a600480360381019061039591906119db565b610998565b6040516103a79190611bfb565b60405180910390f35b6103ca60048036038101906103c59190611881565b610aee565b005b6103d4610be1565b6040516103e2929190611bd2565b60405180910390f35b610405600480360381019061040091906118db565b610e4e565b6040516104129190611ccf565b60405180910390f35b610423610ed5565b6040516104309190611b80565b60405180910390f35b610453600480360381019061044e9190611a37565b610efb565b005b61045d610fb5565b60405161046a9190611b80565b60405180910390f35b61048d60048036038101906104889190611a37565b610fd9565b005b60606007805461049e90611f33565b80601f01602080910402602001604051908101604052809291908181526020018280546104ca90611f33565b80156105175780601f106104ec57610100808354040283529160200191610517565b820191906000526020600020905b8154815290600101906020018083116104fa57829003601f168201915b5050505050905090565b60025481565b600061053b610534611093565b848461109b565b6001905092915050565b6000600654905090565b600061055c848484611254565b6000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105a7611093565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561061e576040517f10bad14700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61063b8561062a611093565b85846106369190611e43565b61109b565b60019150509392505050565b6000600960009054906101000a900460ff16905090565b73735b14bb79463307aacbed86daf3322b1e6226ab81565b600061068233836114b0565b60019050919050565b600073735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610729575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b80156107835750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b156107ba576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107c48383611668565b8273ffffffffffffffffffffffffffffffffffffffff167f67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab373735b14bb79463307aacbed86daf3322b1e6226ab6040516020016108219190611b65565b6040516020818303038152906040528460405161083f929190611c16565b60405180910390a26001905092915050565b60035481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6060600880546108d390611f33565b80601f01602080910402602001604051908101604052809291908181526020018280546108ff90611f33565b801561094c5780601f106109215761010080835404028352916020019161094c565b820191906000526020600020905b81548152906001019060200180831161092f57829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061098e610987611093565b8484611254565b6001905092915050565b60008060006109a5610be1565b915091508173ffffffffffffffffffffffffffffffffffffffff166323b872dd3373735b14bb79463307aacbed86daf3322b1e6226ab846040518463ffffffff1660e01b81526004016109fa93929190611b9b565b602060405180830381600087803b158015610a1457600080fd5b505af1158015610a28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4c91906119ae565b610a82576040517f0a7cd6d600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a8c33856114b0565b3373ffffffffffffffffffffffffffffffffffffffff167f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d955868684600354604051610ada9493929190611c46565b60405180910390a260019250505092915050565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b67576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae81604051610bd69190611b80565b60405180910390a150565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630be155477f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401610c609190611ccf565b60206040518083038186803b158015610c7857600080fd5b505afa158015610c8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb091906118ae565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d19576040517f78fff39600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d7fd7afb7f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401610d959190611ccf565b60206040518083038186803b158015610dad57600080fd5b505afa158015610dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de59190611a64565b90506000811415610e22576040517fe661aed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060035460025483610e359190611de9565b610e3f9190611d93565b90508281945094505050509091565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f74576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806003819055507fef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f81604051610faa9190611ccf565b60405180910390a150565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611052576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806002819055507fff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a816040516110889190611ccf565b60405180910390a150565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611102576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611169576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112479190611ccf565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112bb576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611322576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156113a0576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81816113ac9190611e43565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461143e9190611d93565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114a29190611ccf565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611517576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611595576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81816115a19190611e43565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600660008282546115f69190611e43565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161165b9190611ccf565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116cf576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600660008282546116e19190611d93565b9250508190555080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117379190611d93565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161179c9190611ccf565b60405180910390a35050565b60006117bb6117b684611d2a565b611d05565b9050828152602081018484840111156117d7576117d661207b565b5b6117e2848285611ef1565b509392505050565b6000813590506117f9816120bc565b92915050565b60008151905061180e816120bc565b92915050565b600081519050611823816120d3565b92915050565b600082601f83011261183e5761183d612076565b5b813561184e8482602086016117a8565b91505092915050565b600081359050611866816120ea565b92915050565b60008151905061187b816120ea565b92915050565b60006020828403121561189757611896612085565b5b60006118a5848285016117ea565b91505092915050565b6000602082840312156118c4576118c3612085565b5b60006118d2848285016117ff565b91505092915050565b600080604083850312156118f2576118f1612085565b5b6000611900858286016117ea565b9250506020611911858286016117ea565b9150509250929050565b60008060006060848603121561193457611933612085565b5b6000611942868287016117ea565b9350506020611953868287016117ea565b925050604061196486828701611857565b9150509250925092565b6000806040838503121561198557611984612085565b5b6000611993858286016117ea565b92505060206119a485828601611857565b9150509250929050565b6000602082840312156119c4576119c3612085565b5b60006119d284828501611814565b91505092915050565b600080604083850312156119f2576119f1612085565b5b600083013567ffffffffffffffff811115611a1057611a0f612080565b5b611a1c85828601611829565b9250506020611a2d85828601611857565b9150509250929050565b600060208284031215611a4d57611a4c612085565b5b6000611a5b84828501611857565b91505092915050565b600060208284031215611a7a57611a79612085565b5b6000611a888482850161186c565b91505092915050565b611a9a81611e77565b82525050565b611ab1611aac82611e77565b611f96565b82525050565b611ac081611e89565b82525050565b6000611ad182611d5b565b611adb8185611d71565b9350611aeb818560208601611f00565b611af48161208a565b840191505092915050565b611b0881611edf565b82525050565b6000611b1982611d66565b611b238185611d82565b9350611b33818560208601611f00565b611b3c8161208a565b840191505092915050565b611b5081611ec8565b82525050565b611b5f81611ed2565b82525050565b6000611b718284611aa0565b60148201915081905092915050565b6000602082019050611b956000830184611a91565b92915050565b6000606082019050611bb06000830186611a91565b611bbd6020830185611a91565b611bca6040830184611b47565b949350505050565b6000604082019050611be76000830185611a91565b611bf46020830184611b47565b9392505050565b6000602082019050611c106000830184611ab7565b92915050565b60006040820190508181036000830152611c308185611ac6565b9050611c3f6020830184611b47565b9392505050565b60006080820190508181036000830152611c608187611ac6565b9050611c6f6020830186611b47565b611c7c6040830185611b47565b611c896060830184611b47565b95945050505050565b6000602082019050611ca76000830184611aff565b92915050565b60006020820190508181036000830152611cc78184611b0e565b905092915050565b6000602082019050611ce46000830184611b47565b92915050565b6000602082019050611cff6000830184611b56565b92915050565b6000611d0f611d20565b9050611d1b8282611f65565b919050565b6000604051905090565b600067ffffffffffffffff821115611d4557611d44612047565b5b611d4e8261208a565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000611d9e82611ec8565b9150611da983611ec8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611dde57611ddd611fba565b5b828201905092915050565b6000611df482611ec8565b9150611dff83611ec8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611e3857611e37611fba565b5b828202905092915050565b6000611e4e82611ec8565b9150611e5983611ec8565b925082821015611e6c57611e6b611fba565b5b828203905092915050565b6000611e8282611ea8565b9050919050565b60008115159050919050565b6000819050611ea3826120a8565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000611eea82611e95565b9050919050565b82818337600083830152505050565b60005b83811015611f1e578082015181840152602081019050611f03565b83811115611f2d576000848401525b50505050565b60006002820490506001821680611f4b57607f821691505b60208210811415611f5f57611f5e612018565b5b50919050565b611f6e8261208a565b810181811067ffffffffffffffff82111715611f8d57611f8c612047565b5b80604052505050565b6000611fa182611fa8565b9050919050565b6000611fb38261209b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b600381106120b9576120b8611fe9565b5b50565b6120c581611e77565b81146120d057600080fd5b50565b6120dc81611e89565b81146120e757600080fd5b50565b6120f381611ec8565b81146120fe57600080fd5b5056fea26469706673582212206982505c1a546edfb86a1aaaca0ad6b7e5542f2d1f24ac30a032805fc80a650e64736f6c63430008070033a264697066735822122010027f2dc18e901383c97a3e4520ec38a6ca6c841d4c9ec83ba0a9f75515c22764736f6c63430008070033"; - -type GatewayZEVMInboundTestConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: GatewayZEVMInboundTestConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class GatewayZEVMInboundTest__factory extends ContractFactory { - constructor(...args: GatewayZEVMInboundTestConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override deploy( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy(overrides || {}) as Promise; - } - override getDeployTransaction( - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); - } - override attach(address: string): GatewayZEVMInboundTest { - return super.attach(address) as GatewayZEVMInboundTest; - } - override connect(signer: Signer): GatewayZEVMInboundTest__factory { - return super.connect(signer) as GatewayZEVMInboundTest__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): GatewayZEVMInboundTestInterface { - return new utils.Interface(_abi) as GatewayZEVMInboundTestInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): GatewayZEVMInboundTest { - return new Contract( - address, - _abi, - signerOrProvider - ) as GatewayZEVMInboundTest; - } -} diff --git a/typechain-types/factories/contracts/prototypes/test/GatewayZEVM.t.sol/GatewayZEVMOutboundTest__factory.ts b/typechain-types/factories/contracts/prototypes/test/GatewayZEVM.t.sol/GatewayZEVMOutboundTest__factory.ts deleted file mode 100644 index 62b338db..00000000 --- a/typechain-types/factories/contracts/prototypes/test/GatewayZEVM.t.sol/GatewayZEVMOutboundTest__factory.ts +++ /dev/null @@ -1,803 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../../../common"; -import type { - GatewayZEVMOutboundTest, - GatewayZEVMOutboundTestInterface, -} from "../../../../../contracts/prototypes/test/GatewayZEVM.t.sol/GatewayZEVMOutboundTest"; - -const _abi = [ - { - inputs: [], - name: "CallerIsNotFungibleModule", - type: "error", - }, - { - inputs: [], - name: "GasFeeTransferFailed", - type: "error", - }, - { - inputs: [], - name: "InsufficientZRC20Amount", - type: "error", - }, - { - inputs: [], - name: "InvalidTarget", - type: "error", - }, - { - inputs: [], - name: "WithdrawalFailed", - type: "error", - }, - { - inputs: [], - name: "ZRC20BurnFailed", - type: "error", - }, - { - inputs: [], - name: "ZRC20TransferFailed", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "receiver", - type: "bytes", - }, - { - indexed: false, - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "Call", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "origin", - type: "bytes", - }, - { - indexed: false, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "chainID", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "msgSender", - type: "address", - }, - { - indexed: false, - internalType: "string", - name: "message", - type: "string", - }, - ], - name: "ContextData", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "to", - type: "bytes", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "gasfee", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "protocolFlatFee", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "Withdrawal", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "", - type: "string", - }, - ], - name: "log", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "", - type: "address", - }, - ], - name: "log_address", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256[]", - name: "val", - type: "uint256[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "int256[]", - name: "val", - type: "int256[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address[]", - name: "val", - type: "address[]", - }, - ], - name: "log_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - name: "log_bytes", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - name: "log_bytes32", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "int256", - name: "", - type: "int256", - }, - ], - name: "log_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "address", - name: "val", - type: "address", - }, - ], - name: "log_named_address", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256[]", - name: "val", - type: "uint256[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256[]", - name: "val", - type: "int256[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "address[]", - name: "val", - type: "address[]", - }, - ], - name: "log_named_array", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "bytes", - name: "val", - type: "bytes", - }, - ], - name: "log_named_bytes", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "bytes32", - name: "val", - type: "bytes32", - }, - ], - name: "log_named_bytes32", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256", - name: "val", - type: "int256", - }, - { - indexed: false, - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "log_named_decimal_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "val", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "decimals", - type: "uint256", - }, - ], - name: "log_named_decimal_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "int256", - name: "val", - type: "int256", - }, - ], - name: "log_named_int", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "string", - name: "val", - type: "string", - }, - ], - name: "log_named_string", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "key", - type: "string", - }, - { - indexed: false, - internalType: "uint256", - name: "val", - type: "uint256", - }, - ], - name: "log_named_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "", - type: "string", - }, - ], - name: "log_string", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "log_uint", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - name: "logs", - type: "event", - }, - { - inputs: [], - name: "IS_TEST", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeArtifacts", - outputs: [ - { - internalType: "string[]", - name: "excludedArtifacts_", - type: "string[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeContracts", - outputs: [ - { - internalType: "address[]", - name: "excludedContracts_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeSelectors", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzSelector[]", - name: "excludedSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeSenders", - outputs: [ - { - internalType: "address[]", - name: "excludedSenders_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "failed", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "setUp", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "targetArtifactSelectors", - outputs: [ - { - components: [ - { - internalType: "string", - name: "artifact", - type: "string", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzArtifactSelector[]", - name: "targetedArtifactSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetArtifacts", - outputs: [ - { - internalType: "string[]", - name: "targetedArtifacts_", - type: "string[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetContracts", - outputs: [ - { - internalType: "address[]", - name: "targetedContracts_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetInterfaces", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "string[]", - name: "artifacts", - type: "string[]", - }, - ], - internalType: "struct StdInvariant.FuzzInterface[]", - name: "targetedInterfaces_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetSelectors", - outputs: [ - { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzSelector[]", - name: "targetedSelectors_", - type: "tuple[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetSenders", - outputs: [ - { - internalType: "address[]", - name: "targetedSenders_", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "testDeposit", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "testDepositAndCallZContract", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "testExecuteZContract", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -const _bytecode = - "0x60806040526001600c60006101000a81548160ff0219169083151502179055506001601f60006101000a81548160ff02191690831515021790555034801561004657600080fd5b5061b0e380620000576000396000f3fe60806040523480156200001157600080fd5b5060043610620001185760003560e01c806385226c8111620000a5578063b5508aa9116200006f578063b5508aa9146200025d578063ba414fa6146200027f578063e20c9f7114620002a1578063fa7626d414620002c35762000118565b806385226c8114620001eb5780638ec6a7c4146200020d578063916a17c61462000219578063b0464fdc146200023b5762000118565b80633f7286f411620000e75780633f7286f4146200018f57806366d9a9a014620001b1578063720b9aa914620001d35780637f924c4e14620001df5762000118565b80630a9254e4146200011d5780631ed7831c14620001295780632ade3880146200014b5780633e5e3c23146200016d575b600080fd5b62000127620002e5565b005b6200013362000c35565b60405162000142919062003251565b60405180910390f35b6200015562000cc5565b604051620001649190620032bd565b60405180910390f35b6200017762000e5f565b60405162000186919062003251565b60405180910390f35b6200019962000eef565b604051620001a8919062003251565b60405180910390f35b620001bb62000f7f565b604051620001ca919062003299565b60405180910390f35b620001dd62001116565b005b620001e962001673565b005b620001f562001a4e565b60405162000204919062003275565b60405180910390f35b6200021762001b31565b005b6200022362002258565b604051620002329190620032e1565b60405180910390f35b62000245620023ab565b604051620002549190620032e1565b60405180910390f35b62000267620024fe565b60405162000276919062003275565b60405180910390f35b62000289620025e1565b60405162000298919062003305565b60405180910390f35b620002ab62002714565b604051620002ba919062003251565b60405180910390f35b620002cd620027a4565b604051620002dc919062003305565b60405180910390f35b30602360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611234602460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060405162000377906200284d565b604051809103906000f08015801562000394573d6000803e3d6000fd5b50601f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051620003e3906200285b565b604051809103906000f08015801562000400573d6000803e3d6000fd5b50602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff166306447d56601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633ce4a5bc6040518163ffffffff1660e01b815260040160206040518083038186803b158015620004e957600080fd5b505afa158015620004fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005249190620028e1565b6040518263ffffffff1660e01b815260040162000542919062003133565b600060405180830381600087803b1580156200055d57600080fd5b505af115801562000572573d6000803e3d6000fd5b505050506000806000604051620005899062002869565b620005979392919062003150565b604051809103906000f080158015620005b4573d6000803e3d6000fd5b50602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060126001806000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051620006509062002877565b620006619695949392919062003464565b604051809103906000f0801580156200067e573d6000803e3d6000fd5b50602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ee2815ba6001602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b815260040162000741929190620033e8565b600060405180830381600087803b1580156200075c57600080fd5b505af115801562000771573d6000803e3d6000fd5b50505050602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a7cb05076001806040518363ffffffff1660e01b8152600401620007d592919062003415565b600060405180830381600087803b158015620007f057600080fd5b505af115801562000805573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff1663c88a5e6d601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633ce4a5bc6040518163ffffffff1660e01b815260040160206040518083038186803b158015620008b157600080fd5b505afa158015620008c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620008ec9190620028e1565b633b9aca006040518363ffffffff1660e01b815260040162000910929190620031ba565b600060405180830381600087803b1580156200092b57600080fd5b505af115801562000940573d6000803e3d6000fd5b50505050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166347e7ef24602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620186a06040518363ffffffff1660e01b8152600401620009c8929190620031e7565b602060405180830381600087803b158015620009e357600080fd5b505af1158015620009f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a1e919062002913565b507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562000a8b57600080fd5b505af115801562000aa0573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff1663ca669fa7602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040162000b24919062003133565b600060405180830381600087803b15801562000b3f57600080fd5b505af115801562000b54573d6000803e3d6000fd5b50505050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620186a06040518363ffffffff1660e01b815260040162000bdc929190620031e7565b602060405180830381600087803b15801562000bf757600080fd5b505af115801562000c0c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c32919062002913565b50565b6060601680548060200260200160405190810160405280929190818152602001828054801562000cbb57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831162000c70575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020016000905b8282101562000e5657838290600052602060002090600202016040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020016000905b8282101562000e3e57838290600052602060002001805462000daa90620038e1565b80601f016020809104026020016040519081016040528092919081815260200182805462000dd890620038e1565b801562000e295780601f1062000dfd5761010080835404028352916020019162000e29565b820191906000526020600020905b81548152906001019060200180831162000e0b57829003601f168201915b50505050508152602001906001019062000d88565b50505050815250508152602001906001019062000ce9565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000ee557602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831162000e9a575b5050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000f7557602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831162000f2a575b5050505050905090565b6060601b805480602002602001604051908101604052809291908181526020016000905b828210156200110d578382906000526020600020906002020160405180604001604052908160008201805462000fd990620038e1565b80601f01602080910402602001604051908101604052809291908181526020018280546200100790620038e1565b8015620010585780601f106200102c5761010080835404028352916020019162001058565b820191906000526020600020905b8154815290600101906020018083116200103a57829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015620010f457602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620010a05790505b5050505050815250508152602001906001019062000fa3565b50505050905090565b6000604051602001620011299062003442565b604051602081830303815290604052905060006040518060600160405280601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516020016200117c9190620030f9565b6040516020818303038152906040528152602001601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633ce4a5bc6040518163ffffffff1660e01b815260040160206040518083038186803b158015620011f957600080fd5b505afa1580156200120e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620012349190620028e1565b73ffffffffffffffffffffffffffffffffffffffff168152602001600181525090507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff166381bad6f3600180600180602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518663ffffffff1660e01b8152600401620012e095949392919062003322565b600060405180830381600087803b158015620012fb57600080fd5b505af115801562001310573d6000803e3d6000fd5b505050507fcdc8ee677dc5ebe680fb18cebda5e26ba5ea1f0ba504a47e2a9a2ecb476dc98e601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516020016200136a919062003116565b604051602081830303815290604052601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633ce4a5bc6040518163ffffffff1660e01b815260040160206040518083038186803b158015620013e257600080fd5b505afa158015620013f7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200141d9190620028e1565b6001601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516200145494939291906200337f565b60405180910390a17f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff1663ca669fa7601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633ce4a5bc6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200150457600080fd5b505afa15801562001519573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200153f9190620028e1565b6040518263ffffffff1660e01b81526004016200155d919062003133565b600060405180830381600087803b1580156200157857600080fd5b505af11580156200158d573d6000803e3d6000fd5b50505050601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bcf7f32b82602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876040518663ffffffff1660e01b81526004016200163b959493929190620034fc565b600060405180830381600087803b1580156200165657600080fd5b505af11580156200166b573d6000803e3d6000fd5b505050505050565b6000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401620016f4919062003133565b60206040518083038186803b1580156200170d57600080fd5b505afa15801562001722573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001748919062002977565b905062001757600082620027b7565b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff1663ca669fa7601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633ce4a5bc6040518163ffffffff1660e01b815260040160206040518083038186803b158015620017ff57600080fd5b505afa15801562001814573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200183a9190620028e1565b6040518263ffffffff1660e01b815260040162001858919062003133565b600060405180830381600087803b1580156200187357600080fd5b505af115801562001888573d6000803e3d6000fd5b50505050601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f45346dc602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518463ffffffff1660e01b8152600401620019329392919062003214565b600060405180830381600087803b1580156200194d57600080fd5b505af115801562001962573d6000803e3d6000fd5b505050506000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401620019e7919062003133565b60206040518083038186803b15801562001a0057600080fd5b505afa15801562001a15573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a3b919062002977565b905062001a4a600182620027b7565b5050565b6060601a805480602002602001604051908101604052809291908181526020016000905b8282101562001b2857838290600052602060002001805462001a9490620038e1565b80601f016020809104026020016040519081016040528092919081815260200182805462001ac290620038e1565b801562001b135780601f1062001ae75761010080835404028352916020019162001b13565b820191906000526020600020905b81548152906001019060200180831162001af557829003601f168201915b50505050508152602001906001019062001a72565b50505050905090565b6000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040162001bb2919062003133565b60206040518083038186803b15801562001bcb57600080fd5b505afa15801562001be0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001c06919062002977565b905062001c15600082620027b7565b600060405160200162001c289062003442565b604051602081830303815290604052905060006040518060600160405280601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405160200162001c7b9190620030f9565b6040516020818303038152906040528152602001601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633ce4a5bc6040518163ffffffff1660e01b815260040160206040518083038186803b15801562001cf857600080fd5b505afa15801562001d0d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001d339190620028e1565b73ffffffffffffffffffffffffffffffffffffffff168152602001600181525090507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff166381bad6f3600180600180602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518663ffffffff1660e01b815260040162001ddf95949392919062003322565b600060405180830381600087803b15801562001dfa57600080fd5b505af115801562001e0f573d6000803e3d6000fd5b505050507fcdc8ee677dc5ebe680fb18cebda5e26ba5ea1f0ba504a47e2a9a2ecb476dc98e601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405160200162001e69919062003116565b604051602081830303815290604052601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633ce4a5bc6040518163ffffffff1660e01b815260040160206040518083038186803b15801562001ee157600080fd5b505afa15801562001ef6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001f1c9190620028e1565b6001601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405162001f5394939291906200337f565b60405180910390a17f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff1663ca669fa7601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633ce4a5bc6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200200357600080fd5b505afa15801562002018573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200203e9190620028e1565b6040518263ffffffff1660e01b81526004016200205c919062003133565b600060405180830381600087803b1580156200207757600080fd5b505af11580156200208c573d6000803e3d6000fd5b50505050601f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c39aca3782602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876040518663ffffffff1660e01b81526004016200213a959493929190620034fc565b600060405180830381600087803b1580156200215557600080fd5b505af11580156200216a573d6000803e3d6000fd5b505050506000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401620021ef919062003133565b60206040518083038186803b1580156200220857600080fd5b505afa1580156200221d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002243919062002977565b905062002252600182620027b7565b50505050565b6060601d805480602002602001604051908101604052809291908181526020016000905b82821015620023a257838290600052602060002090600202016040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054806020026020016040519081016040528092919081815260200182805480156200238957602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620023355790505b505050505081525050815260200190600101906200227c565b50505050905090565b6060601c805480602002602001604051908101604052809291908181526020016000905b82821015620024f557838290600052602060002090600202016040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805480602002602001604051908101604052809291908181526020018280548015620024dc57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620024885790505b50505050508152505081526020019060010190620023cf565b50505050905090565b60606019805480602002602001604051908101604052809291908181526020016000905b82821015620025d85783829060005260206000200180546200254490620038e1565b80601f01602080910402602001604051908101604052809291908181526020018280546200257290620038e1565b8015620025c35780601f106200259757610100808354040283529160200191620025c3565b820191906000526020600020905b815481529060010190602001808311620025a557829003601f168201915b50505050508152602001906001019062002522565b50505050905090565b6000600860009054906101000a900460ff16156200261157600860009054906101000a900460ff16905062002711565b6000801b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff1663667f9d707f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c7f6661696c656400000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b8152600401620026b89291906200318d565b60206040518083038186803b158015620026d157600080fd5b505afa158015620026e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200270c919062002945565b141590505b90565b606060158054806020026020016040519081016040528092919081815260200182805480156200279a57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116200274f575b5050505050905090565b601f60009054906101000a900460ff1681565b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff166398296c5483836040518363ffffffff1660e01b81526004016200281792919062003567565b60006040518083038186803b1580156200283057600080fd5b505afa15801562002845573d6000803e3d6000fd5b505050505050565b612eb58062003abb83390190565b610667806200697083390190565b6118aa8062006fd783390190565b61282d806200888183390190565b600081519050620028968162003a52565b92915050565b600081519050620028ad8162003a6c565b92915050565b600081519050620028c48162003a86565b92915050565b600081519050620028db8162003aa0565b92915050565b600060208284031215620028fa57620028f96200399d565b5b60006200290a8482850162002885565b91505092915050565b6000602082840312156200292c576200292b6200399d565b5b60006200293c848285016200289c565b91505092915050565b6000602082840312156200295e576200295d6200399d565b5b60006200296e84828501620028b3565b91505092915050565b60006020828403121562002990576200298f6200399d565b5b6000620029a084828501620028ca565b91505092915050565b6000620029b7838362002a35565b60208301905092915050565b6000620029d1838362002ded565b60208301905092915050565b6000620029eb838362002f01565b905092915050565b600062002a01838362002fb7565b905092915050565b600062002a17838362002fff565b905092915050565b600062002a2d838362003040565b905092915050565b62002a408162003755565b82525050565b62002a518162003755565b82525050565b62002a6c62002a668262003755565b62003917565b82525050565b600062002a7f82620035f4565b62002a8b81856200369a565b935062002a988362003594565b8060005b8381101562002acf57815162002ab38882620029a9565b975062002ac0836200364c565b92505060018101905062002a9c565b5085935050505092915050565b600062002ae982620035ff565b62002af58185620036ab565b935062002b0283620035a4565b8060005b8381101562002b3957815162002b1d8882620029c3565b975062002b2a8362003659565b92505060018101905062002b06565b5085935050505092915050565b600062002b53826200360a565b62002b5f8185620036bc565b93508360208202850162002b7385620035b4565b8060005b8581101562002bb5578484038952815162002b938582620029dd565b945062002ba08362003666565b925060208a0199505060018101905062002b77565b50829750879550505050505092915050565b600062002bd4826200360a565b62002be08185620036cd565b93508360208202850162002bf485620035b4565b8060005b8581101562002c36578484038952815162002c148582620029dd565b945062002c218362003666565b925060208a0199505060018101905062002bf8565b50829750879550505050505092915050565b600062002c558262003615565b62002c618185620036de565b93508360208202850162002c7585620035c4565b8060005b8581101562002cb7578484038952815162002c958582620029f3565b945062002ca28362003673565b925060208a0199505060018101905062002c79565b50829750879550505050505092915050565b600062002cd68262003620565b62002ce28185620036ef565b93508360208202850162002cf685620035d4565b8060005b8581101562002d38578484038952815162002d16858262002a09565b945062002d238362003680565b925060208a0199505060018101905062002cfa565b50829750879550505050505092915050565b600062002d57826200362b565b62002d63818562003700565b93508360208202850162002d7785620035e4565b8060005b8581101562002db9578484038952815162002d97858262002a1f565b945062002da4836200368d565b925060208a0199505060018101905062002d7b565b50829750879550505050505092915050565b62002dd68162003769565b82525050565b62002de78162003775565b82525050565b62002df8816200377f565b82525050565b600062002e0b8262003636565b62002e17818562003711565b935062002e29818560208601620038ab565b62002e3481620039a2565b840191505092915050565b600062002e4c8262003636565b62002e58818562003722565b935062002e6a818560208601620038ab565b62002e7581620039a2565b840191505092915050565b62002e9562002e8f82620037f7565b62003917565b82525050565b62002ea6816200380b565b82525050565b62002eb7816200381f565b82525050565b62002ec88162003833565b82525050565b62002ed98162003847565b82525050565b62002eea816200385b565b82525050565b62002efb816200386f565b82525050565b600062002f0e8262003641565b62002f1a818562003733565b935062002f2c818560208601620038ab565b62002f3781620039a2565b840191505092915050565b600062002f5160058362003744565b915062002f5e82620039c0565b602082019050919050565b600062002f7860058362003744565b915062002f8582620039e9565b602082019050919050565b600062002f9f60038362003744565b915062002fac8262003a12565b602082019050919050565b6000604083016000830151848203600086015262002fd6828262002f01565b9150506020830151848203602086015262002ff2828262002adc565b9150508091505092915050565b600060408301600083015162003019600086018262002a35565b506020830151848203602086015262003033828262002b46565b9150508091505092915050565b60006040830160008301516200305a600086018262002a35565b506020830151848203602086015262003074828262002adc565b9150508091505092915050565b60006060830160008301518482036000860152620030a0828262002dfe565b9150506020830151620030b7602086018262002a35565b506040830151620030cc6040860182620030d7565b508091505092915050565b620030e281620037e0565b82525050565b620030f381620037e0565b82525050565b600062003107828462002a57565b60148201915081905092915050565b600062003124828462002e80565b60148201915081905092915050565b60006020820190506200314a600083018462002a46565b92915050565b600060608201905062003167600083018662002a46565b62003176602083018562002a46565b62003185604083018462002a46565b949350505050565b6000604082019050620031a4600083018562002a46565b620031b3602083018462002ddc565b9392505050565b6000604082019050620031d1600083018562002a46565b620031e0602083018462002ebd565b9392505050565b6000604082019050620031fe600083018562002a46565b6200320d602083018462002ece565b9392505050565b60006060820190506200322b600083018662002a46565b6200323a602083018562002ef0565b62003249604083018462002a46565b949350505050565b600060208201905081810360008301526200326d818462002a72565b905092915050565b6000602082019050818103600083015262003291818462002bc7565b905092915050565b60006020820190508181036000830152620032b5818462002c48565b905092915050565b60006020820190508181036000830152620032d9818462002cc9565b905092915050565b60006020820190508181036000830152620032fd818462002d4a565b905092915050565b60006020820190506200331c600083018462002dcb565b92915050565b600060a08201905062003339600083018862002dcb565b62003348602083018762002dcb565b62003357604083018662002dcb565b62003366606083018562002dcb565b62003375608083018462002a46565b9695505050505050565b600060a08201905081810360008301526200339b818762002e3f565b9050620033ac602083018662002a46565b620033bb604083018562002ef0565b620033ca606083018462002a46565b8181036080830152620033dd8162002f42565b905095945050505050565b6000604082019050620033ff600083018562002ef0565b6200340e602083018462002a46565b9392505050565b60006040820190506200342c600083018562002ef0565b6200343b602083018462002ef0565b9392505050565b600060208201905081810360008301526200345d8162002f42565b9050919050565b6000610100820190508181036000830152620034808162002f69565b90508181036020830152620034958162002f90565b9050620034a6604083018962002edf565b620034b5606083018862002ef0565b620034c4608083018762002e9b565b620034d360a083018662002eac565b620034e260c083018562002a46565b620034f160e083018462002a46565b979650505050505050565b600060a082019050818103600083015262003518818862003081565b905062003529602083018762002a46565b62003538604083018662002ef0565b62003547606083018562002a46565b81810360808301526200355b818462002e3f565b90509695505050505050565b60006040820190506200357e6000830185620030e8565b6200358d6020830184620030e8565b9392505050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b60006200376282620037c0565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6000819050620037bb8262003a3b565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000620038048262003883565b9050919050565b60006200381882620037ab565b9050919050565b60006200382c82620037e0565b9050919050565b60006200384082620037e0565b9050919050565b60006200385482620037e0565b9050919050565b60006200386882620037ea565b9050919050565b60006200387c82620037e0565b9050919050565b6000620038908262003897565b9050919050565b6000620038a482620037c0565b9050919050565b60005b83811015620038cb578082015181840152602081019050620038ae565b83811115620038db576000848401525b50505050565b60006002820490506001821680620038fa57607f821691505b602082108114156200391157620039106200396e565b5b50919050565b600062003924826200392b565b9050919050565b60006200393882620039b3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f68656c6c6f000000000000000000000000000000000000000000000000000000600082015250565b7f544f4b454e000000000000000000000000000000000000000000000000000000600082015250565b7f544b4e0000000000000000000000000000000000000000000000000000000000600082015250565b6003811062003a4f5762003a4e6200393f565b5b50565b62003a5d8162003755565b811462003a6957600080fd5b50565b62003a778162003769565b811462003a8357600080fd5b50565b62003a918162003775565b811462003a9d57600080fd5b50565b62003aab81620037e0565b811462003ab757600080fd5b5056fe60a06040523073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152503480156200004757600080fd5b50620000586200005e60201b60201c565b62000208565b600060019054906101000a900460ff1615620000b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000a8906200015c565b60405180910390fd5b60ff801660008054906101000a900460ff1660ff1614620001225760ff6000806101000a81548160ff021916908360ff1602179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860ff6040516200011991906200017e565b60405180910390a15b565b6000620001336027836200019b565b91506200014082620001b9565b604082019050919050565b6200015681620001ac565b82525050565b60006020820190508181036000830152620001778162000124565b9050919050565b60006020820190506200019560008301846200014b565b92915050565b600082825260208201905092915050565b600060ff82169050919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320696e69746960008201527f616c697a696e6700000000000000000000000000000000000000000000000000602082015250565b60805160601c612c726200024360003960008181610433015281816104c2015281816105d40152818161066301526107130152612c726000f3fe6080604052600436106100dd5760003560e01c80637993c1e01161007f578063bcf7f32b11610059578063bcf7f32b14610251578063c39aca371461027a578063f2fde38b146102a3578063f45346dc146102cc576100dd565b80637993c1e0146101e65780638129fc1c1461020f5780638da5cb5b14610226576100dd565b80633ce4a5bc116100bb5780633ce4a5bc1461015d5780634f1ef2861461018857806352d1902d146101a4578063715018a6146101cf576100dd565b80630ac7c44c146100e2578063135390f91461010b5780633659cfe614610134575b600080fd5b3480156100ee57600080fd5b5061010960048036038101906101049190611c80565b6102f5565b005b34801561011757600080fd5b50610132600480360381019061012d9190611cfc565b61034c565b005b34801561014057600080fd5b5061015b60048036038101906101569190611b0a565b610431565b005b34801561016957600080fd5b506101726105ba565b60405161017f919061226e565b60405180910390f35b6101a2600480360381019061019d9190611b37565b6105d2565b005b3480156101b057600080fd5b506101b961070f565b6040516101c691906122e9565b60405180910390f35b3480156101db57600080fd5b506101e46107c8565b005b3480156101f257600080fd5b5061020d60048036038101906102089190611d6b565b6107dc565b005b34801561021b57600080fd5b506102246108c7565b005b34801561023257600080fd5b5061023b610a0d565b604051610248919061226e565b60405180910390f35b34801561025d57600080fd5b5061027860048036038101906102739190611e0f565b610a37565b005b34801561028657600080fd5b506102a1600480360381019061029c9190611e0f565b610b2b565b005b3480156102af57600080fd5b506102ca60048036038101906102c59190611b0a565b610d5d565b005b3480156102d857600080fd5b506102f360048036038101906102ee9190611bd3565b610de1565b005b3373ffffffffffffffffffffffffffffffffffffffff167f2b5af078ce280d812dc2241658dc5435c93408020e5418eef55a2b536de51c0f84848460405161033f93929190612304565b60405180910390a2505050565b60006103588383610f9d565b90503373ffffffffffffffffffffffffffffffffffffffff167f1866ad2994816c79f4103e1eddacc7b085eb7c635205243a28940be69b01536d8585848673ffffffffffffffffffffffffffffffffffffffff16634d8943bb6040518163ffffffff1660e01b815260040160206040518083038186803b1580156103db57600080fd5b505afa1580156103ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104139190611ec5565b60405161042394939291906123a0565b60405180910390a250505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614156104c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104b79061245c565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166104ff61128d565b73ffffffffffffffffffffffffffffffffffffffff1614610555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054c9061247c565b60405180910390fd5b61055e816112e4565b6105b781600067ffffffffffffffff81111561057d5761057c61282b565b5b6040519080825280601f01601f1916602001820160405280156105af5781602001600182028036833780820191505090505b5060006112ef565b50565b73735b14bb79463307aacbed86daf3322b1e6226ab81565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610661576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106589061245c565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166106a061128d565b73ffffffffffffffffffffffffffffffffffffffff16146106f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ed9061247c565b60405180910390fd5b6106ff826112e4565b61070b828260016112ef565b5050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161461079f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107969061249c565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b905090565b6107d061146c565b6107da60006114ea565b565b60006107e88585610f9d565b90503373ffffffffffffffffffffffffffffffffffffffff167f1866ad2994816c79f4103e1eddacc7b085eb7c635205243a28940be69b01536d8787848873ffffffffffffffffffffffffffffffffffffffff16634d8943bb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561086b57600080fd5b505afa15801561087f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a39190611ec5565b88886040516108b79695949392919061233d565b60405180910390a2505050505050565b60008060019054906101000a900460ff161590508080156108f85750600160008054906101000a900460ff1660ff16105b806109255750610907306115b0565b1580156109245750600160008054906101000a900460ff1660ff16145b5b610964576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095b906124dc565b60405180910390fd5b60016000806101000a81548160ff021916908360ff16021790555080156109a1576001600060016101000a81548160ff0219169083151502179055505b6109a96115d3565b6109b161162c565b8015610a0a5760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986001604051610a0191906123ff565b60405180910390a15b50565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ab0576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663de43156e87878786866040518663ffffffff1660e01b8152600401610af195949392919061259c565b600060405180830381600087803b158015610b0b57600080fd5b505af1158015610b1f573d6000803e3d6000fd5b50505050505050505050565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ba4576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610c1d57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15610c54576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff166347e7ef2484866040518363ffffffff1660e01b8152600401610c8f9291906122c0565b602060405180830381600087803b158015610ca957600080fd5b505af1158015610cbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce19190611c26565b508273ffffffffffffffffffffffffffffffffffffffff1663de43156e87878786866040518663ffffffff1660e01b8152600401610d2395949392919061259c565b600060405180830381600087803b158015610d3d57600080fd5b505af1158015610d51573d6000803e3d6000fd5b50505050505050505050565b610d6561146c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610dd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcc9061243c565b60405180910390fd5b610dde816114ea565b50565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e5a576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480610ed357503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15610f0a576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff166347e7ef2482846040518363ffffffff1660e01b8152600401610f459291906122c0565b602060405180830381600087803b158015610f5f57600080fd5b505af1158015610f73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f979190611c26565b50505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1663d9eeebed6040518163ffffffff1660e01b8152600401604080518083038186803b158015610fe757600080fd5b505afa158015610ffb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101f9190611b93565b915091508173ffffffffffffffffffffffffffffffffffffffff166323b872dd3373735b14bb79463307aacbed86daf3322b1e6226ab846040518463ffffffff1660e01b815260040161107493929190612289565b602060405180830381600087803b15801561108e57600080fd5b505af11580156110a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c69190611c26565b6110fc576040517f0a7cd6d600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd3330886040518463ffffffff1660e01b815260040161113993929190612289565b602060405180830381600087803b15801561115357600080fd5b505af1158015611167573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118b9190611c26565b6111c1576040517f4dd9ee8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff166342966c68866040518263ffffffff1660e01b81526004016111fa91906125f1565b602060405180830381600087803b15801561121457600080fd5b505af1158015611228573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124c9190611c26565b611282576040517f2c77e05c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b809250505092915050565b60006112bb7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61167d565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6112ec61146c565b50565b61131b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914360001b611687565b60000160009054906101000a900460ff161561133f5761133a83611691565b611467565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561138557600080fd5b505afa9250505080156113b657506040513d601f19601f820116820180604052508101906113b39190611c53565b60015b6113f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ec906124fc565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b811461145a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611451906124bc565b60405180910390fd5b5061146683838361174a565b5b505050565b611474611776565b73ffffffffffffffffffffffffffffffffffffffff16611492610a0d565b73ffffffffffffffffffffffffffffffffffffffff16146114e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114df9061253c565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16611622576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116199061257c565b60405180910390fd5b61162a61177e565b565b600060019054906101000a900460ff1661167b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116729061257c565b60405180910390fd5b565b6000819050919050565b6000819050919050565b61169a816115b0565b6116d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d09061251c565b60405180910390fd5b806117067f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61167d565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611753836117df565b6000825111806117605750805b156117715761176f838361182e565b505b505050565b600033905090565b600060019054906101000a900460ff166117cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c49061257c565b60405180910390fd5b6117dd6117d8611776565b6114ea565b565b6117e881611691565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b60606118538383604051806060016040528060278152602001612c166027913961185b565b905092915050565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516118859190612257565b600060405180830381855af49150503d80600081146118c0576040519150601f19603f3d011682016040523d82523d6000602084013e6118c5565b606091505b50915091506118d6868383876118e1565b925050509392505050565b606083156119445760008351141561193c576118fc856115b0565b61193b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119329061255c565b60405180910390fd5b5b82905061194f565b61194e8383611957565b5b949350505050565b60008251111561196a5781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199e919061241a565b60405180910390fd5b60006119ba6119b584612631565b61260c565b9050828152602081018484840111156119d6576119d5612878565b5b6119e18482856127b8565b509392505050565b6000813590506119f881612bb9565b92915050565b600081519050611a0d81612bb9565b92915050565b600081519050611a2281612bd0565b92915050565b600081519050611a3781612be7565b92915050565b60008083601f840112611a5357611a52612864565b5b8235905067ffffffffffffffff811115611a7057611a6f61285f565b5b602083019150836001820283011115611a8c57611a8b612873565b5b9250929050565b600082601f830112611aa857611aa7612864565b5b8135611ab88482602086016119a7565b91505092915050565b600060608284031215611ad757611ad6612869565b5b81905092915050565b600081359050611aef81612bfe565b92915050565b600081519050611b0481612bfe565b92915050565b600060208284031215611b2057611b1f612887565b5b6000611b2e848285016119e9565b91505092915050565b60008060408385031215611b4e57611b4d612887565b5b6000611b5c858286016119e9565b925050602083013567ffffffffffffffff811115611b7d57611b7c61287d565b5b611b8985828601611a93565b9150509250929050565b60008060408385031215611baa57611ba9612887565b5b6000611bb8858286016119fe565b9250506020611bc985828601611af5565b9150509250929050565b600080600060608486031215611bec57611beb612887565b5b6000611bfa868287016119e9565b9350506020611c0b86828701611ae0565b9250506040611c1c868287016119e9565b9150509250925092565b600060208284031215611c3c57611c3b612887565b5b6000611c4a84828501611a13565b91505092915050565b600060208284031215611c6957611c68612887565b5b6000611c7784828501611a28565b91505092915050565b600080600060408486031215611c9957611c98612887565b5b600084013567ffffffffffffffff811115611cb757611cb661287d565b5b611cc386828701611a93565b935050602084013567ffffffffffffffff811115611ce457611ce361287d565b5b611cf086828701611a3d565b92509250509250925092565b600080600060608486031215611d1557611d14612887565b5b600084013567ffffffffffffffff811115611d3357611d3261287d565b5b611d3f86828701611a93565b9350506020611d5086828701611ae0565b9250506040611d61868287016119e9565b9150509250925092565b600080600080600060808688031215611d8757611d86612887565b5b600086013567ffffffffffffffff811115611da557611da461287d565b5b611db188828901611a93565b9550506020611dc288828901611ae0565b9450506040611dd3888289016119e9565b935050606086013567ffffffffffffffff811115611df457611df361287d565b5b611e0088828901611a3d565b92509250509295509295909350565b60008060008060008060a08789031215611e2c57611e2b612887565b5b600087013567ffffffffffffffff811115611e4a57611e4961287d565b5b611e5689828a01611ac1565b9650506020611e6789828a016119e9565b9550506040611e7889828a01611ae0565b9450506060611e8989828a016119e9565b935050608087013567ffffffffffffffff811115611eaa57611ea961287d565b5b611eb689828a01611a3d565b92509250509295509295509295565b600060208284031215611edb57611eda612887565b5b6000611ee984828501611af5565b91505092915050565b611efb81612747565b82525050565b611f0a81612747565b82525050565b611f1981612765565b82525050565b6000611f2b8385612678565b9350611f388385846127b8565b611f418361288c565b840190509392505050565b6000611f588385612689565b9350611f658385846127b8565b611f6e8361288c565b840190509392505050565b6000611f8482612662565b611f8e8185612689565b9350611f9e8185602086016127c7565b611fa78161288c565b840191505092915050565b6000611fbd82612662565b611fc7818561269a565b9350611fd78185602086016127c7565b80840191505092915050565b611fec816127a6565b82525050565b6000611ffd8261266d565b61200781856126a5565b93506120178185602086016127c7565b6120208161288c565b840191505092915050565b60006120386026836126a5565b91506120438261289d565b604082019050919050565b600061205b602c836126a5565b9150612066826128ec565b604082019050919050565b600061207e602c836126a5565b91506120898261293b565b604082019050919050565b60006120a16038836126a5565b91506120ac8261298a565b604082019050919050565b60006120c46029836126a5565b91506120cf826129d9565b604082019050919050565b60006120e7602e836126a5565b91506120f282612a28565b604082019050919050565b600061210a602e836126a5565b915061211582612a77565b604082019050919050565b600061212d602d836126a5565b915061213882612ac6565b604082019050919050565b60006121506020836126a5565b915061215b82612b15565b602082019050919050565b6000612173600083612689565b915061217e82612b3e565b600082019050919050565b6000612196601d836126a5565b91506121a182612b41565b602082019050919050565b60006121b9602b836126a5565b91506121c482612b6a565b604082019050919050565b6000606083016121e260008401846126cd565b85830360008701526121f5838284611f1f565b9250505061220660208401846126b6565b6122136020860182611ef2565b506122216040840184612730565b61222e6040860182612239565b508091505092915050565b6122428161278f565b82525050565b6122518161278f565b82525050565b60006122638284611fb2565b915081905092915050565b60006020820190506122836000830184611f01565b92915050565b600060608201905061229e6000830186611f01565b6122ab6020830185611f01565b6122b86040830184612248565b949350505050565b60006040820190506122d56000830185611f01565b6122e26020830184612248565b9392505050565b60006020820190506122fe6000830184611f10565b92915050565b6000604082019050818103600083015261231e8186611f79565b90508181036020830152612333818486611f4c565b9050949350505050565b600060a08201905081810360008301526123578189611f79565b90506123666020830188612248565b6123736040830187612248565b6123806060830186612248565b8181036080830152612393818486611f4c565b9050979650505050505050565b600060a08201905081810360008301526123ba8187611f79565b90506123c96020830186612248565b6123d66040830185612248565b6123e36060830184612248565b81810360808301526123f481612166565b905095945050505050565b60006020820190506124146000830184611fe3565b92915050565b600060208201905081810360008301526124348184611ff2565b905092915050565b600060208201905081810360008301526124558161202b565b9050919050565b600060208201905081810360008301526124758161204e565b9050919050565b6000602082019050818103600083015261249581612071565b9050919050565b600060208201905081810360008301526124b581612094565b9050919050565b600060208201905081810360008301526124d5816120b7565b9050919050565b600060208201905081810360008301526124f5816120da565b9050919050565b60006020820190508181036000830152612515816120fd565b9050919050565b6000602082019050818103600083015261253581612120565b9050919050565b6000602082019050818103600083015261255581612143565b9050919050565b6000602082019050818103600083015261257581612189565b9050919050565b60006020820190508181036000830152612595816121ac565b9050919050565b600060808201905081810360008301526125b681886121cf565b90506125c56020830187611f01565b6125d26040830186612248565b81810360608301526125e5818486611f4c565b90509695505050505050565b60006020820190506126066000830184612248565b92915050565b6000612616612627565b905061262282826127fa565b919050565b6000604051905090565b600067ffffffffffffffff82111561264c5761264b61282b565b5b6126558261288c565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006126c560208401846119e9565b905092915050565b600080833560016020038436030381126126ea576126e9612882565b5b83810192508235915060208301925067ffffffffffffffff8211156127125761271161285a565b5b6001820236038413156127285761272761286e565b5b509250929050565b600061273f6020840184611ae0565b905092915050565b60006127528261276f565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006127b182612799565b9050919050565b82818337600083830152505050565b60005b838110156127e55780820151818401526020810190506127ca565b838111156127f4576000848401525b50505050565b6128038261288c565b810181811067ffffffffffffffff821117156128225761282161282b565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f64656c656761746563616c6c0000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f6163746976652070726f78790000000000000000000000000000000000000000602082015250565b7f555550535570677261646561626c653a206d757374206e6f742062652063616c60008201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000602082015250565b7f45524331393637557067726164653a20756e737570706f727465642070726f7860008201527f6961626c65555549440000000000000000000000000000000000000000000000602082015250565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f45524331393637557067726164653a206e657720696d706c656d656e7461746960008201527f6f6e206973206e6f742055555053000000000000000000000000000000000000602082015250565b7f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60008201527f6f74206120636f6e747261637400000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b612bc281612747565b8114612bcd57600080fd5b50565b612bd981612759565b8114612be457600080fd5b50565b612bf081612765565b8114612bfb57600080fd5b50565b612c078161278f565b8114612c1257600080fd5b5056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220627eb039ecb52d09fd70ebde1f5eca61fe0f91321a96929ebe38dc8e38d999ab64736f6c63430008070033608060405234801561001057600080fd5b50610647806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063de43156e14610030575b600080fd5b61004a60048036038101906100459190610251565b61004c565b005b6000828281019061005d9190610208565b90507fcdc8ee677dc5ebe680fb18cebda5e26ba5ea1f0ba504a47e2a9a2ecb476dc98e86806000019061009091906103dc565b8860200160208101906100a391906101db565b896040013533866040516100bc96959493929190610379565b60405180910390a1505050505050565b60006100df6100da84610464565b61043f565b9050828152602081018484840111156100fb576100fa6105c3565b5b6101068482856104fe565b509392505050565b60008135905061011d816105e3565b92915050565b60008083601f840112610139576101386105a5565b5b8235905067ffffffffffffffff811115610156576101556105a0565b5b602083019150836001820283011115610172576101716105b9565b5b9250929050565b600082601f83011261018e5761018d6105a5565b5b813561019e8482602086016100cc565b91505092915050565b6000606082840312156101bd576101bc6105af565b5b81905092915050565b6000813590506101d5816105fa565b92915050565b6000602082840312156101f1576101f06105cd565b5b60006101ff8482850161010e565b91505092915050565b60006020828403121561021e5761021d6105cd565b5b600082013567ffffffffffffffff81111561023c5761023b6105c8565b5b61024884828501610179565b91505092915050565b60008060008060006080868803121561026d5761026c6105cd565b5b600086013567ffffffffffffffff81111561028b5761028a6105c8565b5b610297888289016101a7565b95505060206102a88882890161010e565b94505060406102b9888289016101c6565b935050606086013567ffffffffffffffff8111156102da576102d96105c8565b5b6102e688828901610123565b92509250509295509295909350565b6102fe816104c2565b82525050565b600061031083856104a0565b935061031d8385846104fe565b610326836105d2565b840190509392505050565b600061033c82610495565b61034681856104b1565b935061035681856020860161050d565b61035f816105d2565b840191505092915050565b610373816104f4565b82525050565b600060a082019050818103600083015261039481888a610304565b90506103a360208301876102f5565b6103b0604083018661036a565b6103bd60608301856102f5565b81810360808301526103cf8184610331565b9050979650505050505050565b600080833560016020038436030381126103f9576103f86105b4565b5b80840192508235915067ffffffffffffffff82111561041b5761041a6105aa565b5b602083019250600182023603831315610437576104366105be565b5b509250929050565b600061044961045a565b90506104558282610540565b919050565b6000604051905090565b600067ffffffffffffffff82111561047f5761047e610571565b5b610488826105d2565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006104cd826104d4565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561052b578082015181840152602081019050610510565b8381111561053a576000848401525b50505050565b610549826105d2565b810181811067ffffffffffffffff8211171561056857610567610571565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b6105ec816104c2565b81146105f757600080fd5b50565b610603816104f4565b811461060e57600080fd5b5056fea2646970667358221220658b8c56b21b674d6677fa444091a4a714b74ee72bac7b4972c1063bda6d73d764736f6c6343000807003360c06040523480156200001157600080fd5b50604051620018aa380380620018aa8339818101604052810190620000379190620001ac565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614620000b1576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b815250507f80699e81136d69cb8367ad52a994e25c722a86da654b561d0c14b61a777e7ac560405160405180910390a15050506200025b565b600081519050620001a68162000241565b92915050565b600080600060608486031215620001c857620001c76200023c565b5b6000620001d88682870162000195565b9350506020620001eb8682870162000195565b9250506040620001fe8682870162000195565b9150509250925092565b600062000215826200021c565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6200024c8162000208565b81146200025857600080fd5b50565b60805160601c60a05160601c61161c6200028e600039600061051b0152600081816105bd0152610bc5015261161c6000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806397770dff11610097578063c63585cc11610066578063c63585cc1461025e578063d7fd7afb1461028e578063d936a012146102be578063ee2815ba146102dc576100f5565b806397770dff146101ec578063a7cb050714610208578063c39aca3714610224578063c62178ac14610240576100f5565b8063513a9c05116100d3578063513a9c0514610164578063569541b914610194578063842da36d146101b257806391dd645f146101d0576100f5565b80630be15547146100fa5780631f0e251b1461012a5780633ce4a5bc14610146575b600080fd5b610114600480360381019061010f9190611022565b6102f8565b60405161012191906112b1565b60405180910390f35b610144600480360381019061013f9190610ebf565b61032b565b005b61014e6104a8565b60405161015b91906112b1565b60405180910390f35b61017e60048036038101906101799190611022565b6104c0565b60405161018b91906112b1565b60405180910390f35b61019c6104f3565b6040516101a991906112b1565b60405180910390f35b6101ba610519565b6040516101c791906112b1565b60405180910390f35b6101ea60048036038101906101e5919061104f565b61053d565b005b61020660048036038101906102019190610ebf565b610697565b005b610222600480360381019061021d919061108f565b610814565b005b61023e60048036038101906102399190610f6c565b6108e1565b005b610248610b13565b60405161025591906112b1565b60405180910390f35b61027860048036038101906102739190610eec565b610b39565b60405161028591906112b1565b60405180910390f35b6102a860048036038101906102a39190611022565b610bab565b6040516102b5919061134a565b60405180910390f35b6102c6610bc3565b6040516102d391906112b1565b60405180910390f35b6102f660048036038101906102f1919061104f565b610be7565b005b60016020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103a4576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561040b576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f3ade88e3922d64780e1bf4460d364c2970b69da813f9c0c07a1c187b5647636c600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161049d91906112b1565b60405180910390a150565b73735b14bb79463307aacbed86daf3322b1e6226ab81565b60026020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105b6576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006106057f0000000000000000000000000000000000000000000000000000000000000000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610b39565b9050806002600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f0ecec485166da6139b13bb7e033e9446e2d35348e80ebf1180d4afe2dba1704e838260405161068a929190611365565b60405180910390a1505050565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610710576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610777576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fdba79d534382d1a8ae108e4c8ecb27c6ae42ab8b91d44eedf88bd329f3868d5e600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161080991906112b1565b60405180910390a150565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461088d576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600080848152602001908152602001600020819055507f49f492222906ac486c3c1401fa545626df1f0c0e5a77a05597ea2ed66af9850d82826040516108d592919061138e565b60405180910390a15050565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461095a576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806109d357503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15610a0a576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff166347e7ef2484866040518363ffffffff1660e01b8152600401610a459291906112cc565b602060405180830381600087803b158015610a5f57600080fd5b505af1158015610a73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a979190610f3f565b508273ffffffffffffffffffffffffffffffffffffffff1663de43156e87878786866040518663ffffffff1660e01b8152600401610ad99594939291906112f5565b600060405180830381600087803b158015610af357600080fd5b505af1158015610b07573d6000803e3d6000fd5b50505050505050505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000610b488585610cef565b91509150858282604051602001610b60929190611243565b60405160208183030381529060405280519060200120604051602001610b8792919061126f565b6040516020818303038152906040528051906020012060001c925050509392505050565b60006020528060005260406000206000915090505481565b7f000000000000000000000000000000000000000000000000000000000000000081565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c60576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806001600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd1b36d30f6248e97c473b4d1348ca164a4ef6759022f54a58ec200326c39c45d8282604051610ce3929190611365565b60405180910390a15050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610d58576040517fcb1e7cfe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610d92578284610d95565b83835b8092508193505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e04576040517f78b507da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b600081359050610e1a816115a1565b92915050565b600081519050610e2f816115b8565b92915050565b60008083601f840112610e4b57610e4a61150e565b5b8235905067ffffffffffffffff811115610e6857610e67611509565b5b602083019150836001820283011115610e8457610e8361151d565b5b9250929050565b600060608284031215610ea157610ea0611513565b5b81905092915050565b600081359050610eb9816115cf565b92915050565b600060208284031215610ed557610ed461152c565b5b6000610ee384828501610e0b565b91505092915050565b600080600060608486031215610f0557610f0461152c565b5b6000610f1386828701610e0b565b9350506020610f2486828701610e0b565b9250506040610f3586828701610e0b565b9150509250925092565b600060208284031215610f5557610f5461152c565b5b6000610f6384828501610e20565b91505092915050565b60008060008060008060a08789031215610f8957610f8861152c565b5b600087013567ffffffffffffffff811115610fa757610fa6611522565b5b610fb389828a01610e8b565b9650506020610fc489828a01610e0b565b9550506040610fd589828a01610eaa565b9450506060610fe689828a01610e0b565b935050608087013567ffffffffffffffff81111561100757611006611522565b5b61101389828a01610e35565b92509250509295509295509295565b6000602082840312156110385761103761152c565b5b600061104684828501610eaa565b91505092915050565b600080604083850312156110665761106561152c565b5b600061107485828601610eaa565b925050602061108585828601610e0b565b9150509250929050565b600080604083850312156110a6576110a561152c565b5b60006110b485828601610eaa565b92505060206110c585828601610eaa565b9150509250929050565b6110d881611475565b82525050565b6110e781611475565b82525050565b6110fe6110f982611475565b6114d6565b82525050565b61111561111082611493565b6114e8565b82525050565b600061112783856113b7565b93506111348385846114c7565b61113d83611531565b840190509392505050565b600061115483856113c8565b93506111618385846114c7565b61116a83611531565b840190509392505050565b60006111826020836113d9565b915061118d8261154f565b602082019050919050565b60006111a56001836113d9565b91506111b082611578565b600182019050919050565b6000606083016111ce60008401846113fb565b85830360008701526111e183828461111b565b925050506111f260208401846113e4565b6111ff60208601826110cf565b5061120d604084018461145e565b61121a6040860182611225565b508091505092915050565b61122e816114bd565b82525050565b61123d816114bd565b82525050565b600061124f82856110ed565b60148201915061125f82846110ed565b6014820191508190509392505050565b600061127a82611198565b915061128682856110ed565b6014820191506112968284611104565b6020820191506112a582611175565b91508190509392505050565b60006020820190506112c660008301846110de565b92915050565b60006040820190506112e160008301856110de565b6112ee6020830184611234565b9392505050565b6000608082019050818103600083015261130f81886111bb565b905061131e60208301876110de565b61132b6040830186611234565b818103606083015261133e818486611148565b90509695505050505050565b600060208201905061135f6000830184611234565b92915050565b600060408201905061137a6000830185611234565b61138760208301846110de565b9392505050565b60006040820190506113a36000830185611234565b6113b06020830184611234565b9392505050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b60006113f36020840184610e0b565b905092915050565b6000808335600160200384360303811261141857611417611527565b5b83810192508235915060208301925067ffffffffffffffff8211156114405761143f611504565b5b60018202360384131561145657611455611518565b5b509250929050565b600061146d6020840184610eaa565b905092915050565b60006114808261149d565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60006114e1826114f2565b9050919050565b6000819050919050565b60006114fd82611542565b9050919050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f600082015250565b7fff00000000000000000000000000000000000000000000000000000000000000600082015250565b6115aa81611475565b81146115b557600080fd5b50565b6115c181611487565b81146115cc57600080fd5b50565b6115d8816114bd565b81146115e357600080fd5b5056fea2646970667358221220d4ce96458ff64ee4f053e26fd8b557fd7f878bb640565177b81a6aa0b251c3d964736f6c6343000807003360c06040523480156200001157600080fd5b506040516200282d3803806200282d83398181016040528101906200003791906200035b565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614620000b1576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8760079080519060200190620000c9929190620001d1565b508660089080519060200190620000e2929190620001d1565b5085600960006101000a81548160ff021916908360ff16021790555084608081815250508360028111156200011c576200011b620005ae565b5b60a0816002811115620001345762000133620005ae565b5b60f81b8152505082600281905550816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505050620006bf565b828054620001df9062000542565b90600052602060002090601f0160209004810192826200020357600085556200024f565b82601f106200021e57805160ff19168380011785556200024f565b828001600101855582156200024f579182015b828111156200024e57825182559160200191906001019062000231565b5b5090506200025e919062000262565b5090565b5b808211156200027d57600081600090555060010162000263565b5090565b60006200029862000292846200048b565b62000462565b905082815260208101848484011115620002b757620002b662000640565b5b620002c48482856200050c565b509392505050565b600081519050620002dd8162000660565b92915050565b600081519050620002f4816200067a565b92915050565b600082601f8301126200031257620003116200063b565b5b81516200032484826020860162000281565b91505092915050565b6000815190506200033e816200068b565b92915050565b6000815190506200035581620006a5565b92915050565b600080600080600080600080610100898b0312156200037f576200037e6200064a565b5b600089015167ffffffffffffffff811115620003a0576200039f62000645565b5b620003ae8b828c01620002fa565b985050602089015167ffffffffffffffff811115620003d257620003d162000645565b5b620003e08b828c01620002fa565b9750506040620003f38b828c0162000344565b9650506060620004068b828c016200032d565b9550506080620004198b828c01620002e3565b94505060a06200042c8b828c016200032d565b93505060c06200043f8b828c01620002cc565b92505060e0620004528b828c01620002cc565b9150509295985092959890939650565b60006200046e62000481565b90506200047c828262000578565b919050565b6000604051905090565b600067ffffffffffffffff821115620004a957620004a86200060c565b5b620004b4826200064f565b9050602081019050919050565b6000620004ce82620004d5565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156200052c5780820151818401526020810190506200050f565b838111156200053c576000848401525b50505050565b600060028204905060018216806200055b57607f821691505b60208210811415620005725762000571620005dd565b5b50919050565b62000583826200064f565b810181811067ffffffffffffffff82111715620005a557620005a46200060c565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b6200066b81620004c1565b81146200067757600080fd5b50565b600381106200068857600080fd5b50565b6200069681620004f5565b8114620006a257600080fd5b50565b620006b081620004ff565b8114620006bc57600080fd5b50565b60805160a05160f81c612137620006f660003960006109580152600081816108a201528181610c250152610d5a01526121376000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806385e1f4d0116100c3578063d9eeebed1161007c578063d9eeebed146103cc578063dd62ed3e146103eb578063e2f535b81461041b578063eddeb12314610439578063f2441b3214610455578063f687d12a146104735761014d565b806385e1f4d0146102f657806395d89b4114610314578063a3413d0314610332578063a9059cbb14610350578063c701262614610380578063c835d7cc146103b05761014d565b8063313ce56711610115578063313ce5671461020c5780633ce4a5bc1461022a57806342966c681461024857806347e7ef24146102785780634d8943bb146102a857806370a08231146102c65761014d565b806306fdde0314610152578063091d278814610170578063095ea7b31461018e57806318160ddd146101be57806323b872dd146101dc575b600080fd5b61015a61048f565b6040516101679190611cad565b60405180910390f35b610178610521565b6040516101859190611ccf565b60405180910390f35b6101a860048036038101906101a3919061196e565b610527565b6040516101b59190611bfb565b60405180910390f35b6101c6610545565b6040516101d39190611ccf565b60405180910390f35b6101f660048036038101906101f1919061191b565b61054f565b6040516102039190611bfb565b60405180910390f35b610214610647565b6040516102219190611cea565b60405180910390f35b61023261065e565b60405161023f9190611b80565b60405180910390f35b610262600480360381019061025d9190611a37565b610676565b60405161026f9190611bfb565b60405180910390f35b610292600480360381019061028d919061196e565b61068b565b60405161029f9190611bfb565b60405180910390f35b6102b0610851565b6040516102bd9190611ccf565b60405180910390f35b6102e060048036038101906102db9190611881565b610857565b6040516102ed9190611ccf565b60405180910390f35b6102fe6108a0565b60405161030b9190611ccf565b60405180910390f35b61031c6108c4565b6040516103299190611cad565b60405180910390f35b61033a610956565b6040516103479190611c92565b60405180910390f35b61036a6004803603810190610365919061196e565b61097a565b6040516103779190611bfb565b60405180910390f35b61039a600480360381019061039591906119db565b610998565b6040516103a79190611bfb565b60405180910390f35b6103ca60048036038101906103c59190611881565b610aee565b005b6103d4610be1565b6040516103e2929190611bd2565b60405180910390f35b610405600480360381019061040091906118db565b610e4e565b6040516104129190611ccf565b60405180910390f35b610423610ed5565b6040516104309190611b80565b60405180910390f35b610453600480360381019061044e9190611a37565b610efb565b005b61045d610fb5565b60405161046a9190611b80565b60405180910390f35b61048d60048036038101906104889190611a37565b610fd9565b005b60606007805461049e90611f33565b80601f01602080910402602001604051908101604052809291908181526020018280546104ca90611f33565b80156105175780601f106104ec57610100808354040283529160200191610517565b820191906000526020600020905b8154815290600101906020018083116104fa57829003601f168201915b5050505050905090565b60025481565b600061053b610534611093565b848461109b565b6001905092915050565b6000600654905090565b600061055c848484611254565b6000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105a7611093565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561061e576040517f10bad14700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61063b8561062a611093565b85846106369190611e43565b61109b565b60019150509392505050565b6000600960009054906101000a900460ff16905090565b73735b14bb79463307aacbed86daf3322b1e6226ab81565b600061068233836114b0565b60019050919050565b600073735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610729575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b80156107835750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b156107ba576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107c48383611668565b8273ffffffffffffffffffffffffffffffffffffffff167f67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab373735b14bb79463307aacbed86daf3322b1e6226ab6040516020016108219190611b65565b6040516020818303038152906040528460405161083f929190611c16565b60405180910390a26001905092915050565b60035481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6060600880546108d390611f33565b80601f01602080910402602001604051908101604052809291908181526020018280546108ff90611f33565b801561094c5780601f106109215761010080835404028352916020019161094c565b820191906000526020600020905b81548152906001019060200180831161092f57829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061098e610987611093565b8484611254565b6001905092915050565b60008060006109a5610be1565b915091508173ffffffffffffffffffffffffffffffffffffffff166323b872dd3373735b14bb79463307aacbed86daf3322b1e6226ab846040518463ffffffff1660e01b81526004016109fa93929190611b9b565b602060405180830381600087803b158015610a1457600080fd5b505af1158015610a28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4c91906119ae565b610a82576040517f0a7cd6d600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a8c33856114b0565b3373ffffffffffffffffffffffffffffffffffffffff167f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d955868684600354604051610ada9493929190611c46565b60405180910390a260019250505092915050565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b67576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae81604051610bd69190611b80565b60405180910390a150565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630be155477f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401610c609190611ccf565b60206040518083038186803b158015610c7857600080fd5b505afa158015610c8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb091906118ae565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d19576040517f78fff39600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d7fd7afb7f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401610d959190611ccf565b60206040518083038186803b158015610dad57600080fd5b505afa158015610dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de59190611a64565b90506000811415610e22576040517fe661aed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060035460025483610e359190611de9565b610e3f9190611d93565b90508281945094505050509091565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f74576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806003819055507fef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f81604051610faa9190611ccf565b60405180910390a150565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611052576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806002819055507fff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a816040516110889190611ccf565b60405180910390a150565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611102576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611169576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112479190611ccf565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112bb576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611322576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156113a0576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81816113ac9190611e43565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461143e9190611d93565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114a29190611ccf565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611517576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611595576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81816115a19190611e43565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600660008282546115f69190611e43565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161165b9190611ccf565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116cf576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600660008282546116e19190611d93565b9250508190555080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117379190611d93565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161179c9190611ccf565b60405180910390a35050565b60006117bb6117b684611d2a565b611d05565b9050828152602081018484840111156117d7576117d661207b565b5b6117e2848285611ef1565b509392505050565b6000813590506117f9816120bc565b92915050565b60008151905061180e816120bc565b92915050565b600081519050611823816120d3565b92915050565b600082601f83011261183e5761183d612076565b5b813561184e8482602086016117a8565b91505092915050565b600081359050611866816120ea565b92915050565b60008151905061187b816120ea565b92915050565b60006020828403121561189757611896612085565b5b60006118a5848285016117ea565b91505092915050565b6000602082840312156118c4576118c3612085565b5b60006118d2848285016117ff565b91505092915050565b600080604083850312156118f2576118f1612085565b5b6000611900858286016117ea565b9250506020611911858286016117ea565b9150509250929050565b60008060006060848603121561193457611933612085565b5b6000611942868287016117ea565b9350506020611953868287016117ea565b925050604061196486828701611857565b9150509250925092565b6000806040838503121561198557611984612085565b5b6000611993858286016117ea565b92505060206119a485828601611857565b9150509250929050565b6000602082840312156119c4576119c3612085565b5b60006119d284828501611814565b91505092915050565b600080604083850312156119f2576119f1612085565b5b600083013567ffffffffffffffff811115611a1057611a0f612080565b5b611a1c85828601611829565b9250506020611a2d85828601611857565b9150509250929050565b600060208284031215611a4d57611a4c612085565b5b6000611a5b84828501611857565b91505092915050565b600060208284031215611a7a57611a79612085565b5b6000611a888482850161186c565b91505092915050565b611a9a81611e77565b82525050565b611ab1611aac82611e77565b611f96565b82525050565b611ac081611e89565b82525050565b6000611ad182611d5b565b611adb8185611d71565b9350611aeb818560208601611f00565b611af48161208a565b840191505092915050565b611b0881611edf565b82525050565b6000611b1982611d66565b611b238185611d82565b9350611b33818560208601611f00565b611b3c8161208a565b840191505092915050565b611b5081611ec8565b82525050565b611b5f81611ed2565b82525050565b6000611b718284611aa0565b60148201915081905092915050565b6000602082019050611b956000830184611a91565b92915050565b6000606082019050611bb06000830186611a91565b611bbd6020830185611a91565b611bca6040830184611b47565b949350505050565b6000604082019050611be76000830185611a91565b611bf46020830184611b47565b9392505050565b6000602082019050611c106000830184611ab7565b92915050565b60006040820190508181036000830152611c308185611ac6565b9050611c3f6020830184611b47565b9392505050565b60006080820190508181036000830152611c608187611ac6565b9050611c6f6020830186611b47565b611c7c6040830185611b47565b611c896060830184611b47565b95945050505050565b6000602082019050611ca76000830184611aff565b92915050565b60006020820190508181036000830152611cc78184611b0e565b905092915050565b6000602082019050611ce46000830184611b47565b92915050565b6000602082019050611cff6000830184611b56565b92915050565b6000611d0f611d20565b9050611d1b8282611f65565b919050565b6000604051905090565b600067ffffffffffffffff821115611d4557611d44612047565b5b611d4e8261208a565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000611d9e82611ec8565b9150611da983611ec8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611dde57611ddd611fba565b5b828201905092915050565b6000611df482611ec8565b9150611dff83611ec8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611e3857611e37611fba565b5b828202905092915050565b6000611e4e82611ec8565b9150611e5983611ec8565b925082821015611e6c57611e6b611fba565b5b828203905092915050565b6000611e8282611ea8565b9050919050565b60008115159050919050565b6000819050611ea3826120a8565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000611eea82611e95565b9050919050565b82818337600083830152505050565b60005b83811015611f1e578082015181840152602081019050611f03565b83811115611f2d576000848401525b50505050565b60006002820490506001821680611f4b57607f821691505b60208210811415611f5f57611f5e612018565b5b50919050565b611f6e8261208a565b810181811067ffffffffffffffff82111715611f8d57611f8c612047565b5b80604052505050565b6000611fa182611fa8565b9050919050565b6000611fb38261209b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b600381106120b9576120b8611fe9565b5b50565b6120c581611e77565b81146120d057600080fd5b50565b6120dc81611e89565b81146120e757600080fd5b50565b6120f381611ec8565b81146120fe57600080fd5b5056fea26469706673582212206982505c1a546edfb86a1aaaca0ad6b7e5542f2d1f24ac30a032805fc80a650e64736f6c63430008070033a26469706673582212206788f7df595f155b554c8aa4aed64d329373738cae05614df5d86307d5eeda1a64736f6c63430008070033"; - -type GatewayZEVMOutboundTestConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: GatewayZEVMOutboundTestConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class GatewayZEVMOutboundTest__factory extends ContractFactory { - constructor(...args: GatewayZEVMOutboundTestConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override deploy( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy(overrides || {}) as Promise; - } - override getDeployTransaction( - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); - } - override attach(address: string): GatewayZEVMOutboundTest { - return super.attach(address) as GatewayZEVMOutboundTest; - } - override connect(signer: Signer): GatewayZEVMOutboundTest__factory { - return super.connect(signer) as GatewayZEVMOutboundTest__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): GatewayZEVMOutboundTestInterface { - return new utils.Interface(_abi) as GatewayZEVMOutboundTestInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): GatewayZEVMOutboundTest { - return new Contract( - address, - _abi, - signerOrProvider - ) as GatewayZEVMOutboundTest; - } -} diff --git a/typechain-types/factories/contracts/prototypes/test/GatewayZEVM.t.sol/index.ts b/typechain-types/factories/contracts/prototypes/test/GatewayZEVM.t.sol/index.ts deleted file mode 100644 index 4539323d..00000000 --- a/typechain-types/factories/contracts/prototypes/test/GatewayZEVM.t.sol/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { GatewayZEVMInboundTest__factory } from "./GatewayZEVMInboundTest__factory"; -export { GatewayZEVMOutboundTest__factory } from "./GatewayZEVMOutboundTest__factory"; diff --git a/typechain-types/factories/contracts/prototypes/test/index.ts b/typechain-types/factories/contracts/prototypes/test/index.ts deleted file mode 100644 index 1bdb30ca..00000000 --- a/typechain-types/factories/contracts/prototypes/test/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as gatewayEvmTSol from "./GatewayEVM.t.sol"; -export * as gatewayEvmzevmTSol from "./GatewayEVMZEVM.t.sol"; -export * as gatewayZevmTSol from "./GatewayZEVM.t.sol"; diff --git a/typechain-types/factories/contracts/prototypes/zevm/GatewayZEVM__factory.ts b/typechain-types/factories/contracts/prototypes/zevm/GatewayZEVM__factory.ts deleted file mode 100644 index d4e05ae4..00000000 --- a/typechain-types/factories/contracts/prototypes/zevm/GatewayZEVM__factory.ts +++ /dev/null @@ -1,757 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../../common"; -import type { - GatewayZEVM, - GatewayZEVMInterface, -} from "../../../../contracts/prototypes/zevm/GatewayZEVM"; - -const _abi = [ - { - inputs: [], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [], - name: "CallerIsNotFungibleModule", - type: "error", - }, - { - inputs: [], - name: "FailedZetaSent", - type: "error", - }, - { - inputs: [], - name: "GasFeeTransferFailed", - type: "error", - }, - { - inputs: [], - name: "InsufficientZRC20Amount", - type: "error", - }, - { - inputs: [], - name: "InvalidTarget", - type: "error", - }, - { - inputs: [], - name: "OnlyWZETAOrFungible", - type: "error", - }, - { - inputs: [], - name: "WithdrawalFailed", - type: "error", - }, - { - inputs: [], - name: "ZRC20BurnFailed", - type: "error", - }, - { - inputs: [], - name: "ZRC20TransferFailed", - type: "error", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "previousAdmin", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "newAdmin", - type: "address", - }, - ], - name: "AdminChanged", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "beacon", - type: "address", - }, - ], - name: "BeaconUpgraded", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "receiver", - type: "bytes", - }, - { - indexed: false, - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "Call", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint8", - name: "version", - type: "uint8", - }, - ], - name: "Initialized", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "previousOwner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "newOwner", - type: "address", - }, - ], - name: "OwnershipTransferred", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "implementation", - type: "address", - }, - ], - name: "Upgraded", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "zrc20", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "to", - type: "bytes", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "gasfee", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "protocolFlatFee", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "Withdrawal", - type: "event", - }, - { - inputs: [], - name: "FUNGIBLE_MODULE_ADDRESS", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "receiver", - type: "bytes", - }, - { - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "call", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "target", - type: "address", - }, - ], - name: "deposit", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "bytes", - name: "origin", - type: "bytes", - }, - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "uint256", - name: "chainID", - type: "uint256", - }, - ], - internalType: "struct zContext", - name: "context", - type: "tuple", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "depositAndCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "bytes", - name: "origin", - type: "bytes", - }, - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "uint256", - name: "chainID", - type: "uint256", - }, - ], - internalType: "struct zContext", - name: "context", - type: "tuple", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "depositAndCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "bytes", - name: "origin", - type: "bytes", - }, - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "uint256", - name: "chainID", - type: "uint256", - }, - ], - internalType: "struct revertContext", - name: "context", - type: "tuple", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "depositAndRevert", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "bytes", - name: "origin", - type: "bytes", - }, - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "uint256", - name: "chainID", - type: "uint256", - }, - ], - internalType: "struct zContext", - name: "context", - type: "tuple", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "execute", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "bytes", - name: "origin", - type: "bytes", - }, - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "uint256", - name: "chainID", - type: "uint256", - }, - ], - internalType: "struct revertContext", - name: "context", - type: "tuple", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "executeRevert", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_zetaToken", - type: "address", - }, - ], - name: "initialize", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "owner", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "proxiableUUID", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "renounceOwnership", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newOwner", - type: "address", - }, - ], - name: "transferOwnership", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newImplementation", - type: "address", - }, - ], - name: "upgradeTo", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "newImplementation", - type: "address", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "upgradeToAndCall", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "receiver", - type: "bytes", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - ], - name: "withdraw", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "withdraw", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "withdrawAndCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "receiver", - type: "bytes", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "withdrawAndCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "zetaToken", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - stateMutability: "payable", - type: "receive", - }, -] as const; - -const _bytecode = - "0x60a06040523073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152503480156200004757600080fd5b50620000586200005e60201b60201c565b62000208565b600060019054906101000a900460ff1615620000b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000a8906200015c565b60405180910390fd5b60ff801660008054906101000a900460ff1660ff1614620001225760ff6000806101000a81548160ff021916908360ff1602179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860ff6040516200011991906200017e565b60405180910390a15b565b6000620001336027836200019b565b91506200014082620001b9565b604082019050919050565b6200015681620001ac565b82525050565b60006020820190508181036000830152620001778162000124565b9050919050565b60006020820190506200019560008301846200014b565b92915050565b600082825260208201905092915050565b600060ff82169050919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320696e69746960008201527f616c697a696e6700000000000000000000000000000000000000000000000000602082015250565b60805160601c613e6d6200024360003960008181610b2a01528181610bb901528181610ccb01528181610d5a0152610e0a0152613e6d6000f3fe6080604052600436106101235760003560e01c806352d1902d116100a0578063bcf7f32b11610064578063bcf7f32b14610454578063c39aca371461047d578063c4d66de8146104a6578063f2fde38b146104cf578063f45346dc146104f8576101ff565b806352d1902d146103955780635af65967146103c0578063715018a6146103e95780637993c1e0146104005780638da5cb5b14610429576101ff565b80632e1a7d4d116100e75780632e1a7d4d146102d3578063309f5004146102fc5780633659cfe6146103255780633ce4a5bc1461034e5780634f1ef28614610379576101ff565b80630ac7c44c14610204578063135390f91461022d57806321501a951461025657806321e093b11461027f578063267e75a0146102aa576101ff565b366101ff5760fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156101c6575073735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b156101fd576040517f229930b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b005b600080fd5b34801561021057600080fd5b5061022b600480360381019061022691906129b3565b610521565b005b34801561023957600080fd5b50610254600480360381019061024f9190612a2f565b610588565b005b34801561026257600080fd5b5061027d60048036038101906102789190612cae565b61067f565b005b34801561028b57600080fd5b5061029461084e565b6040516102a1919061328e565b60405180910390f35b3480156102b657600080fd5b506102d160048036038101906102cc9190612dac565b610874565b005b3480156102df57600080fd5b506102fa60048036038101906102f59190612d52565b610957565b005b34801561030857600080fd5b50610323600480360381019061031e9190612b42565b610a34565b005b34801561033157600080fd5b5061034c6004803603810190610347919061283d565b610b28565b005b34801561035a57600080fd5b50610363610cb1565b604051610370919061328e565b60405180910390f35b610393600480360381019061038e919061286a565b610cc9565b005b3480156103a157600080fd5b506103aa610e06565b6040516103b791906134c5565b60405180910390f35b3480156103cc57600080fd5b506103e760048036038101906103e29190612b42565b610ebf565b005b3480156103f557600080fd5b506103fe6110f1565b005b34801561040c57600080fd5b5061042760048036038101906104229190612a9e565b611105565b005b34801561043557600080fd5b5061043e611202565b60405161044b919061328e565b60405180910390f35b34801561046057600080fd5b5061047b60048036038101906104769190612bf8565b61122c565b005b34801561048957600080fd5b506104a4600480360381019061049f9190612bf8565b611320565b005b3480156104b257600080fd5b506104cd60048036038101906104c8919061283d565b611552565b005b3480156104db57600080fd5b506104f660048036038101906104f1919061283d565b611749565b005b34801561050457600080fd5b5061051f600480360381019061051a9190612906565b6117cd565b005b610529611989565b3373ffffffffffffffffffffffffffffffffffffffff167f2b5af078ce280d812dc2241658dc5435c93408020e5418eef55a2b536de51c0f848484604051610573939291906134e0565b60405180910390a26105836119d9565b505050565b610590611989565b600061059c83836119e3565b90503373ffffffffffffffffffffffffffffffffffffffff167f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716838686858773ffffffffffffffffffffffffffffffffffffffff16634d8943bb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561062057600080fd5b505afa158015610634573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106589190612d7f565b60405161066995949392919061342f565b60405180910390a25061067a6119d9565b505050565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106f8576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061077157503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156107a8576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107b28484611cd3565b8273ffffffffffffffffffffffffffffffffffffffff1663de43156e8660fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168786866040518663ffffffff1660e01b815260040161081595949392919061372b565b600060405180830381600087803b15801561082f57600080fd5b505af1158015610843573d6000803e3d6000fd5b505050505050505050565b60fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61087c611989565b61089a8373735b14bb79463307aacbed86daf3322b1e6226ab611cd3565b3373ffffffffffffffffffffffffffffffffffffffff167f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc5771660fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673735b14bb79463307aacbed86daf3322b1e6226ab60405160200161091a9190613247565b60405160208183030381529060405286600080888860405161094297969594939291906132e0565b60405180910390a26109526119d9565b505050565b61095f611989565b61097d8173735b14bb79463307aacbed86daf3322b1e6226ab611cd3565b3373ffffffffffffffffffffffffffffffffffffffff167f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc5771660fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673735b14bb79463307aacbed86daf3322b1e6226ab6040516020016109fd9190613247565b60405160208183030381529060405284600080604051610a21959493929190613351565b60405180910390a2610a316119d9565b50565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610aad576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff166369582bee87878786866040518663ffffffff1660e01b8152600401610aee9594939291906136d6565b600060405180830381600087803b158015610b0857600080fd5b505af1158015610b1c573d6000803e3d6000fd5b50505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bae90613576565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610bf6611eef565b73ffffffffffffffffffffffffffffffffffffffff1614610c4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4390613596565b60405180910390fd5b610c5581611f46565b610cae81600067ffffffffffffffff811115610c7457610c736139f0565b5b6040519080825280601f01601f191660200182016040528015610ca65781602001600182028036833780820191505090505b506000611f51565b50565b73735b14bb79463307aacbed86daf3322b1e6226ab81565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610d58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4f90613576565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610d97611eef565b73ffffffffffffffffffffffffffffffffffffffff1614610ded576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de490613596565b60405180910390fd5b610df682611f46565b610e0282826001611f51565b5050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614610e96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8d906135b6565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b905090565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f38576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610fb157503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15610fe8576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff166347e7ef2484866040518363ffffffff1660e01b815260040161102392919061349c565b602060405180830381600087803b15801561103d57600080fd5b505af1158015611051573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110759190612959565b508273ffffffffffffffffffffffffffffffffffffffff166369582bee87878786866040518663ffffffff1660e01b81526004016110b79594939291906136d6565b600060405180830381600087803b1580156110d157600080fd5b505af11580156110e5573d6000803e3d6000fd5b50505050505050505050565b6110f96120ce565b611103600061214c565b565b61110d611989565b600061111985856119e3565b90503373ffffffffffffffffffffffffffffffffffffffff167f2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716858888858973ffffffffffffffffffffffffffffffffffffffff16634d8943bb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561119d57600080fd5b505afa1580156111b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d59190612d7f565b89896040516111ea97969594939291906133be565b60405180910390a2506111fb6119d9565b5050505050565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112a5576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663de43156e87878786866040518663ffffffff1660e01b81526004016112e695949392919061372b565b600060405180830381600087803b15801561130057600080fd5b505af1158015611314573d6000803e3d6000fd5b50505050505050505050565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611399576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061141257503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611449576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff166347e7ef2484866040518363ffffffff1660e01b815260040161148492919061349c565b602060405180830381600087803b15801561149e57600080fd5b505af11580156114b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d69190612959565b508273ffffffffffffffffffffffffffffffffffffffff1663de43156e87878786866040518663ffffffff1660e01b815260040161151895949392919061372b565b600060405180830381600087803b15801561153257600080fd5b505af1158015611546573d6000803e3d6000fd5b50505050505050505050565b60008060019054906101000a900460ff161590508080156115835750600160008054906101000a900460ff1660ff16105b806115b0575061159230612212565b1580156115af5750600160008054906101000a900460ff1660ff16145b5b6115ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e6906135f6565b60405180910390fd5b60016000806101000a81548160ff021916908360ff160217905550801561162c576001600060016101000a81548160ff0219169083151502179055505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611693576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61169b612235565b6116a361228e565b6116ab6122df565b8160fb60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080156117455760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498600160405161173c9190613519565b60405180910390a15b5050565b6117516120ce565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156117c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b890613556565b60405180910390fd5b6117ca8161214c565b50565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611846576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806118bf57503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156118f6576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff166347e7ef2482846040518363ffffffff1660e01b815260040161193192919061349c565b602060405180830381600087803b15801561194b57600080fd5b505af115801561195f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119839190612959565b50505050565b600260c95414156119cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c6906136b6565b60405180910390fd5b600260c981905550565b600160c981905550565b60008060008373ffffffffffffffffffffffffffffffffffffffff1663d9eeebed6040518163ffffffff1660e01b8152600401604080518083038186803b158015611a2d57600080fd5b505afa158015611a41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6591906128c6565b915091508173ffffffffffffffffffffffffffffffffffffffff166323b872dd3373735b14bb79463307aacbed86daf3322b1e6226ab846040518463ffffffff1660e01b8152600401611aba939291906132a9565b602060405180830381600087803b158015611ad457600080fd5b505af1158015611ae8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b0c9190612959565b611b42576040517f0a7cd6d600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd3330886040518463ffffffff1660e01b8152600401611b7f939291906132a9565b602060405180830381600087803b158015611b9957600080fd5b505af1158015611bad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd19190612959565b611c07576040517f4dd9ee8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff166342966c68866040518263ffffffff1660e01b8152600401611c409190613780565b602060405180830381600087803b158015611c5a57600080fd5b505af1158015611c6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c929190612959565b611cc8576040517f2c77e05c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b809250505092915050565b60fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b8152600401611d32939291906132a9565b602060405180830381600087803b158015611d4c57600080fd5b505af1158015611d60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d849190612959565b611dba576040517fc7ffc47b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b8152600401611e159190613780565b600060405180830381600087803b158015611e2f57600080fd5b505af1158015611e43573d6000803e3d6000fd5b5050505060008173ffffffffffffffffffffffffffffffffffffffff1683604051611e6d90613279565b60006040518083038185875af1925050503d8060008114611eaa576040519150601f19603f3d011682016040523d82523d6000602084013e611eaf565b606091505b5050905080611eea576040517fc7ffc47b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b6000611f1d7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b612338565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611f4e6120ce565b50565b611f7d7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914360001b612342565b60000160009054906101000a900460ff1615611fa157611f9c8361234c565b6120c9565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611fe757600080fd5b505afa92505050801561201857506040513d601f19601f820116820180604052508101906120159190612986565b60015b612057576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204e90613616565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b81146120bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b3906135d6565b60405180910390fd5b506120c8838383612405565b5b505050565b6120d6612431565b73ffffffffffffffffffffffffffffffffffffffff166120f4611202565b73ffffffffffffffffffffffffffffffffffffffff161461214a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214190613656565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16612284576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227b90613696565b60405180910390fd5b61228c612439565b565b600060019054906101000a900460ff166122dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d490613696565b60405180910390fd5b565b600060019054906101000a900460ff1661232e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232590613696565b60405180910390fd5b61233661249a565b565b6000819050919050565b6000819050919050565b61235581612212565b612394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238b90613636565b60405180910390fd5b806123c17f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b612338565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61240e836124f3565b60008251118061241b5750805b1561242c5761242a8383612542565b505b505050565b600033905090565b600060019054906101000a900460ff16612488576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247f90613696565b60405180910390fd5b612498612493612431565b61214c565b565b600060019054906101000a900460ff166124e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e090613696565b60405180910390fd5b600160c981905550565b6124fc8161234c565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b60606125678383604051806060016040528060278152602001613e116027913961256f565b905092915050565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516125999190613262565b600060405180830381855af49150503d80600081146125d4576040519150601f19603f3d011682016040523d82523d6000602084013e6125d9565b606091505b50915091506125ea868383876125f5565b925050509392505050565b60608315612658576000835114156126505761261085612212565b61264f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264690613676565b60405180910390fd5b5b829050612663565b612662838361266b565b5b949350505050565b60008251111561267e5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b29190613534565b60405180910390fd5b60006126ce6126c9846137c0565b61379b565b9050828152602081018484840111156126ea576126e9613a3d565b5b6126f5848285613959565b509392505050565b60008135905061270c81613db4565b92915050565b60008151905061272181613db4565b92915050565b60008151905061273681613dcb565b92915050565b60008151905061274b81613de2565b92915050565b60008083601f84011261276757612766613a29565b5b8235905067ffffffffffffffff81111561278457612783613a24565b5b6020830191508360018202830111156127a05761279f613a38565b5b9250929050565b600082601f8301126127bc576127bb613a29565b5b81356127cc8482602086016126bb565b91505092915050565b6000606082840312156127eb576127ea613a2e565b5b81905092915050565b60006060828403121561280a57612809613a2e565b5b81905092915050565b60008135905061282281613df9565b92915050565b60008151905061283781613df9565b92915050565b60006020828403121561285357612852613a4c565b5b6000612861848285016126fd565b91505092915050565b6000806040838503121561288157612880613a4c565b5b600061288f858286016126fd565b925050602083013567ffffffffffffffff8111156128b0576128af613a42565b5b6128bc858286016127a7565b9150509250929050565b600080604083850312156128dd576128dc613a4c565b5b60006128eb85828601612712565b92505060206128fc85828601612828565b9150509250929050565b60008060006060848603121561291f5761291e613a4c565b5b600061292d868287016126fd565b935050602061293e86828701612813565b925050604061294f868287016126fd565b9150509250925092565b60006020828403121561296f5761296e613a4c565b5b600061297d84828501612727565b91505092915050565b60006020828403121561299c5761299b613a4c565b5b60006129aa8482850161273c565b91505092915050565b6000806000604084860312156129cc576129cb613a4c565b5b600084013567ffffffffffffffff8111156129ea576129e9613a42565b5b6129f6868287016127a7565b935050602084013567ffffffffffffffff811115612a1757612a16613a42565b5b612a2386828701612751565b92509250509250925092565b600080600060608486031215612a4857612a47613a4c565b5b600084013567ffffffffffffffff811115612a6657612a65613a42565b5b612a72868287016127a7565b9350506020612a8386828701612813565b9250506040612a94868287016126fd565b9150509250925092565b600080600080600060808688031215612aba57612ab9613a4c565b5b600086013567ffffffffffffffff811115612ad857612ad7613a42565b5b612ae4888289016127a7565b9550506020612af588828901612813565b9450506040612b06888289016126fd565b935050606086013567ffffffffffffffff811115612b2757612b26613a42565b5b612b3388828901612751565b92509250509295509295909350565b60008060008060008060a08789031215612b5f57612b5e613a4c565b5b600087013567ffffffffffffffff811115612b7d57612b7c613a42565b5b612b8989828a016127d5565b9650506020612b9a89828a016126fd565b9550506040612bab89828a01612813565b9450506060612bbc89828a016126fd565b935050608087013567ffffffffffffffff811115612bdd57612bdc613a42565b5b612be989828a01612751565b92509250509295509295509295565b60008060008060008060a08789031215612c1557612c14613a4c565b5b600087013567ffffffffffffffff811115612c3357612c32613a42565b5b612c3f89828a016127f4565b9650506020612c5089828a016126fd565b9550506040612c6189828a01612813565b9450506060612c7289828a016126fd565b935050608087013567ffffffffffffffff811115612c9357612c92613a42565b5b612c9f89828a01612751565b92509250509295509295509295565b600080600080600060808688031215612cca57612cc9613a4c565b5b600086013567ffffffffffffffff811115612ce857612ce7613a42565b5b612cf4888289016127f4565b9550506020612d0588828901612813565b9450506040612d16888289016126fd565b935050606086013567ffffffffffffffff811115612d3757612d36613a42565b5b612d4388828901612751565b92509250509295509295909350565b600060208284031215612d6857612d67613a4c565b5b6000612d7684828501612813565b91505092915050565b600060208284031215612d9557612d94613a4c565b5b6000612da384828501612828565b91505092915050565b600080600060408486031215612dc557612dc4613a4c565b5b6000612dd386828701612813565b935050602084013567ffffffffffffffff811115612df457612df3613a42565b5b612e0086828701612751565b92509250509250925092565b612e15816138d6565b82525050565b612e24816138d6565b82525050565b612e3b612e36826138d6565b6139cc565b82525050565b612e4a816138f4565b82525050565b6000612e5c8385613807565b9350612e69838584613959565b612e7283613a51565b840190509392505050565b6000612e898385613818565b9350612e96838584613959565b612e9f83613a51565b840190509392505050565b6000612eb5826137f1565b612ebf8185613818565b9350612ecf818560208601613968565b612ed881613a51565b840191505092915050565b6000612eee826137f1565b612ef88185613829565b9350612f08818560208601613968565b80840191505092915050565b612f1d81613935565b82525050565b612f2c81613947565b82525050565b6000612f3d826137fc565b612f478185613834565b9350612f57818560208601613968565b612f6081613a51565b840191505092915050565b6000612f78602683613834565b9150612f8382613a6f565b604082019050919050565b6000612f9b602c83613834565b9150612fa682613abe565b604082019050919050565b6000612fbe602c83613834565b9150612fc982613b0d565b604082019050919050565b6000612fe1603883613834565b9150612fec82613b5c565b604082019050919050565b6000613004602983613834565b915061300f82613bab565b604082019050919050565b6000613027602e83613834565b915061303282613bfa565b604082019050919050565b600061304a602e83613834565b915061305582613c49565b604082019050919050565b600061306d602d83613834565b915061307882613c98565b604082019050919050565b6000613090602083613834565b915061309b82613ce7565b602082019050919050565b60006130b3600083613818565b91506130be82613d10565b600082019050919050565b60006130d6600083613829565b91506130e182613d10565b600082019050919050565b60006130f9601d83613834565b915061310482613d13565b602082019050919050565b600061311c602b83613834565b915061312782613d3c565b604082019050919050565b600061313f601f83613834565b915061314a82613d8b565b602082019050919050565b600060608301613168600084018461385c565b858303600087015261317b838284612e50565b9250505061318c6020840184613845565b6131996020860182612e0c565b506131a760408401846138bf565b6131b46040860182613229565b508091505092915050565b6000606083016131d2600084018461385c565b85830360008701526131e5838284612e50565b925050506131f66020840184613845565b6132036020860182612e0c565b5061321160408401846138bf565b61321e6040860182613229565b508091505092915050565b6132328161391e565b82525050565b6132418161391e565b82525050565b60006132538284612e2a565b60148201915081905092915050565b600061326e8284612ee3565b915081905092915050565b6000613284826130c9565b9150819050919050565b60006020820190506132a36000830184612e1b565b92915050565b60006060820190506132be6000830186612e1b565b6132cb6020830185612e1b565b6132d86040830184613238565b949350505050565b600060c0820190506132f5600083018a612e1b565b81810360208301526133078189612eaa565b90506133166040830188613238565b6133236060830187612f14565b6133306080830186612f14565b81810360a0830152613343818486612e7d565b905098975050505050505050565b600060c0820190506133666000830188612e1b565b81810360208301526133788187612eaa565b90506133876040830186613238565b6133946060830185612f14565b6133a16080830184612f14565b81810360a08301526133b2816130a6565b90509695505050505050565b600060c0820190506133d3600083018a612e1b565b81810360208301526133e58189612eaa565b90506133f46040830188613238565b6134016060830187613238565b61340e6080830186613238565b81810360a0830152613421818486612e7d565b905098975050505050505050565b600060c0820190506134446000830188612e1b565b81810360208301526134568187612eaa565b90506134656040830186613238565b6134726060830185613238565b61347f6080830184613238565b81810360a0830152613490816130a6565b90509695505050505050565b60006040820190506134b16000830185612e1b565b6134be6020830184613238565b9392505050565b60006020820190506134da6000830184612e41565b92915050565b600060408201905081810360008301526134fa8186612eaa565b9050818103602083015261350f818486612e7d565b9050949350505050565b600060208201905061352e6000830184612f23565b92915050565b6000602082019050818103600083015261354e8184612f32565b905092915050565b6000602082019050818103600083015261356f81612f6b565b9050919050565b6000602082019050818103600083015261358f81612f8e565b9050919050565b600060208201905081810360008301526135af81612fb1565b9050919050565b600060208201905081810360008301526135cf81612fd4565b9050919050565b600060208201905081810360008301526135ef81612ff7565b9050919050565b6000602082019050818103600083015261360f8161301a565b9050919050565b6000602082019050818103600083015261362f8161303d565b9050919050565b6000602082019050818103600083015261364f81613060565b9050919050565b6000602082019050818103600083015261366f81613083565b9050919050565b6000602082019050818103600083015261368f816130ec565b9050919050565b600060208201905081810360008301526136af8161310f565b9050919050565b600060208201905081810360008301526136cf81613132565b9050919050565b600060808201905081810360008301526136f08188613155565b90506136ff6020830187612e1b565b61370c6040830186613238565b818103606083015261371f818486612e7d565b90509695505050505050565b6000608082019050818103600083015261374581886131bf565b90506137546020830187612e1b565b6137616040830186613238565b8181036060830152613774818486612e7d565b90509695505050505050565b60006020820190506137956000830184613238565b92915050565b60006137a56137b6565b90506137b1828261399b565b919050565b6000604051905090565b600067ffffffffffffffff8211156137db576137da6139f0565b5b6137e482613a51565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061385460208401846126fd565b905092915050565b6000808335600160200384360303811261387957613878613a47565b5b83810192508235915060208301925067ffffffffffffffff8211156138a1576138a0613a1f565b5b6001820236038413156138b7576138b6613a33565b5b509250929050565b60006138ce6020840184612813565b905092915050565b60006138e1826138fe565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006139408261391e565b9050919050565b600061395282613928565b9050919050565b82818337600083830152505050565b60005b8381101561398657808201518184015260208101905061396b565b83811115613995576000848401525b50505050565b6139a482613a51565b810181811067ffffffffffffffff821117156139c3576139c26139f0565b5b80604052505050565b60006139d7826139de565b9050919050565b60006139e982613a62565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f64656c656761746563616c6c0000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f6163746976652070726f78790000000000000000000000000000000000000000602082015250565b7f555550535570677261646561626c653a206d757374206e6f742062652063616c60008201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000602082015250565b7f45524331393637557067726164653a20756e737570706f727465642070726f7860008201527f6961626c65555549440000000000000000000000000000000000000000000000602082015250565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f45524331393637557067726164653a206e657720696d706c656d656e7461746960008201527f6f6e206973206e6f742055555053000000000000000000000000000000000000602082015250565b7f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60008201527f6f74206120636f6e747261637400000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b613dbd816138d6565b8114613dc857600080fd5b50565b613dd4816138e8565b8114613ddf57600080fd5b50565b613deb816138f4565b8114613df657600080fd5b50565b613e028161391e565b8114613e0d57600080fd5b5056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220378b717703092a88bbd7020c74cb919fe0a2dcf0feb2bf8581734d32a89387ac64736f6c63430008070033"; - -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 deploy( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy(overrides || {}) as Promise; - } - override getDeployTransaction( - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); - } - override attach(address: string): GatewayZEVM { - return super.attach(address) as GatewayZEVM; - } - override connect(signer: Signer): GatewayZEVM__factory { - return super.connect(signer) as GatewayZEVM__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): GatewayZEVMInterface { - return new utils.Interface(_abi) as GatewayZEVMInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): GatewayZEVM { - return new Contract(address, _abi, signerOrProvider) as GatewayZEVM; - } -} diff --git a/typechain-types/factories/contracts/prototypes/zevm/SenderZEVM__factory.ts b/typechain-types/factories/contracts/prototypes/zevm/SenderZEVM__factory.ts deleted file mode 100644 index 992bea27..00000000 --- a/typechain-types/factories/contracts/prototypes/zevm/SenderZEVM__factory.ts +++ /dev/null @@ -1,160 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../../common"; -import type { - SenderZEVM, - SenderZEVMInterface, -} from "../../../../contracts/prototypes/zevm/SenderZEVM"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "_gateway", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [], - name: "ApprovalFailed", - type: "error", - }, - { - inputs: [ - { - internalType: "bytes", - name: "receiver", - type: "bytes", - }, - { - internalType: "string", - name: "str", - type: "string", - }, - { - internalType: "uint256", - name: "num", - type: "uint256", - }, - { - internalType: "bool", - name: "flag", - type: "bool", - }, - ], - name: "callReceiver", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "gateway", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "receiver", - type: "bytes", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "string", - name: "str", - type: "string", - }, - { - internalType: "uint256", - name: "num", - type: "uint256", - }, - { - internalType: "bool", - name: "flag", - type: "bool", - }, - ], - name: "withdrawAndCallReceiver", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -const _bytecode = - "0x608060405234801561001057600080fd5b50604051610bcd380380610bcd8339818101604052810190610032919061008d565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610108565b600081519050610087816100f1565b92915050565b6000602082840312156100a3576100a26100ec565b5b60006100b184828501610078565b91505092915050565b60006100c5826100cc565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6100fa816100ba565b811461010557600080fd5b50565b610ab6806101176000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630abd890514610046578063116191b614610062578063a0a1730b14610080575b600080fd5b610060600480360381019061005b91906105fd565b61009c565b005b61006a6102af565b6040516100779190610761565b60405180910390f35b61009a6004803603810190610095919061055e565b6102d3565b005b60008383836040516024016100b39392919061082f565b6040516020818303038152906040527fe04d4f97000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090508473ffffffffffffffffffffffffffffffffffffffff1663095ea7b360008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16886040518363ffffffff1660e01b815260040161018d92919061077c565b602060405180830381600087803b1580156101a757600080fd5b505af11580156101bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101df9190610531565b610215576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637993c1e0888888856040518563ffffffff1660e01b815260040161027494939291906107dc565b600060405180830381600087803b15801561028e57600080fd5b505af11580156102a2573d6000803e3d6000fd5b5050505050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008383836040516024016102ea9392919061082f565b6040516020818303038152906040527fe04d4f97000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630ac7c44c86836040518363ffffffff1660e01b81526004016103c49291906107a5565b600060405180830381600087803b1580156103de57600080fd5b505af11580156103f2573d6000803e3d6000fd5b505050505050505050565b600061041061040b84610892565b61086d565b90508281526020810184848401111561042c5761042b610a1b565b5b610437848285610974565b509392505050565b600061045261044d846108c3565b61086d565b90508281526020810184848401111561046e5761046d610a1b565b5b610479848285610974565b509392505050565b60008135905061049081610a3b565b92915050565b6000813590506104a581610a52565b92915050565b6000815190506104ba81610a52565b92915050565b600082601f8301126104d5576104d4610a16565b5b81356104e58482602086016103fd565b91505092915050565b600082601f83011261050357610502610a16565b5b813561051384826020860161043f565b91505092915050565b60008135905061052b81610a69565b92915050565b60006020828403121561054757610546610a25565b5b6000610555848285016104ab565b91505092915050565b6000806000806080858703121561057857610577610a25565b5b600085013567ffffffffffffffff81111561059657610595610a20565b5b6105a2878288016104c0565b945050602085013567ffffffffffffffff8111156105c3576105c2610a20565b5b6105cf878288016104ee565b93505060406105e08782880161051c565b92505060606105f187828801610496565b91505092959194509250565b60008060008060008060c0878903121561061a57610619610a25565b5b600087013567ffffffffffffffff81111561063857610637610a20565b5b61064489828a016104c0565b965050602061065589828a0161051c565b955050604061066689828a01610481565b945050606087013567ffffffffffffffff81111561068757610686610a20565b5b61069389828a016104ee565b93505060806106a489828a0161051c565b92505060a06106b589828a01610496565b9150509295509295509295565b6106cb8161092c565b82525050565b6106da8161093e565b82525050565b60006106eb826108f4565b6106f5818561090a565b9350610705818560208601610983565b61070e81610a2a565b840191505092915050565b6000610724826108ff565b61072e818561091b565b935061073e818560208601610983565b61074781610a2a565b840191505092915050565b61075b8161096a565b82525050565b600060208201905061077660008301846106c2565b92915050565b600060408201905061079160008301856106c2565b61079e6020830184610752565b9392505050565b600060408201905081810360008301526107bf81856106e0565b905081810360208301526107d381846106e0565b90509392505050565b600060808201905081810360008301526107f681876106e0565b90506108056020830186610752565b61081260408301856106c2565b818103606083015261082481846106e0565b905095945050505050565b600060608201905081810360008301526108498186610719565b90506108586020830185610752565b61086560408301846106d1565b949350505050565b6000610877610888565b905061088382826109b6565b919050565b6000604051905090565b600067ffffffffffffffff8211156108ad576108ac6109e7565b5b6108b682610a2a565b9050602081019050919050565b600067ffffffffffffffff8211156108de576108dd6109e7565b5b6108e782610a2a565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006109378261094a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156109a1578082015181840152602081019050610986565b838111156109b0576000848401525b50505050565b6109bf82610a2a565b810181811067ffffffffffffffff821117156109de576109dd6109e7565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b610a448161092c565b8114610a4f57600080fd5b50565b610a5b8161093e565b8114610a6657600080fd5b50565b610a728161096a565b8114610a7d57600080fd5b5056fea26469706673582212208589b7fc9598202eaf46c595855edab9daadb2791c73209ade07df3bbb24033e64736f6c63430008070033"; - -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 deploy( - _gateway: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy(_gateway, overrides || {}) as Promise; - } - override getDeployTransaction( - _gateway: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction(_gateway, overrides || {}); - } - override attach(address: string): SenderZEVM { - return super.attach(address) as SenderZEVM; - } - override connect(signer: Signer): SenderZEVM__factory { - return super.connect(signer) as SenderZEVM__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): SenderZEVMInterface { - return new utils.Interface(_abi) as SenderZEVMInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): SenderZEVM { - return new Contract(address, _abi, signerOrProvider) as SenderZEVM; - } -} diff --git a/typechain-types/factories/contracts/prototypes/zevm/Sender__factory.ts b/typechain-types/factories/contracts/prototypes/zevm/Sender__factory.ts deleted file mode 100644 index 3e8d5164..00000000 --- a/typechain-types/factories/contracts/prototypes/zevm/Sender__factory.ts +++ /dev/null @@ -1,157 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../../common"; -import type { - Sender, - SenderInterface, -} from "../../../../contracts/prototypes/zevm/Sender"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "_gateway", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [], - name: "ApprovalFailed", - type: "error", - }, - { - inputs: [ - { - internalType: "bytes", - name: "receiver", - type: "bytes", - }, - { - internalType: "string", - name: "str", - type: "string", - }, - { - internalType: "uint256", - name: "num", - type: "uint256", - }, - { - internalType: "bool", - name: "flag", - type: "bool", - }, - ], - name: "callReceiver", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "gateway", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "receiver", - type: "bytes", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "string", - name: "str", - type: "string", - }, - { - internalType: "uint256", - name: "num", - type: "uint256", - }, - { - internalType: "bool", - name: "flag", - type: "bool", - }, - ], - name: "withdrawAndCallReceiver", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -const _bytecode = - "0x608060405234801561001057600080fd5b50604051610bcd380380610bcd8339818101604052810190610032919061008d565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610108565b600081519050610087816100f1565b92915050565b6000602082840312156100a3576100a26100ec565b5b60006100b184828501610078565b91505092915050565b60006100c5826100cc565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6100fa816100ba565b811461010557600080fd5b50565b610ab6806101176000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630abd890514610046578063116191b614610062578063a0a1730b14610080575b600080fd5b610060600480360381019061005b91906105fd565b61009c565b005b61006a6102af565b6040516100779190610761565b60405180910390f35b61009a6004803603810190610095919061055e565b6102d3565b005b60008383836040516024016100b39392919061082f565b6040516020818303038152906040527fe04d4f97000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090508473ffffffffffffffffffffffffffffffffffffffff1663095ea7b360008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16886040518363ffffffff1660e01b815260040161018d92919061077c565b602060405180830381600087803b1580156101a757600080fd5b505af11580156101bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101df9190610531565b610215576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637993c1e0888888856040518563ffffffff1660e01b815260040161027494939291906107dc565b600060405180830381600087803b15801561028e57600080fd5b505af11580156102a2573d6000803e3d6000fd5b5050505050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008383836040516024016102ea9392919061082f565b6040516020818303038152906040527fe04d4f97000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630ac7c44c86836040518363ffffffff1660e01b81526004016103c49291906107a5565b600060405180830381600087803b1580156103de57600080fd5b505af11580156103f2573d6000803e3d6000fd5b505050505050505050565b600061041061040b84610892565b61086d565b90508281526020810184848401111561042c5761042b610a1b565b5b610437848285610974565b509392505050565b600061045261044d846108c3565b61086d565b90508281526020810184848401111561046e5761046d610a1b565b5b610479848285610974565b509392505050565b60008135905061049081610a3b565b92915050565b6000813590506104a581610a52565b92915050565b6000815190506104ba81610a52565b92915050565b600082601f8301126104d5576104d4610a16565b5b81356104e58482602086016103fd565b91505092915050565b600082601f83011261050357610502610a16565b5b813561051384826020860161043f565b91505092915050565b60008135905061052b81610a69565b92915050565b60006020828403121561054757610546610a25565b5b6000610555848285016104ab565b91505092915050565b6000806000806080858703121561057857610577610a25565b5b600085013567ffffffffffffffff81111561059657610595610a20565b5b6105a2878288016104c0565b945050602085013567ffffffffffffffff8111156105c3576105c2610a20565b5b6105cf878288016104ee565b93505060406105e08782880161051c565b92505060606105f187828801610496565b91505092959194509250565b60008060008060008060c0878903121561061a57610619610a25565b5b600087013567ffffffffffffffff81111561063857610637610a20565b5b61064489828a016104c0565b965050602061065589828a0161051c565b955050604061066689828a01610481565b945050606087013567ffffffffffffffff81111561068757610686610a20565b5b61069389828a016104ee565b93505060806106a489828a0161051c565b92505060a06106b589828a01610496565b9150509295509295509295565b6106cb8161092c565b82525050565b6106da8161093e565b82525050565b60006106eb826108f4565b6106f5818561090a565b9350610705818560208601610983565b61070e81610a2a565b840191505092915050565b6000610724826108ff565b61072e818561091b565b935061073e818560208601610983565b61074781610a2a565b840191505092915050565b61075b8161096a565b82525050565b600060208201905061077660008301846106c2565b92915050565b600060408201905061079160008301856106c2565b61079e6020830184610752565b9392505050565b600060408201905081810360008301526107bf81856106e0565b905081810360208301526107d381846106e0565b90509392505050565b600060808201905081810360008301526107f681876106e0565b90506108056020830186610752565b61081260408301856106c2565b818103606083015261082481846106e0565b905095945050505050565b600060608201905081810360008301526108498186610719565b90506108586020830185610752565b61086560408301846106d1565b949350505050565b6000610877610888565b905061088382826109b6565b919050565b6000604051905090565b600067ffffffffffffffff8211156108ad576108ac6109e7565b5b6108b682610a2a565b9050602081019050919050565b600067ffffffffffffffff8211156108de576108dd6109e7565b5b6108e782610a2a565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006109378261094a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156109a1578082015181840152602081019050610986565b838111156109b0576000848401525b50505050565b6109bf82610a2a565b810181811067ffffffffffffffff821117156109de576109dd6109e7565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b610a448161092c565b8114610a4f57600080fd5b50565b610a5b8161093e565b8114610a6657600080fd5b50565b610a728161096a565b8114610a7d57600080fd5b5056fea2646970667358221220ef1adb339e85463eb7fc8992fa1513ffe98ce4f59d2fb2b57db08574d1cccd0864736f6c63430008070033"; - -type SenderConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: SenderConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class Sender__factory extends ContractFactory { - constructor(...args: SenderConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override deploy( - _gateway: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy(_gateway, overrides || {}) as Promise; - } - override getDeployTransaction( - _gateway: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction(_gateway, overrides || {}); - } - override attach(address: string): Sender { - return super.attach(address) as Sender; - } - override connect(signer: Signer): Sender__factory { - return super.connect(signer) as Sender__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): SenderInterface { - return new utils.Interface(_abi) as SenderInterface; - } - static connect(address: string, signerOrProvider: Signer | Provider): Sender { - return new Contract(address, _abi, signerOrProvider) as Sender; - } -} diff --git a/typechain-types/factories/contracts/prototypes/zevm/TestZContract__factory.ts b/typechain-types/factories/contracts/prototypes/zevm/TestZContract__factory.ts deleted file mode 100644 index 085cf1d2..00000000 --- a/typechain-types/factories/contracts/prototypes/zevm/TestZContract__factory.ts +++ /dev/null @@ -1,235 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../../common"; -import type { - TestZContract, - TestZContractInterface, -} from "../../../../contracts/prototypes/zevm/TestZContract"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "origin", - type: "bytes", - }, - { - indexed: false, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "chainID", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "msgSender", - type: "address", - }, - { - indexed: false, - internalType: "string", - name: "message", - type: "string", - }, - ], - name: "ContextData", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "origin", - type: "bytes", - }, - { - indexed: false, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "chainID", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "msgSender", - type: "address", - }, - { - indexed: false, - internalType: "string", - name: "message", - type: "string", - }, - ], - name: "ContextDataRevert", - type: "event", - }, - { - stateMutability: "payable", - type: "fallback", - }, - { - inputs: [ - { - components: [ - { - internalType: "bytes", - name: "origin", - type: "bytes", - }, - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "uint256", - name: "chainID", - type: "uint256", - }, - ], - internalType: "struct zContext", - name: "context", - type: "tuple", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "onCrossChainCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "bytes", - name: "origin", - type: "bytes", - }, - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "uint256", - name: "chainID", - type: "uint256", - }, - ], - internalType: "struct revertContext", - name: "context", - type: "tuple", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "onRevert", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - stateMutability: "payable", - type: "receive", - }, -] as const; - -const _bytecode = - "0x608060405234801561001057600080fd5b506107e0806100206000396000f3fe60806040526004361061002d5760003560e01c806369582bee14610036578063de43156e1461005f57610034565b3661003457005b005b34801561004257600080fd5b5061005d60048036038101906100589190610346565b610088565b005b34801561006b57600080fd5b50610086600480360381019061008191906103ea565b610115565b005b606060008383905011156100a85782828101906100a591906102fd565b90505b7ffdc887992b033668833927e252058e468fac0b6bd196d520f09c61b740e999488680600001906100d99190610575565b8860200160208101906100ec91906102d0565b8960400135338660405161010596959493929190610512565b60405180910390a1505050505050565b6060600083839050111561013557828281019061013291906102fd565b90505b7fcdc8ee677dc5ebe680fb18cebda5e26ba5ea1f0ba504a47e2a9a2ecb476dc98e8680600001906101669190610575565b88602001602081019061017991906102d0565b8960400135338660405161019296959493929190610512565b60405180910390a1505050505050565b60006101b56101b0846105fd565b6105d8565b9050828152602081018484840111156101d1576101d061075c565b5b6101dc848285610697565b509392505050565b6000813590506101f38161077c565b92915050565b60008083601f84011261020f5761020e61073e565b5b8235905067ffffffffffffffff81111561022c5761022b610739565b5b60208301915083600182028301111561024857610247610752565b5b9250929050565b600082601f8301126102645761026361073e565b5b81356102748482602086016101a2565b91505092915050565b60006060828403121561029357610292610748565b5b81905092915050565b6000606082840312156102b2576102b1610748565b5b81905092915050565b6000813590506102ca81610793565b92915050565b6000602082840312156102e6576102e5610766565b5b60006102f4848285016101e4565b91505092915050565b60006020828403121561031357610312610766565b5b600082013567ffffffffffffffff81111561033157610330610761565b5b61033d8482850161024f565b91505092915050565b60008060008060006080868803121561036257610361610766565b5b600086013567ffffffffffffffff8111156103805761037f610761565b5b61038c8882890161027d565b955050602061039d888289016101e4565b94505060406103ae888289016102bb565b935050606086013567ffffffffffffffff8111156103cf576103ce610761565b5b6103db888289016101f9565b92509250509295509295909350565b60008060008060006080868803121561040657610405610766565b5b600086013567ffffffffffffffff81111561042457610423610761565b5b6104308882890161029c565b9550506020610441888289016101e4565b9450506040610452888289016102bb565b935050606086013567ffffffffffffffff81111561047357610472610761565b5b61047f888289016101f9565b92509250509295509295909350565b6104978161065b565b82525050565b60006104a98385610639565b93506104b6838584610697565b6104bf8361076b565b840190509392505050565b60006104d58261062e565b6104df818561064a565b93506104ef8185602086016106a6565b6104f88161076b565b840191505092915050565b61050c8161068d565b82525050565b600060a082019050818103600083015261052d81888a61049d565b905061053c602083018761048e565b6105496040830186610503565b610556606083018561048e565b818103608083015261056881846104ca565b9050979650505050505050565b600080833560016020038436030381126105925761059161074d565b5b80840192508235915067ffffffffffffffff8211156105b4576105b3610743565b5b6020830192506001820236038313156105d0576105cf610757565b5b509250929050565b60006105e26105f3565b90506105ee82826106d9565b919050565b6000604051905090565b600067ffffffffffffffff8211156106185761061761070a565b5b6106218261076b565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006106668261066d565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156106c45780820151818401526020810190506106a9565b838111156106d3576000848401525b50505050565b6106e28261076b565b810181811067ffffffffffffffff821117156107015761070061070a565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b6107858161065b565b811461079057600080fd5b50565b61079c8161068d565b81146107a757600080fd5b5056fea2646970667358221220febf3f8cf5fd0742329aa443cb341b916e26ee1be7a429c48a3a28b956bd845f64736f6c63430008070033"; - -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 deploy( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy(overrides || {}) as Promise; - } - override getDeployTransaction( - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); - } - override attach(address: string): TestZContract { - return super.attach(address) as TestZContract; - } - override connect(signer: Signer): TestZContract__factory { - return super.connect(signer) as TestZContract__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): TestZContractInterface { - return new utils.Interface(_abi) as TestZContractInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): TestZContract { - return new Contract(address, _abi, signerOrProvider) as TestZContract; - } -} diff --git a/typechain-types/factories/contracts/prototypes/zevm/ZRC20New.sol/ZRC20New__factory.ts b/typechain-types/factories/contracts/prototypes/zevm/ZRC20New.sol/ZRC20New__factory.ts deleted file mode 100644 index 2bb551e4..00000000 --- a/typechain-types/factories/contracts/prototypes/zevm/ZRC20New.sol/ZRC20New__factory.ts +++ /dev/null @@ -1,730 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Signer, - utils, - Contract, - ContractFactory, - BigNumberish, - Overrides, -} from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../../../common"; -import type { - ZRC20New, - ZRC20NewInterface, -} from "../../../../../contracts/prototypes/zevm/ZRC20New.sol/ZRC20New"; - -const _abi = [ - { - inputs: [ - { - internalType: "string", - name: "name_", - type: "string", - }, - { - internalType: "string", - name: "symbol_", - type: "string", - }, - { - internalType: "uint8", - name: "decimals_", - type: "uint8", - }, - { - internalType: "uint256", - name: "chainid_", - type: "uint256", - }, - { - internalType: "enum CoinType", - name: "coinType_", - type: "uint8", - }, - { - internalType: "uint256", - name: "gasLimit_", - type: "uint256", - }, - { - internalType: "address", - name: "systemContractAddress_", - type: "address", - }, - { - internalType: "address", - name: "gatewayContractAddress_", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [], - name: "CallerIsNotFungibleModule", - type: "error", - }, - { - inputs: [], - name: "GasFeeTransferFailed", - type: "error", - }, - { - inputs: [], - name: "InvalidSender", - type: "error", - }, - { - inputs: [], - name: "LowAllowance", - type: "error", - }, - { - inputs: [], - name: "LowBalance", - type: "error", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, - { - inputs: [], - name: "ZeroGasCoin", - type: "error", - }, - { - inputs: [], - name: "ZeroGasPrice", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "owner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "spender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "bytes", - name: "from", - type: "bytes", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Deposit", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "gasLimit", - type: "uint256", - }, - ], - name: "UpdatedGasLimit", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "protocolFlatFee", - type: "uint256", - }, - ], - name: "UpdatedProtocolFlatFee", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "systemContract", - type: "address", - }, - ], - name: "UpdatedSystemContract", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "to", - type: "bytes", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "gasfee", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "protocolFlatFee", - type: "uint256", - }, - ], - name: "Withdrawal", - type: "event", - }, - { - inputs: [], - name: "CHAIN_ID", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "COIN_TYPE", - outputs: [ - { - internalType: "enum CoinType", - name: "", - type: "uint8", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "FUNGIBLE_MODULE_ADDRESS", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "GAS_LIMIT", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "GATEWAY_CONTRACT_ADDRESS", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "PROTOCOL_FLAT_FEE", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "SYSTEM_CONTRACT_ADDRESS", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "allowance", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "approve", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "balanceOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "burn", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "decimals", - outputs: [ - { - internalType: "uint8", - name: "", - type: "uint8", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "deposit", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "name", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "symbol", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "totalSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "recipient", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "address", - name: "recipient", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "gasLimit", - type: "uint256", - }, - ], - name: "updateGasLimit", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "protocolFlatFee", - type: "uint256", - }, - ], - name: "updateProtocolFlatFee", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - ], - name: "updateSystemContractAddress", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "to", - type: "bytes", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "withdraw", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "withdrawGasFee", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -const _bytecode = - "0x60c06040523480156200001157600080fd5b506040516200282d3803806200282d83398181016040528101906200003791906200035b565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614620000b1576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8760079080519060200190620000c9929190620001d1565b508660089080519060200190620000e2929190620001d1565b5085600960006101000a81548160ff021916908360ff16021790555084608081815250508360028111156200011c576200011b620005ae565b5b60a0816002811115620001345762000133620005ae565b5b60f81b8152505082600281905550816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505050620006bf565b828054620001df9062000542565b90600052602060002090601f0160209004810192826200020357600085556200024f565b82601f106200021e57805160ff19168380011785556200024f565b828001600101855582156200024f579182015b828111156200024e57825182559160200191906001019062000231565b5b5090506200025e919062000262565b5090565b5b808211156200027d57600081600090555060010162000263565b5090565b60006200029862000292846200048b565b62000462565b905082815260208101848484011115620002b757620002b662000640565b5b620002c48482856200050c565b509392505050565b600081519050620002dd8162000660565b92915050565b600081519050620002f4816200067a565b92915050565b600082601f8301126200031257620003116200063b565b5b81516200032484826020860162000281565b91505092915050565b6000815190506200033e816200068b565b92915050565b6000815190506200035581620006a5565b92915050565b600080600080600080600080610100898b0312156200037f576200037e6200064a565b5b600089015167ffffffffffffffff811115620003a0576200039f62000645565b5b620003ae8b828c01620002fa565b985050602089015167ffffffffffffffff811115620003d257620003d162000645565b5b620003e08b828c01620002fa565b9750506040620003f38b828c0162000344565b9650506060620004068b828c016200032d565b9550506080620004198b828c01620002e3565b94505060a06200042c8b828c016200032d565b93505060c06200043f8b828c01620002cc565b92505060e0620004528b828c01620002cc565b9150509295985092959890939650565b60006200046e62000481565b90506200047c828262000578565b919050565b6000604051905090565b600067ffffffffffffffff821115620004a957620004a86200060c565b5b620004b4826200064f565b9050602081019050919050565b6000620004ce82620004d5565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156200052c5780820151818401526020810190506200050f565b838111156200053c576000848401525b50505050565b600060028204905060018216806200055b57607f821691505b60208210811415620005725762000571620005dd565b5b50919050565b62000583826200064f565b810181811067ffffffffffffffff82111715620005a557620005a46200060c565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b6200066b81620004c1565b81146200067757600080fd5b50565b600381106200068857600080fd5b50565b6200069681620004f5565b8114620006a257600080fd5b50565b620006b081620004ff565b8114620006bc57600080fd5b50565b60805160a05160f81c612137620006f660003960006109580152600081816108a201528181610c250152610d5a01526121376000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806385e1f4d0116100c3578063d9eeebed1161007c578063d9eeebed146103cc578063dd62ed3e146103eb578063e2f535b81461041b578063eddeb12314610439578063f2441b3214610455578063f687d12a146104735761014d565b806385e1f4d0146102f657806395d89b4114610314578063a3413d0314610332578063a9059cbb14610350578063c701262614610380578063c835d7cc146103b05761014d565b8063313ce56711610115578063313ce5671461020c5780633ce4a5bc1461022a57806342966c681461024857806347e7ef24146102785780634d8943bb146102a857806370a08231146102c65761014d565b806306fdde0314610152578063091d278814610170578063095ea7b31461018e57806318160ddd146101be57806323b872dd146101dc575b600080fd5b61015a61048f565b6040516101679190611cad565b60405180910390f35b610178610521565b6040516101859190611ccf565b60405180910390f35b6101a860048036038101906101a3919061196e565b610527565b6040516101b59190611bfb565b60405180910390f35b6101c6610545565b6040516101d39190611ccf565b60405180910390f35b6101f660048036038101906101f1919061191b565b61054f565b6040516102039190611bfb565b60405180910390f35b610214610647565b6040516102219190611cea565b60405180910390f35b61023261065e565b60405161023f9190611b80565b60405180910390f35b610262600480360381019061025d9190611a37565b610676565b60405161026f9190611bfb565b60405180910390f35b610292600480360381019061028d919061196e565b61068b565b60405161029f9190611bfb565b60405180910390f35b6102b0610851565b6040516102bd9190611ccf565b60405180910390f35b6102e060048036038101906102db9190611881565b610857565b6040516102ed9190611ccf565b60405180910390f35b6102fe6108a0565b60405161030b9190611ccf565b60405180910390f35b61031c6108c4565b6040516103299190611cad565b60405180910390f35b61033a610956565b6040516103479190611c92565b60405180910390f35b61036a6004803603810190610365919061196e565b61097a565b6040516103779190611bfb565b60405180910390f35b61039a600480360381019061039591906119db565b610998565b6040516103a79190611bfb565b60405180910390f35b6103ca60048036038101906103c59190611881565b610aee565b005b6103d4610be1565b6040516103e2929190611bd2565b60405180910390f35b610405600480360381019061040091906118db565b610e4e565b6040516104129190611ccf565b60405180910390f35b610423610ed5565b6040516104309190611b80565b60405180910390f35b610453600480360381019061044e9190611a37565b610efb565b005b61045d610fb5565b60405161046a9190611b80565b60405180910390f35b61048d60048036038101906104889190611a37565b610fd9565b005b60606007805461049e90611f33565b80601f01602080910402602001604051908101604052809291908181526020018280546104ca90611f33565b80156105175780601f106104ec57610100808354040283529160200191610517565b820191906000526020600020905b8154815290600101906020018083116104fa57829003601f168201915b5050505050905090565b60025481565b600061053b610534611093565b848461109b565b6001905092915050565b6000600654905090565b600061055c848484611254565b6000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105a7611093565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561061e576040517f10bad14700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61063b8561062a611093565b85846106369190611e43565b61109b565b60019150509392505050565b6000600960009054906101000a900460ff16905090565b73735b14bb79463307aacbed86daf3322b1e6226ab81565b600061068233836114b0565b60019050919050565b600073735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610729575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b80156107835750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b156107ba576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107c48383611668565b8273ffffffffffffffffffffffffffffffffffffffff167f67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab373735b14bb79463307aacbed86daf3322b1e6226ab6040516020016108219190611b65565b6040516020818303038152906040528460405161083f929190611c16565b60405180910390a26001905092915050565b60035481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6060600880546108d390611f33565b80601f01602080910402602001604051908101604052809291908181526020018280546108ff90611f33565b801561094c5780601f106109215761010080835404028352916020019161094c565b820191906000526020600020905b81548152906001019060200180831161092f57829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061098e610987611093565b8484611254565b6001905092915050565b60008060006109a5610be1565b915091508173ffffffffffffffffffffffffffffffffffffffff166323b872dd3373735b14bb79463307aacbed86daf3322b1e6226ab846040518463ffffffff1660e01b81526004016109fa93929190611b9b565b602060405180830381600087803b158015610a1457600080fd5b505af1158015610a28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4c91906119ae565b610a82576040517f0a7cd6d600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a8c33856114b0565b3373ffffffffffffffffffffffffffffffffffffffff167f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d955868684600354604051610ada9493929190611c46565b60405180910390a260019250505092915050565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b67576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae81604051610bd69190611b80565b60405180910390a150565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630be155477f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401610c609190611ccf565b60206040518083038186803b158015610c7857600080fd5b505afa158015610c8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb091906118ae565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d19576040517f78fff39600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d7fd7afb7f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401610d959190611ccf565b60206040518083038186803b158015610dad57600080fd5b505afa158015610dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de59190611a64565b90506000811415610e22576040517fe661aed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060035460025483610e359190611de9565b610e3f9190611d93565b90508281945094505050509091565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f74576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806003819055507fef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f81604051610faa9190611ccf565b60405180910390a150565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b73735b14bb79463307aacbed86daf3322b1e6226ab73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611052576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806002819055507fff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a816040516110889190611ccf565b60405180910390a150565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611102576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611169576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112479190611ccf565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112bb576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611322576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156113a0576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81816113ac9190611e43565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461143e9190611d93565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114a29190611ccf565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611517576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611595576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81816115a19190611e43565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600660008282546115f69190611e43565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161165b9190611ccf565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116cf576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600660008282546116e19190611d93565b9250508190555080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117379190611d93565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161179c9190611ccf565b60405180910390a35050565b60006117bb6117b684611d2a565b611d05565b9050828152602081018484840111156117d7576117d661207b565b5b6117e2848285611ef1565b509392505050565b6000813590506117f9816120bc565b92915050565b60008151905061180e816120bc565b92915050565b600081519050611823816120d3565b92915050565b600082601f83011261183e5761183d612076565b5b813561184e8482602086016117a8565b91505092915050565b600081359050611866816120ea565b92915050565b60008151905061187b816120ea565b92915050565b60006020828403121561189757611896612085565b5b60006118a5848285016117ea565b91505092915050565b6000602082840312156118c4576118c3612085565b5b60006118d2848285016117ff565b91505092915050565b600080604083850312156118f2576118f1612085565b5b6000611900858286016117ea565b9250506020611911858286016117ea565b9150509250929050565b60008060006060848603121561193457611933612085565b5b6000611942868287016117ea565b9350506020611953868287016117ea565b925050604061196486828701611857565b9150509250925092565b6000806040838503121561198557611984612085565b5b6000611993858286016117ea565b92505060206119a485828601611857565b9150509250929050565b6000602082840312156119c4576119c3612085565b5b60006119d284828501611814565b91505092915050565b600080604083850312156119f2576119f1612085565b5b600083013567ffffffffffffffff811115611a1057611a0f612080565b5b611a1c85828601611829565b9250506020611a2d85828601611857565b9150509250929050565b600060208284031215611a4d57611a4c612085565b5b6000611a5b84828501611857565b91505092915050565b600060208284031215611a7a57611a79612085565b5b6000611a888482850161186c565b91505092915050565b611a9a81611e77565b82525050565b611ab1611aac82611e77565b611f96565b82525050565b611ac081611e89565b82525050565b6000611ad182611d5b565b611adb8185611d71565b9350611aeb818560208601611f00565b611af48161208a565b840191505092915050565b611b0881611edf565b82525050565b6000611b1982611d66565b611b238185611d82565b9350611b33818560208601611f00565b611b3c8161208a565b840191505092915050565b611b5081611ec8565b82525050565b611b5f81611ed2565b82525050565b6000611b718284611aa0565b60148201915081905092915050565b6000602082019050611b956000830184611a91565b92915050565b6000606082019050611bb06000830186611a91565b611bbd6020830185611a91565b611bca6040830184611b47565b949350505050565b6000604082019050611be76000830185611a91565b611bf46020830184611b47565b9392505050565b6000602082019050611c106000830184611ab7565b92915050565b60006040820190508181036000830152611c308185611ac6565b9050611c3f6020830184611b47565b9392505050565b60006080820190508181036000830152611c608187611ac6565b9050611c6f6020830186611b47565b611c7c6040830185611b47565b611c896060830184611b47565b95945050505050565b6000602082019050611ca76000830184611aff565b92915050565b60006020820190508181036000830152611cc78184611b0e565b905092915050565b6000602082019050611ce46000830184611b47565b92915050565b6000602082019050611cff6000830184611b56565b92915050565b6000611d0f611d20565b9050611d1b8282611f65565b919050565b6000604051905090565b600067ffffffffffffffff821115611d4557611d44612047565b5b611d4e8261208a565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000611d9e82611ec8565b9150611da983611ec8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611dde57611ddd611fba565b5b828201905092915050565b6000611df482611ec8565b9150611dff83611ec8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611e3857611e37611fba565b5b828202905092915050565b6000611e4e82611ec8565b9150611e5983611ec8565b925082821015611e6c57611e6b611fba565b5b828203905092915050565b6000611e8282611ea8565b9050919050565b60008115159050919050565b6000819050611ea3826120a8565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000611eea82611e95565b9050919050565b82818337600083830152505050565b60005b83811015611f1e578082015181840152602081019050611f03565b83811115611f2d576000848401525b50505050565b60006002820490506001821680611f4b57607f821691505b60208210811415611f5f57611f5e612018565b5b50919050565b611f6e8261208a565b810181811067ffffffffffffffff82111715611f8d57611f8c612047565b5b80604052505050565b6000611fa182611fa8565b9050919050565b6000611fb38261209b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b600381106120b9576120b8611fe9565b5b50565b6120c581611e77565b81146120d057600080fd5b50565b6120dc81611e89565b81146120e757600080fd5b50565b6120f381611ec8565b81146120fe57600080fd5b5056fea264697066735822122085b4c6eb609c2ec9eedeef1680fa0db3223e3761749585aa8f078d9f9c25dbfd64736f6c63430008070033"; - -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 deploy( - name_: PromiseOrValue, - symbol_: PromiseOrValue, - decimals_: PromiseOrValue, - chainid_: PromiseOrValue, - coinType_: PromiseOrValue, - gasLimit_: PromiseOrValue, - systemContractAddress_: PromiseOrValue, - gatewayContractAddress_: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy( - name_, - symbol_, - decimals_, - chainid_, - coinType_, - gasLimit_, - systemContractAddress_, - gatewayContractAddress_, - overrides || {} - ) as Promise; - } - override getDeployTransaction( - name_: PromiseOrValue, - symbol_: PromiseOrValue, - decimals_: PromiseOrValue, - chainid_: PromiseOrValue, - coinType_: PromiseOrValue, - gasLimit_: PromiseOrValue, - systemContractAddress_: PromiseOrValue, - gatewayContractAddress_: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction( - name_, - symbol_, - decimals_, - chainid_, - coinType_, - gasLimit_, - systemContractAddress_, - gatewayContractAddress_, - overrides || {} - ); - } - override attach(address: string): ZRC20New { - return super.attach(address) as ZRC20New; - } - override connect(signer: Signer): ZRC20New__factory { - return super.connect(signer) as ZRC20New__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): ZRC20NewInterface { - return new utils.Interface(_abi) as ZRC20NewInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): ZRC20New { - return new Contract(address, _abi, signerOrProvider) as ZRC20New; - } -} diff --git a/typechain-types/factories/contracts/prototypes/zevm/index.ts b/typechain-types/factories/contracts/prototypes/zevm/index.ts deleted file mode 100644 index d8c3ab1e..00000000 --- a/typechain-types/factories/contracts/prototypes/zevm/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as iGatewayZevmSol from "./IGatewayZEVM.sol"; -export { GatewayZEVM__factory } from "./GatewayZEVM__factory"; -export { SenderZEVM__factory } from "./SenderZEVM__factory"; -export { TestZContract__factory } from "./TestZContract__factory"; diff --git a/typechain-types/factories/contracts/prototypes/zevm/interfaces.sol/IGatewayZEVMErrors__factory.ts b/typechain-types/factories/contracts/prototypes/zevm/interfaces.sol/IGatewayZEVMErrors__factory.ts deleted file mode 100644 index 9240eeb0..00000000 --- a/typechain-types/factories/contracts/prototypes/zevm/interfaces.sol/IGatewayZEVMErrors__factory.ts +++ /dev/null @@ -1,71 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; -import type { - IGatewayZEVMErrors, - IGatewayZEVMErrorsInterface, -} from "../../../../../contracts/prototypes/zevm/interfaces.sol/IGatewayZEVMErrors"; - -const _abi = [ - { - inputs: [], - name: "CallerIsNotFungibleModule", - type: "error", - }, - { - inputs: [], - name: "FailedZetaSent", - type: "error", - }, - { - inputs: [], - name: "GasFeeTransferFailed", - type: "error", - }, - { - inputs: [], - name: "InsufficientZRC20Amount", - type: "error", - }, - { - inputs: [], - name: "InvalidTarget", - type: "error", - }, - { - inputs: [], - name: "WZETATransferFailed", - type: "error", - }, - { - inputs: [], - name: "WithdrawalFailed", - type: "error", - }, - { - inputs: [], - name: "ZRC20BurnFailed", - type: "error", - }, - { - inputs: [], - name: "ZRC20TransferFailed", - type: "error", - }, -] as const; - -export class IGatewayZEVMErrors__factory { - static readonly abi = _abi; - static createInterface(): IGatewayZEVMErrorsInterface { - return new utils.Interface(_abi) as IGatewayZEVMErrorsInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): IGatewayZEVMErrors { - return new Contract(address, _abi, signerOrProvider) as IGatewayZEVMErrors; - } -} diff --git a/typechain-types/factories/contracts/prototypes/zevm/interfaces.sol/IGatewayZEVMEvents__factory.ts b/typechain-types/factories/contracts/prototypes/zevm/interfaces.sol/IGatewayZEVMEvents__factory.ts deleted file mode 100644 index 2c3a8834..00000000 --- a/typechain-types/factories/contracts/prototypes/zevm/interfaces.sol/IGatewayZEVMEvents__factory.ts +++ /dev/null @@ -1,100 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; -import type { - IGatewayZEVMEvents, - IGatewayZEVMEventsInterface, -} from "../../../../../contracts/prototypes/zevm/interfaces.sol/IGatewayZEVMEvents"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "receiver", - type: "bytes", - }, - { - indexed: false, - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "Call", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "zrc20", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "to", - type: "bytes", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "gasfee", - type: "uint256", - }, - { - indexed: false, - internalType: "uint256", - name: "protocolFlatFee", - type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "Withdrawal", - type: "event", - }, -] as const; - -export class IGatewayZEVMEvents__factory { - static readonly abi = _abi; - static createInterface(): IGatewayZEVMEventsInterface { - return new utils.Interface(_abi) as IGatewayZEVMEventsInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): IGatewayZEVMEvents { - return new Contract(address, _abi, signerOrProvider) as IGatewayZEVMEvents; - } -} diff --git a/typechain-types/factories/contracts/prototypes/zevm/interfaces.sol/IGatewayZEVM__factory.ts b/typechain-types/factories/contracts/prototypes/zevm/interfaces.sol/IGatewayZEVM__factory.ts deleted file mode 100644 index aef304ee..00000000 --- a/typechain-types/factories/contracts/prototypes/zevm/interfaces.sol/IGatewayZEVM__factory.ts +++ /dev/null @@ -1,218 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; -import type { - IGatewayZEVM, - IGatewayZEVMInterface, -} from "../../../../../contracts/prototypes/zevm/interfaces.sol/IGatewayZEVM"; - -const _abi = [ - { - inputs: [ - { - internalType: "bytes", - name: "receiver", - type: "bytes", - }, - { - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "call", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "target", - type: "address", - }, - ], - name: "deposit", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "bytes", - name: "origin", - type: "bytes", - }, - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "uint256", - name: "chainID", - type: "uint256", - }, - ], - internalType: "struct zContext", - name: "context", - type: "tuple", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "depositAndCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - components: [ - { - internalType: "bytes", - name: "origin", - type: "bytes", - }, - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "uint256", - name: "chainID", - type: "uint256", - }, - ], - internalType: "struct zContext", - name: "context", - type: "tuple", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "execute", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "receiver", - type: "bytes", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - ], - name: "withdraw", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes", - name: "receiver", - type: "bytes", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "address", - name: "zrc20", - type: "address", - }, - { - internalType: "bytes", - name: "message", - type: "bytes", - }, - ], - name: "withdrawAndCall", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class IGatewayZEVM__factory { - static readonly abi = _abi; - static createInterface(): IGatewayZEVMInterface { - return new utils.Interface(_abi) as IGatewayZEVMInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): IGatewayZEVM { - return new Contract(address, _abi, signerOrProvider) as IGatewayZEVM; - } -} diff --git a/typechain-types/factories/contracts/prototypes/zevm/interfaces.sol/index.ts b/typechain-types/factories/contracts/prototypes/zevm/interfaces.sol/index.ts deleted file mode 100644 index 0b6212ee..00000000 --- a/typechain-types/factories/contracts/prototypes/zevm/interfaces.sol/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* 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/typechain-types/factories/forge-std/StdError.sol/StdError__factory.ts b/typechain-types/factories/forge-std/StdError.sol/StdError__factory.ts deleted file mode 100644 index 0bdc6b38..00000000 --- a/typechain-types/factories/forge-std/StdError.sol/StdError__factory.ts +++ /dev/null @@ -1,180 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../common"; -import type { - StdError, - StdErrorInterface, -} from "../../../forge-std/StdError.sol/StdError"; - -const _abi = [ - { - inputs: [], - name: "arithmeticError", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "assertionError", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "divisionError", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "encodeStorageError", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "enumConversionError", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "indexOOBError", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "memOverflowError", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "popError", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "zeroVarError", - outputs: [ - { - internalType: "bytes", - name: "", - type: "bytes", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -const _bytecode = - "0x6109ec610053600b82828239805160001a607314610046577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061009d5760003560e01c8063986c5f6811610070578063986c5f681461011a578063b22dc54d14610138578063b67689da14610156578063d160e4de14610174578063fa784a44146101925761009d565b806305ee8612146100a257806310332977146100c05780631de45560146100de5780638995290f146100fc575b600080fd5b6100aa6101b0565b6040516100b79190610792565b60405180910390f35b6100c8610242565b6040516100d59190610792565b60405180910390f35b6100e66102d4565b6040516100f39190610792565b60405180910390f35b610104610366565b6040516101119190610792565b60405180910390f35b6101226103f8565b60405161012f9190610792565b60405180910390f35b61014061048a565b60405161014d9190610792565b60405180910390f35b61015e61051c565b60405161016b9190610792565b60405180910390f35b61017c6105ae565b6040516101899190610792565b60405180910390f35b61019a610640565b6040516101a79190610792565b60405180910390f35b60326040516024016101c29190610856565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b600160405160240161025491906107ea565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b60216040516024016102e69190610805565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b601160405160240161037891906107b4565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b604160405160240161040a9190610871565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b603160405160240161049c919061083b565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b605160405160240161052e919061088c565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b60226040516024016105c09190610820565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b601260405160240161065291906107cf565b6040516020818303038152906040527f4e487b71000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505081565b60006106dd826108a7565b6106e781856108b2565b93506106f7818560208601610972565b610700816109a5565b840191505092915050565b610714816108d0565b82525050565b610723816108e2565b82525050565b610732816108f4565b82525050565b61074181610906565b82525050565b61075081610918565b82525050565b61075f8161092a565b82525050565b61076e8161093c565b82525050565b61077d8161094e565b82525050565b61078c81610960565b82525050565b600060208201905081810360008301526107ac81846106d2565b905092915050565b60006020820190506107c9600083018461070b565b92915050565b60006020820190506107e4600083018461071a565b92915050565b60006020820190506107ff6000830184610729565b92915050565b600060208201905061081a6000830184610738565b92915050565b60006020820190506108356000830184610747565b92915050565b60006020820190506108506000830184610756565b92915050565b600060208201905061086b6000830184610765565b92915050565b60006020820190506108866000830184610774565b92915050565b60006020820190506108a16000830184610783565b92915050565b600081519050919050565b600082825260208201905092915050565b600060ff82169050919050565b60006108db826108c3565b9050919050565b60006108ed826108c3565b9050919050565b60006108ff826108c3565b9050919050565b6000610911826108c3565b9050919050565b6000610923826108c3565b9050919050565b6000610935826108c3565b9050919050565b6000610947826108c3565b9050919050565b6000610959826108c3565b9050919050565b600061096b826108c3565b9050919050565b60005b83811015610990578082015181840152602081019050610975565b8381111561099f576000848401525b50505050565b6000601f19601f830116905091905056fea264697066735822122086a066b9b91d74494e9ce1d74ef0b42568574cbc8d6ec51dc4e6feec0c5260d764736f6c63430008070033"; - -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 deploy( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy(overrides || {}) as Promise; - } - override getDeployTransaction( - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); - } - override attach(address: string): StdError { - return super.attach(address) as StdError; - } - override connect(signer: Signer): StdError__factory { - return super.connect(signer) as StdError__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): StdErrorInterface { - return new utils.Interface(_abi) as StdErrorInterface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): StdError { - return new Contract(address, _abi, signerOrProvider) as StdError; - } -} diff --git a/typechain-types/factories/forge-std/index.ts b/typechain-types/factories/forge-std/index.ts deleted file mode 100644 index cfff7dbd..00000000 --- a/typechain-types/factories/forge-std/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as stdErrorSol from "./StdError.sol"; -export * as stdStorageSol from "./StdStorage.sol"; -export * as vmSol from "./Vm.sol"; -export * as interfaces from "./interfaces"; -export * as mocks from "./mocks"; -export { StdAssertions__factory } from "./StdAssertions__factory"; -export { StdInvariant__factory } from "./StdInvariant__factory"; -export { Test__factory } from "./Test__factory"; diff --git a/typechain-types/factories/forge-std/interfaces/index.ts b/typechain-types/factories/forge-std/interfaces/index.ts deleted file mode 100644 index 174beea6..00000000 --- a/typechain-types/factories/forge-std/interfaces/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as ierc721Sol from "./IERC721.sol"; -export { IERC165__factory } from "./IERC165__factory"; -export { IERC20__factory } from "./IERC20__factory"; -export { IMulticall3__factory } from "./IMulticall3__factory"; diff --git a/typechain-types/factories/forge-std/mocks/MockERC20__factory.ts b/typechain-types/factories/forge-std/mocks/MockERC20__factory.ts deleted file mode 100644 index c6cedc7c..00000000 --- a/typechain-types/factories/forge-std/mocks/MockERC20__factory.ts +++ /dev/null @@ -1,383 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../common"; -import type { - MockERC20, - MockERC20Interface, -} from "../../../forge-std/mocks/MockERC20"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "owner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "spender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - inputs: [], - name: "DOMAIN_SEPARATOR", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "allowance", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "approve", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - ], - name: "balanceOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "decimals", - outputs: [ - { - internalType: "uint8", - name: "", - type: "uint8", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name_", - type: "string", - }, - { - internalType: "string", - name: "symbol_", - type: "string", - }, - { - internalType: "uint8", - name: "decimals_", - type: "uint8", - }, - ], - name: "initialize", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "name", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - name: "nonces", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256", - }, - { - internalType: "uint8", - name: "v", - type: "uint8", - }, - { - internalType: "bytes32", - name: "r", - type: "bytes32", - }, - { - internalType: "bytes32", - name: "s", - type: "bytes32", - }, - ], - name: "permit", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "symbol", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "totalSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -const _bytecode = - "0x608060405234801561001057600080fd5b50611c60806100206000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b4114610228578063a9059cbb14610246578063d505accf14610276578063dd62ed3e14610292576100cf565b80633644e515146101aa57806370a08231146101c85780637ecebe00146101f8576100cf565b806306fdde03146100d4578063095ea7b3146100f25780631624f6c61461012257806318160ddd1461013e57806323b872dd1461015c578063313ce5671461018c575b600080fd5b6100dc6102c2565b6040516100e99190611681565b60405180910390f35b61010c6004803603810190610107919061124d565b610354565b6040516101199190611552565b60405180910390f35b61013c6004803603810190610137919061128d565b610446565b005b61014661051b565b6040516101539190611743565b60405180910390f35b61017660048036038101906101719190611158565b610525565b6040516101839190611552565b60405180910390f35b6101946107c4565b6040516101a1919061175e565b60405180910390f35b6101b26107db565b6040516101bf919061156d565b60405180910390f35b6101e260048036038101906101dd91906110eb565b610803565b6040516101ef9190611743565b60405180910390f35b610212600480360381019061020d91906110eb565b61084c565b60405161021f9190611743565b60405180910390f35b610230610864565b60405161023d9190611681565b60405180910390f35b610260600480360381019061025b919061124d565b6108f6565b60405161026d9190611552565b60405180910390f35b610290600480360381019061028b91906111ab565b610a7f565b005b6102ac60048036038101906102a79190611118565b610d7e565b6040516102b99190611743565b60405180910390f35b6060600080546102d190611941565b80601f01602080910402602001604051908101604052809291908181526020018280546102fd90611941565b801561034a5780601f1061031f5761010080835404028352916020019161034a565b820191906000526020600020905b81548152906001019060200180831161032d57829003601f168201915b5050505050905090565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516104349190611743565b60405180910390a36001905092915050565b600960009054906101000a900460ff1615610496576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048d906116a3565b60405180910390fd5b82600090805190602001906104ac929190610f7a565b5081600190805190602001906104c3929190610f7a565b5080600260006101000a81548160ff021916908360ff1602179055506104e7610e05565b6006819055506104f5610e28565b6007819055506001600960006101000a81548160ff021916908315150217905550505050565b6000600354905090565b600080600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600019811461063b576105ba8184610ebb565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610684600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484610ebb565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610710600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484610f14565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516107b09190611743565b60405180910390a360019150509392505050565b6000600260009054906101000a900460ff16905090565b60006006546107e8610e05565b146107fa576107f5610e28565b6107fe565b6007545b905090565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60086020528060005260406000206000915090505481565b60606001805461087390611941565b80601f016020809104026020016040519081016040528092919081815260200182805461089f90611941565b80156108ec5780601f106108c1576101008083540402835291602001916108ec565b820191906000526020600020905b8154815290600101906020018083116108cf57829003601f168201915b5050505050905090565b6000610941600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483610ebb565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109cd600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483610f14565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a6d9190611743565b60405180910390a36001905092915050565b42841015610ac2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab990611723565b60405180910390fd5b60006001610ace6107db565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98a8a8a600860008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190610b42906119a4565b919050558b604051602001610b5c96959493929190611588565b60405160208183030381529060405280519060200120604051602001610b8392919061151b565b6040516020818303038152906040528051906020012085858560405160008152602001604052604051610bb9949392919061163c565b6020604051602081039080840390855afa158015610bdb573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015610c4f57508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b610c8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8590611703565b60405180910390fd5b85600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92588604051610d6c9190611743565b60405180910390a35050505050505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000611000610f729050611000819050610e218163ffffffff16565b9250505090565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6000604051610e5a9190611504565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6610e8b610e05565b30604051602001610ea09594939291906115e9565b60405160208183030381529060405280519060200120905090565b600081831015610f00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef7906116c3565b60405180910390fd5b8183610f0c919061186c565b905092915050565b6000808284610f239190611816565b905083811015610f68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5f906116e3565b60405180910390fd5b8091505092915050565b600046905090565b828054610f8690611941565b90600052602060002090601f016020900481019282610fa85760008555610fef565b82601f10610fc157805160ff1916838001178555610fef565b82800160010185558215610fef579182015b82811115610fee578251825591602001919060010190610fd3565b5b509050610ffc919061100a565b5090565b611008611a84565b565b5b8082111561102357600081600090555060010161100b565b5090565b600061103a6110358461179e565b611779565b90508281526020810184848401111561105657611055611ab8565b5b6110618482856118ff565b509392505050565b60008135905061107881611bce565b92915050565b60008135905061108d81611be5565b92915050565b600082601f8301126110a8576110a7611ab3565b5b81356110b8848260208601611027565b91505092915050565b6000813590506110d081611bfc565b92915050565b6000813590506110e581611c13565b92915050565b60006020828403121561110157611100611ac2565b5b600061110f84828501611069565b91505092915050565b6000806040838503121561112f5761112e611ac2565b5b600061113d85828601611069565b925050602061114e85828601611069565b9150509250929050565b60008060006060848603121561117157611170611ac2565b5b600061117f86828701611069565b935050602061119086828701611069565b92505060406111a1868287016110c1565b9150509250925092565b600080600080600080600060e0888a0312156111ca576111c9611ac2565b5b60006111d88a828b01611069565b97505060206111e98a828b01611069565b96505060406111fa8a828b016110c1565b955050606061120b8a828b016110c1565b945050608061121c8a828b016110d6565b93505060a061122d8a828b0161107e565b92505060c061123e8a828b0161107e565b91505092959891949750929550565b6000806040838503121561126457611263611ac2565b5b600061127285828601611069565b9250506020611283858286016110c1565b9150509250929050565b6000806000606084860312156112a6576112a5611ac2565b5b600084013567ffffffffffffffff8111156112c4576112c3611abd565b5b6112d086828701611093565b935050602084013567ffffffffffffffff8111156112f1576112f0611abd565b5b6112fd86828701611093565b925050604061130e868287016110d6565b9150509250925092565b611321816118a0565b82525050565b611330816118b2565b82525050565b61133f816118be565b82525050565b611356611351826118be565b6119ed565b82525050565b6000815461136981611941565b61137381866117ef565b9450600182166000811461138e576001811461139f576113d2565b60ff198316865281860193506113d2565b6113a8856117cf565b60005b838110156113ca578154818901526001820191506020810190506113ab565b838801955050505b50505092915050565b60006113e6826117e4565b6113f081856117fa565b935061140081856020860161190e565b61140981611ac7565b840191505092915050565b60006114216013836117fa565b915061142c82611ad8565b602082019050919050565b600061144460028361180b565b915061144f82611b01565b600282019050919050565b6000611467601c836117fa565b915061147282611b2a565b602082019050919050565b600061148a6018836117fa565b915061149582611b53565b602082019050919050565b60006114ad600e836117fa565b91506114b882611b7c565b602082019050919050565b60006114d06017836117fa565b91506114db82611ba5565b602082019050919050565b6114ef816118e8565b82525050565b6114fe816118f2565b82525050565b6000611510828461135c565b915081905092915050565b600061152682611437565b91506115328285611345565b6020820191506115428284611345565b6020820191508190509392505050565b60006020820190506115676000830184611327565b92915050565b60006020820190506115826000830184611336565b92915050565b600060c08201905061159d6000830189611336565b6115aa6020830188611318565b6115b76040830187611318565b6115c460608301866114e6565b6115d160808301856114e6565b6115de60a08301846114e6565b979650505050505050565b600060a0820190506115fe6000830188611336565b61160b6020830187611336565b6116186040830186611336565b61162560608301856114e6565b6116326080830184611318565b9695505050505050565b60006080820190506116516000830187611336565b61165e60208301866114f5565b61166b6040830185611336565b6116786060830184611336565b95945050505050565b6000602082019050818103600083015261169b81846113db565b905092915050565b600060208201905081810360008301526116bc81611414565b9050919050565b600060208201905081810360008301526116dc8161145a565b9050919050565b600060208201905081810360008301526116fc8161147d565b9050919050565b6000602082019050818103600083015261171c816114a0565b9050919050565b6000602082019050818103600083015261173c816114c3565b9050919050565b600060208201905061175860008301846114e6565b92915050565b600060208201905061177360008301846114f5565b92915050565b6000611783611794565b905061178f8282611973565b919050565b6000604051905090565b600067ffffffffffffffff8211156117b9576117b8611a55565b5b6117c282611ac7565b9050602081019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000611821826118e8565b915061182c836118e8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611861576118606119f7565b5b828201905092915050565b6000611877826118e8565b9150611882836118e8565b925082821015611895576118946119f7565b5b828203905092915050565b60006118ab826118c8565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b8381101561192c578082015181840152602081019050611911565b8381111561193b576000848401525b50505050565b6000600282049050600182168061195957607f821691505b6020821081141561196d5761196c611a26565b5b50919050565b61197c82611ac7565b810181811067ffffffffffffffff8211171561199b5761199a611a55565b5b80604052505050565b60006119af826118e8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156119e2576119e16119f7565b5b600182019050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052605160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f414c52454144595f494e495449414c495a454400000000000000000000000000600082015250565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b7f45524332303a207375627472616374696f6e20756e646572666c6f7700000000600082015250565b7f45524332303a206164646974696f6e206f766572666c6f770000000000000000600082015250565b7f494e56414c49445f5349474e4552000000000000000000000000000000000000600082015250565b7f5045524d49545f444541444c494e455f45585049524544000000000000000000600082015250565b611bd7816118a0565b8114611be257600080fd5b50565b611bee816118be565b8114611bf957600080fd5b50565b611c05816118e8565b8114611c1057600080fd5b50565b611c1c816118f2565b8114611c2757600080fd5b5056fea2646970667358221220ee7d0358f6dc54d9a0daa9ec1987cc49290bece08d5b0890a343184933a9ba8f64736f6c63430008070033"; - -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 deploy( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy(overrides || {}) as Promise; - } - override getDeployTransaction( - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); - } - override attach(address: string): MockERC20 { - return super.attach(address) as MockERC20; - } - override connect(signer: Signer): MockERC20__factory { - return super.connect(signer) as MockERC20__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): MockERC20Interface { - return new utils.Interface(_abi) as MockERC20Interface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): MockERC20 { - return new Contract(address, _abi, signerOrProvider) as MockERC20; - } -} diff --git a/typechain-types/factories/forge-std/mocks/MockERC721__factory.ts b/typechain-types/factories/forge-std/mocks/MockERC721__factory.ts deleted file mode 100644 index 8c286383..00000000 --- a/typechain-types/factories/forge-std/mocks/MockERC721__factory.ts +++ /dev/null @@ -1,411 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../common"; -import type { - MockERC721, - MockERC721Interface, -} from "../../../forge-std/mocks/MockERC721"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "_owner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "_approved", - type: "address", - }, - { - indexed: true, - internalType: "uint256", - name: "_tokenId", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "_owner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "_operator", - type: "address", - }, - { - indexed: false, - internalType: "bool", - name: "_approved", - type: "bool", - }, - ], - name: "ApprovalForAll", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "_from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "_to", - type: "address", - }, - { - indexed: true, - internalType: "uint256", - name: "_tokenId", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "id", - type: "uint256", - }, - ], - name: "approve", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - ], - name: "balanceOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "id", - type: "uint256", - }, - ], - name: "getApproved", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "string", - name: "name_", - type: "string", - }, - { - internalType: "string", - name: "symbol_", - type: "string", - }, - ], - name: "initialize", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "operator", - type: "address", - }, - ], - name: "isApprovedForAll", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "name", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "id", - type: "uint256", - }, - ], - name: "ownerOf", - outputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "id", - type: "uint256", - }, - ], - name: "safeTransferFrom", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "id", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", - }, - ], - name: "safeTransferFrom", - outputs: [], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "operator", - type: "address", - }, - { - internalType: "bool", - name: "approved", - type: "bool", - }, - ], - name: "setApprovalForAll", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes4", - name: "interfaceId", - type: "bytes4", - }, - ], - name: "supportsInterface", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "symbol", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "id", - type: "uint256", - }, - ], - name: "tokenURI", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "id", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [], - stateMutability: "payable", - type: "function", - }, -] as const; - -const _bytecode = - "0x608060405234801561001057600080fd5b50611e69806100206000396000f3fe6080604052600436106100dd5760003560e01c80636352211e1161007f578063a22cb46511610059578063a22cb465146102a9578063b88d4fde146102d2578063c87b56dd146102ee578063e985e9c51461032b576100dd565b80636352211e1461020457806370a082311461024157806395d89b411461027e576100dd565b8063095ea7b3116100bb578063095ea7b31461018757806323b872dd146101a357806342842e0e146101bf5780634cd88b76146101db576100dd565b806301ffc9a7146100e257806306fdde031461011f578063081812fc1461014a575b600080fd5b3480156100ee57600080fd5b5061010960048036038101906101049190611519565b610368565b6040516101169190611880565b60405180910390f35b34801561012b57600080fd5b506101346103fa565b604051610141919061189b565b60405180910390f35b34801561015657600080fd5b50610171600480360381019061016c91906115eb565b61048c565b60405161017e91906117cf565b60405180910390f35b6101a1600480360381019061019c91906114d9565b6104c9565b005b6101bd60048036038101906101b891906113c3565b6106b2565b005b6101d960048036038101906101d491906113c3565b610abd565b005b3480156101e757600080fd5b5061020260048036038101906101fd9190611573565b610bf3565b005b34801561021057600080fd5b5061022b600480360381019061022691906115eb565b610c90565b60405161023891906117cf565b60405180910390f35b34801561024d57600080fd5b5061026860048036038101906102639190611356565b610d3c565b604051610275919061199d565b60405180910390f35b34801561028a57600080fd5b50610293610df4565b6040516102a0919061189b565b60405180910390f35b3480156102b557600080fd5b506102d060048036038101906102cb9190611499565b610e86565b005b6102ec60048036038101906102e79190611416565b610f83565b005b3480156102fa57600080fd5b50610315600480360381019061031091906115eb565b6110bc565b604051610322919061189b565b60405180910390f35b34801561033757600080fd5b50610352600480360381019061034d9190611383565b6110c3565b60405161035f9190611880565b60405180910390f35b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103c357506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806103f35750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b60606000805461040990611b57565b80601f016020809104026020016040519081016040528092919081815260200182805461043590611b57565b80156104825780601f1061045757610100808354040283529160200191610482565b820191906000526020600020905b81548152906001019060200180831161046557829003601f168201915b5050505050905090565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806105c15750600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610600576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f79061193d565b60405180910390fd5b826004600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b6002600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610753576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074a9061197d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156107c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ba906118dd565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806108835750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806108ec57506004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61092b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109229061193d565b60405180910390fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919061097b90611b2d565b9190505550600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906109d090611bba565b9190505550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b610ac88383836106b2565b610ad182611157565b1580610baf575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168273ffffffffffffffffffffffffffffffffffffffff1663150b7a023386856040518463ffffffff1660e01b8152600401610b3c93929190611836565b602060405180830381600087803b158015610b5657600080fd5b505af1158015610b6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8e9190611546565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b610bee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be59061191d565b60405180910390fd5b505050565b600660009054906101000a900460ff1615610c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3a906118bd565b60405180910390fd5b8160009080519060200190610c5992919061116a565b508060019080519060200190610c7092919061116a565b506001600660006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508173ffffffffffffffffffffffffffffffffffffffff161415610d37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2e9061195d565b60405180910390fd5b919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610dad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da4906118fd565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060018054610e0390611b57565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2f90611b57565b8015610e7c5780601f10610e5157610100808354040283529160200191610e7c565b820191906000526020600020905b815481529060010190602001808311610e5f57829003601f168201915b5050505050905090565b80600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610f779190611880565b60405180910390a35050565b610f8e8484846106b2565b610f9783611157565b1580611077575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168373ffffffffffffffffffffffffffffffffffffffff1663150b7a02338786866040518563ffffffff1660e01b815260040161100494939291906117ea565b602060405180830381600087803b15801561101e57600080fd5b505af1158015611032573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110569190611546565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b6110b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ad9061191d565b60405180910390fd5b50505050565b6060919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600080823b905060008111915050919050565b82805461117690611b57565b90600052602060002090601f01602090048101928261119857600085556111df565b82601f106111b157805160ff19168380011785556111df565b828001600101855582156111df579182015b828111156111de5782518255916020019190600101906111c3565b5b5090506111ec91906111f0565b5090565b5b808211156112095760008160009055506001016111f1565b5090565b600061122061121b846119dd565b6119b8565b90508281526020810184848401111561123c5761123b611c95565b5b611247848285611aeb565b509392505050565b600061126261125d84611a0e565b6119b8565b90508281526020810184848401111561127e5761127d611c95565b5b611289848285611aeb565b509392505050565b6000813590506112a081611dd7565b92915050565b6000813590506112b581611dee565b92915050565b6000813590506112ca81611e05565b92915050565b6000815190506112df81611e05565b92915050565b600082601f8301126112fa576112f9611c90565b5b813561130a84826020860161120d565b91505092915050565b600082601f83011261132857611327611c90565b5b813561133884826020860161124f565b91505092915050565b60008135905061135081611e1c565b92915050565b60006020828403121561136c5761136b611c9f565b5b600061137a84828501611291565b91505092915050565b6000806040838503121561139a57611399611c9f565b5b60006113a885828601611291565b92505060206113b985828601611291565b9150509250929050565b6000806000606084860312156113dc576113db611c9f565b5b60006113ea86828701611291565b93505060206113fb86828701611291565b925050604061140c86828701611341565b9150509250925092565b600080600080608085870312156114305761142f611c9f565b5b600061143e87828801611291565b945050602061144f87828801611291565b935050604061146087828801611341565b925050606085013567ffffffffffffffff81111561148157611480611c9a565b5b61148d878288016112e5565b91505092959194509250565b600080604083850312156114b0576114af611c9f565b5b60006114be85828601611291565b92505060206114cf858286016112a6565b9150509250929050565b600080604083850312156114f0576114ef611c9f565b5b60006114fe85828601611291565b925050602061150f85828601611341565b9150509250929050565b60006020828403121561152f5761152e611c9f565b5b600061153d848285016112bb565b91505092915050565b60006020828403121561155c5761155b611c9f565b5b600061156a848285016112d0565b91505092915050565b6000806040838503121561158a57611589611c9f565b5b600083013567ffffffffffffffff8111156115a8576115a7611c9a565b5b6115b485828601611313565b925050602083013567ffffffffffffffff8111156115d5576115d4611c9a565b5b6115e185828601611313565b9150509250929050565b60006020828403121561160157611600611c9f565b5b600061160f84828501611341565b91505092915050565b61162181611a77565b82525050565b61163081611a89565b82525050565b600061164182611a3f565b61164b8185611a55565b935061165b818560208601611afa565b61166481611ca4565b840191505092915050565b600061167a82611a4a565b6116848185611a66565b9350611694818560208601611afa565b61169d81611ca4565b840191505092915050565b60006116b5601383611a66565b91506116c082611cb5565b602082019050919050565b60006116d8601183611a66565b91506116e382611cde565b602082019050919050565b60006116fb600c83611a66565b915061170682611d07565b602082019050919050565b600061171e601083611a66565b915061172982611d30565b602082019050919050565b6000611741600083611a55565b915061174c82611d59565b600082019050919050565b6000611764600e83611a66565b915061176f82611d5c565b602082019050919050565b6000611787600a83611a66565b915061179282611d85565b602082019050919050565b60006117aa600a83611a66565b91506117b582611dae565b602082019050919050565b6117c981611ae1565b82525050565b60006020820190506117e46000830184611618565b92915050565b60006080820190506117ff6000830187611618565b61180c6020830186611618565b61181960408301856117c0565b818103606083015261182b8184611636565b905095945050505050565b600060808201905061184b6000830186611618565b6118586020830185611618565b61186560408301846117c0565b818103606083015261187681611734565b9050949350505050565b60006020820190506118956000830184611627565b92915050565b600060208201905081810360008301526118b5818461166f565b905092915050565b600060208201905081810360008301526118d6816116a8565b9050919050565b600060208201905081810360008301526118f6816116cb565b9050919050565b60006020820190508181036000830152611916816116ee565b9050919050565b6000602082019050818103600083015261193681611711565b9050919050565b6000602082019050818103600083015261195681611757565b9050919050565b600060208201905081810360008301526119768161177a565b9050919050565b600060208201905081810360008301526119968161179d565b9050919050565b60006020820190506119b260008301846117c0565b92915050565b60006119c26119d3565b90506119ce8282611b89565b919050565b6000604051905090565b600067ffffffffffffffff8211156119f8576119f7611c61565b5b611a0182611ca4565b9050602081019050919050565b600067ffffffffffffffff821115611a2957611a28611c61565b5b611a3282611ca4565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000611a8282611ac1565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015611b18578082015181840152602081019050611afd565b83811115611b27576000848401525b50505050565b6000611b3882611ae1565b91506000821415611b4c57611b4b611c03565b5b600182039050919050565b60006002820490506001821680611b6f57607f821691505b60208210811415611b8357611b82611c32565b5b50919050565b611b9282611ca4565b810181811067ffffffffffffffff82111715611bb157611bb0611c61565b5b80604052505050565b6000611bc582611ae1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611bf857611bf7611c03565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f414c52454144595f494e495449414c495a454400000000000000000000000000600082015250565b7f494e56414c49445f524543495049454e54000000000000000000000000000000600082015250565b7f5a45524f5f414444524553530000000000000000000000000000000000000000600082015250565b7f554e534146455f524543495049454e5400000000000000000000000000000000600082015250565b50565b7f4e4f545f415554484f52495a4544000000000000000000000000000000000000600082015250565b7f4e4f545f4d494e54454400000000000000000000000000000000000000000000600082015250565b7f57524f4e475f46524f4d00000000000000000000000000000000000000000000600082015250565b611de081611a77565b8114611deb57600080fd5b50565b611df781611a89565b8114611e0257600080fd5b50565b611e0e81611a95565b8114611e1957600080fd5b50565b611e2581611ae1565b8114611e3057600080fd5b5056fea264697066735822122096b381bcc1d3bc0c5ed578328f1d7697016e32ad0e05efb995b62d3457df066664736f6c63430008070033"; - -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 deploy( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy(overrides || {}) as Promise; - } - override getDeployTransaction( - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); - } - override attach(address: string): MockERC721 { - return super.attach(address) as MockERC721; - } - override connect(signer: Signer): MockERC721__factory { - return super.connect(signer) as MockERC721__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): MockERC721Interface { - return new utils.Interface(_abi) as MockERC721Interface; - } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): MockERC721 { - return new Contract(address, _abi, signerOrProvider) as MockERC721; - } -} diff --git a/typechain-types/factories/forge-std/mocks/index.ts b/typechain-types/factories/forge-std/mocks/index.ts deleted file mode 100644 index 81493a9e..00000000 --- a/typechain-types/factories/forge-std/mocks/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { MockERC20__factory } from "./MockERC20__factory"; -export { MockERC721__factory } from "./MockERC721__factory"; diff --git a/typechain-types/forge-std/StdAssertions.ts b/typechain-types/forge-std/StdAssertions.ts deleted file mode 100644 index faa5b50a..00000000 --- a/typechain-types/forge-std/StdAssertions.ts +++ /dev/null @@ -1,457 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BytesLike, - CallOverrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../common"; - -export interface StdAssertionsInterface extends utils.Interface { - functions: { - "failed()": FunctionFragment; - }; - - getFunction(nameOrSignatureOrTopic: "failed"): FunctionFragment; - - encodeFunctionData(functionFragment: "failed", values?: undefined): string; - - decodeFunctionResult(functionFragment: "failed", data: BytesLike): Result; - - events: { - "log(string)": EventFragment; - "log_address(address)": EventFragment; - "log_array(uint256[])": EventFragment; - "log_array(int256[])": EventFragment; - "log_array(address[])": EventFragment; - "log_bytes(bytes)": EventFragment; - "log_bytes32(bytes32)": EventFragment; - "log_int(int256)": EventFragment; - "log_named_address(string,address)": EventFragment; - "log_named_array(string,uint256[])": EventFragment; - "log_named_array(string,int256[])": EventFragment; - "log_named_array(string,address[])": EventFragment; - "log_named_bytes(string,bytes)": EventFragment; - "log_named_bytes32(string,bytes32)": EventFragment; - "log_named_decimal_int(string,int256,uint256)": EventFragment; - "log_named_decimal_uint(string,uint256,uint256)": EventFragment; - "log_named_int(string,int256)": EventFragment; - "log_named_string(string,string)": EventFragment; - "log_named_uint(string,uint256)": EventFragment; - "log_string(string)": EventFragment; - "log_uint(uint256)": EventFragment; - "logs(bytes)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "log"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_address"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_array(uint256[])"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_array(int256[])"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_array(address[])"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_bytes"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_bytes32"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_int"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_address"): EventFragment; - getEvent( - nameOrSignatureOrTopic: "log_named_array(string,uint256[])" - ): EventFragment; - getEvent( - nameOrSignatureOrTopic: "log_named_array(string,int256[])" - ): EventFragment; - getEvent( - nameOrSignatureOrTopic: "log_named_array(string,address[])" - ): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_bytes"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_bytes32"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_decimal_int"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_decimal_uint"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_int"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_string"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_uint"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_string"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_uint"): EventFragment; - getEvent(nameOrSignatureOrTopic: "logs"): EventFragment; -} - -export interface logEventObject { - arg0: string; -} -export type logEvent = TypedEvent<[string], logEventObject>; - -export type logEventFilter = TypedEventFilter; - -export interface log_addressEventObject { - arg0: string; -} -export type log_addressEvent = TypedEvent<[string], log_addressEventObject>; - -export type log_addressEventFilter = TypedEventFilter; - -export interface log_array_uint256_array_EventObject { - val: BigNumber[]; -} -export type log_array_uint256_array_Event = TypedEvent< - [BigNumber[]], - log_array_uint256_array_EventObject ->; - -export type log_array_uint256_array_EventFilter = - TypedEventFilter; - -export interface log_array_int256_array_EventObject { - val: BigNumber[]; -} -export type log_array_int256_array_Event = TypedEvent< - [BigNumber[]], - log_array_int256_array_EventObject ->; - -export type log_array_int256_array_EventFilter = - TypedEventFilter; - -export interface log_array_address_array_EventObject { - val: string[]; -} -export type log_array_address_array_Event = TypedEvent< - [string[]], - log_array_address_array_EventObject ->; - -export type log_array_address_array_EventFilter = - TypedEventFilter; - -export interface log_bytesEventObject { - arg0: string; -} -export type log_bytesEvent = TypedEvent<[string], log_bytesEventObject>; - -export type log_bytesEventFilter = TypedEventFilter; - -export interface log_bytes32EventObject { - arg0: string; -} -export type log_bytes32Event = TypedEvent<[string], log_bytes32EventObject>; - -export type log_bytes32EventFilter = TypedEventFilter; - -export interface log_intEventObject { - arg0: BigNumber; -} -export type log_intEvent = TypedEvent<[BigNumber], log_intEventObject>; - -export type log_intEventFilter = TypedEventFilter; - -export interface log_named_addressEventObject { - key: string; - val: string; -} -export type log_named_addressEvent = TypedEvent< - [string, string], - log_named_addressEventObject ->; - -export type log_named_addressEventFilter = - TypedEventFilter; - -export interface log_named_array_string_uint256_array_EventObject { - key: string; - val: BigNumber[]; -} -export type log_named_array_string_uint256_array_Event = TypedEvent< - [string, BigNumber[]], - log_named_array_string_uint256_array_EventObject ->; - -export type log_named_array_string_uint256_array_EventFilter = - TypedEventFilter; - -export interface log_named_array_string_int256_array_EventObject { - key: string; - val: BigNumber[]; -} -export type log_named_array_string_int256_array_Event = TypedEvent< - [string, BigNumber[]], - log_named_array_string_int256_array_EventObject ->; - -export type log_named_array_string_int256_array_EventFilter = - TypedEventFilter; - -export interface log_named_array_string_address_array_EventObject { - key: string; - val: string[]; -} -export type log_named_array_string_address_array_Event = TypedEvent< - [string, string[]], - log_named_array_string_address_array_EventObject ->; - -export type log_named_array_string_address_array_EventFilter = - TypedEventFilter; - -export interface log_named_bytesEventObject { - key: string; - val: string; -} -export type log_named_bytesEvent = TypedEvent< - [string, string], - log_named_bytesEventObject ->; - -export type log_named_bytesEventFilter = TypedEventFilter; - -export interface log_named_bytes32EventObject { - key: string; - val: string; -} -export type log_named_bytes32Event = TypedEvent< - [string, string], - log_named_bytes32EventObject ->; - -export type log_named_bytes32EventFilter = - TypedEventFilter; - -export interface log_named_decimal_intEventObject { - key: string; - val: BigNumber; - decimals: BigNumber; -} -export type log_named_decimal_intEvent = TypedEvent< - [string, BigNumber, BigNumber], - log_named_decimal_intEventObject ->; - -export type log_named_decimal_intEventFilter = - TypedEventFilter; - -export interface log_named_decimal_uintEventObject { - key: string; - val: BigNumber; - decimals: BigNumber; -} -export type log_named_decimal_uintEvent = TypedEvent< - [string, BigNumber, BigNumber], - log_named_decimal_uintEventObject ->; - -export type log_named_decimal_uintEventFilter = - TypedEventFilter; - -export interface log_named_intEventObject { - key: string; - val: BigNumber; -} -export type log_named_intEvent = TypedEvent< - [string, BigNumber], - log_named_intEventObject ->; - -export type log_named_intEventFilter = TypedEventFilter; - -export interface log_named_stringEventObject { - key: string; - val: string; -} -export type log_named_stringEvent = TypedEvent< - [string, string], - log_named_stringEventObject ->; - -export type log_named_stringEventFilter = - TypedEventFilter; - -export interface log_named_uintEventObject { - key: string; - val: BigNumber; -} -export type log_named_uintEvent = TypedEvent< - [string, BigNumber], - log_named_uintEventObject ->; - -export type log_named_uintEventFilter = TypedEventFilter; - -export interface log_stringEventObject { - arg0: string; -} -export type log_stringEvent = TypedEvent<[string], log_stringEventObject>; - -export type log_stringEventFilter = TypedEventFilter; - -export interface log_uintEventObject { - arg0: BigNumber; -} -export type log_uintEvent = TypedEvent<[BigNumber], log_uintEventObject>; - -export type log_uintEventFilter = TypedEventFilter; - -export interface logsEventObject { - arg0: string; -} -export type logsEvent = TypedEvent<[string], logsEventObject>; - -export type logsEventFilter = TypedEventFilter; - -export interface StdAssertions extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: StdAssertionsInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - failed(overrides?: CallOverrides): Promise<[boolean]>; - }; - - failed(overrides?: CallOverrides): Promise; - - callStatic: { - failed(overrides?: CallOverrides): Promise; - }; - - filters: { - "log(string)"(arg0?: null): logEventFilter; - log(arg0?: null): logEventFilter; - - "log_address(address)"(arg0?: null): log_addressEventFilter; - log_address(arg0?: null): log_addressEventFilter; - - "log_array(uint256[])"(val?: null): log_array_uint256_array_EventFilter; - "log_array(int256[])"(val?: null): log_array_int256_array_EventFilter; - "log_array(address[])"(val?: null): log_array_address_array_EventFilter; - - "log_bytes(bytes)"(arg0?: null): log_bytesEventFilter; - log_bytes(arg0?: null): log_bytesEventFilter; - - "log_bytes32(bytes32)"(arg0?: null): log_bytes32EventFilter; - log_bytes32(arg0?: null): log_bytes32EventFilter; - - "log_int(int256)"(arg0?: null): log_intEventFilter; - log_int(arg0?: null): log_intEventFilter; - - "log_named_address(string,address)"( - key?: null, - val?: null - ): log_named_addressEventFilter; - log_named_address(key?: null, val?: null): log_named_addressEventFilter; - - "log_named_array(string,uint256[])"( - key?: null, - val?: null - ): log_named_array_string_uint256_array_EventFilter; - "log_named_array(string,int256[])"( - key?: null, - val?: null - ): log_named_array_string_int256_array_EventFilter; - "log_named_array(string,address[])"( - key?: null, - val?: null - ): log_named_array_string_address_array_EventFilter; - - "log_named_bytes(string,bytes)"( - key?: null, - val?: null - ): log_named_bytesEventFilter; - log_named_bytes(key?: null, val?: null): log_named_bytesEventFilter; - - "log_named_bytes32(string,bytes32)"( - key?: null, - val?: null - ): log_named_bytes32EventFilter; - log_named_bytes32(key?: null, val?: null): log_named_bytes32EventFilter; - - "log_named_decimal_int(string,int256,uint256)"( - key?: null, - val?: null, - decimals?: null - ): log_named_decimal_intEventFilter; - log_named_decimal_int( - key?: null, - val?: null, - decimals?: null - ): log_named_decimal_intEventFilter; - - "log_named_decimal_uint(string,uint256,uint256)"( - key?: null, - val?: null, - decimals?: null - ): log_named_decimal_uintEventFilter; - log_named_decimal_uint( - key?: null, - val?: null, - decimals?: null - ): log_named_decimal_uintEventFilter; - - "log_named_int(string,int256)"( - key?: null, - val?: null - ): log_named_intEventFilter; - log_named_int(key?: null, val?: null): log_named_intEventFilter; - - "log_named_string(string,string)"( - key?: null, - val?: null - ): log_named_stringEventFilter; - log_named_string(key?: null, val?: null): log_named_stringEventFilter; - - "log_named_uint(string,uint256)"( - key?: null, - val?: null - ): log_named_uintEventFilter; - log_named_uint(key?: null, val?: null): log_named_uintEventFilter; - - "log_string(string)"(arg0?: null): log_stringEventFilter; - log_string(arg0?: null): log_stringEventFilter; - - "log_uint(uint256)"(arg0?: null): log_uintEventFilter; - log_uint(arg0?: null): log_uintEventFilter; - - "logs(bytes)"(arg0?: null): logsEventFilter; - logs(arg0?: null): logsEventFilter; - }; - - estimateGas: { - failed(overrides?: CallOverrides): Promise; - }; - - populateTransaction: { - failed(overrides?: CallOverrides): Promise; - }; -} diff --git a/typechain-types/forge-std/StdError.sol/StdError.ts b/typechain-types/forge-std/StdError.sol/StdError.ts deleted file mode 100644 index 1a90c16e..00000000 --- a/typechain-types/forge-std/StdError.sol/StdError.ts +++ /dev/null @@ -1,249 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BytesLike, - CallOverrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { FunctionFragment, Result } from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../common"; - -export interface StdErrorInterface extends utils.Interface { - functions: { - "arithmeticError()": FunctionFragment; - "assertionError()": FunctionFragment; - "divisionError()": FunctionFragment; - "encodeStorageError()": FunctionFragment; - "enumConversionError()": FunctionFragment; - "indexOOBError()": FunctionFragment; - "memOverflowError()": FunctionFragment; - "popError()": FunctionFragment; - "zeroVarError()": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "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; - - events: {}; -} - -export interface StdError extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: StdErrorInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - arithmeticError(overrides?: CallOverrides): Promise<[string]>; - - assertionError(overrides?: CallOverrides): Promise<[string]>; - - divisionError(overrides?: CallOverrides): Promise<[string]>; - - encodeStorageError(overrides?: CallOverrides): Promise<[string]>; - - enumConversionError(overrides?: CallOverrides): Promise<[string]>; - - indexOOBError(overrides?: CallOverrides): Promise<[string]>; - - memOverflowError(overrides?: CallOverrides): Promise<[string]>; - - popError(overrides?: CallOverrides): Promise<[string]>; - - zeroVarError(overrides?: CallOverrides): Promise<[string]>; - }; - - arithmeticError(overrides?: CallOverrides): Promise; - - assertionError(overrides?: CallOverrides): Promise; - - divisionError(overrides?: CallOverrides): Promise; - - encodeStorageError(overrides?: CallOverrides): Promise; - - enumConversionError(overrides?: CallOverrides): Promise; - - indexOOBError(overrides?: CallOverrides): Promise; - - memOverflowError(overrides?: CallOverrides): Promise; - - popError(overrides?: CallOverrides): Promise; - - zeroVarError(overrides?: CallOverrides): Promise; - - callStatic: { - arithmeticError(overrides?: CallOverrides): Promise; - - assertionError(overrides?: CallOverrides): Promise; - - divisionError(overrides?: CallOverrides): Promise; - - encodeStorageError(overrides?: CallOverrides): Promise; - - enumConversionError(overrides?: CallOverrides): Promise; - - indexOOBError(overrides?: CallOverrides): Promise; - - memOverflowError(overrides?: CallOverrides): Promise; - - popError(overrides?: CallOverrides): Promise; - - zeroVarError(overrides?: CallOverrides): Promise; - }; - - filters: {}; - - estimateGas: { - arithmeticError(overrides?: CallOverrides): Promise; - - assertionError(overrides?: CallOverrides): Promise; - - divisionError(overrides?: CallOverrides): Promise; - - encodeStorageError(overrides?: CallOverrides): Promise; - - enumConversionError(overrides?: CallOverrides): Promise; - - indexOOBError(overrides?: CallOverrides): Promise; - - memOverflowError(overrides?: CallOverrides): Promise; - - popError(overrides?: CallOverrides): Promise; - - zeroVarError(overrides?: CallOverrides): Promise; - }; - - populateTransaction: { - arithmeticError(overrides?: CallOverrides): Promise; - - assertionError(overrides?: CallOverrides): Promise; - - divisionError(overrides?: CallOverrides): Promise; - - encodeStorageError( - overrides?: CallOverrides - ): Promise; - - enumConversionError( - overrides?: CallOverrides - ): Promise; - - indexOOBError(overrides?: CallOverrides): Promise; - - memOverflowError(overrides?: CallOverrides): Promise; - - popError(overrides?: CallOverrides): Promise; - - zeroVarError(overrides?: CallOverrides): Promise; - }; -} diff --git a/typechain-types/forge-std/StdInvariant.ts b/typechain-types/forge-std/StdInvariant.ts deleted file mode 100644 index f104b23c..00000000 --- a/typechain-types/forge-std/StdInvariant.ts +++ /dev/null @@ -1,357 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BytesLike, - CallOverrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { FunctionFragment, Result } from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../common"; - -export declare namespace StdInvariant { - export type FuzzSelectorStruct = { - addr: PromiseOrValue; - selectors: PromiseOrValue[]; - }; - - export type FuzzSelectorStructOutput = [string, string[]] & { - addr: string; - selectors: string[]; - }; - - export type FuzzArtifactSelectorStruct = { - artifact: PromiseOrValue; - selectors: PromiseOrValue[]; - }; - - export type FuzzArtifactSelectorStructOutput = [string, string[]] & { - artifact: string; - selectors: string[]; - }; - - export type FuzzInterfaceStruct = { - addr: PromiseOrValue; - artifacts: PromiseOrValue[]; - }; - - export type FuzzInterfaceStructOutput = [string, string[]] & { - addr: string; - artifacts: string[]; - }; -} - -export interface StdInvariantInterface extends utils.Interface { - functions: { - "excludeArtifacts()": FunctionFragment; - "excludeContracts()": FunctionFragment; - "excludeSelectors()": FunctionFragment; - "excludeSenders()": FunctionFragment; - "targetArtifactSelectors()": FunctionFragment; - "targetArtifacts()": FunctionFragment; - "targetContracts()": FunctionFragment; - "targetInterfaces()": FunctionFragment; - "targetSelectors()": FunctionFragment; - "targetSenders()": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "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; - - events: {}; -} - -export interface StdInvariant extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: StdInvariantInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - excludeArtifacts( - overrides?: CallOverrides - ): Promise<[string[]] & { excludedArtifacts_: string[] }>; - - excludeContracts( - overrides?: CallOverrides - ): Promise<[string[]] & { excludedContracts_: string[] }>; - - excludeSelectors( - overrides?: CallOverrides - ): Promise< - [StdInvariant.FuzzSelectorStructOutput[]] & { - excludedSelectors_: StdInvariant.FuzzSelectorStructOutput[]; - } - >; - - excludeSenders( - overrides?: CallOverrides - ): Promise<[string[]] & { excludedSenders_: string[] }>; - - targetArtifactSelectors( - overrides?: CallOverrides - ): Promise< - [StdInvariant.FuzzArtifactSelectorStructOutput[]] & { - targetedArtifactSelectors_: StdInvariant.FuzzArtifactSelectorStructOutput[]; - } - >; - - targetArtifacts( - overrides?: CallOverrides - ): Promise<[string[]] & { targetedArtifacts_: string[] }>; - - targetContracts( - overrides?: CallOverrides - ): Promise<[string[]] & { targetedContracts_: string[] }>; - - targetInterfaces( - overrides?: CallOverrides - ): Promise< - [StdInvariant.FuzzInterfaceStructOutput[]] & { - targetedInterfaces_: StdInvariant.FuzzInterfaceStructOutput[]; - } - >; - - targetSelectors( - overrides?: CallOverrides - ): Promise< - [StdInvariant.FuzzSelectorStructOutput[]] & { - targetedSelectors_: StdInvariant.FuzzSelectorStructOutput[]; - } - >; - - targetSenders( - overrides?: CallOverrides - ): Promise<[string[]] & { targetedSenders_: string[] }>; - }; - - excludeArtifacts(overrides?: CallOverrides): Promise; - - excludeContracts(overrides?: CallOverrides): Promise; - - excludeSelectors( - overrides?: CallOverrides - ): Promise; - - excludeSenders(overrides?: CallOverrides): Promise; - - targetArtifactSelectors( - overrides?: CallOverrides - ): Promise; - - targetArtifacts(overrides?: CallOverrides): Promise; - - targetContracts(overrides?: CallOverrides): Promise; - - targetInterfaces( - overrides?: CallOverrides - ): Promise; - - targetSelectors( - overrides?: CallOverrides - ): Promise; - - targetSenders(overrides?: CallOverrides): Promise; - - callStatic: { - excludeArtifacts(overrides?: CallOverrides): Promise; - - excludeContracts(overrides?: CallOverrides): Promise; - - excludeSelectors( - overrides?: CallOverrides - ): Promise; - - excludeSenders(overrides?: CallOverrides): Promise; - - targetArtifactSelectors( - overrides?: CallOverrides - ): Promise; - - targetArtifacts(overrides?: CallOverrides): Promise; - - targetContracts(overrides?: CallOverrides): Promise; - - targetInterfaces( - overrides?: CallOverrides - ): Promise; - - targetSelectors( - overrides?: CallOverrides - ): Promise; - - targetSenders(overrides?: CallOverrides): Promise; - }; - - filters: {}; - - estimateGas: { - excludeArtifacts(overrides?: CallOverrides): Promise; - - excludeContracts(overrides?: CallOverrides): Promise; - - excludeSelectors(overrides?: CallOverrides): Promise; - - excludeSenders(overrides?: CallOverrides): Promise; - - targetArtifactSelectors(overrides?: CallOverrides): Promise; - - targetArtifacts(overrides?: CallOverrides): Promise; - - targetContracts(overrides?: CallOverrides): Promise; - - targetInterfaces(overrides?: CallOverrides): Promise; - - targetSelectors(overrides?: CallOverrides): Promise; - - targetSenders(overrides?: CallOverrides): Promise; - }; - - populateTransaction: { - excludeArtifacts(overrides?: CallOverrides): Promise; - - excludeContracts(overrides?: CallOverrides): Promise; - - excludeSelectors(overrides?: CallOverrides): Promise; - - excludeSenders(overrides?: CallOverrides): Promise; - - targetArtifactSelectors( - overrides?: CallOverrides - ): Promise; - - targetArtifacts(overrides?: CallOverrides): Promise; - - targetContracts(overrides?: CallOverrides): Promise; - - targetInterfaces(overrides?: CallOverrides): Promise; - - targetSelectors(overrides?: CallOverrides): Promise; - - targetSenders(overrides?: CallOverrides): Promise; - }; -} diff --git a/typechain-types/forge-std/StdStorage.sol/StdStorageSafe.ts b/typechain-types/forge-std/StdStorage.sol/StdStorageSafe.ts deleted file mode 100644 index d4c1eb04..00000000 --- a/typechain-types/forge-std/StdStorage.sol/StdStorageSafe.ts +++ /dev/null @@ -1,109 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { BaseContract, BigNumber, Signer, utils } from "ethers"; -import type { EventFragment } from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../common"; - -export interface StdStorageSafeInterface extends utils.Interface { - functions: {}; - - events: { - "SlotFound(address,bytes4,bytes32,uint256)": EventFragment; - "WARNING_UninitedSlot(address,uint256)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "SlotFound"): EventFragment; - getEvent(nameOrSignatureOrTopic: "WARNING_UninitedSlot"): EventFragment; -} - -export interface SlotFoundEventObject { - who: string; - fsig: string; - keysHash: string; - slot: BigNumber; -} -export type SlotFoundEvent = TypedEvent< - [string, string, string, BigNumber], - SlotFoundEventObject ->; - -export type SlotFoundEventFilter = TypedEventFilter; - -export interface WARNING_UninitedSlotEventObject { - who: string; - slot: BigNumber; -} -export type WARNING_UninitedSlotEvent = TypedEvent< - [string, BigNumber], - WARNING_UninitedSlotEventObject ->; - -export type WARNING_UninitedSlotEventFilter = - TypedEventFilter; - -export interface StdStorageSafe extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: StdStorageSafeInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: {}; - - callStatic: {}; - - filters: { - "SlotFound(address,bytes4,bytes32,uint256)"( - who?: null, - fsig?: null, - keysHash?: null, - slot?: null - ): SlotFoundEventFilter; - SlotFound( - who?: null, - fsig?: null, - keysHash?: null, - slot?: null - ): SlotFoundEventFilter; - - "WARNING_UninitedSlot(address,uint256)"( - who?: null, - slot?: null - ): WARNING_UninitedSlotEventFilter; - WARNING_UninitedSlot( - who?: null, - slot?: null - ): WARNING_UninitedSlotEventFilter; - }; - - estimateGas: {}; - - populateTransaction: {}; -} diff --git a/typechain-types/forge-std/Test.ts b/typechain-types/forge-std/Test.ts deleted file mode 100644 index b1a7e754..00000000 --- a/typechain-types/forge-std/Test.ts +++ /dev/null @@ -1,760 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BytesLike, - CallOverrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../common"; - -export declare namespace StdInvariant { - export type FuzzSelectorStruct = { - addr: PromiseOrValue; - selectors: PromiseOrValue[]; - }; - - export type FuzzSelectorStructOutput = [string, string[]] & { - addr: string; - selectors: string[]; - }; - - export type FuzzArtifactSelectorStruct = { - artifact: PromiseOrValue; - selectors: PromiseOrValue[]; - }; - - export type FuzzArtifactSelectorStructOutput = [string, string[]] & { - artifact: string; - selectors: string[]; - }; - - export type FuzzInterfaceStruct = { - addr: PromiseOrValue; - artifacts: PromiseOrValue[]; - }; - - export type FuzzInterfaceStructOutput = [string, string[]] & { - addr: string; - artifacts: string[]; - }; -} - -export interface TestInterface extends utils.Interface { - functions: { - "IS_TEST()": FunctionFragment; - "excludeArtifacts()": FunctionFragment; - "excludeContracts()": FunctionFragment; - "excludeSelectors()": FunctionFragment; - "excludeSenders()": FunctionFragment; - "failed()": FunctionFragment; - "targetArtifactSelectors()": FunctionFragment; - "targetArtifacts()": FunctionFragment; - "targetContracts()": FunctionFragment; - "targetInterfaces()": FunctionFragment; - "targetSelectors()": FunctionFragment; - "targetSenders()": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "IS_TEST" - | "excludeArtifacts" - | "excludeContracts" - | "excludeSelectors" - | "excludeSenders" - | "failed" - | "targetArtifactSelectors" - | "targetArtifacts" - | "targetContracts" - | "targetInterfaces" - | "targetSelectors" - | "targetSenders" - ): FunctionFragment; - - 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; - - events: { - "log(string)": EventFragment; - "log_address(address)": EventFragment; - "log_array(uint256[])": EventFragment; - "log_array(int256[])": EventFragment; - "log_array(address[])": EventFragment; - "log_bytes(bytes)": EventFragment; - "log_bytes32(bytes32)": EventFragment; - "log_int(int256)": EventFragment; - "log_named_address(string,address)": EventFragment; - "log_named_array(string,uint256[])": EventFragment; - "log_named_array(string,int256[])": EventFragment; - "log_named_array(string,address[])": EventFragment; - "log_named_bytes(string,bytes)": EventFragment; - "log_named_bytes32(string,bytes32)": EventFragment; - "log_named_decimal_int(string,int256,uint256)": EventFragment; - "log_named_decimal_uint(string,uint256,uint256)": EventFragment; - "log_named_int(string,int256)": EventFragment; - "log_named_string(string,string)": EventFragment; - "log_named_uint(string,uint256)": EventFragment; - "log_string(string)": EventFragment; - "log_uint(uint256)": EventFragment; - "logs(bytes)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "log"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_address"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_array(uint256[])"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_array(int256[])"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_array(address[])"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_bytes"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_bytes32"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_int"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_address"): EventFragment; - getEvent( - nameOrSignatureOrTopic: "log_named_array(string,uint256[])" - ): EventFragment; - getEvent( - nameOrSignatureOrTopic: "log_named_array(string,int256[])" - ): EventFragment; - getEvent( - nameOrSignatureOrTopic: "log_named_array(string,address[])" - ): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_bytes"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_bytes32"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_decimal_int"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_decimal_uint"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_int"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_string"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_named_uint"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_string"): EventFragment; - getEvent(nameOrSignatureOrTopic: "log_uint"): EventFragment; - getEvent(nameOrSignatureOrTopic: "logs"): EventFragment; -} - -export interface logEventObject { - arg0: string; -} -export type logEvent = TypedEvent<[string], logEventObject>; - -export type logEventFilter = TypedEventFilter; - -export interface log_addressEventObject { - arg0: string; -} -export type log_addressEvent = TypedEvent<[string], log_addressEventObject>; - -export type log_addressEventFilter = TypedEventFilter; - -export interface log_array_uint256_array_EventObject { - val: BigNumber[]; -} -export type log_array_uint256_array_Event = TypedEvent< - [BigNumber[]], - log_array_uint256_array_EventObject ->; - -export type log_array_uint256_array_EventFilter = - TypedEventFilter; - -export interface log_array_int256_array_EventObject { - val: BigNumber[]; -} -export type log_array_int256_array_Event = TypedEvent< - [BigNumber[]], - log_array_int256_array_EventObject ->; - -export type log_array_int256_array_EventFilter = - TypedEventFilter; - -export interface log_array_address_array_EventObject { - val: string[]; -} -export type log_array_address_array_Event = TypedEvent< - [string[]], - log_array_address_array_EventObject ->; - -export type log_array_address_array_EventFilter = - TypedEventFilter; - -export interface log_bytesEventObject { - arg0: string; -} -export type log_bytesEvent = TypedEvent<[string], log_bytesEventObject>; - -export type log_bytesEventFilter = TypedEventFilter; - -export interface log_bytes32EventObject { - arg0: string; -} -export type log_bytes32Event = TypedEvent<[string], log_bytes32EventObject>; - -export type log_bytes32EventFilter = TypedEventFilter; - -export interface log_intEventObject { - arg0: BigNumber; -} -export type log_intEvent = TypedEvent<[BigNumber], log_intEventObject>; - -export type log_intEventFilter = TypedEventFilter; - -export interface log_named_addressEventObject { - key: string; - val: string; -} -export type log_named_addressEvent = TypedEvent< - [string, string], - log_named_addressEventObject ->; - -export type log_named_addressEventFilter = - TypedEventFilter; - -export interface log_named_array_string_uint256_array_EventObject { - key: string; - val: BigNumber[]; -} -export type log_named_array_string_uint256_array_Event = TypedEvent< - [string, BigNumber[]], - log_named_array_string_uint256_array_EventObject ->; - -export type log_named_array_string_uint256_array_EventFilter = - TypedEventFilter; - -export interface log_named_array_string_int256_array_EventObject { - key: string; - val: BigNumber[]; -} -export type log_named_array_string_int256_array_Event = TypedEvent< - [string, BigNumber[]], - log_named_array_string_int256_array_EventObject ->; - -export type log_named_array_string_int256_array_EventFilter = - TypedEventFilter; - -export interface log_named_array_string_address_array_EventObject { - key: string; - val: string[]; -} -export type log_named_array_string_address_array_Event = TypedEvent< - [string, string[]], - log_named_array_string_address_array_EventObject ->; - -export type log_named_array_string_address_array_EventFilter = - TypedEventFilter; - -export interface log_named_bytesEventObject { - key: string; - val: string; -} -export type log_named_bytesEvent = TypedEvent< - [string, string], - log_named_bytesEventObject ->; - -export type log_named_bytesEventFilter = TypedEventFilter; - -export interface log_named_bytes32EventObject { - key: string; - val: string; -} -export type log_named_bytes32Event = TypedEvent< - [string, string], - log_named_bytes32EventObject ->; - -export type log_named_bytes32EventFilter = - TypedEventFilter; - -export interface log_named_decimal_intEventObject { - key: string; - val: BigNumber; - decimals: BigNumber; -} -export type log_named_decimal_intEvent = TypedEvent< - [string, BigNumber, BigNumber], - log_named_decimal_intEventObject ->; - -export type log_named_decimal_intEventFilter = - TypedEventFilter; - -export interface log_named_decimal_uintEventObject { - key: string; - val: BigNumber; - decimals: BigNumber; -} -export type log_named_decimal_uintEvent = TypedEvent< - [string, BigNumber, BigNumber], - log_named_decimal_uintEventObject ->; - -export type log_named_decimal_uintEventFilter = - TypedEventFilter; - -export interface log_named_intEventObject { - key: string; - val: BigNumber; -} -export type log_named_intEvent = TypedEvent< - [string, BigNumber], - log_named_intEventObject ->; - -export type log_named_intEventFilter = TypedEventFilter; - -export interface log_named_stringEventObject { - key: string; - val: string; -} -export type log_named_stringEvent = TypedEvent< - [string, string], - log_named_stringEventObject ->; - -export type log_named_stringEventFilter = - TypedEventFilter; - -export interface log_named_uintEventObject { - key: string; - val: BigNumber; -} -export type log_named_uintEvent = TypedEvent< - [string, BigNumber], - log_named_uintEventObject ->; - -export type log_named_uintEventFilter = TypedEventFilter; - -export interface log_stringEventObject { - arg0: string; -} -export type log_stringEvent = TypedEvent<[string], log_stringEventObject>; - -export type log_stringEventFilter = TypedEventFilter; - -export interface log_uintEventObject { - arg0: BigNumber; -} -export type log_uintEvent = TypedEvent<[BigNumber], log_uintEventObject>; - -export type log_uintEventFilter = TypedEventFilter; - -export interface logsEventObject { - arg0: string; -} -export type logsEvent = TypedEvent<[string], logsEventObject>; - -export type logsEventFilter = TypedEventFilter; - -export interface Test extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: TestInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - IS_TEST(overrides?: CallOverrides): Promise<[boolean]>; - - excludeArtifacts( - overrides?: CallOverrides - ): Promise<[string[]] & { excludedArtifacts_: string[] }>; - - excludeContracts( - overrides?: CallOverrides - ): Promise<[string[]] & { excludedContracts_: string[] }>; - - excludeSelectors( - overrides?: CallOverrides - ): Promise< - [StdInvariant.FuzzSelectorStructOutput[]] & { - excludedSelectors_: StdInvariant.FuzzSelectorStructOutput[]; - } - >; - - excludeSenders( - overrides?: CallOverrides - ): Promise<[string[]] & { excludedSenders_: string[] }>; - - failed(overrides?: CallOverrides): Promise<[boolean]>; - - targetArtifactSelectors( - overrides?: CallOverrides - ): Promise< - [StdInvariant.FuzzArtifactSelectorStructOutput[]] & { - targetedArtifactSelectors_: StdInvariant.FuzzArtifactSelectorStructOutput[]; - } - >; - - targetArtifacts( - overrides?: CallOverrides - ): Promise<[string[]] & { targetedArtifacts_: string[] }>; - - targetContracts( - overrides?: CallOverrides - ): Promise<[string[]] & { targetedContracts_: string[] }>; - - targetInterfaces( - overrides?: CallOverrides - ): Promise< - [StdInvariant.FuzzInterfaceStructOutput[]] & { - targetedInterfaces_: StdInvariant.FuzzInterfaceStructOutput[]; - } - >; - - targetSelectors( - overrides?: CallOverrides - ): Promise< - [StdInvariant.FuzzSelectorStructOutput[]] & { - targetedSelectors_: StdInvariant.FuzzSelectorStructOutput[]; - } - >; - - targetSenders( - overrides?: CallOverrides - ): Promise<[string[]] & { targetedSenders_: string[] }>; - }; - - IS_TEST(overrides?: CallOverrides): Promise; - - excludeArtifacts(overrides?: CallOverrides): Promise; - - excludeContracts(overrides?: CallOverrides): Promise; - - excludeSelectors( - overrides?: CallOverrides - ): Promise; - - excludeSenders(overrides?: CallOverrides): Promise; - - failed(overrides?: CallOverrides): Promise; - - targetArtifactSelectors( - overrides?: CallOverrides - ): Promise; - - targetArtifacts(overrides?: CallOverrides): Promise; - - targetContracts(overrides?: CallOverrides): Promise; - - targetInterfaces( - overrides?: CallOverrides - ): Promise; - - targetSelectors( - overrides?: CallOverrides - ): Promise; - - targetSenders(overrides?: CallOverrides): Promise; - - callStatic: { - IS_TEST(overrides?: CallOverrides): Promise; - - excludeArtifacts(overrides?: CallOverrides): Promise; - - excludeContracts(overrides?: CallOverrides): Promise; - - excludeSelectors( - overrides?: CallOverrides - ): Promise; - - excludeSenders(overrides?: CallOverrides): Promise; - - failed(overrides?: CallOverrides): Promise; - - targetArtifactSelectors( - overrides?: CallOverrides - ): Promise; - - targetArtifacts(overrides?: CallOverrides): Promise; - - targetContracts(overrides?: CallOverrides): Promise; - - targetInterfaces( - overrides?: CallOverrides - ): Promise; - - targetSelectors( - overrides?: CallOverrides - ): Promise; - - targetSenders(overrides?: CallOverrides): Promise; - }; - - filters: { - "log(string)"(arg0?: null): logEventFilter; - log(arg0?: null): logEventFilter; - - "log_address(address)"(arg0?: null): log_addressEventFilter; - log_address(arg0?: null): log_addressEventFilter; - - "log_array(uint256[])"(val?: null): log_array_uint256_array_EventFilter; - "log_array(int256[])"(val?: null): log_array_int256_array_EventFilter; - "log_array(address[])"(val?: null): log_array_address_array_EventFilter; - - "log_bytes(bytes)"(arg0?: null): log_bytesEventFilter; - log_bytes(arg0?: null): log_bytesEventFilter; - - "log_bytes32(bytes32)"(arg0?: null): log_bytes32EventFilter; - log_bytes32(arg0?: null): log_bytes32EventFilter; - - "log_int(int256)"(arg0?: null): log_intEventFilter; - log_int(arg0?: null): log_intEventFilter; - - "log_named_address(string,address)"( - key?: null, - val?: null - ): log_named_addressEventFilter; - log_named_address(key?: null, val?: null): log_named_addressEventFilter; - - "log_named_array(string,uint256[])"( - key?: null, - val?: null - ): log_named_array_string_uint256_array_EventFilter; - "log_named_array(string,int256[])"( - key?: null, - val?: null - ): log_named_array_string_int256_array_EventFilter; - "log_named_array(string,address[])"( - key?: null, - val?: null - ): log_named_array_string_address_array_EventFilter; - - "log_named_bytes(string,bytes)"( - key?: null, - val?: null - ): log_named_bytesEventFilter; - log_named_bytes(key?: null, val?: null): log_named_bytesEventFilter; - - "log_named_bytes32(string,bytes32)"( - key?: null, - val?: null - ): log_named_bytes32EventFilter; - log_named_bytes32(key?: null, val?: null): log_named_bytes32EventFilter; - - "log_named_decimal_int(string,int256,uint256)"( - key?: null, - val?: null, - decimals?: null - ): log_named_decimal_intEventFilter; - log_named_decimal_int( - key?: null, - val?: null, - decimals?: null - ): log_named_decimal_intEventFilter; - - "log_named_decimal_uint(string,uint256,uint256)"( - key?: null, - val?: null, - decimals?: null - ): log_named_decimal_uintEventFilter; - log_named_decimal_uint( - key?: null, - val?: null, - decimals?: null - ): log_named_decimal_uintEventFilter; - - "log_named_int(string,int256)"( - key?: null, - val?: null - ): log_named_intEventFilter; - log_named_int(key?: null, val?: null): log_named_intEventFilter; - - "log_named_string(string,string)"( - key?: null, - val?: null - ): log_named_stringEventFilter; - log_named_string(key?: null, val?: null): log_named_stringEventFilter; - - "log_named_uint(string,uint256)"( - key?: null, - val?: null - ): log_named_uintEventFilter; - log_named_uint(key?: null, val?: null): log_named_uintEventFilter; - - "log_string(string)"(arg0?: null): log_stringEventFilter; - log_string(arg0?: null): log_stringEventFilter; - - "log_uint(uint256)"(arg0?: null): log_uintEventFilter; - log_uint(arg0?: null): log_uintEventFilter; - - "logs(bytes)"(arg0?: null): logsEventFilter; - logs(arg0?: null): logsEventFilter; - }; - - estimateGas: { - IS_TEST(overrides?: CallOverrides): Promise; - - excludeArtifacts(overrides?: CallOverrides): Promise; - - excludeContracts(overrides?: CallOverrides): Promise; - - excludeSelectors(overrides?: CallOverrides): Promise; - - excludeSenders(overrides?: CallOverrides): Promise; - - failed(overrides?: CallOverrides): Promise; - - targetArtifactSelectors(overrides?: CallOverrides): Promise; - - targetArtifacts(overrides?: CallOverrides): Promise; - - targetContracts(overrides?: CallOverrides): Promise; - - targetInterfaces(overrides?: CallOverrides): Promise; - - targetSelectors(overrides?: CallOverrides): Promise; - - targetSenders(overrides?: CallOverrides): Promise; - }; - - populateTransaction: { - IS_TEST(overrides?: CallOverrides): Promise; - - excludeArtifacts(overrides?: CallOverrides): Promise; - - excludeContracts(overrides?: CallOverrides): Promise; - - excludeSelectors(overrides?: CallOverrides): Promise; - - excludeSenders(overrides?: CallOverrides): Promise; - - failed(overrides?: CallOverrides): Promise; - - targetArtifactSelectors( - overrides?: CallOverrides - ): Promise; - - targetArtifacts(overrides?: CallOverrides): Promise; - - targetContracts(overrides?: CallOverrides): Promise; - - targetInterfaces(overrides?: CallOverrides): Promise; - - targetSelectors(overrides?: CallOverrides): Promise; - - targetSenders(overrides?: CallOverrides): Promise; - }; -} diff --git a/typechain-types/forge-std/Vm.sol/Vm.ts b/typechain-types/forge-std/Vm.sol/Vm.ts deleted file mode 100644 index a7b56645..00000000 --- a/typechain-types/forge-std/Vm.sol/Vm.ts +++ /dev/null @@ -1,16207 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { FunctionFragment, Result } from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../common"; - -export declare namespace VmSafe { - export type WalletStruct = { - addr: PromiseOrValue; - publicKeyX: PromiseOrValue; - publicKeyY: PromiseOrValue; - privateKey: PromiseOrValue; - }; - - export type WalletStructOutput = [string, BigNumber, BigNumber, BigNumber] & { - addr: string; - publicKeyX: BigNumber; - publicKeyY: BigNumber; - privateKey: BigNumber; - }; - - export type EthGetLogsStruct = { - emitter: PromiseOrValue; - topics: PromiseOrValue[]; - data: PromiseOrValue; - blockHash: PromiseOrValue; - blockNumber: PromiseOrValue; - transactionHash: PromiseOrValue; - transactionIndex: PromiseOrValue; - logIndex: PromiseOrValue; - removed: PromiseOrValue; - }; - - export type EthGetLogsStructOutput = [ - string, - string[], - string, - string, - BigNumber, - string, - BigNumber, - BigNumber, - boolean - ] & { - emitter: string; - topics: string[]; - data: string; - blockHash: string; - blockNumber: BigNumber; - transactionHash: string; - transactionIndex: BigNumber; - logIndex: BigNumber; - removed: boolean; - }; - - export type FsMetadataStruct = { - isDir: PromiseOrValue; - isSymlink: PromiseOrValue; - length: PromiseOrValue; - readOnly: PromiseOrValue; - modified: PromiseOrValue; - accessed: PromiseOrValue; - created: PromiseOrValue; - }; - - export type FsMetadataStructOutput = [ - boolean, - boolean, - BigNumber, - boolean, - BigNumber, - BigNumber, - BigNumber - ] & { - isDir: boolean; - isSymlink: boolean; - length: BigNumber; - readOnly: boolean; - modified: BigNumber; - accessed: BigNumber; - created: BigNumber; - }; - - export type LogStruct = { - topics: PromiseOrValue[]; - data: PromiseOrValue; - emitter: PromiseOrValue; - }; - - export type LogStructOutput = [string[], string, string] & { - topics: string[]; - data: string; - emitter: string; - }; - - export type GasStruct = { - gasLimit: PromiseOrValue; - gasTotalUsed: PromiseOrValue; - gasMemoryUsed: PromiseOrValue; - gasRefunded: PromiseOrValue; - gasRemaining: PromiseOrValue; - }; - - export type GasStructOutput = [ - BigNumber, - BigNumber, - BigNumber, - BigNumber, - BigNumber - ] & { - gasLimit: BigNumber; - gasTotalUsed: BigNumber; - gasMemoryUsed: BigNumber; - gasRefunded: BigNumber; - gasRemaining: BigNumber; - }; - - export type DirEntryStruct = { - errorMessage: PromiseOrValue; - path: PromiseOrValue; - depth: PromiseOrValue; - isDir: PromiseOrValue; - isSymlink: PromiseOrValue; - }; - - export type DirEntryStructOutput = [ - string, - string, - BigNumber, - boolean, - boolean - ] & { - errorMessage: string; - path: string; - depth: BigNumber; - isDir: boolean; - isSymlink: boolean; - }; - - export type RpcStruct = { - key: PromiseOrValue; - url: PromiseOrValue; - }; - - export type RpcStructOutput = [string, string] & { key: string; url: string }; - - export type ChainInfoStruct = { - forkId: PromiseOrValue; - chainId: PromiseOrValue; - }; - - export type ChainInfoStructOutput = [BigNumber, BigNumber] & { - forkId: BigNumber; - chainId: BigNumber; - }; - - export type StorageAccessStruct = { - account: PromiseOrValue; - slot: PromiseOrValue; - isWrite: PromiseOrValue; - previousValue: PromiseOrValue; - newValue: PromiseOrValue; - reverted: PromiseOrValue; - }; - - export type StorageAccessStructOutput = [ - string, - string, - boolean, - string, - string, - boolean - ] & { - account: string; - slot: string; - isWrite: boolean; - previousValue: string; - newValue: string; - reverted: boolean; - }; - - export type AccountAccessStruct = { - chainInfo: VmSafe.ChainInfoStruct; - kind: PromiseOrValue; - account: PromiseOrValue; - accessor: PromiseOrValue; - initialized: PromiseOrValue; - oldBalance: PromiseOrValue; - newBalance: PromiseOrValue; - deployedCode: PromiseOrValue; - value: PromiseOrValue; - data: PromiseOrValue; - reverted: PromiseOrValue; - storageAccesses: VmSafe.StorageAccessStruct[]; - depth: PromiseOrValue; - }; - - export type AccountAccessStructOutput = [ - VmSafe.ChainInfoStructOutput, - number, - string, - string, - boolean, - BigNumber, - BigNumber, - string, - BigNumber, - string, - boolean, - VmSafe.StorageAccessStructOutput[], - BigNumber - ] & { - chainInfo: VmSafe.ChainInfoStructOutput; - kind: number; - account: string; - accessor: string; - initialized: boolean; - oldBalance: BigNumber; - newBalance: BigNumber; - deployedCode: string; - value: BigNumber; - data: string; - reverted: boolean; - storageAccesses: VmSafe.StorageAccessStructOutput[]; - depth: BigNumber; - }; - - export type FfiResultStruct = { - exitCode: PromiseOrValue; - stdout: PromiseOrValue; - stderr: PromiseOrValue; - }; - - export type FfiResultStructOutput = [number, string, string] & { - exitCode: number; - stdout: string; - stderr: string; - }; -} - -export interface VmInterface extends utils.Interface { - functions: { - "accesses(address)": FunctionFragment; - "activeFork()": FunctionFragment; - "addr(uint256)": FunctionFragment; - "allowCheatcodes(address)": FunctionFragment; - "assertApproxEqAbs(uint256,uint256,uint256)": FunctionFragment; - "assertApproxEqAbs(int256,int256,uint256)": FunctionFragment; - "assertApproxEqAbs(int256,int256,uint256,string)": FunctionFragment; - "assertApproxEqAbs(uint256,uint256,uint256,string)": FunctionFragment; - "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)": FunctionFragment; - "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)": FunctionFragment; - "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)": FunctionFragment; - "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)": FunctionFragment; - "assertApproxEqRel(uint256,uint256,uint256,string)": FunctionFragment; - "assertApproxEqRel(uint256,uint256,uint256)": FunctionFragment; - "assertApproxEqRel(int256,int256,uint256,string)": FunctionFragment; - "assertApproxEqRel(int256,int256,uint256)": FunctionFragment; - "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)": FunctionFragment; - "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)": FunctionFragment; - "assertApproxEqRelDecimal(int256,int256,uint256,uint256)": FunctionFragment; - "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)": FunctionFragment; - "assertEq(bytes32[],bytes32[])": FunctionFragment; - "assertEq(int256[],int256[],string)": FunctionFragment; - "assertEq(address,address,string)": FunctionFragment; - "assertEq(string,string,string)": FunctionFragment; - "assertEq(address[],address[])": FunctionFragment; - "assertEq(address[],address[],string)": FunctionFragment; - "assertEq(bool,bool,string)": FunctionFragment; - "assertEq(address,address)": FunctionFragment; - "assertEq(uint256[],uint256[],string)": FunctionFragment; - "assertEq(bool[],bool[])": FunctionFragment; - "assertEq(int256[],int256[])": FunctionFragment; - "assertEq(int256,int256,string)": FunctionFragment; - "assertEq(bytes32,bytes32)": FunctionFragment; - "assertEq(uint256,uint256,string)": FunctionFragment; - "assertEq(uint256[],uint256[])": FunctionFragment; - "assertEq(bytes,bytes)": FunctionFragment; - "assertEq(uint256,uint256)": FunctionFragment; - "assertEq(bytes32,bytes32,string)": FunctionFragment; - "assertEq(string[],string[])": FunctionFragment; - "assertEq(bytes32[],bytes32[],string)": FunctionFragment; - "assertEq(bytes,bytes,string)": FunctionFragment; - "assertEq(bool[],bool[],string)": FunctionFragment; - "assertEq(bytes[],bytes[])": FunctionFragment; - "assertEq(string[],string[],string)": FunctionFragment; - "assertEq(string,string)": FunctionFragment; - "assertEq(bytes[],bytes[],string)": FunctionFragment; - "assertEq(bool,bool)": FunctionFragment; - "assertEq(int256,int256)": FunctionFragment; - "assertEqDecimal(uint256,uint256,uint256)": FunctionFragment; - "assertEqDecimal(int256,int256,uint256)": FunctionFragment; - "assertEqDecimal(int256,int256,uint256,string)": FunctionFragment; - "assertEqDecimal(uint256,uint256,uint256,string)": FunctionFragment; - "assertFalse(bool,string)": FunctionFragment; - "assertFalse(bool)": FunctionFragment; - "assertGe(int256,int256)": FunctionFragment; - "assertGe(int256,int256,string)": FunctionFragment; - "assertGe(uint256,uint256)": FunctionFragment; - "assertGe(uint256,uint256,string)": FunctionFragment; - "assertGeDecimal(uint256,uint256,uint256)": FunctionFragment; - "assertGeDecimal(int256,int256,uint256,string)": FunctionFragment; - "assertGeDecimal(uint256,uint256,uint256,string)": FunctionFragment; - "assertGeDecimal(int256,int256,uint256)": FunctionFragment; - "assertGt(int256,int256)": FunctionFragment; - "assertGt(uint256,uint256,string)": FunctionFragment; - "assertGt(uint256,uint256)": FunctionFragment; - "assertGt(int256,int256,string)": FunctionFragment; - "assertGtDecimal(int256,int256,uint256,string)": FunctionFragment; - "assertGtDecimal(uint256,uint256,uint256,string)": FunctionFragment; - "assertGtDecimal(int256,int256,uint256)": FunctionFragment; - "assertGtDecimal(uint256,uint256,uint256)": FunctionFragment; - "assertLe(int256,int256,string)": FunctionFragment; - "assertLe(uint256,uint256)": FunctionFragment; - "assertLe(int256,int256)": FunctionFragment; - "assertLe(uint256,uint256,string)": FunctionFragment; - "assertLeDecimal(int256,int256,uint256)": FunctionFragment; - "assertLeDecimal(uint256,uint256,uint256,string)": FunctionFragment; - "assertLeDecimal(int256,int256,uint256,string)": FunctionFragment; - "assertLeDecimal(uint256,uint256,uint256)": FunctionFragment; - "assertLt(int256,int256)": FunctionFragment; - "assertLt(uint256,uint256,string)": FunctionFragment; - "assertLt(int256,int256,string)": FunctionFragment; - "assertLt(uint256,uint256)": FunctionFragment; - "assertLtDecimal(uint256,uint256,uint256)": FunctionFragment; - "assertLtDecimal(int256,int256,uint256,string)": FunctionFragment; - "assertLtDecimal(uint256,uint256,uint256,string)": FunctionFragment; - "assertLtDecimal(int256,int256,uint256)": FunctionFragment; - "assertNotEq(bytes32[],bytes32[])": FunctionFragment; - "assertNotEq(int256[],int256[])": FunctionFragment; - "assertNotEq(bool,bool,string)": FunctionFragment; - "assertNotEq(bytes[],bytes[],string)": FunctionFragment; - "assertNotEq(bool,bool)": FunctionFragment; - "assertNotEq(bool[],bool[])": FunctionFragment; - "assertNotEq(bytes,bytes)": FunctionFragment; - "assertNotEq(address[],address[])": FunctionFragment; - "assertNotEq(int256,int256,string)": FunctionFragment; - "assertNotEq(uint256[],uint256[])": FunctionFragment; - "assertNotEq(bool[],bool[],string)": FunctionFragment; - "assertNotEq(string,string)": FunctionFragment; - "assertNotEq(address[],address[],string)": FunctionFragment; - "assertNotEq(string,string,string)": FunctionFragment; - "assertNotEq(address,address,string)": FunctionFragment; - "assertNotEq(bytes32,bytes32)": FunctionFragment; - "assertNotEq(bytes,bytes,string)": FunctionFragment; - "assertNotEq(uint256,uint256,string)": FunctionFragment; - "assertNotEq(uint256[],uint256[],string)": FunctionFragment; - "assertNotEq(address,address)": FunctionFragment; - "assertNotEq(bytes32,bytes32,string)": FunctionFragment; - "assertNotEq(string[],string[],string)": FunctionFragment; - "assertNotEq(uint256,uint256)": FunctionFragment; - "assertNotEq(bytes32[],bytes32[],string)": FunctionFragment; - "assertNotEq(string[],string[])": FunctionFragment; - "assertNotEq(int256[],int256[],string)": FunctionFragment; - "assertNotEq(bytes[],bytes[])": FunctionFragment; - "assertNotEq(int256,int256)": FunctionFragment; - "assertNotEqDecimal(int256,int256,uint256)": FunctionFragment; - "assertNotEqDecimal(int256,int256,uint256,string)": FunctionFragment; - "assertNotEqDecimal(uint256,uint256,uint256)": FunctionFragment; - "assertNotEqDecimal(uint256,uint256,uint256,string)": FunctionFragment; - "assertTrue(bool)": FunctionFragment; - "assertTrue(bool,string)": FunctionFragment; - "assume(bool)": FunctionFragment; - "blobBaseFee(uint256)": FunctionFragment; - "blobhashes(bytes32[])": FunctionFragment; - "breakpoint(string)": FunctionFragment; - "breakpoint(string,bool)": FunctionFragment; - "broadcast()": FunctionFragment; - "broadcast(address)": FunctionFragment; - "broadcast(uint256)": FunctionFragment; - "chainId(uint256)": FunctionFragment; - "clearMockedCalls()": FunctionFragment; - "closeFile(string)": FunctionFragment; - "coinbase(address)": FunctionFragment; - "computeCreate2Address(bytes32,bytes32)": FunctionFragment; - "computeCreate2Address(bytes32,bytes32,address)": FunctionFragment; - "computeCreateAddress(address,uint256)": FunctionFragment; - "copyFile(string,string)": FunctionFragment; - "createDir(string,bool)": FunctionFragment; - "createFork(string)": FunctionFragment; - "createFork(string,uint256)": FunctionFragment; - "createFork(string,bytes32)": FunctionFragment; - "createSelectFork(string,uint256)": FunctionFragment; - "createSelectFork(string,bytes32)": FunctionFragment; - "createSelectFork(string)": FunctionFragment; - "createWallet(string)": FunctionFragment; - "createWallet(uint256)": FunctionFragment; - "createWallet(uint256,string)": FunctionFragment; - "deal(address,uint256)": FunctionFragment; - "deleteSnapshot(uint256)": FunctionFragment; - "deleteSnapshots()": FunctionFragment; - "deriveKey(string,string,uint32,string)": FunctionFragment; - "deriveKey(string,uint32,string)": FunctionFragment; - "deriveKey(string,uint32)": FunctionFragment; - "deriveKey(string,string,uint32)": FunctionFragment; - "difficulty(uint256)": FunctionFragment; - "dumpState(string)": FunctionFragment; - "ensNamehash(string)": FunctionFragment; - "envAddress(string)": FunctionFragment; - "envAddress(string,string)": FunctionFragment; - "envBool(string)": FunctionFragment; - "envBool(string,string)": FunctionFragment; - "envBytes(string)": FunctionFragment; - "envBytes(string,string)": FunctionFragment; - "envBytes32(string,string)": FunctionFragment; - "envBytes32(string)": FunctionFragment; - "envExists(string)": FunctionFragment; - "envInt(string,string)": FunctionFragment; - "envInt(string)": FunctionFragment; - "envOr(string,string,bytes32[])": FunctionFragment; - "envOr(string,string,int256[])": FunctionFragment; - "envOr(string,bool)": FunctionFragment; - "envOr(string,address)": FunctionFragment; - "envOr(string,uint256)": FunctionFragment; - "envOr(string,string,bytes[])": FunctionFragment; - "envOr(string,string,uint256[])": FunctionFragment; - "envOr(string,string,string[])": FunctionFragment; - "envOr(string,bytes)": FunctionFragment; - "envOr(string,bytes32)": FunctionFragment; - "envOr(string,int256)": FunctionFragment; - "envOr(string,string,address[])": FunctionFragment; - "envOr(string,string)": FunctionFragment; - "envOr(string,string,bool[])": FunctionFragment; - "envString(string,string)": FunctionFragment; - "envString(string)": FunctionFragment; - "envUint(string)": FunctionFragment; - "envUint(string,string)": FunctionFragment; - "etch(address,bytes)": FunctionFragment; - "eth_getLogs(uint256,uint256,address,bytes32[])": FunctionFragment; - "exists(string)": FunctionFragment; - "expectCall(address,uint256,uint64,bytes)": FunctionFragment; - "expectCall(address,uint256,uint64,bytes,uint64)": FunctionFragment; - "expectCall(address,uint256,bytes,uint64)": FunctionFragment; - "expectCall(address,bytes)": FunctionFragment; - "expectCall(address,bytes,uint64)": FunctionFragment; - "expectCall(address,uint256,bytes)": FunctionFragment; - "expectCallMinGas(address,uint256,uint64,bytes)": FunctionFragment; - "expectCallMinGas(address,uint256,uint64,bytes,uint64)": FunctionFragment; - "expectEmit()": FunctionFragment; - "expectEmit(bool,bool,bool,bool)": FunctionFragment; - "expectEmit(bool,bool,bool,bool,address)": FunctionFragment; - "expectEmit(address)": FunctionFragment; - "expectRevert(bytes4)": FunctionFragment; - "expectRevert(bytes)": FunctionFragment; - "expectRevert()": FunctionFragment; - "expectSafeMemory(uint64,uint64)": FunctionFragment; - "expectSafeMemoryCall(uint64,uint64)": FunctionFragment; - "fee(uint256)": FunctionFragment; - "ffi(string[])": FunctionFragment; - "fsMetadata(string)": FunctionFragment; - "getBlobBaseFee()": FunctionFragment; - "getBlobhashes()": FunctionFragment; - "getBlockNumber()": FunctionFragment; - "getBlockTimestamp()": FunctionFragment; - "getCode(string)": FunctionFragment; - "getDeployedCode(string)": FunctionFragment; - "getLabel(address)": FunctionFragment; - "getMappingKeyAndParentOf(address,bytes32)": FunctionFragment; - "getMappingLength(address,bytes32)": FunctionFragment; - "getMappingSlotAt(address,bytes32,uint256)": FunctionFragment; - "getNonce(address)": FunctionFragment; - "getNonce((address,uint256,uint256,uint256))": FunctionFragment; - "getRecordedLogs()": FunctionFragment; - "indexOf(string,string)": FunctionFragment; - "isContext(uint8)": FunctionFragment; - "isDir(string)": FunctionFragment; - "isFile(string)": FunctionFragment; - "isPersistent(address)": FunctionFragment; - "keyExists(string,string)": FunctionFragment; - "keyExistsJson(string,string)": FunctionFragment; - "keyExistsToml(string,string)": FunctionFragment; - "label(address,string)": FunctionFragment; - "lastCallGas()": FunctionFragment; - "load(address,bytes32)": FunctionFragment; - "loadAllocs(string)": FunctionFragment; - "makePersistent(address[])": FunctionFragment; - "makePersistent(address,address)": FunctionFragment; - "makePersistent(address)": FunctionFragment; - "makePersistent(address,address,address)": FunctionFragment; - "mockCall(address,uint256,bytes,bytes)": FunctionFragment; - "mockCall(address,bytes,bytes)": FunctionFragment; - "mockCallRevert(address,uint256,bytes,bytes)": FunctionFragment; - "mockCallRevert(address,bytes,bytes)": FunctionFragment; - "parseAddress(string)": FunctionFragment; - "parseBool(string)": FunctionFragment; - "parseBytes(string)": FunctionFragment; - "parseBytes32(string)": FunctionFragment; - "parseInt(string)": FunctionFragment; - "parseJson(string)": FunctionFragment; - "parseJson(string,string)": FunctionFragment; - "parseJsonAddress(string,string)": FunctionFragment; - "parseJsonAddressArray(string,string)": FunctionFragment; - "parseJsonBool(string,string)": FunctionFragment; - "parseJsonBoolArray(string,string)": FunctionFragment; - "parseJsonBytes(string,string)": FunctionFragment; - "parseJsonBytes32(string,string)": FunctionFragment; - "parseJsonBytes32Array(string,string)": FunctionFragment; - "parseJsonBytesArray(string,string)": FunctionFragment; - "parseJsonInt(string,string)": FunctionFragment; - "parseJsonIntArray(string,string)": FunctionFragment; - "parseJsonKeys(string,string)": FunctionFragment; - "parseJsonString(string,string)": FunctionFragment; - "parseJsonStringArray(string,string)": FunctionFragment; - "parseJsonUint(string,string)": FunctionFragment; - "parseJsonUintArray(string,string)": FunctionFragment; - "parseToml(string,string)": FunctionFragment; - "parseToml(string)": FunctionFragment; - "parseTomlAddress(string,string)": FunctionFragment; - "parseTomlAddressArray(string,string)": FunctionFragment; - "parseTomlBool(string,string)": FunctionFragment; - "parseTomlBoolArray(string,string)": FunctionFragment; - "parseTomlBytes(string,string)": FunctionFragment; - "parseTomlBytes32(string,string)": FunctionFragment; - "parseTomlBytes32Array(string,string)": FunctionFragment; - "parseTomlBytesArray(string,string)": FunctionFragment; - "parseTomlInt(string,string)": FunctionFragment; - "parseTomlIntArray(string,string)": FunctionFragment; - "parseTomlKeys(string,string)": FunctionFragment; - "parseTomlString(string,string)": FunctionFragment; - "parseTomlStringArray(string,string)": FunctionFragment; - "parseTomlUint(string,string)": FunctionFragment; - "parseTomlUintArray(string,string)": FunctionFragment; - "parseUint(string)": FunctionFragment; - "pauseGasMetering()": FunctionFragment; - "prank(address,address)": FunctionFragment; - "prank(address)": FunctionFragment; - "prevrandao(bytes32)": FunctionFragment; - "prevrandao(uint256)": FunctionFragment; - "projectRoot()": FunctionFragment; - "prompt(string)": FunctionFragment; - "promptAddress(string)": FunctionFragment; - "promptSecret(string)": FunctionFragment; - "promptSecretUint(string)": FunctionFragment; - "promptUint(string)": FunctionFragment; - "randomAddress()": FunctionFragment; - "randomUint()": FunctionFragment; - "randomUint(uint256,uint256)": FunctionFragment; - "readCallers()": FunctionFragment; - "readDir(string,uint64)": FunctionFragment; - "readDir(string,uint64,bool)": FunctionFragment; - "readDir(string)": FunctionFragment; - "readFile(string)": FunctionFragment; - "readFileBinary(string)": FunctionFragment; - "readLine(string)": FunctionFragment; - "readLink(string)": FunctionFragment; - "record()": FunctionFragment; - "recordLogs()": FunctionFragment; - "rememberKey(uint256)": FunctionFragment; - "removeDir(string,bool)": FunctionFragment; - "removeFile(string)": FunctionFragment; - "replace(string,string,string)": FunctionFragment; - "resetNonce(address)": FunctionFragment; - "resumeGasMetering()": FunctionFragment; - "revertTo(uint256)": FunctionFragment; - "revertToAndDelete(uint256)": FunctionFragment; - "revokePersistent(address[])": FunctionFragment; - "revokePersistent(address)": FunctionFragment; - "roll(uint256)": FunctionFragment; - "rollFork(bytes32)": FunctionFragment; - "rollFork(uint256,uint256)": FunctionFragment; - "rollFork(uint256)": FunctionFragment; - "rollFork(uint256,bytes32)": FunctionFragment; - "rpc(string,string)": FunctionFragment; - "rpcUrl(string)": FunctionFragment; - "rpcUrlStructs()": FunctionFragment; - "rpcUrls()": FunctionFragment; - "selectFork(uint256)": FunctionFragment; - "serializeAddress(string,string,address[])": FunctionFragment; - "serializeAddress(string,string,address)": FunctionFragment; - "serializeBool(string,string,bool[])": FunctionFragment; - "serializeBool(string,string,bool)": FunctionFragment; - "serializeBytes(string,string,bytes[])": FunctionFragment; - "serializeBytes(string,string,bytes)": FunctionFragment; - "serializeBytes32(string,string,bytes32[])": FunctionFragment; - "serializeBytes32(string,string,bytes32)": FunctionFragment; - "serializeInt(string,string,int256)": FunctionFragment; - "serializeInt(string,string,int256[])": FunctionFragment; - "serializeJson(string,string)": FunctionFragment; - "serializeString(string,string,string[])": FunctionFragment; - "serializeString(string,string,string)": FunctionFragment; - "serializeUint(string,string,uint256)": FunctionFragment; - "serializeUint(string,string,uint256[])": FunctionFragment; - "serializeUintToHex(string,string,uint256)": FunctionFragment; - "setEnv(string,string)": FunctionFragment; - "setNonce(address,uint64)": FunctionFragment; - "setNonceUnsafe(address,uint64)": FunctionFragment; - "sign(bytes32)": FunctionFragment; - "sign(address,bytes32)": FunctionFragment; - "sign((address,uint256,uint256,uint256),bytes32)": FunctionFragment; - "sign(uint256,bytes32)": FunctionFragment; - "signP256(uint256,bytes32)": FunctionFragment; - "skip(bool)": FunctionFragment; - "sleep(uint256)": FunctionFragment; - "snapshot()": FunctionFragment; - "split(string,string)": FunctionFragment; - "startBroadcast()": FunctionFragment; - "startBroadcast(address)": FunctionFragment; - "startBroadcast(uint256)": FunctionFragment; - "startMappingRecording()": FunctionFragment; - "startPrank(address)": FunctionFragment; - "startPrank(address,address)": FunctionFragment; - "startStateDiffRecording()": FunctionFragment; - "stopAndReturnStateDiff()": FunctionFragment; - "stopBroadcast()": FunctionFragment; - "stopExpectSafeMemory()": FunctionFragment; - "stopMappingRecording()": FunctionFragment; - "stopPrank()": FunctionFragment; - "store(address,bytes32,bytes32)": FunctionFragment; - "toBase64(string)": FunctionFragment; - "toBase64(bytes)": FunctionFragment; - "toBase64URL(string)": FunctionFragment; - "toBase64URL(bytes)": FunctionFragment; - "toLowercase(string)": FunctionFragment; - "toString(address)": FunctionFragment; - "toString(uint256)": FunctionFragment; - "toString(bytes)": FunctionFragment; - "toString(bool)": FunctionFragment; - "toString(int256)": FunctionFragment; - "toString(bytes32)": FunctionFragment; - "toUppercase(string)": FunctionFragment; - "transact(uint256,bytes32)": FunctionFragment; - "transact(bytes32)": FunctionFragment; - "trim(string)": FunctionFragment; - "tryFfi(string[])": FunctionFragment; - "txGasPrice(uint256)": FunctionFragment; - "unixTime()": FunctionFragment; - "warp(uint256)": FunctionFragment; - "writeFile(string,string)": FunctionFragment; - "writeFileBinary(string,bytes)": FunctionFragment; - "writeJson(string,string,string)": FunctionFragment; - "writeJson(string,string)": FunctionFragment; - "writeLine(string,string)": FunctionFragment; - "writeToml(string,string,string)": FunctionFragment; - "writeToml(string,string)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "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" - | "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)" - | "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" - | "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" - | "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" - | "serializeString(string,string,string[])" - | "serializeString(string,string,string)" - | "serializeUint(string,string,uint256)" - | "serializeUint(string,string,uint256[])" - | "serializeUintToHex" - | "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: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "activeFork", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "addr", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "allowCheatcodes", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqAbs(uint256,uint256,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqAbs(int256,int256,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqAbs(int256,int256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqAbs(uint256,uint256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqRel(uint256,uint256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqRel(uint256,uint256,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqRel(int256,int256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqRel(int256,int256,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqRelDecimal(int256,int256,uint256,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bytes32[],bytes32[])", - values: [PromiseOrValue[], PromiseOrValue[]] - ): string; - encodeFunctionData( - functionFragment: "assertEq(int256[],int256[],string)", - values: [ - PromiseOrValue[], - PromiseOrValue[], - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertEq(address,address,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertEq(string,string,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertEq(address[],address[])", - values: [PromiseOrValue[], PromiseOrValue[]] - ): string; - encodeFunctionData( - functionFragment: "assertEq(address[],address[],string)", - values: [ - PromiseOrValue[], - PromiseOrValue[], - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bool,bool,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertEq(address,address)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertEq(uint256[],uint256[],string)", - values: [ - PromiseOrValue[], - PromiseOrValue[], - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bool[],bool[])", - values: [PromiseOrValue[], PromiseOrValue[]] - ): string; - encodeFunctionData( - functionFragment: "assertEq(int256[],int256[])", - values: [PromiseOrValue[], PromiseOrValue[]] - ): string; - encodeFunctionData( - functionFragment: "assertEq(int256,int256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bytes32,bytes32)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertEq(uint256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertEq(uint256[],uint256[])", - values: [PromiseOrValue[], PromiseOrValue[]] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bytes,bytes)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertEq(uint256,uint256)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bytes32,bytes32,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertEq(string[],string[])", - values: [PromiseOrValue[], PromiseOrValue[]] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bytes32[],bytes32[],string)", - values: [ - PromiseOrValue[], - PromiseOrValue[], - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bytes,bytes,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bool[],bool[],string)", - values: [ - PromiseOrValue[], - PromiseOrValue[], - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bytes[],bytes[])", - values: [PromiseOrValue[], PromiseOrValue[]] - ): string; - encodeFunctionData( - functionFragment: "assertEq(string[],string[],string)", - values: [ - PromiseOrValue[], - PromiseOrValue[], - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertEq(string,string)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bytes[],bytes[],string)", - values: [ - PromiseOrValue[], - PromiseOrValue[], - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bool,bool)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertEq(int256,int256)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertEqDecimal(uint256,uint256,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertEqDecimal(int256,int256,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertEqDecimal(int256,int256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertEqDecimal(uint256,uint256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertFalse(bool,string)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertFalse(bool)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertGe(int256,int256)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertGe(int256,int256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertGe(uint256,uint256)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertGe(uint256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertGeDecimal(uint256,uint256,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertGeDecimal(int256,int256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertGeDecimal(uint256,uint256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertGeDecimal(int256,int256,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertGt(int256,int256)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertGt(uint256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertGt(uint256,uint256)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertGt(int256,int256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertGtDecimal(int256,int256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertGtDecimal(uint256,uint256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertGtDecimal(int256,int256,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertGtDecimal(uint256,uint256,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertLe(int256,int256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertLe(uint256,uint256)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertLe(int256,int256)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertLe(uint256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertLeDecimal(int256,int256,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertLeDecimal(uint256,uint256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertLeDecimal(int256,int256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertLeDecimal(uint256,uint256,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertLt(int256,int256)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertLt(uint256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertLt(int256,int256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertLt(uint256,uint256)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertLtDecimal(uint256,uint256,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertLtDecimal(int256,int256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertLtDecimal(uint256,uint256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertLtDecimal(int256,int256,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bytes32[],bytes32[])", - values: [PromiseOrValue[], PromiseOrValue[]] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(int256[],int256[])", - values: [PromiseOrValue[], PromiseOrValue[]] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bool,bool,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bytes[],bytes[],string)", - values: [ - PromiseOrValue[], - PromiseOrValue[], - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bool,bool)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bool[],bool[])", - values: [PromiseOrValue[], PromiseOrValue[]] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bytes,bytes)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(address[],address[])", - values: [PromiseOrValue[], PromiseOrValue[]] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(int256,int256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(uint256[],uint256[])", - values: [PromiseOrValue[], PromiseOrValue[]] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bool[],bool[],string)", - values: [ - PromiseOrValue[], - PromiseOrValue[], - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(string,string)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(address[],address[],string)", - values: [ - PromiseOrValue[], - PromiseOrValue[], - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(string,string,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(address,address,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bytes32,bytes32)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bytes,bytes,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(uint256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(uint256[],uint256[],string)", - values: [ - PromiseOrValue[], - PromiseOrValue[], - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(address,address)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bytes32,bytes32,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(string[],string[],string)", - values: [ - PromiseOrValue[], - PromiseOrValue[], - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(uint256,uint256)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bytes32[],bytes32[],string)", - values: [ - PromiseOrValue[], - PromiseOrValue[], - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(string[],string[])", - values: [PromiseOrValue[], PromiseOrValue[]] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(int256[],int256[],string)", - values: [ - PromiseOrValue[], - PromiseOrValue[], - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bytes[],bytes[])", - values: [PromiseOrValue[], PromiseOrValue[]] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(int256,int256)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertNotEqDecimal(int256,int256,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertNotEqDecimal(int256,int256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertNotEqDecimal(uint256,uint256,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertNotEqDecimal(uint256,uint256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertTrue(bool)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertTrue(bool,string)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assume", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "blobBaseFee", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "blobhashes", - values: [PromiseOrValue[]] - ): string; - encodeFunctionData( - functionFragment: "breakpoint(string)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "breakpoint(string,bool)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "broadcast()", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "broadcast(address)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "broadcast(uint256)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "chainId", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "clearMockedCalls", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "closeFile", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "coinbase", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "computeCreate2Address(bytes32,bytes32)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "computeCreate2Address(bytes32,bytes32,address)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "computeCreateAddress", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "copyFile", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "createDir", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "createFork(string)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "createFork(string,uint256)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "createFork(string,bytes32)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "createSelectFork(string,uint256)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "createSelectFork(string,bytes32)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "createSelectFork(string)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "createWallet(string)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "createWallet(uint256)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "createWallet(uint256,string)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "deal", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "deleteSnapshot", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "deleteSnapshots", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "deriveKey(string,string,uint32,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "deriveKey(string,uint32,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "deriveKey(string,uint32)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "deriveKey(string,string,uint32)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "difficulty", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "dumpState", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "ensNamehash", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envAddress(string)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envAddress(string,string)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envBool(string)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envBool(string,string)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envBytes(string)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envBytes(string,string)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envBytes32(string,string)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envBytes32(string)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envExists", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envInt(string,string)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envInt(string)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,string,bytes32[])", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue[] - ] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,string,int256[])", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue[] - ] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,bool)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,address)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,uint256)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,string,bytes[])", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue[] - ] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,string,uint256[])", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue[] - ] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,string,string[])", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue[] - ] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,bytes)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,bytes32)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,int256)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,string,address[])", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue[] - ] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,string)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,string,bool[])", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue[] - ] - ): string; - encodeFunctionData( - functionFragment: "envString(string,string)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envString(string)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envUint(string)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envUint(string,string)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "etch", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "eth_getLogs", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue[] - ] - ): string; - encodeFunctionData( - functionFragment: "exists", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "expectCall(address,uint256,uint64,bytes)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "expectCall(address,uint256,uint64,bytes,uint64)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "expectCall(address,uint256,bytes,uint64)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "expectCall(address,bytes)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "expectCall(address,bytes,uint64)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "expectCall(address,uint256,bytes)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "expectCallMinGas(address,uint256,uint64,bytes)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "expectCallMinGas(address,uint256,uint64,bytes,uint64)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "expectEmit()", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "expectEmit(bool,bool,bool,bool)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "expectEmit(bool,bool,bool,bool,address)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "expectEmit(address)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "expectRevert(bytes4)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "expectRevert(bytes)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "expectRevert()", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "expectSafeMemory", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "expectSafeMemoryCall", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "fee", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "ffi", - values: [PromiseOrValue[]] - ): string; - encodeFunctionData( - functionFragment: "fsMetadata", - values: [PromiseOrValue] - ): 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: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "getDeployedCode", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "getLabel", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "getMappingKeyAndParentOf", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "getMappingLength", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "getMappingSlotAt", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "getNonce(address)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "getNonce((address,uint256,uint256,uint256))", - values: [VmSafe.WalletStruct] - ): string; - encodeFunctionData( - functionFragment: "getRecordedLogs", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "indexOf", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "isContext", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "isDir", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "isFile", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "isPersistent", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "keyExists", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "keyExistsJson", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "keyExistsToml", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "label", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "lastCallGas", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "load", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "loadAllocs", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "makePersistent(address[])", - values: [PromiseOrValue[]] - ): string; - encodeFunctionData( - functionFragment: "makePersistent(address,address)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "makePersistent(address)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "makePersistent(address,address,address)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "mockCall(address,uint256,bytes,bytes)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "mockCall(address,bytes,bytes)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "mockCallRevert(address,uint256,bytes,bytes)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "mockCallRevert(address,bytes,bytes)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "parseAddress", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseBool", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseBytes", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseBytes32", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseInt", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseJson(string)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseJson(string,string)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseJsonAddress", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseJsonAddressArray", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseJsonBool", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseJsonBoolArray", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseJsonBytes", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseJsonBytes32", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseJsonBytes32Array", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseJsonBytesArray", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseJsonInt", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseJsonIntArray", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseJsonKeys", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseJsonString", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseJsonStringArray", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseJsonUint", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseJsonUintArray", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseToml(string,string)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseToml(string)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseTomlAddress", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseTomlAddressArray", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseTomlBool", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseTomlBoolArray", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseTomlBytes", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseTomlBytes32", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseTomlBytes32Array", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseTomlBytesArray", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseTomlInt", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseTomlIntArray", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseTomlKeys", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseTomlString", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseTomlStringArray", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseTomlUint", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseTomlUintArray", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseUint", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "pauseGasMetering", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "prank(address,address)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "prank(address)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "prevrandao(bytes32)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "prevrandao(uint256)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "projectRoot", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "prompt", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "promptAddress", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "promptSecret", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "promptSecretUint", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "promptUint", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "randomAddress", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "randomUint()", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "randomUint(uint256,uint256)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "readCallers", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "readDir(string,uint64)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "readDir(string,uint64,bool)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "readDir(string)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "readFile", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "readFileBinary", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "readLine", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "readLink", - values: [PromiseOrValue] - ): string; - encodeFunctionData(functionFragment: "record", values?: undefined): string; - encodeFunctionData( - functionFragment: "recordLogs", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "rememberKey", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "removeDir", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "removeFile", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "replace", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "resetNonce", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "resumeGasMetering", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "revertTo", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "revertToAndDelete", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "revokePersistent(address[])", - values: [PromiseOrValue[]] - ): string; - encodeFunctionData( - functionFragment: "revokePersistent(address)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "roll", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "rollFork(bytes32)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "rollFork(uint256,uint256)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "rollFork(uint256)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "rollFork(uint256,bytes32)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "rpc", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "rpcUrl", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "rpcUrlStructs", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "rpcUrls", values?: undefined): string; - encodeFunctionData( - functionFragment: "selectFork", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "serializeAddress(string,string,address[])", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue[] - ] - ): string; - encodeFunctionData( - functionFragment: "serializeAddress(string,string,address)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "serializeBool(string,string,bool[])", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue[] - ] - ): string; - encodeFunctionData( - functionFragment: "serializeBool(string,string,bool)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "serializeBytes(string,string,bytes[])", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue[] - ] - ): string; - encodeFunctionData( - functionFragment: "serializeBytes(string,string,bytes)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "serializeBytes32(string,string,bytes32[])", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue[] - ] - ): string; - encodeFunctionData( - functionFragment: "serializeBytes32(string,string,bytes32)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "serializeInt(string,string,int256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "serializeInt(string,string,int256[])", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue[] - ] - ): string; - encodeFunctionData( - functionFragment: "serializeJson", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "serializeString(string,string,string[])", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue[] - ] - ): string; - encodeFunctionData( - functionFragment: "serializeString(string,string,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "serializeUint(string,string,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "serializeUint(string,string,uint256[])", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue[] - ] - ): string; - encodeFunctionData( - functionFragment: "serializeUintToHex", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "setEnv", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "setNonce", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "setNonceUnsafe", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "sign(bytes32)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "sign(address,bytes32)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "sign((address,uint256,uint256,uint256),bytes32)", - values: [VmSafe.WalletStruct, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "sign(uint256,bytes32)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "signP256", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "skip", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "sleep", - values: [PromiseOrValue] - ): string; - encodeFunctionData(functionFragment: "snapshot", values?: undefined): string; - encodeFunctionData( - functionFragment: "split", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "startBroadcast()", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "startBroadcast(address)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "startBroadcast(uint256)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "startMappingRecording", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "startPrank(address)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "startPrank(address,address)", - values: [PromiseOrValue, PromiseOrValue] - ): 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: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "toBase64(string)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "toBase64(bytes)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "toBase64URL(string)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "toBase64URL(bytes)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "toLowercase", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "toString(address)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "toString(uint256)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "toString(bytes)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "toString(bool)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "toString(int256)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "toString(bytes32)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "toUppercase", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "transact(uint256,bytes32)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "transact(bytes32)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "trim", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "tryFfi", - values: [PromiseOrValue[]] - ): string; - encodeFunctionData( - functionFragment: "txGasPrice", - values: [PromiseOrValue] - ): string; - encodeFunctionData(functionFragment: "unixTime", values?: undefined): string; - encodeFunctionData( - functionFragment: "warp", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "writeFile", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "writeFileBinary", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "writeJson(string,string,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "writeJson(string,string)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "writeLine", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "writeToml(string,string,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "writeToml(string,string)", - values: [PromiseOrValue, PromiseOrValue] - ): 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: "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: "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: "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", 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: "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: "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; - - events: {}; -} - -export interface Vm extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: VmInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - accesses( - target: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - activeFork( - overrides?: CallOverrides - ): Promise<[BigNumber] & { forkId: BigNumber }>; - - addr( - privateKey: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { keyAddr: string }>; - - allowCheatcodes( - account: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "assertApproxEqAbs(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertApproxEqAbs(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertApproxEqAbs(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertApproxEqAbs(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertApproxEqRel(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertApproxEqRel(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertApproxEqRel(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertApproxEqRel(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertApproxEqRelDecimal(int256,int256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(bytes32[],bytes32[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(int256[],int256[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(address,address,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(string,string,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(address[],address[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(address[],address[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(bool,bool,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(address,address)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(uint256[],uint256[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(bool[],bool[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(int256[],int256[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(bytes32,bytes32)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(uint256[],uint256[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(bytes,bytes)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(bytes32,bytes32,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(string[],string[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(bytes32[],bytes32[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(bytes,bytes,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(bool[],bool[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(bytes[],bytes[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(string[],string[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(string,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(bytes[],bytes[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(bool,bool)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEqDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEqDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEqDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEqDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertFalse(bool,string)"( - condition: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertFalse(bool)"( - condition: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertGe(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertGe(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertGe(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertGe(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertGeDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertGeDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertGeDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertGeDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertGt(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertGt(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertGt(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertGt(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertGtDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertGtDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertGtDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertGtDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertLe(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertLe(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertLe(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertLe(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertLeDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertLeDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertLeDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertLeDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertLt(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertLt(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertLt(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertLt(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertLtDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertLtDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertLtDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertLtDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(bytes32[],bytes32[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(int256[],int256[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(bool,bool,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(bytes[],bytes[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(bool,bool)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(bool[],bool[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(bytes,bytes)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(address[],address[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(uint256[],uint256[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(bool[],bool[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(string,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(address[],address[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(string,string,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(address,address,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(bytes32,bytes32)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(bytes,bytes,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(uint256[],uint256[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(address,address)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(bytes32,bytes32,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(string[],string[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(bytes32[],bytes32[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(string[],string[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(int256[],int256[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(bytes[],bytes[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEqDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEqDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEqDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEqDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertTrue(bool)"( - condition: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertTrue(bool,string)"( - condition: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - assume( - condition: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - blobBaseFee( - newBlobBaseFee: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - blobhashes( - hashes: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "breakpoint(string)"( - char: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "breakpoint(string,bool)"( - char: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "broadcast()"( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "broadcast(address)"( - signer: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "broadcast(uint256)"( - privateKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - chainId( - newChainId: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - clearMockedCalls( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - closeFile( - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - coinbase( - newCoinbase: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "computeCreate2Address(bytes32,bytes32)"( - salt: PromiseOrValue, - initCodeHash: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - "computeCreate2Address(bytes32,bytes32,address)"( - salt: PromiseOrValue, - initCodeHash: PromiseOrValue, - deployer: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - computeCreateAddress( - deployer: PromiseOrValue, - nonce: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - copyFile( - from: PromiseOrValue, - to: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - createDir( - path: PromiseOrValue, - recursive: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createFork(string)"( - urlOrAlias: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createFork(string,uint256)"( - urlOrAlias: PromiseOrValue, - blockNumber: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createFork(string,bytes32)"( - urlOrAlias: PromiseOrValue, - txHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createSelectFork(string,uint256)"( - urlOrAlias: PromiseOrValue, - blockNumber: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createSelectFork(string,bytes32)"( - urlOrAlias: PromiseOrValue, - txHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createSelectFork(string)"( - urlOrAlias: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createWallet(string)"( - walletLabel: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createWallet(uint256)"( - privateKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createWallet(uint256,string)"( - privateKey: PromiseOrValue, - walletLabel: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - deal( - account: PromiseOrValue, - newBalance: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - deleteSnapshot( - snapshotId: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - deleteSnapshots( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "deriveKey(string,string,uint32,string)"( - mnemonic: PromiseOrValue, - derivationPath: PromiseOrValue, - index: PromiseOrValue, - language: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber] & { privateKey: BigNumber }>; - - "deriveKey(string,uint32,string)"( - mnemonic: PromiseOrValue, - index: PromiseOrValue, - language: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber] & { privateKey: BigNumber }>; - - "deriveKey(string,uint32)"( - mnemonic: PromiseOrValue, - index: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber] & { privateKey: BigNumber }>; - - "deriveKey(string,string,uint32)"( - mnemonic: PromiseOrValue, - derivationPath: PromiseOrValue, - index: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber] & { privateKey: BigNumber }>; - - difficulty( - newDifficulty: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - dumpState( - pathToStateJson: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - ensNamehash( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - "envAddress(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { value: string }>; - - "envAddress(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string[]] & { value: string[] }>; - - "envBool(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[boolean] & { value: boolean }>; - - "envBool(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[boolean[]] & { value: boolean[] }>; - - "envBytes(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { value: string }>; - - "envBytes(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string[]] & { value: string[] }>; - - "envBytes32(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string[]] & { value: string[] }>; - - "envBytes32(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { value: string }>; - - envExists( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[boolean] & { result: boolean }>; - - "envInt(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber[]] & { value: BigNumber[] }>; - - "envInt(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber] & { value: BigNumber }>; - - "envOr(string,string,bytes32[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[string[]] & { value: string[] }>; - - "envOr(string,string,int256[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[BigNumber[]] & { value: BigNumber[] }>; - - "envOr(string,bool)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[boolean] & { value: boolean }>; - - "envOr(string,address)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { value: string }>; - - "envOr(string,uint256)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber] & { value: BigNumber }>; - - "envOr(string,string,bytes[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[string[]] & { value: string[] }>; - - "envOr(string,string,uint256[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[BigNumber[]] & { value: BigNumber[] }>; - - "envOr(string,string,string[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[string[]] & { value: string[] }>; - - "envOr(string,bytes)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { value: string }>; - - "envOr(string,bytes32)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { value: string }>; - - "envOr(string,int256)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber] & { value: BigNumber }>; - - "envOr(string,string,address[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[string[]] & { value: string[] }>; - - "envOr(string,string)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { value: string }>; - - "envOr(string,string,bool[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[boolean[]] & { value: boolean[] }>; - - "envString(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string[]] & { value: string[] }>; - - "envString(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { value: string }>; - - "envUint(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber] & { value: BigNumber }>; - - "envUint(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber[]] & { value: BigNumber[] }>; - - etch( - target: PromiseOrValue, - newRuntimeBytecode: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - eth_getLogs( - fromBlock: PromiseOrValue, - toBlock: PromiseOrValue, - target: PromiseOrValue, - topics: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - exists( - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectCall(address,uint256,uint64,bytes)"( - callee: PromiseOrValue, - msgValue: PromiseOrValue, - gas: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectCall(address,uint256,uint64,bytes,uint64)"( - callee: PromiseOrValue, - msgValue: PromiseOrValue, - gas: PromiseOrValue, - data: PromiseOrValue, - count: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectCall(address,uint256,bytes,uint64)"( - callee: PromiseOrValue, - msgValue: PromiseOrValue, - data: PromiseOrValue, - count: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectCall(address,bytes)"( - callee: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectCall(address,bytes,uint64)"( - callee: PromiseOrValue, - data: PromiseOrValue, - count: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectCall(address,uint256,bytes)"( - callee: PromiseOrValue, - msgValue: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectCallMinGas(address,uint256,uint64,bytes)"( - callee: PromiseOrValue, - msgValue: PromiseOrValue, - minGas: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectCallMinGas(address,uint256,uint64,bytes,uint64)"( - callee: PromiseOrValue, - msgValue: PromiseOrValue, - minGas: PromiseOrValue, - data: PromiseOrValue, - count: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectEmit()"( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectEmit(bool,bool,bool,bool)"( - checkTopic1: PromiseOrValue, - checkTopic2: PromiseOrValue, - checkTopic3: PromiseOrValue, - checkData: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectEmit(bool,bool,bool,bool,address)"( - checkTopic1: PromiseOrValue, - checkTopic2: PromiseOrValue, - checkTopic3: PromiseOrValue, - checkData: PromiseOrValue, - emitter: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectEmit(address)"( - emitter: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectRevert(bytes4)"( - revertData: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectRevert(bytes)"( - revertData: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectRevert()"( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - expectSafeMemory( - min: PromiseOrValue, - max: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - expectSafeMemoryCall( - min: PromiseOrValue, - max: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - fee( - newBasefee: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - ffi( - commandInput: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - fsMetadata( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise< - [VmSafe.FsMetadataStructOutput] & { - metadata: VmSafe.FsMetadataStructOutput; - } - >; - - getBlobBaseFee( - overrides?: CallOverrides - ): Promise<[BigNumber] & { blobBaseFee: BigNumber }>; - - getBlobhashes( - overrides?: CallOverrides - ): Promise<[string[]] & { hashes: string[] }>; - - getBlockNumber( - overrides?: CallOverrides - ): Promise<[BigNumber] & { height: BigNumber }>; - - getBlockTimestamp( - overrides?: CallOverrides - ): Promise<[BigNumber] & { timestamp: BigNumber }>; - - getCode( - artifactPath: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { creationBytecode: string }>; - - getDeployedCode( - artifactPath: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { runtimeBytecode: string }>; - - getLabel( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { currentLabel: string }>; - - getMappingKeyAndParentOf( - target: PromiseOrValue, - elementSlot: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getMappingLength( - target: PromiseOrValue, - mappingSlot: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getMappingSlotAt( - target: PromiseOrValue, - mappingSlot: PromiseOrValue, - idx: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "getNonce(address)"( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber] & { nonce: BigNumber }>; - - "getNonce((address,uint256,uint256,uint256))"( - wallet: VmSafe.WalletStruct, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getRecordedLogs( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - indexOf( - input: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - isContext( - context: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[boolean] & { result: boolean }>; - - isDir( - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - isFile( - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - isPersistent( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[boolean] & { persistent: boolean }>; - - keyExists( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[boolean]>; - - keyExistsJson( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[boolean]>; - - keyExistsToml( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[boolean]>; - - label( - account: PromiseOrValue, - newLabel: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - lastCallGas( - overrides?: CallOverrides - ): Promise<[VmSafe.GasStructOutput] & { gas: VmSafe.GasStructOutput }>; - - load( - target: PromiseOrValue, - slot: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { data: string }>; - - loadAllocs( - pathToAllocsJson: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "makePersistent(address[])"( - accounts: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "makePersistent(address,address)"( - account0: PromiseOrValue, - account1: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "makePersistent(address)"( - account: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "makePersistent(address,address,address)"( - account0: PromiseOrValue, - account1: PromiseOrValue, - account2: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "mockCall(address,uint256,bytes,bytes)"( - callee: PromiseOrValue, - msgValue: PromiseOrValue, - data: PromiseOrValue, - returnData: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "mockCall(address,bytes,bytes)"( - callee: PromiseOrValue, - data: PromiseOrValue, - returnData: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "mockCallRevert(address,uint256,bytes,bytes)"( - callee: PromiseOrValue, - msgValue: PromiseOrValue, - data: PromiseOrValue, - revertData: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "mockCallRevert(address,bytes,bytes)"( - callee: PromiseOrValue, - data: PromiseOrValue, - revertData: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - parseAddress( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { parsedValue: string }>; - - parseBool( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[boolean] & { parsedValue: boolean }>; - - parseBytes( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { parsedValue: string }>; - - parseBytes32( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { parsedValue: string }>; - - parseInt( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber] & { parsedValue: BigNumber }>; - - "parseJson(string)"( - json: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { abiEncodedData: string }>; - - "parseJson(string,string)"( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { abiEncodedData: string }>; - - parseJsonAddress( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - parseJsonAddressArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string[]]>; - - parseJsonBool( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[boolean]>; - - parseJsonBoolArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[boolean[]]>; - - parseJsonBytes( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - parseJsonBytes32( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - parseJsonBytes32Array( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string[]]>; - - parseJsonBytesArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string[]]>; - - parseJsonInt( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - parseJsonIntArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber[]]>; - - parseJsonKeys( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string[]] & { keys: string[] }>; - - parseJsonString( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - parseJsonStringArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string[]]>; - - parseJsonUint( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - parseJsonUintArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber[]]>; - - "parseToml(string,string)"( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { abiEncodedData: string }>; - - "parseToml(string)"( - toml: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { abiEncodedData: string }>; - - parseTomlAddress( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - parseTomlAddressArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string[]]>; - - parseTomlBool( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[boolean]>; - - parseTomlBoolArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[boolean[]]>; - - parseTomlBytes( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - parseTomlBytes32( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - parseTomlBytes32Array( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string[]]>; - - parseTomlBytesArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string[]]>; - - parseTomlInt( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - parseTomlIntArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber[]]>; - - parseTomlKeys( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string[]] & { keys: string[] }>; - - parseTomlString( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - parseTomlStringArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string[]]>; - - parseTomlUint( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - parseTomlUintArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber[]]>; - - parseUint( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber] & { parsedValue: BigNumber }>; - - pauseGasMetering( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "prank(address,address)"( - msgSender: PromiseOrValue, - txOrigin: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "prank(address)"( - msgSender: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "prevrandao(bytes32)"( - newPrevrandao: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "prevrandao(uint256)"( - newPrevrandao: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - projectRoot( - overrides?: CallOverrides - ): Promise<[string] & { path: string }>; - - prompt( - promptText: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - promptAddress( - promptText: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - promptSecret( - promptText: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - promptSecretUint( - promptText: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - promptUint( - promptText: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - randomAddress( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "randomUint()"( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "randomUint(uint256,uint256)"( - min: PromiseOrValue, - max: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - readCallers( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "readDir(string,uint64)"( - path: PromiseOrValue, - maxDepth: PromiseOrValue, - overrides?: CallOverrides - ): Promise< - [VmSafe.DirEntryStructOutput[]] & { - entries: VmSafe.DirEntryStructOutput[]; - } - >; - - "readDir(string,uint64,bool)"( - path: PromiseOrValue, - maxDepth: PromiseOrValue, - followLinks: PromiseOrValue, - overrides?: CallOverrides - ): Promise< - [VmSafe.DirEntryStructOutput[]] & { - entries: VmSafe.DirEntryStructOutput[]; - } - >; - - "readDir(string)"( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise< - [VmSafe.DirEntryStructOutput[]] & { - entries: VmSafe.DirEntryStructOutput[]; - } - >; - - readFile( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { data: string }>; - - readFileBinary( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { data: string }>; - - readLine( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { line: string }>; - - readLink( - linkPath: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { targetPath: string }>; - - record( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - recordLogs( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - rememberKey( - privateKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - removeDir( - path: PromiseOrValue, - recursive: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - removeFile( - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - replace( - input: PromiseOrValue, - from: PromiseOrValue, - to: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { output: string }>; - - resetNonce( - account: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - resumeGasMetering( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - revertTo( - snapshotId: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - revertToAndDelete( - snapshotId: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "revokePersistent(address[])"( - accounts: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "revokePersistent(address)"( - account: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - roll( - newHeight: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "rollFork(bytes32)"( - txHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "rollFork(uint256,uint256)"( - forkId: PromiseOrValue, - blockNumber: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "rollFork(uint256)"( - blockNumber: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "rollFork(uint256,bytes32)"( - forkId: PromiseOrValue, - txHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - rpc( - method: PromiseOrValue, - params: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - rpcUrl( - rpcAlias: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { json: string }>; - - rpcUrlStructs( - overrides?: CallOverrides - ): Promise<[VmSafe.RpcStructOutput[]] & { urls: VmSafe.RpcStructOutput[] }>; - - rpcUrls( - overrides?: CallOverrides - ): Promise<[[string, string][]] & { urls: [string, string][] }>; - - selectFork( - forkId: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeAddress(string,string,address[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeAddress(string,string,address)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBool(string,string,bool[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBool(string,string,bool)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBytes(string,string,bytes[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBytes(string,string,bytes)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBytes32(string,string,bytes32[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBytes32(string,string,bytes32)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeInt(string,string,int256)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeInt(string,string,int256[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - serializeJson( - objectKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeString(string,string,string[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeString(string,string,string)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeUint(string,string,uint256)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeUint(string,string,uint256[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - serializeUintToHex( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setEnv( - name: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setNonce( - account: PromiseOrValue, - newNonce: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setNonceUnsafe( - account: PromiseOrValue, - newNonce: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "sign(bytes32)"( - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[number, string, string] & { v: number; r: string; s: string }>; - - "sign(address,bytes32)"( - signer: PromiseOrValue, - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[number, string, string] & { v: number; r: string; s: string }>; - - "sign((address,uint256,uint256,uint256),bytes32)"( - wallet: VmSafe.WalletStruct, - digest: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "sign(uint256,bytes32)"( - privateKey: PromiseOrValue, - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[number, string, string] & { v: number; r: string; s: string }>; - - signP256( - privateKey: PromiseOrValue, - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string, string] & { r: string; s: string }>; - - skip( - skipTest: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - sleep( - duration: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - snapshot( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - split( - input: PromiseOrValue, - delimiter: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string[]] & { outputs: string[] }>; - - "startBroadcast()"( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "startBroadcast(address)"( - signer: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "startBroadcast(uint256)"( - privateKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - startMappingRecording( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "startPrank(address)"( - msgSender: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "startPrank(address,address)"( - msgSender: PromiseOrValue, - txOrigin: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - startStateDiffRecording( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - stopAndReturnStateDiff( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - stopBroadcast( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - stopExpectSafeMemory( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - stopMappingRecording( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - stopPrank( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - store( - target: PromiseOrValue, - slot: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "toBase64(string)"( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - "toBase64(bytes)"( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - "toBase64URL(string)"( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - "toBase64URL(bytes)"( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - toLowercase( - input: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { output: string }>; - - "toString(address)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { stringifiedValue: string }>; - - "toString(uint256)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { stringifiedValue: string }>; - - "toString(bytes)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { stringifiedValue: string }>; - - "toString(bool)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { stringifiedValue: string }>; - - "toString(int256)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { stringifiedValue: string }>; - - "toString(bytes32)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { stringifiedValue: string }>; - - toUppercase( - input: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { output: string }>; - - "transact(uint256,bytes32)"( - forkId: PromiseOrValue, - txHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "transact(bytes32)"( - txHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - trim( - input: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { output: string }>; - - tryFfi( - commandInput: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - txGasPrice( - newGasPrice: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - unixTime( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - warp( - newTimestamp: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - writeFile( - path: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - writeFileBinary( - path: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "writeJson(string,string,string)"( - json: PromiseOrValue, - path: PromiseOrValue, - valueKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "writeJson(string,string)"( - json: PromiseOrValue, - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - writeLine( - path: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "writeToml(string,string,string)"( - json: PromiseOrValue, - path: PromiseOrValue, - valueKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "writeToml(string,string)"( - json: PromiseOrValue, - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - accesses( - target: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - activeFork(overrides?: CallOverrides): Promise; - - addr( - privateKey: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - allowCheatcodes( - account: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "assertApproxEqAbs(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbs(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbs(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbs(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRel(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRel(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRel(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRel(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRelDecimal(int256,int256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes32[],bytes32[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(int256[],int256[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(address,address,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(string,string,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(address[],address[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(address[],address[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bool,bool,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(address,address)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(uint256[],uint256[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bool[],bool[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(int256[],int256[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes32,bytes32)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(uint256[],uint256[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes,bytes)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes32,bytes32,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(string[],string[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes32[],bytes32[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes,bytes,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bool[],bool[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes[],bytes[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(string[],string[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(string,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes[],bytes[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bool,bool)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEqDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEqDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEqDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEqDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertFalse(bool,string)"( - condition: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertFalse(bool)"( - condition: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGe(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGe(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGe(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGe(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGeDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGeDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGeDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGeDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGt(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGt(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGt(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGt(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGtDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGtDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGtDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGtDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLe(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLe(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLe(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLe(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLeDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLeDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLeDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLeDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLt(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLt(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLt(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLt(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLtDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLtDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLtDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLtDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes32[],bytes32[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(int256[],int256[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bool,bool,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes[],bytes[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bool,bool)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bool[],bool[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes,bytes)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(address[],address[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(uint256[],uint256[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bool[],bool[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(string,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(address[],address[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(string,string,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(address,address,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes32,bytes32)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes,bytes,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(uint256[],uint256[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(address,address)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes32,bytes32,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(string[],string[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes32[],bytes32[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(string[],string[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(int256[],int256[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes[],bytes[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEqDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEqDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEqDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEqDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertTrue(bool)"( - condition: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertTrue(bool,string)"( - condition: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - assume( - condition: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - blobBaseFee( - newBlobBaseFee: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - blobhashes( - hashes: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "breakpoint(string)"( - char: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "breakpoint(string,bool)"( - char: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "broadcast()"( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "broadcast(address)"( - signer: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "broadcast(uint256)"( - privateKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - chainId( - newChainId: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - clearMockedCalls( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - closeFile( - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - coinbase( - newCoinbase: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "computeCreate2Address(bytes32,bytes32)"( - salt: PromiseOrValue, - initCodeHash: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "computeCreate2Address(bytes32,bytes32,address)"( - salt: PromiseOrValue, - initCodeHash: PromiseOrValue, - deployer: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - computeCreateAddress( - deployer: PromiseOrValue, - nonce: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - copyFile( - from: PromiseOrValue, - to: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - createDir( - path: PromiseOrValue, - recursive: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createFork(string)"( - urlOrAlias: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createFork(string,uint256)"( - urlOrAlias: PromiseOrValue, - blockNumber: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createFork(string,bytes32)"( - urlOrAlias: PromiseOrValue, - txHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createSelectFork(string,uint256)"( - urlOrAlias: PromiseOrValue, - blockNumber: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createSelectFork(string,bytes32)"( - urlOrAlias: PromiseOrValue, - txHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createSelectFork(string)"( - urlOrAlias: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createWallet(string)"( - walletLabel: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createWallet(uint256)"( - privateKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createWallet(uint256,string)"( - privateKey: PromiseOrValue, - walletLabel: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - deal( - account: PromiseOrValue, - newBalance: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - deleteSnapshot( - snapshotId: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - deleteSnapshots( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "deriveKey(string,string,uint32,string)"( - mnemonic: PromiseOrValue, - derivationPath: PromiseOrValue, - index: PromiseOrValue, - language: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "deriveKey(string,uint32,string)"( - mnemonic: PromiseOrValue, - index: PromiseOrValue, - language: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "deriveKey(string,uint32)"( - mnemonic: PromiseOrValue, - index: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "deriveKey(string,string,uint32)"( - mnemonic: PromiseOrValue, - derivationPath: PromiseOrValue, - index: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - difficulty( - newDifficulty: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - dumpState( - pathToStateJson: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - ensNamehash( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envAddress(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envAddress(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBool(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBool(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBytes(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBytes(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBytes32(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBytes32(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - envExists( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envInt(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envInt(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,bytes32[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,int256[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,bool)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,address)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,uint256)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,bytes[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,uint256[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,string[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,bytes)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,bytes32)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,int256)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,address[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,string)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,bool[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envString(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envString(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envUint(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envUint(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - etch( - target: PromiseOrValue, - newRuntimeBytecode: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - eth_getLogs( - fromBlock: PromiseOrValue, - toBlock: PromiseOrValue, - target: PromiseOrValue, - topics: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - exists( - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectCall(address,uint256,uint64,bytes)"( - callee: PromiseOrValue, - msgValue: PromiseOrValue, - gas: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectCall(address,uint256,uint64,bytes,uint64)"( - callee: PromiseOrValue, - msgValue: PromiseOrValue, - gas: PromiseOrValue, - data: PromiseOrValue, - count: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectCall(address,uint256,bytes,uint64)"( - callee: PromiseOrValue, - msgValue: PromiseOrValue, - data: PromiseOrValue, - count: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectCall(address,bytes)"( - callee: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectCall(address,bytes,uint64)"( - callee: PromiseOrValue, - data: PromiseOrValue, - count: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectCall(address,uint256,bytes)"( - callee: PromiseOrValue, - msgValue: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectCallMinGas(address,uint256,uint64,bytes)"( - callee: PromiseOrValue, - msgValue: PromiseOrValue, - minGas: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectCallMinGas(address,uint256,uint64,bytes,uint64)"( - callee: PromiseOrValue, - msgValue: PromiseOrValue, - minGas: PromiseOrValue, - data: PromiseOrValue, - count: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectEmit()"( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectEmit(bool,bool,bool,bool)"( - checkTopic1: PromiseOrValue, - checkTopic2: PromiseOrValue, - checkTopic3: PromiseOrValue, - checkData: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectEmit(bool,bool,bool,bool,address)"( - checkTopic1: PromiseOrValue, - checkTopic2: PromiseOrValue, - checkTopic3: PromiseOrValue, - checkData: PromiseOrValue, - emitter: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectEmit(address)"( - emitter: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectRevert(bytes4)"( - revertData: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectRevert(bytes)"( - revertData: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectRevert()"( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - expectSafeMemory( - min: PromiseOrValue, - max: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - expectSafeMemoryCall( - min: PromiseOrValue, - max: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - fee( - newBasefee: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - ffi( - commandInput: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - fsMetadata( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getBlobBaseFee(overrides?: CallOverrides): Promise; - - getBlobhashes(overrides?: CallOverrides): Promise; - - getBlockNumber(overrides?: CallOverrides): Promise; - - getBlockTimestamp(overrides?: CallOverrides): Promise; - - getCode( - artifactPath: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getDeployedCode( - artifactPath: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getLabel( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getMappingKeyAndParentOf( - target: PromiseOrValue, - elementSlot: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getMappingLength( - target: PromiseOrValue, - mappingSlot: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getMappingSlotAt( - target: PromiseOrValue, - mappingSlot: PromiseOrValue, - idx: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "getNonce(address)"( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "getNonce((address,uint256,uint256,uint256))"( - wallet: VmSafe.WalletStruct, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getRecordedLogs( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - indexOf( - input: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - isContext( - context: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - isDir( - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - isFile( - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - isPersistent( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - keyExists( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - keyExistsJson( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - keyExistsToml( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - label( - account: PromiseOrValue, - newLabel: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - lastCallGas(overrides?: CallOverrides): Promise; - - load( - target: PromiseOrValue, - slot: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - loadAllocs( - pathToAllocsJson: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "makePersistent(address[])"( - accounts: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "makePersistent(address,address)"( - account0: PromiseOrValue, - account1: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "makePersistent(address)"( - account: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "makePersistent(address,address,address)"( - account0: PromiseOrValue, - account1: PromiseOrValue, - account2: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "mockCall(address,uint256,bytes,bytes)"( - callee: PromiseOrValue, - msgValue: PromiseOrValue, - data: PromiseOrValue, - returnData: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "mockCall(address,bytes,bytes)"( - callee: PromiseOrValue, - data: PromiseOrValue, - returnData: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "mockCallRevert(address,uint256,bytes,bytes)"( - callee: PromiseOrValue, - msgValue: PromiseOrValue, - data: PromiseOrValue, - revertData: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "mockCallRevert(address,bytes,bytes)"( - callee: PromiseOrValue, - data: PromiseOrValue, - revertData: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - parseAddress( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseBool( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseBytes( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseBytes32( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseInt( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "parseJson(string)"( - json: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "parseJson(string,string)"( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonAddress( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonAddressArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBool( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBoolArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBytes( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBytes32( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBytes32Array( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBytesArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonInt( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonIntArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonKeys( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonString( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonStringArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonUint( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonUintArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "parseToml(string,string)"( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "parseToml(string)"( - toml: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlAddress( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlAddressArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBool( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBoolArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBytes( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBytes32( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBytes32Array( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBytesArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlInt( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlIntArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlKeys( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlString( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlStringArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlUint( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlUintArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseUint( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - pauseGasMetering( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "prank(address,address)"( - msgSender: PromiseOrValue, - txOrigin: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "prank(address)"( - msgSender: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "prevrandao(bytes32)"( - newPrevrandao: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "prevrandao(uint256)"( - newPrevrandao: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - projectRoot(overrides?: CallOverrides): Promise; - - prompt( - promptText: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - promptAddress( - promptText: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - promptSecret( - promptText: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - promptSecretUint( - promptText: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - promptUint( - promptText: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - randomAddress( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "randomUint()"( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "randomUint(uint256,uint256)"( - min: PromiseOrValue, - max: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - readCallers( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "readDir(string,uint64)"( - path: PromiseOrValue, - maxDepth: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "readDir(string,uint64,bool)"( - path: PromiseOrValue, - maxDepth: PromiseOrValue, - followLinks: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "readDir(string)"( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - readFile( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - readFileBinary( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - readLine( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - readLink( - linkPath: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - record( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - recordLogs( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - rememberKey( - privateKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - removeDir( - path: PromiseOrValue, - recursive: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - removeFile( - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - replace( - input: PromiseOrValue, - from: PromiseOrValue, - to: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - resetNonce( - account: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - resumeGasMetering( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - revertTo( - snapshotId: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - revertToAndDelete( - snapshotId: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "revokePersistent(address[])"( - accounts: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "revokePersistent(address)"( - account: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - roll( - newHeight: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "rollFork(bytes32)"( - txHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "rollFork(uint256,uint256)"( - forkId: PromiseOrValue, - blockNumber: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "rollFork(uint256)"( - blockNumber: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "rollFork(uint256,bytes32)"( - forkId: PromiseOrValue, - txHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - rpc( - method: PromiseOrValue, - params: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - rpcUrl( - rpcAlias: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - rpcUrlStructs(overrides?: CallOverrides): Promise; - - rpcUrls(overrides?: CallOverrides): Promise<[string, string][]>; - - selectFork( - forkId: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeAddress(string,string,address[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeAddress(string,string,address)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBool(string,string,bool[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBool(string,string,bool)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBytes(string,string,bytes[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBytes(string,string,bytes)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBytes32(string,string,bytes32[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBytes32(string,string,bytes32)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeInt(string,string,int256)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeInt(string,string,int256[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - serializeJson( - objectKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeString(string,string,string[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeString(string,string,string)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeUint(string,string,uint256)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeUint(string,string,uint256[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - serializeUintToHex( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setEnv( - name: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setNonce( - account: PromiseOrValue, - newNonce: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setNonceUnsafe( - account: PromiseOrValue, - newNonce: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "sign(bytes32)"( - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[number, string, string] & { v: number; r: string; s: string }>; - - "sign(address,bytes32)"( - signer: PromiseOrValue, - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[number, string, string] & { v: number; r: string; s: string }>; - - "sign((address,uint256,uint256,uint256),bytes32)"( - wallet: VmSafe.WalletStruct, - digest: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "sign(uint256,bytes32)"( - privateKey: PromiseOrValue, - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[number, string, string] & { v: number; r: string; s: string }>; - - signP256( - privateKey: PromiseOrValue, - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string, string] & { r: string; s: string }>; - - skip( - skipTest: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - sleep( - duration: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - snapshot( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - split( - input: PromiseOrValue, - delimiter: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "startBroadcast()"( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "startBroadcast(address)"( - signer: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "startBroadcast(uint256)"( - privateKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - startMappingRecording( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "startPrank(address)"( - msgSender: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "startPrank(address,address)"( - msgSender: PromiseOrValue, - txOrigin: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - startStateDiffRecording( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - stopAndReturnStateDiff( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - stopBroadcast( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - stopExpectSafeMemory( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - stopMappingRecording( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - stopPrank( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - store( - target: PromiseOrValue, - slot: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "toBase64(string)"( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toBase64(bytes)"( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toBase64URL(string)"( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toBase64URL(bytes)"( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - toLowercase( - input: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(address)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(uint256)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(bytes)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(bool)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(int256)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(bytes32)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - toUppercase( - input: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "transact(uint256,bytes32)"( - forkId: PromiseOrValue, - txHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "transact(bytes32)"( - txHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - trim( - input: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - tryFfi( - commandInput: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - txGasPrice( - newGasPrice: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - unixTime( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - warp( - newTimestamp: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - writeFile( - path: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - writeFileBinary( - path: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "writeJson(string,string,string)"( - json: PromiseOrValue, - path: PromiseOrValue, - valueKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "writeJson(string,string)"( - json: PromiseOrValue, - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - writeLine( - path: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "writeToml(string,string,string)"( - json: PromiseOrValue, - path: PromiseOrValue, - valueKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "writeToml(string,string)"( - json: PromiseOrValue, - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - accesses( - target: PromiseOrValue, - overrides?: CallOverrides - ): Promise< - [string[], string[]] & { readSlots: string[]; writeSlots: string[] } - >; - - activeFork(overrides?: CallOverrides): Promise; - - addr( - privateKey: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - allowCheatcodes( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbs(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbs(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbs(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbs(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRel(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRel(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRel(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRel(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRelDecimal(int256,int256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes32[],bytes32[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(int256[],int256[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(address,address,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(string,string,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(address[],address[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(address[],address[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bool,bool,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(address,address)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(uint256[],uint256[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bool[],bool[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(int256[],int256[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes32,bytes32)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(uint256[],uint256[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes,bytes)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes32,bytes32,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(string[],string[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes32[],bytes32[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes,bytes,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bool[],bool[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes[],bytes[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(string[],string[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(string,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes[],bytes[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bool,bool)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEqDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEqDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEqDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEqDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertFalse(bool,string)"( - condition: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertFalse(bool)"( - condition: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGe(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGe(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGe(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGe(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGeDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGeDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGeDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGeDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGt(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGt(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGt(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGt(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGtDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGtDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGtDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGtDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLe(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLe(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLe(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLe(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLeDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLeDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLeDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLeDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLt(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLt(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLt(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLt(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLtDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLtDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLtDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLtDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes32[],bytes32[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(int256[],int256[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bool,bool,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes[],bytes[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bool,bool)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bool[],bool[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes,bytes)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(address[],address[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(uint256[],uint256[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bool[],bool[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(string,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(address[],address[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(string,string,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(address,address,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes32,bytes32)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes,bytes,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(uint256[],uint256[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(address,address)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes32,bytes32,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(string[],string[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes32[],bytes32[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(string[],string[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(int256[],int256[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes[],bytes[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEqDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEqDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEqDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEqDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertTrue(bool)"( - condition: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertTrue(bool,string)"( - condition: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - assume( - condition: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - blobBaseFee( - newBlobBaseFee: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - blobhashes( - hashes: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "breakpoint(string)"( - char: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "breakpoint(string,bool)"( - char: PromiseOrValue, - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "broadcast()"(overrides?: CallOverrides): Promise; - - "broadcast(address)"( - signer: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "broadcast(uint256)"( - privateKey: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - chainId( - newChainId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - clearMockedCalls(overrides?: CallOverrides): Promise; - - closeFile( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - coinbase( - newCoinbase: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "computeCreate2Address(bytes32,bytes32)"( - salt: PromiseOrValue, - initCodeHash: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "computeCreate2Address(bytes32,bytes32,address)"( - salt: PromiseOrValue, - initCodeHash: PromiseOrValue, - deployer: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - computeCreateAddress( - deployer: PromiseOrValue, - nonce: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - copyFile( - from: PromiseOrValue, - to: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - createDir( - path: PromiseOrValue, - recursive: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "createFork(string)"( - urlOrAlias: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "createFork(string,uint256)"( - urlOrAlias: PromiseOrValue, - blockNumber: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "createFork(string,bytes32)"( - urlOrAlias: PromiseOrValue, - txHash: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "createSelectFork(string,uint256)"( - urlOrAlias: PromiseOrValue, - blockNumber: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "createSelectFork(string,bytes32)"( - urlOrAlias: PromiseOrValue, - txHash: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "createSelectFork(string)"( - urlOrAlias: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "createWallet(string)"( - walletLabel: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "createWallet(uint256)"( - privateKey: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "createWallet(uint256,string)"( - privateKey: PromiseOrValue, - walletLabel: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - deal( - account: PromiseOrValue, - newBalance: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - deleteSnapshot( - snapshotId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - deleteSnapshots(overrides?: CallOverrides): Promise; - - "deriveKey(string,string,uint32,string)"( - mnemonic: PromiseOrValue, - derivationPath: PromiseOrValue, - index: PromiseOrValue, - language: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "deriveKey(string,uint32,string)"( - mnemonic: PromiseOrValue, - index: PromiseOrValue, - language: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "deriveKey(string,uint32)"( - mnemonic: PromiseOrValue, - index: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "deriveKey(string,string,uint32)"( - mnemonic: PromiseOrValue, - derivationPath: PromiseOrValue, - index: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - difficulty( - newDifficulty: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - dumpState( - pathToStateJson: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - ensNamehash( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envAddress(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envAddress(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBool(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBool(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBytes(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBytes(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBytes32(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBytes32(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - envExists( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envInt(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envInt(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,bytes32[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,int256[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,bool)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,address)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,uint256)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,bytes[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,uint256[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,string[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,bytes)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,bytes32)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,int256)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,address[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,string)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,bool[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envString(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envString(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envUint(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envUint(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - etch( - target: PromiseOrValue, - newRuntimeBytecode: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - eth_getLogs( - fromBlock: PromiseOrValue, - toBlock: PromiseOrValue, - target: PromiseOrValue, - topics: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - exists( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "expectCall(address,uint256,uint64,bytes)"( - callee: PromiseOrValue, - msgValue: PromiseOrValue, - gas: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "expectCall(address,uint256,uint64,bytes,uint64)"( - callee: PromiseOrValue, - msgValue: PromiseOrValue, - gas: PromiseOrValue, - data: PromiseOrValue, - count: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "expectCall(address,uint256,bytes,uint64)"( - callee: PromiseOrValue, - msgValue: PromiseOrValue, - data: PromiseOrValue, - count: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "expectCall(address,bytes)"( - callee: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "expectCall(address,bytes,uint64)"( - callee: PromiseOrValue, - data: PromiseOrValue, - count: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "expectCall(address,uint256,bytes)"( - callee: PromiseOrValue, - msgValue: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "expectCallMinGas(address,uint256,uint64,bytes)"( - callee: PromiseOrValue, - msgValue: PromiseOrValue, - minGas: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "expectCallMinGas(address,uint256,uint64,bytes,uint64)"( - callee: PromiseOrValue, - msgValue: PromiseOrValue, - minGas: PromiseOrValue, - data: PromiseOrValue, - count: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "expectEmit()"(overrides?: CallOverrides): Promise; - - "expectEmit(bool,bool,bool,bool)"( - checkTopic1: PromiseOrValue, - checkTopic2: PromiseOrValue, - checkTopic3: PromiseOrValue, - checkData: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "expectEmit(bool,bool,bool,bool,address)"( - checkTopic1: PromiseOrValue, - checkTopic2: PromiseOrValue, - checkTopic3: PromiseOrValue, - checkData: PromiseOrValue, - emitter: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "expectEmit(address)"( - emitter: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "expectRevert(bytes4)"( - revertData: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "expectRevert(bytes)"( - revertData: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "expectRevert()"(overrides?: CallOverrides): Promise; - - expectSafeMemory( - min: PromiseOrValue, - max: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - expectSafeMemoryCall( - min: PromiseOrValue, - max: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - fee( - newBasefee: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - ffi( - commandInput: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - fsMetadata( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getBlobBaseFee(overrides?: CallOverrides): Promise; - - getBlobhashes(overrides?: CallOverrides): Promise; - - getBlockNumber(overrides?: CallOverrides): Promise; - - getBlockTimestamp(overrides?: CallOverrides): Promise; - - getCode( - artifactPath: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getDeployedCode( - artifactPath: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getLabel( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getMappingKeyAndParentOf( - target: PromiseOrValue, - elementSlot: PromiseOrValue, - overrides?: CallOverrides - ): Promise< - [boolean, string, string] & { - found: boolean; - key: string; - parent: string; - } - >; - - getMappingLength( - target: PromiseOrValue, - mappingSlot: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getMappingSlotAt( - target: PromiseOrValue, - mappingSlot: PromiseOrValue, - idx: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "getNonce(address)"( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "getNonce((address,uint256,uint256,uint256))"( - wallet: VmSafe.WalletStruct, - overrides?: CallOverrides - ): Promise; - - getRecordedLogs( - overrides?: CallOverrides - ): Promise; - - indexOf( - input: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - isContext( - context: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - isDir( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - isFile( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - isPersistent( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - keyExists( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - keyExistsJson( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - keyExistsToml( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - label( - account: PromiseOrValue, - newLabel: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - lastCallGas(overrides?: CallOverrides): Promise; - - load( - target: PromiseOrValue, - slot: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - loadAllocs( - pathToAllocsJson: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "makePersistent(address[])"( - accounts: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "makePersistent(address,address)"( - account0: PromiseOrValue, - account1: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "makePersistent(address)"( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "makePersistent(address,address,address)"( - account0: PromiseOrValue, - account1: PromiseOrValue, - account2: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "mockCall(address,uint256,bytes,bytes)"( - callee: PromiseOrValue, - msgValue: PromiseOrValue, - data: PromiseOrValue, - returnData: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "mockCall(address,bytes,bytes)"( - callee: PromiseOrValue, - data: PromiseOrValue, - returnData: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "mockCallRevert(address,uint256,bytes,bytes)"( - callee: PromiseOrValue, - msgValue: PromiseOrValue, - data: PromiseOrValue, - revertData: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "mockCallRevert(address,bytes,bytes)"( - callee: PromiseOrValue, - data: PromiseOrValue, - revertData: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseAddress( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseBool( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseBytes( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseBytes32( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseInt( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "parseJson(string)"( - json: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "parseJson(string,string)"( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonAddress( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonAddressArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBool( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBoolArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBytes( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBytes32( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBytes32Array( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBytesArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonInt( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonIntArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonKeys( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonString( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonStringArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonUint( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonUintArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "parseToml(string,string)"( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "parseToml(string)"( - toml: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlAddress( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlAddressArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBool( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBoolArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBytes( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBytes32( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBytes32Array( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBytesArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlInt( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlIntArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlKeys( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlString( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlStringArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlUint( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlUintArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseUint( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - pauseGasMetering(overrides?: CallOverrides): Promise; - - "prank(address,address)"( - msgSender: PromiseOrValue, - txOrigin: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "prank(address)"( - msgSender: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "prevrandao(bytes32)"( - newPrevrandao: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "prevrandao(uint256)"( - newPrevrandao: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - projectRoot(overrides?: CallOverrides): Promise; - - prompt( - promptText: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - promptAddress( - promptText: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - promptSecret( - promptText: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - promptSecretUint( - promptText: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - promptUint( - promptText: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - randomAddress(overrides?: CallOverrides): Promise; - - "randomUint()"(overrides?: CallOverrides): Promise; - - "randomUint(uint256,uint256)"( - min: PromiseOrValue, - max: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - readCallers( - overrides?: CallOverrides - ): Promise< - [number, string, string] & { - callerMode: number; - msgSender: string; - txOrigin: string; - } - >; - - "readDir(string,uint64)"( - path: PromiseOrValue, - maxDepth: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "readDir(string,uint64,bool)"( - path: PromiseOrValue, - maxDepth: PromiseOrValue, - followLinks: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "readDir(string)"( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - readFile( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - readFileBinary( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - readLine( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - readLink( - linkPath: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - record(overrides?: CallOverrides): Promise; - - recordLogs(overrides?: CallOverrides): Promise; - - rememberKey( - privateKey: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - removeDir( - path: PromiseOrValue, - recursive: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - removeFile( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - replace( - input: PromiseOrValue, - from: PromiseOrValue, - to: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - resetNonce( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - resumeGasMetering(overrides?: CallOverrides): Promise; - - revertTo( - snapshotId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - revertToAndDelete( - snapshotId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "revokePersistent(address[])"( - accounts: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "revokePersistent(address)"( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - roll( - newHeight: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "rollFork(bytes32)"( - txHash: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "rollFork(uint256,uint256)"( - forkId: PromiseOrValue, - blockNumber: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "rollFork(uint256)"( - blockNumber: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "rollFork(uint256,bytes32)"( - forkId: PromiseOrValue, - txHash: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - rpc( - method: PromiseOrValue, - params: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - rpcUrl( - rpcAlias: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - rpcUrlStructs(overrides?: CallOverrides): Promise; - - rpcUrls(overrides?: CallOverrides): Promise<[string, string][]>; - - selectFork( - forkId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "serializeAddress(string,string,address[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "serializeAddress(string,string,address)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "serializeBool(string,string,bool[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "serializeBool(string,string,bool)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "serializeBytes(string,string,bytes[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "serializeBytes(string,string,bytes)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "serializeBytes32(string,string,bytes32[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "serializeBytes32(string,string,bytes32)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "serializeInt(string,string,int256)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "serializeInt(string,string,int256[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - serializeJson( - objectKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "serializeString(string,string,string[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "serializeString(string,string,string)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "serializeUint(string,string,uint256)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "serializeUint(string,string,uint256[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - serializeUintToHex( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - setEnv( - name: PromiseOrValue, - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - setNonce( - account: PromiseOrValue, - newNonce: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - setNonceUnsafe( - account: PromiseOrValue, - newNonce: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "sign(bytes32)"( - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[number, string, string] & { v: number; r: string; s: string }>; - - "sign(address,bytes32)"( - signer: PromiseOrValue, - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[number, string, string] & { v: number; r: string; s: string }>; - - "sign((address,uint256,uint256,uint256),bytes32)"( - wallet: VmSafe.WalletStruct, - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[number, string, string] & { v: number; r: string; s: string }>; - - "sign(uint256,bytes32)"( - privateKey: PromiseOrValue, - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[number, string, string] & { v: number; r: string; s: string }>; - - signP256( - privateKey: PromiseOrValue, - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string, string] & { r: string; s: string }>; - - skip( - skipTest: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - sleep( - duration: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - snapshot(overrides?: CallOverrides): Promise; - - split( - input: PromiseOrValue, - delimiter: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "startBroadcast()"(overrides?: CallOverrides): Promise; - - "startBroadcast(address)"( - signer: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "startBroadcast(uint256)"( - privateKey: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - startMappingRecording(overrides?: CallOverrides): Promise; - - "startPrank(address)"( - msgSender: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "startPrank(address,address)"( - msgSender: PromiseOrValue, - txOrigin: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - startStateDiffRecording(overrides?: CallOverrides): Promise; - - stopAndReturnStateDiff( - overrides?: CallOverrides - ): Promise; - - stopBroadcast(overrides?: CallOverrides): Promise; - - stopExpectSafeMemory(overrides?: CallOverrides): Promise; - - stopMappingRecording(overrides?: CallOverrides): Promise; - - stopPrank(overrides?: CallOverrides): Promise; - - store( - target: PromiseOrValue, - slot: PromiseOrValue, - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toBase64(string)"( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toBase64(bytes)"( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toBase64URL(string)"( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toBase64URL(bytes)"( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - toLowercase( - input: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(address)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(uint256)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(bytes)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(bool)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(int256)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(bytes32)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - toUppercase( - input: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "transact(uint256,bytes32)"( - forkId: PromiseOrValue, - txHash: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "transact(bytes32)"( - txHash: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - trim( - input: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - tryFfi( - commandInput: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - txGasPrice( - newGasPrice: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - unixTime(overrides?: CallOverrides): Promise; - - warp( - newTimestamp: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - writeFile( - path: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - writeFileBinary( - path: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "writeJson(string,string,string)"( - json: PromiseOrValue, - path: PromiseOrValue, - valueKey: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "writeJson(string,string)"( - json: PromiseOrValue, - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - writeLine( - path: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "writeToml(string,string,string)"( - json: PromiseOrValue, - path: PromiseOrValue, - valueKey: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "writeToml(string,string)"( - json: PromiseOrValue, - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: {}; - - estimateGas: { - accesses( - target: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - activeFork(overrides?: CallOverrides): Promise; - - addr( - privateKey: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - allowCheatcodes( - account: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "assertApproxEqAbs(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbs(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbs(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbs(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRel(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRel(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRel(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRel(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRelDecimal(int256,int256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes32[],bytes32[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(int256[],int256[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(address,address,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(string,string,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(address[],address[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(address[],address[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bool,bool,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(address,address)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(uint256[],uint256[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bool[],bool[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(int256[],int256[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes32,bytes32)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(uint256[],uint256[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes,bytes)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes32,bytes32,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(string[],string[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes32[],bytes32[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes,bytes,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bool[],bool[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes[],bytes[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(string[],string[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(string,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes[],bytes[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bool,bool)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEqDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEqDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEqDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEqDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertFalse(bool,string)"( - condition: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertFalse(bool)"( - condition: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGe(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGe(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGe(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGe(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGeDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGeDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGeDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGeDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGt(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGt(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGt(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGt(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGtDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGtDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGtDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGtDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLe(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLe(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLe(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLe(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLeDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLeDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLeDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLeDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLt(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLt(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLt(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLt(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLtDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLtDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLtDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLtDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes32[],bytes32[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(int256[],int256[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bool,bool,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes[],bytes[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bool,bool)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bool[],bool[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes,bytes)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(address[],address[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(uint256[],uint256[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bool[],bool[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(string,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(address[],address[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(string,string,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(address,address,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes32,bytes32)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes,bytes,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(uint256[],uint256[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(address,address)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes32,bytes32,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(string[],string[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes32[],bytes32[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(string[],string[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(int256[],int256[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes[],bytes[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEqDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEqDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEqDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEqDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertTrue(bool)"( - condition: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertTrue(bool,string)"( - condition: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - assume( - condition: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - blobBaseFee( - newBlobBaseFee: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - blobhashes( - hashes: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "breakpoint(string)"( - char: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "breakpoint(string,bool)"( - char: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "broadcast()"( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "broadcast(address)"( - signer: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "broadcast(uint256)"( - privateKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - chainId( - newChainId: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - clearMockedCalls( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - closeFile( - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - coinbase( - newCoinbase: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "computeCreate2Address(bytes32,bytes32)"( - salt: PromiseOrValue, - initCodeHash: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "computeCreate2Address(bytes32,bytes32,address)"( - salt: PromiseOrValue, - initCodeHash: PromiseOrValue, - deployer: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - computeCreateAddress( - deployer: PromiseOrValue, - nonce: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - copyFile( - from: PromiseOrValue, - to: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - createDir( - path: PromiseOrValue, - recursive: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createFork(string)"( - urlOrAlias: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createFork(string,uint256)"( - urlOrAlias: PromiseOrValue, - blockNumber: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createFork(string,bytes32)"( - urlOrAlias: PromiseOrValue, - txHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createSelectFork(string,uint256)"( - urlOrAlias: PromiseOrValue, - blockNumber: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createSelectFork(string,bytes32)"( - urlOrAlias: PromiseOrValue, - txHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createSelectFork(string)"( - urlOrAlias: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createWallet(string)"( - walletLabel: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createWallet(uint256)"( - privateKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createWallet(uint256,string)"( - privateKey: PromiseOrValue, - walletLabel: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - deal( - account: PromiseOrValue, - newBalance: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - deleteSnapshot( - snapshotId: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - deleteSnapshots( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "deriveKey(string,string,uint32,string)"( - mnemonic: PromiseOrValue, - derivationPath: PromiseOrValue, - index: PromiseOrValue, - language: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "deriveKey(string,uint32,string)"( - mnemonic: PromiseOrValue, - index: PromiseOrValue, - language: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "deriveKey(string,uint32)"( - mnemonic: PromiseOrValue, - index: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "deriveKey(string,string,uint32)"( - mnemonic: PromiseOrValue, - derivationPath: PromiseOrValue, - index: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - difficulty( - newDifficulty: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - dumpState( - pathToStateJson: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - ensNamehash( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envAddress(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envAddress(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBool(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBool(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBytes(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBytes(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBytes32(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBytes32(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - envExists( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envInt(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envInt(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,bytes32[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,int256[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,bool)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,address)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,uint256)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,bytes[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,uint256[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,string[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,bytes)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,bytes32)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,int256)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,address[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,string)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,bool[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envString(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envString(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envUint(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envUint(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - etch( - target: PromiseOrValue, - newRuntimeBytecode: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - eth_getLogs( - fromBlock: PromiseOrValue, - toBlock: PromiseOrValue, - target: PromiseOrValue, - topics: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - exists( - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectCall(address,uint256,uint64,bytes)"( - callee: PromiseOrValue, - msgValue: PromiseOrValue, - gas: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectCall(address,uint256,uint64,bytes,uint64)"( - callee: PromiseOrValue, - msgValue: PromiseOrValue, - gas: PromiseOrValue, - data: PromiseOrValue, - count: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectCall(address,uint256,bytes,uint64)"( - callee: PromiseOrValue, - msgValue: PromiseOrValue, - data: PromiseOrValue, - count: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectCall(address,bytes)"( - callee: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectCall(address,bytes,uint64)"( - callee: PromiseOrValue, - data: PromiseOrValue, - count: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectCall(address,uint256,bytes)"( - callee: PromiseOrValue, - msgValue: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectCallMinGas(address,uint256,uint64,bytes)"( - callee: PromiseOrValue, - msgValue: PromiseOrValue, - minGas: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectCallMinGas(address,uint256,uint64,bytes,uint64)"( - callee: PromiseOrValue, - msgValue: PromiseOrValue, - minGas: PromiseOrValue, - data: PromiseOrValue, - count: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectEmit()"( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectEmit(bool,bool,bool,bool)"( - checkTopic1: PromiseOrValue, - checkTopic2: PromiseOrValue, - checkTopic3: PromiseOrValue, - checkData: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectEmit(bool,bool,bool,bool,address)"( - checkTopic1: PromiseOrValue, - checkTopic2: PromiseOrValue, - checkTopic3: PromiseOrValue, - checkData: PromiseOrValue, - emitter: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectEmit(address)"( - emitter: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectRevert(bytes4)"( - revertData: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectRevert(bytes)"( - revertData: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectRevert()"( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - expectSafeMemory( - min: PromiseOrValue, - max: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - expectSafeMemoryCall( - min: PromiseOrValue, - max: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - fee( - newBasefee: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - ffi( - commandInput: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - fsMetadata( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getBlobBaseFee(overrides?: CallOverrides): Promise; - - getBlobhashes(overrides?: CallOverrides): Promise; - - getBlockNumber(overrides?: CallOverrides): Promise; - - getBlockTimestamp(overrides?: CallOverrides): Promise; - - getCode( - artifactPath: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getDeployedCode( - artifactPath: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getLabel( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getMappingKeyAndParentOf( - target: PromiseOrValue, - elementSlot: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getMappingLength( - target: PromiseOrValue, - mappingSlot: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getMappingSlotAt( - target: PromiseOrValue, - mappingSlot: PromiseOrValue, - idx: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "getNonce(address)"( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "getNonce((address,uint256,uint256,uint256))"( - wallet: VmSafe.WalletStruct, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getRecordedLogs( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - indexOf( - input: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - isContext( - context: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - isDir( - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - isFile( - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - isPersistent( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - keyExists( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - keyExistsJson( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - keyExistsToml( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - label( - account: PromiseOrValue, - newLabel: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - lastCallGas(overrides?: CallOverrides): Promise; - - load( - target: PromiseOrValue, - slot: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - loadAllocs( - pathToAllocsJson: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "makePersistent(address[])"( - accounts: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "makePersistent(address,address)"( - account0: PromiseOrValue, - account1: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "makePersistent(address)"( - account: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "makePersistent(address,address,address)"( - account0: PromiseOrValue, - account1: PromiseOrValue, - account2: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "mockCall(address,uint256,bytes,bytes)"( - callee: PromiseOrValue, - msgValue: PromiseOrValue, - data: PromiseOrValue, - returnData: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "mockCall(address,bytes,bytes)"( - callee: PromiseOrValue, - data: PromiseOrValue, - returnData: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "mockCallRevert(address,uint256,bytes,bytes)"( - callee: PromiseOrValue, - msgValue: PromiseOrValue, - data: PromiseOrValue, - revertData: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "mockCallRevert(address,bytes,bytes)"( - callee: PromiseOrValue, - data: PromiseOrValue, - revertData: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - parseAddress( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseBool( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseBytes( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseBytes32( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseInt( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "parseJson(string)"( - json: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "parseJson(string,string)"( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonAddress( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonAddressArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBool( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBoolArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBytes( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBytes32( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBytes32Array( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBytesArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonInt( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonIntArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonKeys( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonString( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonStringArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonUint( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonUintArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "parseToml(string,string)"( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "parseToml(string)"( - toml: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlAddress( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlAddressArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBool( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBoolArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBytes( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBytes32( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBytes32Array( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBytesArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlInt( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlIntArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlKeys( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlString( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlStringArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlUint( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlUintArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseUint( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - pauseGasMetering( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "prank(address,address)"( - msgSender: PromiseOrValue, - txOrigin: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "prank(address)"( - msgSender: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "prevrandao(bytes32)"( - newPrevrandao: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "prevrandao(uint256)"( - newPrevrandao: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - projectRoot(overrides?: CallOverrides): Promise; - - prompt( - promptText: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - promptAddress( - promptText: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - promptSecret( - promptText: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - promptSecretUint( - promptText: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - promptUint( - promptText: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - randomAddress( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "randomUint()"( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "randomUint(uint256,uint256)"( - min: PromiseOrValue, - max: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - readCallers( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "readDir(string,uint64)"( - path: PromiseOrValue, - maxDepth: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "readDir(string,uint64,bool)"( - path: PromiseOrValue, - maxDepth: PromiseOrValue, - followLinks: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "readDir(string)"( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - readFile( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - readFileBinary( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - readLine( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - readLink( - linkPath: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - record( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - recordLogs( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - rememberKey( - privateKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - removeDir( - path: PromiseOrValue, - recursive: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - removeFile( - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - replace( - input: PromiseOrValue, - from: PromiseOrValue, - to: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - resetNonce( - account: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - resumeGasMetering( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - revertTo( - snapshotId: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - revertToAndDelete( - snapshotId: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "revokePersistent(address[])"( - accounts: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "revokePersistent(address)"( - account: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - roll( - newHeight: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "rollFork(bytes32)"( - txHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "rollFork(uint256,uint256)"( - forkId: PromiseOrValue, - blockNumber: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "rollFork(uint256)"( - blockNumber: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "rollFork(uint256,bytes32)"( - forkId: PromiseOrValue, - txHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - rpc( - method: PromiseOrValue, - params: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - rpcUrl( - rpcAlias: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - rpcUrlStructs(overrides?: CallOverrides): Promise; - - rpcUrls(overrides?: CallOverrides): Promise; - - selectFork( - forkId: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeAddress(string,string,address[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeAddress(string,string,address)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBool(string,string,bool[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBool(string,string,bool)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBytes(string,string,bytes[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBytes(string,string,bytes)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBytes32(string,string,bytes32[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBytes32(string,string,bytes32)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeInt(string,string,int256)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeInt(string,string,int256[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - serializeJson( - objectKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeString(string,string,string[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeString(string,string,string)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeUint(string,string,uint256)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeUint(string,string,uint256[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - serializeUintToHex( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setEnv( - name: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setNonce( - account: PromiseOrValue, - newNonce: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setNonceUnsafe( - account: PromiseOrValue, - newNonce: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "sign(bytes32)"( - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "sign(address,bytes32)"( - signer: PromiseOrValue, - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "sign((address,uint256,uint256,uint256),bytes32)"( - wallet: VmSafe.WalletStruct, - digest: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "sign(uint256,bytes32)"( - privateKey: PromiseOrValue, - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - signP256( - privateKey: PromiseOrValue, - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - skip( - skipTest: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - sleep( - duration: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - snapshot( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - split( - input: PromiseOrValue, - delimiter: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "startBroadcast()"( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "startBroadcast(address)"( - signer: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "startBroadcast(uint256)"( - privateKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - startMappingRecording( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "startPrank(address)"( - msgSender: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "startPrank(address,address)"( - msgSender: PromiseOrValue, - txOrigin: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - startStateDiffRecording( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - stopAndReturnStateDiff( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - stopBroadcast( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - stopExpectSafeMemory( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - stopMappingRecording( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - stopPrank( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - store( - target: PromiseOrValue, - slot: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "toBase64(string)"( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toBase64(bytes)"( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toBase64URL(string)"( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toBase64URL(bytes)"( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - toLowercase( - input: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(address)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(uint256)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(bytes)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(bool)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(int256)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(bytes32)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - toUppercase( - input: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "transact(uint256,bytes32)"( - forkId: PromiseOrValue, - txHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "transact(bytes32)"( - txHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - trim( - input: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - tryFfi( - commandInput: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - txGasPrice( - newGasPrice: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - unixTime( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - warp( - newTimestamp: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - writeFile( - path: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - writeFileBinary( - path: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "writeJson(string,string,string)"( - json: PromiseOrValue, - path: PromiseOrValue, - valueKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "writeJson(string,string)"( - json: PromiseOrValue, - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - writeLine( - path: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "writeToml(string,string,string)"( - json: PromiseOrValue, - path: PromiseOrValue, - valueKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "writeToml(string,string)"( - json: PromiseOrValue, - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - accesses( - target: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - activeFork(overrides?: CallOverrides): Promise; - - addr( - privateKey: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - allowCheatcodes( - account: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "assertApproxEqAbs(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbs(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbs(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbs(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRel(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRel(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRel(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRel(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRelDecimal(int256,int256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes32[],bytes32[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(int256[],int256[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(address,address,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(string,string,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(address[],address[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(address[],address[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bool,bool,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(address,address)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(uint256[],uint256[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bool[],bool[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(int256[],int256[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes32,bytes32)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(uint256[],uint256[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes,bytes)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes32,bytes32,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(string[],string[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes32[],bytes32[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes,bytes,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bool[],bool[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes[],bytes[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(string[],string[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(string,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes[],bytes[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bool,bool)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEqDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEqDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEqDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEqDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertFalse(bool,string)"( - condition: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertFalse(bool)"( - condition: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGe(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGe(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGe(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGe(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGeDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGeDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGeDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGeDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGt(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGt(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGt(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGt(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGtDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGtDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGtDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGtDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLe(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLe(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLe(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLe(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLeDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLeDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLeDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLeDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLt(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLt(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLt(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLt(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLtDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLtDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLtDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLtDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes32[],bytes32[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(int256[],int256[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bool,bool,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes[],bytes[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bool,bool)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bool[],bool[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes,bytes)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(address[],address[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(uint256[],uint256[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bool[],bool[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(string,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(address[],address[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(string,string,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(address,address,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes32,bytes32)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes,bytes,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(uint256[],uint256[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(address,address)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes32,bytes32,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(string[],string[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes32[],bytes32[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(string[],string[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(int256[],int256[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes[],bytes[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEqDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEqDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEqDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEqDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertTrue(bool)"( - condition: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertTrue(bool,string)"( - condition: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - assume( - condition: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - blobBaseFee( - newBlobBaseFee: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - blobhashes( - hashes: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "breakpoint(string)"( - char: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "breakpoint(string,bool)"( - char: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "broadcast()"( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "broadcast(address)"( - signer: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "broadcast(uint256)"( - privateKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - chainId( - newChainId: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - clearMockedCalls( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - closeFile( - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - coinbase( - newCoinbase: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "computeCreate2Address(bytes32,bytes32)"( - salt: PromiseOrValue, - initCodeHash: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "computeCreate2Address(bytes32,bytes32,address)"( - salt: PromiseOrValue, - initCodeHash: PromiseOrValue, - deployer: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - computeCreateAddress( - deployer: PromiseOrValue, - nonce: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - copyFile( - from: PromiseOrValue, - to: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - createDir( - path: PromiseOrValue, - recursive: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createFork(string)"( - urlOrAlias: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createFork(string,uint256)"( - urlOrAlias: PromiseOrValue, - blockNumber: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createFork(string,bytes32)"( - urlOrAlias: PromiseOrValue, - txHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createSelectFork(string,uint256)"( - urlOrAlias: PromiseOrValue, - blockNumber: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createSelectFork(string,bytes32)"( - urlOrAlias: PromiseOrValue, - txHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createSelectFork(string)"( - urlOrAlias: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createWallet(string)"( - walletLabel: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createWallet(uint256)"( - privateKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createWallet(uint256,string)"( - privateKey: PromiseOrValue, - walletLabel: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - deal( - account: PromiseOrValue, - newBalance: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - deleteSnapshot( - snapshotId: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - deleteSnapshots( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "deriveKey(string,string,uint32,string)"( - mnemonic: PromiseOrValue, - derivationPath: PromiseOrValue, - index: PromiseOrValue, - language: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "deriveKey(string,uint32,string)"( - mnemonic: PromiseOrValue, - index: PromiseOrValue, - language: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "deriveKey(string,uint32)"( - mnemonic: PromiseOrValue, - index: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "deriveKey(string,string,uint32)"( - mnemonic: PromiseOrValue, - derivationPath: PromiseOrValue, - index: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - difficulty( - newDifficulty: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - dumpState( - pathToStateJson: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - ensNamehash( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envAddress(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envAddress(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBool(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBool(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBytes(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBytes(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBytes32(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBytes32(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - envExists( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envInt(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envInt(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,bytes32[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,int256[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,bool)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,address)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,uint256)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,bytes[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,uint256[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,string[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,bytes)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,bytes32)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,int256)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,address[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,string)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,bool[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envString(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envString(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envUint(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envUint(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - etch( - target: PromiseOrValue, - newRuntimeBytecode: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - eth_getLogs( - fromBlock: PromiseOrValue, - toBlock: PromiseOrValue, - target: PromiseOrValue, - topics: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - exists( - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectCall(address,uint256,uint64,bytes)"( - callee: PromiseOrValue, - msgValue: PromiseOrValue, - gas: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectCall(address,uint256,uint64,bytes,uint64)"( - callee: PromiseOrValue, - msgValue: PromiseOrValue, - gas: PromiseOrValue, - data: PromiseOrValue, - count: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectCall(address,uint256,bytes,uint64)"( - callee: PromiseOrValue, - msgValue: PromiseOrValue, - data: PromiseOrValue, - count: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectCall(address,bytes)"( - callee: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectCall(address,bytes,uint64)"( - callee: PromiseOrValue, - data: PromiseOrValue, - count: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectCall(address,uint256,bytes)"( - callee: PromiseOrValue, - msgValue: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectCallMinGas(address,uint256,uint64,bytes)"( - callee: PromiseOrValue, - msgValue: PromiseOrValue, - minGas: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectCallMinGas(address,uint256,uint64,bytes,uint64)"( - callee: PromiseOrValue, - msgValue: PromiseOrValue, - minGas: PromiseOrValue, - data: PromiseOrValue, - count: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectEmit()"( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectEmit(bool,bool,bool,bool)"( - checkTopic1: PromiseOrValue, - checkTopic2: PromiseOrValue, - checkTopic3: PromiseOrValue, - checkData: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectEmit(bool,bool,bool,bool,address)"( - checkTopic1: PromiseOrValue, - checkTopic2: PromiseOrValue, - checkTopic3: PromiseOrValue, - checkData: PromiseOrValue, - emitter: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectEmit(address)"( - emitter: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectRevert(bytes4)"( - revertData: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectRevert(bytes)"( - revertData: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "expectRevert()"( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - expectSafeMemory( - min: PromiseOrValue, - max: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - expectSafeMemoryCall( - min: PromiseOrValue, - max: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - fee( - newBasefee: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - ffi( - commandInput: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - fsMetadata( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getBlobBaseFee(overrides?: CallOverrides): Promise; - - getBlobhashes(overrides?: CallOverrides): Promise; - - getBlockNumber(overrides?: CallOverrides): Promise; - - getBlockTimestamp(overrides?: CallOverrides): Promise; - - getCode( - artifactPath: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getDeployedCode( - artifactPath: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getLabel( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getMappingKeyAndParentOf( - target: PromiseOrValue, - elementSlot: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getMappingLength( - target: PromiseOrValue, - mappingSlot: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getMappingSlotAt( - target: PromiseOrValue, - mappingSlot: PromiseOrValue, - idx: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "getNonce(address)"( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "getNonce((address,uint256,uint256,uint256))"( - wallet: VmSafe.WalletStruct, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getRecordedLogs( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - indexOf( - input: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - isContext( - context: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - isDir( - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - isFile( - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - isPersistent( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - keyExists( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - keyExistsJson( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - keyExistsToml( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - label( - account: PromiseOrValue, - newLabel: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - lastCallGas(overrides?: CallOverrides): Promise; - - load( - target: PromiseOrValue, - slot: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - loadAllocs( - pathToAllocsJson: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "makePersistent(address[])"( - accounts: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "makePersistent(address,address)"( - account0: PromiseOrValue, - account1: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "makePersistent(address)"( - account: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "makePersistent(address,address,address)"( - account0: PromiseOrValue, - account1: PromiseOrValue, - account2: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "mockCall(address,uint256,bytes,bytes)"( - callee: PromiseOrValue, - msgValue: PromiseOrValue, - data: PromiseOrValue, - returnData: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "mockCall(address,bytes,bytes)"( - callee: PromiseOrValue, - data: PromiseOrValue, - returnData: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "mockCallRevert(address,uint256,bytes,bytes)"( - callee: PromiseOrValue, - msgValue: PromiseOrValue, - data: PromiseOrValue, - revertData: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "mockCallRevert(address,bytes,bytes)"( - callee: PromiseOrValue, - data: PromiseOrValue, - revertData: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - parseAddress( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseBool( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseBytes( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseBytes32( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseInt( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "parseJson(string)"( - json: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "parseJson(string,string)"( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonAddress( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonAddressArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBool( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBoolArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBytes( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBytes32( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBytes32Array( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBytesArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonInt( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonIntArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonKeys( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonString( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonStringArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonUint( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonUintArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "parseToml(string,string)"( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "parseToml(string)"( - toml: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlAddress( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlAddressArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBool( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBoolArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBytes( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBytes32( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBytes32Array( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBytesArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlInt( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlIntArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlKeys( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlString( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlStringArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlUint( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlUintArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseUint( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - pauseGasMetering( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "prank(address,address)"( - msgSender: PromiseOrValue, - txOrigin: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "prank(address)"( - msgSender: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "prevrandao(bytes32)"( - newPrevrandao: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "prevrandao(uint256)"( - newPrevrandao: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - projectRoot(overrides?: CallOverrides): Promise; - - prompt( - promptText: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - promptAddress( - promptText: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - promptSecret( - promptText: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - promptSecretUint( - promptText: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - promptUint( - promptText: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - randomAddress( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "randomUint()"( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "randomUint(uint256,uint256)"( - min: PromiseOrValue, - max: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - readCallers( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "readDir(string,uint64)"( - path: PromiseOrValue, - maxDepth: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "readDir(string,uint64,bool)"( - path: PromiseOrValue, - maxDepth: PromiseOrValue, - followLinks: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "readDir(string)"( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - readFile( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - readFileBinary( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - readLine( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - readLink( - linkPath: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - record( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - recordLogs( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - rememberKey( - privateKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - removeDir( - path: PromiseOrValue, - recursive: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - removeFile( - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - replace( - input: PromiseOrValue, - from: PromiseOrValue, - to: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - resetNonce( - account: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - resumeGasMetering( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - revertTo( - snapshotId: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - revertToAndDelete( - snapshotId: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "revokePersistent(address[])"( - accounts: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "revokePersistent(address)"( - account: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - roll( - newHeight: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "rollFork(bytes32)"( - txHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "rollFork(uint256,uint256)"( - forkId: PromiseOrValue, - blockNumber: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "rollFork(uint256)"( - blockNumber: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "rollFork(uint256,bytes32)"( - forkId: PromiseOrValue, - txHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - rpc( - method: PromiseOrValue, - params: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - rpcUrl( - rpcAlias: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - rpcUrlStructs(overrides?: CallOverrides): Promise; - - rpcUrls(overrides?: CallOverrides): Promise; - - selectFork( - forkId: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeAddress(string,string,address[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeAddress(string,string,address)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBool(string,string,bool[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBool(string,string,bool)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBytes(string,string,bytes[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBytes(string,string,bytes)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBytes32(string,string,bytes32[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBytes32(string,string,bytes32)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeInt(string,string,int256)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeInt(string,string,int256[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - serializeJson( - objectKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeString(string,string,string[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeString(string,string,string)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeUint(string,string,uint256)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeUint(string,string,uint256[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - serializeUintToHex( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setEnv( - name: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setNonce( - account: PromiseOrValue, - newNonce: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setNonceUnsafe( - account: PromiseOrValue, - newNonce: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "sign(bytes32)"( - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "sign(address,bytes32)"( - signer: PromiseOrValue, - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "sign((address,uint256,uint256,uint256),bytes32)"( - wallet: VmSafe.WalletStruct, - digest: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "sign(uint256,bytes32)"( - privateKey: PromiseOrValue, - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - signP256( - privateKey: PromiseOrValue, - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - skip( - skipTest: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - sleep( - duration: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - snapshot( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - split( - input: PromiseOrValue, - delimiter: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "startBroadcast()"( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "startBroadcast(address)"( - signer: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "startBroadcast(uint256)"( - privateKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - startMappingRecording( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "startPrank(address)"( - msgSender: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "startPrank(address,address)"( - msgSender: PromiseOrValue, - txOrigin: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - startStateDiffRecording( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - stopAndReturnStateDiff( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - stopBroadcast( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - stopExpectSafeMemory( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - stopMappingRecording( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - stopPrank( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - store( - target: PromiseOrValue, - slot: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "toBase64(string)"( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toBase64(bytes)"( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toBase64URL(string)"( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toBase64URL(bytes)"( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - toLowercase( - input: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(address)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(uint256)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(bytes)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(bool)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(int256)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(bytes32)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - toUppercase( - input: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "transact(uint256,bytes32)"( - forkId: PromiseOrValue, - txHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "transact(bytes32)"( - txHash: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - trim( - input: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - tryFfi( - commandInput: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - txGasPrice( - newGasPrice: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - unixTime( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - warp( - newTimestamp: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - writeFile( - path: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - writeFileBinary( - path: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "writeJson(string,string,string)"( - json: PromiseOrValue, - path: PromiseOrValue, - valueKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "writeJson(string,string)"( - json: PromiseOrValue, - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - writeLine( - path: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "writeToml(string,string,string)"( - json: PromiseOrValue, - path: PromiseOrValue, - valueKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "writeToml(string,string)"( - json: PromiseOrValue, - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/forge-std/Vm.sol/VmSafe.ts b/typechain-types/forge-std/Vm.sol/VmSafe.ts deleted file mode 100644 index 728ab080..00000000 --- a/typechain-types/forge-std/Vm.sol/VmSafe.ts +++ /dev/null @@ -1,13288 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { FunctionFragment, Result } from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../common"; - -export declare namespace VmSafe { - export type WalletStruct = { - addr: PromiseOrValue; - publicKeyX: PromiseOrValue; - publicKeyY: PromiseOrValue; - privateKey: PromiseOrValue; - }; - - export type WalletStructOutput = [string, BigNumber, BigNumber, BigNumber] & { - addr: string; - publicKeyX: BigNumber; - publicKeyY: BigNumber; - privateKey: BigNumber; - }; - - export type EthGetLogsStruct = { - emitter: PromiseOrValue; - topics: PromiseOrValue[]; - data: PromiseOrValue; - blockHash: PromiseOrValue; - blockNumber: PromiseOrValue; - transactionHash: PromiseOrValue; - transactionIndex: PromiseOrValue; - logIndex: PromiseOrValue; - removed: PromiseOrValue; - }; - - export type EthGetLogsStructOutput = [ - string, - string[], - string, - string, - BigNumber, - string, - BigNumber, - BigNumber, - boolean - ] & { - emitter: string; - topics: string[]; - data: string; - blockHash: string; - blockNumber: BigNumber; - transactionHash: string; - transactionIndex: BigNumber; - logIndex: BigNumber; - removed: boolean; - }; - - export type FsMetadataStruct = { - isDir: PromiseOrValue; - isSymlink: PromiseOrValue; - length: PromiseOrValue; - readOnly: PromiseOrValue; - modified: PromiseOrValue; - accessed: PromiseOrValue; - created: PromiseOrValue; - }; - - export type FsMetadataStructOutput = [ - boolean, - boolean, - BigNumber, - boolean, - BigNumber, - BigNumber, - BigNumber - ] & { - isDir: boolean; - isSymlink: boolean; - length: BigNumber; - readOnly: boolean; - modified: BigNumber; - accessed: BigNumber; - created: BigNumber; - }; - - export type LogStruct = { - topics: PromiseOrValue[]; - data: PromiseOrValue; - emitter: PromiseOrValue; - }; - - export type LogStructOutput = [string[], string, string] & { - topics: string[]; - data: string; - emitter: string; - }; - - export type GasStruct = { - gasLimit: PromiseOrValue; - gasTotalUsed: PromiseOrValue; - gasMemoryUsed: PromiseOrValue; - gasRefunded: PromiseOrValue; - gasRemaining: PromiseOrValue; - }; - - export type GasStructOutput = [ - BigNumber, - BigNumber, - BigNumber, - BigNumber, - BigNumber - ] & { - gasLimit: BigNumber; - gasTotalUsed: BigNumber; - gasMemoryUsed: BigNumber; - gasRefunded: BigNumber; - gasRemaining: BigNumber; - }; - - export type DirEntryStruct = { - errorMessage: PromiseOrValue; - path: PromiseOrValue; - depth: PromiseOrValue; - isDir: PromiseOrValue; - isSymlink: PromiseOrValue; - }; - - export type DirEntryStructOutput = [ - string, - string, - BigNumber, - boolean, - boolean - ] & { - errorMessage: string; - path: string; - depth: BigNumber; - isDir: boolean; - isSymlink: boolean; - }; - - export type RpcStruct = { - key: PromiseOrValue; - url: PromiseOrValue; - }; - - export type RpcStructOutput = [string, string] & { key: string; url: string }; - - export type ChainInfoStruct = { - forkId: PromiseOrValue; - chainId: PromiseOrValue; - }; - - export type ChainInfoStructOutput = [BigNumber, BigNumber] & { - forkId: BigNumber; - chainId: BigNumber; - }; - - export type StorageAccessStruct = { - account: PromiseOrValue; - slot: PromiseOrValue; - isWrite: PromiseOrValue; - previousValue: PromiseOrValue; - newValue: PromiseOrValue; - reverted: PromiseOrValue; - }; - - export type StorageAccessStructOutput = [ - string, - string, - boolean, - string, - string, - boolean - ] & { - account: string; - slot: string; - isWrite: boolean; - previousValue: string; - newValue: string; - reverted: boolean; - }; - - export type AccountAccessStruct = { - chainInfo: VmSafe.ChainInfoStruct; - kind: PromiseOrValue; - account: PromiseOrValue; - accessor: PromiseOrValue; - initialized: PromiseOrValue; - oldBalance: PromiseOrValue; - newBalance: PromiseOrValue; - deployedCode: PromiseOrValue; - value: PromiseOrValue; - data: PromiseOrValue; - reverted: PromiseOrValue; - storageAccesses: VmSafe.StorageAccessStruct[]; - depth: PromiseOrValue; - }; - - export type AccountAccessStructOutput = [ - VmSafe.ChainInfoStructOutput, - number, - string, - string, - boolean, - BigNumber, - BigNumber, - string, - BigNumber, - string, - boolean, - VmSafe.StorageAccessStructOutput[], - BigNumber - ] & { - chainInfo: VmSafe.ChainInfoStructOutput; - kind: number; - account: string; - accessor: string; - initialized: boolean; - oldBalance: BigNumber; - newBalance: BigNumber; - deployedCode: string; - value: BigNumber; - data: string; - reverted: boolean; - storageAccesses: VmSafe.StorageAccessStructOutput[]; - depth: BigNumber; - }; - - export type FfiResultStruct = { - exitCode: PromiseOrValue; - stdout: PromiseOrValue; - stderr: PromiseOrValue; - }; - - export type FfiResultStructOutput = [number, string, string] & { - exitCode: number; - stdout: string; - stderr: string; - }; -} - -export interface VmSafeInterface extends utils.Interface { - functions: { - "accesses(address)": FunctionFragment; - "addr(uint256)": FunctionFragment; - "assertApproxEqAbs(uint256,uint256,uint256)": FunctionFragment; - "assertApproxEqAbs(int256,int256,uint256)": FunctionFragment; - "assertApproxEqAbs(int256,int256,uint256,string)": FunctionFragment; - "assertApproxEqAbs(uint256,uint256,uint256,string)": FunctionFragment; - "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)": FunctionFragment; - "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)": FunctionFragment; - "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)": FunctionFragment; - "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)": FunctionFragment; - "assertApproxEqRel(uint256,uint256,uint256,string)": FunctionFragment; - "assertApproxEqRel(uint256,uint256,uint256)": FunctionFragment; - "assertApproxEqRel(int256,int256,uint256,string)": FunctionFragment; - "assertApproxEqRel(int256,int256,uint256)": FunctionFragment; - "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)": FunctionFragment; - "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)": FunctionFragment; - "assertApproxEqRelDecimal(int256,int256,uint256,uint256)": FunctionFragment; - "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)": FunctionFragment; - "assertEq(bytes32[],bytes32[])": FunctionFragment; - "assertEq(int256[],int256[],string)": FunctionFragment; - "assertEq(address,address,string)": FunctionFragment; - "assertEq(string,string,string)": FunctionFragment; - "assertEq(address[],address[])": FunctionFragment; - "assertEq(address[],address[],string)": FunctionFragment; - "assertEq(bool,bool,string)": FunctionFragment; - "assertEq(address,address)": FunctionFragment; - "assertEq(uint256[],uint256[],string)": FunctionFragment; - "assertEq(bool[],bool[])": FunctionFragment; - "assertEq(int256[],int256[])": FunctionFragment; - "assertEq(int256,int256,string)": FunctionFragment; - "assertEq(bytes32,bytes32)": FunctionFragment; - "assertEq(uint256,uint256,string)": FunctionFragment; - "assertEq(uint256[],uint256[])": FunctionFragment; - "assertEq(bytes,bytes)": FunctionFragment; - "assertEq(uint256,uint256)": FunctionFragment; - "assertEq(bytes32,bytes32,string)": FunctionFragment; - "assertEq(string[],string[])": FunctionFragment; - "assertEq(bytes32[],bytes32[],string)": FunctionFragment; - "assertEq(bytes,bytes,string)": FunctionFragment; - "assertEq(bool[],bool[],string)": FunctionFragment; - "assertEq(bytes[],bytes[])": FunctionFragment; - "assertEq(string[],string[],string)": FunctionFragment; - "assertEq(string,string)": FunctionFragment; - "assertEq(bytes[],bytes[],string)": FunctionFragment; - "assertEq(bool,bool)": FunctionFragment; - "assertEq(int256,int256)": FunctionFragment; - "assertEqDecimal(uint256,uint256,uint256)": FunctionFragment; - "assertEqDecimal(int256,int256,uint256)": FunctionFragment; - "assertEqDecimal(int256,int256,uint256,string)": FunctionFragment; - "assertEqDecimal(uint256,uint256,uint256,string)": FunctionFragment; - "assertFalse(bool,string)": FunctionFragment; - "assertFalse(bool)": FunctionFragment; - "assertGe(int256,int256)": FunctionFragment; - "assertGe(int256,int256,string)": FunctionFragment; - "assertGe(uint256,uint256)": FunctionFragment; - "assertGe(uint256,uint256,string)": FunctionFragment; - "assertGeDecimal(uint256,uint256,uint256)": FunctionFragment; - "assertGeDecimal(int256,int256,uint256,string)": FunctionFragment; - "assertGeDecimal(uint256,uint256,uint256,string)": FunctionFragment; - "assertGeDecimal(int256,int256,uint256)": FunctionFragment; - "assertGt(int256,int256)": FunctionFragment; - "assertGt(uint256,uint256,string)": FunctionFragment; - "assertGt(uint256,uint256)": FunctionFragment; - "assertGt(int256,int256,string)": FunctionFragment; - "assertGtDecimal(int256,int256,uint256,string)": FunctionFragment; - "assertGtDecimal(uint256,uint256,uint256,string)": FunctionFragment; - "assertGtDecimal(int256,int256,uint256)": FunctionFragment; - "assertGtDecimal(uint256,uint256,uint256)": FunctionFragment; - "assertLe(int256,int256,string)": FunctionFragment; - "assertLe(uint256,uint256)": FunctionFragment; - "assertLe(int256,int256)": FunctionFragment; - "assertLe(uint256,uint256,string)": FunctionFragment; - "assertLeDecimal(int256,int256,uint256)": FunctionFragment; - "assertLeDecimal(uint256,uint256,uint256,string)": FunctionFragment; - "assertLeDecimal(int256,int256,uint256,string)": FunctionFragment; - "assertLeDecimal(uint256,uint256,uint256)": FunctionFragment; - "assertLt(int256,int256)": FunctionFragment; - "assertLt(uint256,uint256,string)": FunctionFragment; - "assertLt(int256,int256,string)": FunctionFragment; - "assertLt(uint256,uint256)": FunctionFragment; - "assertLtDecimal(uint256,uint256,uint256)": FunctionFragment; - "assertLtDecimal(int256,int256,uint256,string)": FunctionFragment; - "assertLtDecimal(uint256,uint256,uint256,string)": FunctionFragment; - "assertLtDecimal(int256,int256,uint256)": FunctionFragment; - "assertNotEq(bytes32[],bytes32[])": FunctionFragment; - "assertNotEq(int256[],int256[])": FunctionFragment; - "assertNotEq(bool,bool,string)": FunctionFragment; - "assertNotEq(bytes[],bytes[],string)": FunctionFragment; - "assertNotEq(bool,bool)": FunctionFragment; - "assertNotEq(bool[],bool[])": FunctionFragment; - "assertNotEq(bytes,bytes)": FunctionFragment; - "assertNotEq(address[],address[])": FunctionFragment; - "assertNotEq(int256,int256,string)": FunctionFragment; - "assertNotEq(uint256[],uint256[])": FunctionFragment; - "assertNotEq(bool[],bool[],string)": FunctionFragment; - "assertNotEq(string,string)": FunctionFragment; - "assertNotEq(address[],address[],string)": FunctionFragment; - "assertNotEq(string,string,string)": FunctionFragment; - "assertNotEq(address,address,string)": FunctionFragment; - "assertNotEq(bytes32,bytes32)": FunctionFragment; - "assertNotEq(bytes,bytes,string)": FunctionFragment; - "assertNotEq(uint256,uint256,string)": FunctionFragment; - "assertNotEq(uint256[],uint256[],string)": FunctionFragment; - "assertNotEq(address,address)": FunctionFragment; - "assertNotEq(bytes32,bytes32,string)": FunctionFragment; - "assertNotEq(string[],string[],string)": FunctionFragment; - "assertNotEq(uint256,uint256)": FunctionFragment; - "assertNotEq(bytes32[],bytes32[],string)": FunctionFragment; - "assertNotEq(string[],string[])": FunctionFragment; - "assertNotEq(int256[],int256[],string)": FunctionFragment; - "assertNotEq(bytes[],bytes[])": FunctionFragment; - "assertNotEq(int256,int256)": FunctionFragment; - "assertNotEqDecimal(int256,int256,uint256)": FunctionFragment; - "assertNotEqDecimal(int256,int256,uint256,string)": FunctionFragment; - "assertNotEqDecimal(uint256,uint256,uint256)": FunctionFragment; - "assertNotEqDecimal(uint256,uint256,uint256,string)": FunctionFragment; - "assertTrue(bool)": FunctionFragment; - "assertTrue(bool,string)": FunctionFragment; - "assume(bool)": FunctionFragment; - "breakpoint(string)": FunctionFragment; - "breakpoint(string,bool)": FunctionFragment; - "broadcast()": FunctionFragment; - "broadcast(address)": FunctionFragment; - "broadcast(uint256)": FunctionFragment; - "closeFile(string)": FunctionFragment; - "computeCreate2Address(bytes32,bytes32)": FunctionFragment; - "computeCreate2Address(bytes32,bytes32,address)": FunctionFragment; - "computeCreateAddress(address,uint256)": FunctionFragment; - "copyFile(string,string)": FunctionFragment; - "createDir(string,bool)": FunctionFragment; - "createWallet(string)": FunctionFragment; - "createWallet(uint256)": FunctionFragment; - "createWallet(uint256,string)": FunctionFragment; - "deriveKey(string,string,uint32,string)": FunctionFragment; - "deriveKey(string,uint32,string)": FunctionFragment; - "deriveKey(string,uint32)": FunctionFragment; - "deriveKey(string,string,uint32)": FunctionFragment; - "ensNamehash(string)": FunctionFragment; - "envAddress(string)": FunctionFragment; - "envAddress(string,string)": FunctionFragment; - "envBool(string)": FunctionFragment; - "envBool(string,string)": FunctionFragment; - "envBytes(string)": FunctionFragment; - "envBytes(string,string)": FunctionFragment; - "envBytes32(string,string)": FunctionFragment; - "envBytes32(string)": FunctionFragment; - "envExists(string)": FunctionFragment; - "envInt(string,string)": FunctionFragment; - "envInt(string)": FunctionFragment; - "envOr(string,string,bytes32[])": FunctionFragment; - "envOr(string,string,int256[])": FunctionFragment; - "envOr(string,bool)": FunctionFragment; - "envOr(string,address)": FunctionFragment; - "envOr(string,uint256)": FunctionFragment; - "envOr(string,string,bytes[])": FunctionFragment; - "envOr(string,string,uint256[])": FunctionFragment; - "envOr(string,string,string[])": FunctionFragment; - "envOr(string,bytes)": FunctionFragment; - "envOr(string,bytes32)": FunctionFragment; - "envOr(string,int256)": FunctionFragment; - "envOr(string,string,address[])": FunctionFragment; - "envOr(string,string)": FunctionFragment; - "envOr(string,string,bool[])": FunctionFragment; - "envString(string,string)": FunctionFragment; - "envString(string)": FunctionFragment; - "envUint(string)": FunctionFragment; - "envUint(string,string)": FunctionFragment; - "eth_getLogs(uint256,uint256,address,bytes32[])": FunctionFragment; - "exists(string)": FunctionFragment; - "ffi(string[])": FunctionFragment; - "fsMetadata(string)": FunctionFragment; - "getBlobBaseFee()": FunctionFragment; - "getBlockNumber()": FunctionFragment; - "getBlockTimestamp()": FunctionFragment; - "getCode(string)": FunctionFragment; - "getDeployedCode(string)": FunctionFragment; - "getLabel(address)": FunctionFragment; - "getMappingKeyAndParentOf(address,bytes32)": FunctionFragment; - "getMappingLength(address,bytes32)": FunctionFragment; - "getMappingSlotAt(address,bytes32,uint256)": FunctionFragment; - "getNonce(address)": FunctionFragment; - "getNonce((address,uint256,uint256,uint256))": FunctionFragment; - "getRecordedLogs()": FunctionFragment; - "indexOf(string,string)": FunctionFragment; - "isContext(uint8)": FunctionFragment; - "isDir(string)": FunctionFragment; - "isFile(string)": FunctionFragment; - "keyExists(string,string)": FunctionFragment; - "keyExistsJson(string,string)": FunctionFragment; - "keyExistsToml(string,string)": FunctionFragment; - "label(address,string)": FunctionFragment; - "lastCallGas()": FunctionFragment; - "load(address,bytes32)": FunctionFragment; - "parseAddress(string)": FunctionFragment; - "parseBool(string)": FunctionFragment; - "parseBytes(string)": FunctionFragment; - "parseBytes32(string)": FunctionFragment; - "parseInt(string)": FunctionFragment; - "parseJson(string)": FunctionFragment; - "parseJson(string,string)": FunctionFragment; - "parseJsonAddress(string,string)": FunctionFragment; - "parseJsonAddressArray(string,string)": FunctionFragment; - "parseJsonBool(string,string)": FunctionFragment; - "parseJsonBoolArray(string,string)": FunctionFragment; - "parseJsonBytes(string,string)": FunctionFragment; - "parseJsonBytes32(string,string)": FunctionFragment; - "parseJsonBytes32Array(string,string)": FunctionFragment; - "parseJsonBytesArray(string,string)": FunctionFragment; - "parseJsonInt(string,string)": FunctionFragment; - "parseJsonIntArray(string,string)": FunctionFragment; - "parseJsonKeys(string,string)": FunctionFragment; - "parseJsonString(string,string)": FunctionFragment; - "parseJsonStringArray(string,string)": FunctionFragment; - "parseJsonUint(string,string)": FunctionFragment; - "parseJsonUintArray(string,string)": FunctionFragment; - "parseToml(string,string)": FunctionFragment; - "parseToml(string)": FunctionFragment; - "parseTomlAddress(string,string)": FunctionFragment; - "parseTomlAddressArray(string,string)": FunctionFragment; - "parseTomlBool(string,string)": FunctionFragment; - "parseTomlBoolArray(string,string)": FunctionFragment; - "parseTomlBytes(string,string)": FunctionFragment; - "parseTomlBytes32(string,string)": FunctionFragment; - "parseTomlBytes32Array(string,string)": FunctionFragment; - "parseTomlBytesArray(string,string)": FunctionFragment; - "parseTomlInt(string,string)": FunctionFragment; - "parseTomlIntArray(string,string)": FunctionFragment; - "parseTomlKeys(string,string)": FunctionFragment; - "parseTomlString(string,string)": FunctionFragment; - "parseTomlStringArray(string,string)": FunctionFragment; - "parseTomlUint(string,string)": FunctionFragment; - "parseTomlUintArray(string,string)": FunctionFragment; - "parseUint(string)": FunctionFragment; - "pauseGasMetering()": FunctionFragment; - "projectRoot()": FunctionFragment; - "prompt(string)": FunctionFragment; - "promptAddress(string)": FunctionFragment; - "promptSecret(string)": FunctionFragment; - "promptSecretUint(string)": FunctionFragment; - "promptUint(string)": FunctionFragment; - "randomAddress()": FunctionFragment; - "randomUint()": FunctionFragment; - "randomUint(uint256,uint256)": FunctionFragment; - "readDir(string,uint64)": FunctionFragment; - "readDir(string,uint64,bool)": FunctionFragment; - "readDir(string)": FunctionFragment; - "readFile(string)": FunctionFragment; - "readFileBinary(string)": FunctionFragment; - "readLine(string)": FunctionFragment; - "readLink(string)": FunctionFragment; - "record()": FunctionFragment; - "recordLogs()": FunctionFragment; - "rememberKey(uint256)": FunctionFragment; - "removeDir(string,bool)": FunctionFragment; - "removeFile(string)": FunctionFragment; - "replace(string,string,string)": FunctionFragment; - "resumeGasMetering()": FunctionFragment; - "rpc(string,string)": FunctionFragment; - "rpcUrl(string)": FunctionFragment; - "rpcUrlStructs()": FunctionFragment; - "rpcUrls()": FunctionFragment; - "serializeAddress(string,string,address[])": FunctionFragment; - "serializeAddress(string,string,address)": FunctionFragment; - "serializeBool(string,string,bool[])": FunctionFragment; - "serializeBool(string,string,bool)": FunctionFragment; - "serializeBytes(string,string,bytes[])": FunctionFragment; - "serializeBytes(string,string,bytes)": FunctionFragment; - "serializeBytes32(string,string,bytes32[])": FunctionFragment; - "serializeBytes32(string,string,bytes32)": FunctionFragment; - "serializeInt(string,string,int256)": FunctionFragment; - "serializeInt(string,string,int256[])": FunctionFragment; - "serializeJson(string,string)": FunctionFragment; - "serializeString(string,string,string[])": FunctionFragment; - "serializeString(string,string,string)": FunctionFragment; - "serializeUint(string,string,uint256)": FunctionFragment; - "serializeUint(string,string,uint256[])": FunctionFragment; - "serializeUintToHex(string,string,uint256)": FunctionFragment; - "setEnv(string,string)": FunctionFragment; - "sign(bytes32)": FunctionFragment; - "sign(address,bytes32)": FunctionFragment; - "sign((address,uint256,uint256,uint256),bytes32)": FunctionFragment; - "sign(uint256,bytes32)": FunctionFragment; - "signP256(uint256,bytes32)": FunctionFragment; - "sleep(uint256)": FunctionFragment; - "split(string,string)": FunctionFragment; - "startBroadcast()": FunctionFragment; - "startBroadcast(address)": FunctionFragment; - "startBroadcast(uint256)": FunctionFragment; - "startMappingRecording()": FunctionFragment; - "startStateDiffRecording()": FunctionFragment; - "stopAndReturnStateDiff()": FunctionFragment; - "stopBroadcast()": FunctionFragment; - "stopMappingRecording()": FunctionFragment; - "toBase64(string)": FunctionFragment; - "toBase64(bytes)": FunctionFragment; - "toBase64URL(string)": FunctionFragment; - "toBase64URL(bytes)": FunctionFragment; - "toLowercase(string)": FunctionFragment; - "toString(address)": FunctionFragment; - "toString(uint256)": FunctionFragment; - "toString(bytes)": FunctionFragment; - "toString(bool)": FunctionFragment; - "toString(int256)": FunctionFragment; - "toString(bytes32)": FunctionFragment; - "toUppercase(string)": FunctionFragment; - "trim(string)": FunctionFragment; - "tryFfi(string[])": FunctionFragment; - "unixTime()": FunctionFragment; - "writeFile(string,string)": FunctionFragment; - "writeFileBinary(string,bytes)": FunctionFragment; - "writeJson(string,string,string)": FunctionFragment; - "writeJson(string,string)": FunctionFragment; - "writeLine(string,string)": FunctionFragment; - "writeToml(string,string,string)": FunctionFragment; - "writeToml(string,string)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "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)" - | "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" - | "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" - | "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" - | "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: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "addr", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqAbs(uint256,uint256,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqAbs(int256,int256,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqAbs(int256,int256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqAbs(uint256,uint256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqRel(uint256,uint256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqRel(uint256,uint256,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqRel(int256,int256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqRel(int256,int256,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqRelDecimal(int256,int256,uint256,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bytes32[],bytes32[])", - values: [PromiseOrValue[], PromiseOrValue[]] - ): string; - encodeFunctionData( - functionFragment: "assertEq(int256[],int256[],string)", - values: [ - PromiseOrValue[], - PromiseOrValue[], - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertEq(address,address,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertEq(string,string,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertEq(address[],address[])", - values: [PromiseOrValue[], PromiseOrValue[]] - ): string; - encodeFunctionData( - functionFragment: "assertEq(address[],address[],string)", - values: [ - PromiseOrValue[], - PromiseOrValue[], - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bool,bool,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertEq(address,address)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertEq(uint256[],uint256[],string)", - values: [ - PromiseOrValue[], - PromiseOrValue[], - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bool[],bool[])", - values: [PromiseOrValue[], PromiseOrValue[]] - ): string; - encodeFunctionData( - functionFragment: "assertEq(int256[],int256[])", - values: [PromiseOrValue[], PromiseOrValue[]] - ): string; - encodeFunctionData( - functionFragment: "assertEq(int256,int256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bytes32,bytes32)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertEq(uint256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertEq(uint256[],uint256[])", - values: [PromiseOrValue[], PromiseOrValue[]] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bytes,bytes)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertEq(uint256,uint256)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bytes32,bytes32,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertEq(string[],string[])", - values: [PromiseOrValue[], PromiseOrValue[]] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bytes32[],bytes32[],string)", - values: [ - PromiseOrValue[], - PromiseOrValue[], - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bytes,bytes,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bool[],bool[],string)", - values: [ - PromiseOrValue[], - PromiseOrValue[], - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bytes[],bytes[])", - values: [PromiseOrValue[], PromiseOrValue[]] - ): string; - encodeFunctionData( - functionFragment: "assertEq(string[],string[],string)", - values: [ - PromiseOrValue[], - PromiseOrValue[], - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertEq(string,string)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bytes[],bytes[],string)", - values: [ - PromiseOrValue[], - PromiseOrValue[], - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertEq(bool,bool)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertEq(int256,int256)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertEqDecimal(uint256,uint256,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertEqDecimal(int256,int256,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertEqDecimal(int256,int256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertEqDecimal(uint256,uint256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertFalse(bool,string)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertFalse(bool)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertGe(int256,int256)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertGe(int256,int256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertGe(uint256,uint256)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertGe(uint256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertGeDecimal(uint256,uint256,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertGeDecimal(int256,int256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertGeDecimal(uint256,uint256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertGeDecimal(int256,int256,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertGt(int256,int256)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertGt(uint256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertGt(uint256,uint256)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertGt(int256,int256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertGtDecimal(int256,int256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertGtDecimal(uint256,uint256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertGtDecimal(int256,int256,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertGtDecimal(uint256,uint256,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertLe(int256,int256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertLe(uint256,uint256)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertLe(int256,int256)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertLe(uint256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertLeDecimal(int256,int256,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertLeDecimal(uint256,uint256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertLeDecimal(int256,int256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertLeDecimal(uint256,uint256,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertLt(int256,int256)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertLt(uint256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertLt(int256,int256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertLt(uint256,uint256)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertLtDecimal(uint256,uint256,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertLtDecimal(int256,int256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertLtDecimal(uint256,uint256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertLtDecimal(int256,int256,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bytes32[],bytes32[])", - values: [PromiseOrValue[], PromiseOrValue[]] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(int256[],int256[])", - values: [PromiseOrValue[], PromiseOrValue[]] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bool,bool,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bytes[],bytes[],string)", - values: [ - PromiseOrValue[], - PromiseOrValue[], - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bool,bool)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bool[],bool[])", - values: [PromiseOrValue[], PromiseOrValue[]] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bytes,bytes)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(address[],address[])", - values: [PromiseOrValue[], PromiseOrValue[]] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(int256,int256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(uint256[],uint256[])", - values: [PromiseOrValue[], PromiseOrValue[]] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bool[],bool[],string)", - values: [ - PromiseOrValue[], - PromiseOrValue[], - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(string,string)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(address[],address[],string)", - values: [ - PromiseOrValue[], - PromiseOrValue[], - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(string,string,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(address,address,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bytes32,bytes32)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bytes,bytes,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(uint256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(uint256[],uint256[],string)", - values: [ - PromiseOrValue[], - PromiseOrValue[], - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(address,address)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bytes32,bytes32,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(string[],string[],string)", - values: [ - PromiseOrValue[], - PromiseOrValue[], - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(uint256,uint256)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bytes32[],bytes32[],string)", - values: [ - PromiseOrValue[], - PromiseOrValue[], - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(string[],string[])", - values: [PromiseOrValue[], PromiseOrValue[]] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(int256[],int256[],string)", - values: [ - PromiseOrValue[], - PromiseOrValue[], - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(bytes[],bytes[])", - values: [PromiseOrValue[], PromiseOrValue[]] - ): string; - encodeFunctionData( - functionFragment: "assertNotEq(int256,int256)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertNotEqDecimal(int256,int256,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertNotEqDecimal(int256,int256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertNotEqDecimal(uint256,uint256,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertNotEqDecimal(uint256,uint256,uint256,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "assertTrue(bool)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assertTrue(bool,string)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "assume", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "breakpoint(string)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "breakpoint(string,bool)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "broadcast()", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "broadcast(address)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "broadcast(uint256)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "closeFile", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "computeCreate2Address(bytes32,bytes32)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "computeCreate2Address(bytes32,bytes32,address)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "computeCreateAddress", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "copyFile", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "createDir", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "createWallet(string)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "createWallet(uint256)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "createWallet(uint256,string)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "deriveKey(string,string,uint32,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "deriveKey(string,uint32,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "deriveKey(string,uint32)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "deriveKey(string,string,uint32)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "ensNamehash", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envAddress(string)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envAddress(string,string)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envBool(string)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envBool(string,string)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envBytes(string)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envBytes(string,string)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envBytes32(string,string)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envBytes32(string)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envExists", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envInt(string,string)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envInt(string)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,string,bytes32[])", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue[] - ] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,string,int256[])", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue[] - ] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,bool)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,address)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,uint256)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,string,bytes[])", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue[] - ] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,string,uint256[])", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue[] - ] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,string,string[])", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue[] - ] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,bytes)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,bytes32)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,int256)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,string,address[])", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue[] - ] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,string)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envOr(string,string,bool[])", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue[] - ] - ): string; - encodeFunctionData( - functionFragment: "envString(string,string)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envString(string)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envUint(string)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "envUint(string,string)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "eth_getLogs", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue[] - ] - ): string; - encodeFunctionData( - functionFragment: "exists", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "ffi", - values: [PromiseOrValue[]] - ): string; - encodeFunctionData( - functionFragment: "fsMetadata", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "getBlobBaseFee", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getBlockNumber", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getBlockTimestamp", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "getCode", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "getDeployedCode", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "getLabel", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "getMappingKeyAndParentOf", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "getMappingLength", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "getMappingSlotAt", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "getNonce(address)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "getNonce((address,uint256,uint256,uint256))", - values: [VmSafe.WalletStruct] - ): string; - encodeFunctionData( - functionFragment: "getRecordedLogs", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "indexOf", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "isContext", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "isDir", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "isFile", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "keyExists", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "keyExistsJson", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "keyExistsToml", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "label", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "lastCallGas", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "load", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseAddress", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseBool", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseBytes", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseBytes32", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseInt", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseJson(string)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseJson(string,string)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseJsonAddress", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseJsonAddressArray", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseJsonBool", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseJsonBoolArray", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseJsonBytes", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseJsonBytes32", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseJsonBytes32Array", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseJsonBytesArray", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseJsonInt", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseJsonIntArray", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseJsonKeys", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseJsonString", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseJsonStringArray", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseJsonUint", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseJsonUintArray", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseToml(string,string)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseToml(string)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseTomlAddress", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseTomlAddressArray", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseTomlBool", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseTomlBoolArray", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseTomlBytes", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseTomlBytes32", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseTomlBytes32Array", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseTomlBytesArray", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseTomlInt", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseTomlIntArray", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseTomlKeys", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseTomlString", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseTomlStringArray", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseTomlUint", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseTomlUintArray", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "parseUint", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "pauseGasMetering", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "projectRoot", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "prompt", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "promptAddress", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "promptSecret", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "promptSecretUint", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "promptUint", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "randomAddress", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "randomUint()", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "randomUint(uint256,uint256)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "readDir(string,uint64)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "readDir(string,uint64,bool)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "readDir(string)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "readFile", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "readFileBinary", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "readLine", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "readLink", - values: [PromiseOrValue] - ): string; - encodeFunctionData(functionFragment: "record", values?: undefined): string; - encodeFunctionData( - functionFragment: "recordLogs", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "rememberKey", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "removeDir", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "removeFile", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "replace", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "resumeGasMetering", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "rpc", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "rpcUrl", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "rpcUrlStructs", - values?: undefined - ): string; - encodeFunctionData(functionFragment: "rpcUrls", values?: undefined): string; - encodeFunctionData( - functionFragment: "serializeAddress(string,string,address[])", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue[] - ] - ): string; - encodeFunctionData( - functionFragment: "serializeAddress(string,string,address)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "serializeBool(string,string,bool[])", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue[] - ] - ): string; - encodeFunctionData( - functionFragment: "serializeBool(string,string,bool)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "serializeBytes(string,string,bytes[])", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue[] - ] - ): string; - encodeFunctionData( - functionFragment: "serializeBytes(string,string,bytes)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "serializeBytes32(string,string,bytes32[])", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue[] - ] - ): string; - encodeFunctionData( - functionFragment: "serializeBytes32(string,string,bytes32)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "serializeInt(string,string,int256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "serializeInt(string,string,int256[])", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue[] - ] - ): string; - encodeFunctionData( - functionFragment: "serializeJson", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "serializeString(string,string,string[])", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue[] - ] - ): string; - encodeFunctionData( - functionFragment: "serializeString(string,string,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "serializeUint(string,string,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "serializeUint(string,string,uint256[])", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue[] - ] - ): string; - encodeFunctionData( - functionFragment: "serializeUintToHex", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "setEnv", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "sign(bytes32)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "sign(address,bytes32)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "sign((address,uint256,uint256,uint256),bytes32)", - values: [VmSafe.WalletStruct, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "sign(uint256,bytes32)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "signP256", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "sleep", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "split", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "startBroadcast()", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "startBroadcast(address)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "startBroadcast(uint256)", - values: [PromiseOrValue] - ): 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: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "toBase64(bytes)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "toBase64URL(string)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "toBase64URL(bytes)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "toLowercase", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "toString(address)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "toString(uint256)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "toString(bytes)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "toString(bool)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "toString(int256)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "toString(bytes32)", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "toUppercase", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "trim", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "tryFfi", - values: [PromiseOrValue[]] - ): string; - encodeFunctionData(functionFragment: "unixTime", values?: undefined): string; - encodeFunctionData( - functionFragment: "writeFile", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "writeFileBinary", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "writeJson(string,string,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "writeJson(string,string)", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "writeLine", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "writeToml(string,string,string)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "writeToml(string,string)", - values: [PromiseOrValue, PromiseOrValue] - ): 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: "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: "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", 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: "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; - - events: {}; -} - -export interface VmSafe extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: VmSafeInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - accesses( - target: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - addr( - privateKey: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { keyAddr: string }>; - - "assertApproxEqAbs(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertApproxEqAbs(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertApproxEqAbs(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertApproxEqAbs(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertApproxEqRel(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertApproxEqRel(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertApproxEqRel(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertApproxEqRel(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertApproxEqRelDecimal(int256,int256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(bytes32[],bytes32[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(int256[],int256[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(address,address,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(string,string,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(address[],address[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(address[],address[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(bool,bool,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(address,address)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(uint256[],uint256[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(bool[],bool[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(int256[],int256[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(bytes32,bytes32)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(uint256[],uint256[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(bytes,bytes)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(bytes32,bytes32,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(string[],string[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(bytes32[],bytes32[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(bytes,bytes,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(bool[],bool[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(bytes[],bytes[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(string[],string[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(string,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(bytes[],bytes[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(bool,bool)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEq(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEqDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEqDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEqDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertEqDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertFalse(bool,string)"( - condition: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertFalse(bool)"( - condition: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertGe(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertGe(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertGe(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertGe(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertGeDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertGeDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertGeDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertGeDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertGt(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertGt(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertGt(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertGt(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertGtDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertGtDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertGtDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertGtDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertLe(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertLe(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertLe(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertLe(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertLeDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertLeDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertLeDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertLeDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertLt(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertLt(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertLt(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertLt(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertLtDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertLtDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertLtDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertLtDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(bytes32[],bytes32[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(int256[],int256[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(bool,bool,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(bytes[],bytes[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(bool,bool)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(bool[],bool[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(bytes,bytes)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(address[],address[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(uint256[],uint256[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(bool[],bool[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(string,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(address[],address[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(string,string,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(address,address,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(bytes32,bytes32)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(bytes,bytes,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(uint256[],uint256[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(address,address)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(bytes32,bytes32,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(string[],string[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(bytes32[],bytes32[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(string[],string[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(int256[],int256[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(bytes[],bytes[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEq(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEqDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEqDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEqDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertNotEqDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertTrue(bool)"( - condition: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "assertTrue(bool,string)"( - condition: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - assume( - condition: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[void]>; - - "breakpoint(string)"( - char: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "breakpoint(string,bool)"( - char: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "broadcast()"( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "broadcast(address)"( - signer: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "broadcast(uint256)"( - privateKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - closeFile( - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "computeCreate2Address(bytes32,bytes32)"( - salt: PromiseOrValue, - initCodeHash: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - "computeCreate2Address(bytes32,bytes32,address)"( - salt: PromiseOrValue, - initCodeHash: PromiseOrValue, - deployer: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - computeCreateAddress( - deployer: PromiseOrValue, - nonce: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - copyFile( - from: PromiseOrValue, - to: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - createDir( - path: PromiseOrValue, - recursive: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createWallet(string)"( - walletLabel: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createWallet(uint256)"( - privateKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createWallet(uint256,string)"( - privateKey: PromiseOrValue, - walletLabel: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "deriveKey(string,string,uint32,string)"( - mnemonic: PromiseOrValue, - derivationPath: PromiseOrValue, - index: PromiseOrValue, - language: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber] & { privateKey: BigNumber }>; - - "deriveKey(string,uint32,string)"( - mnemonic: PromiseOrValue, - index: PromiseOrValue, - language: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber] & { privateKey: BigNumber }>; - - "deriveKey(string,uint32)"( - mnemonic: PromiseOrValue, - index: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber] & { privateKey: BigNumber }>; - - "deriveKey(string,string,uint32)"( - mnemonic: PromiseOrValue, - derivationPath: PromiseOrValue, - index: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber] & { privateKey: BigNumber }>; - - ensNamehash( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - "envAddress(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { value: string }>; - - "envAddress(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string[]] & { value: string[] }>; - - "envBool(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[boolean] & { value: boolean }>; - - "envBool(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[boolean[]] & { value: boolean[] }>; - - "envBytes(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { value: string }>; - - "envBytes(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string[]] & { value: string[] }>; - - "envBytes32(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string[]] & { value: string[] }>; - - "envBytes32(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { value: string }>; - - envExists( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[boolean] & { result: boolean }>; - - "envInt(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber[]] & { value: BigNumber[] }>; - - "envInt(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber] & { value: BigNumber }>; - - "envOr(string,string,bytes32[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[string[]] & { value: string[] }>; - - "envOr(string,string,int256[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[BigNumber[]] & { value: BigNumber[] }>; - - "envOr(string,bool)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[boolean] & { value: boolean }>; - - "envOr(string,address)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { value: string }>; - - "envOr(string,uint256)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber] & { value: BigNumber }>; - - "envOr(string,string,bytes[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[string[]] & { value: string[] }>; - - "envOr(string,string,uint256[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[BigNumber[]] & { value: BigNumber[] }>; - - "envOr(string,string,string[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[string[]] & { value: string[] }>; - - "envOr(string,bytes)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { value: string }>; - - "envOr(string,bytes32)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { value: string }>; - - "envOr(string,int256)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber] & { value: BigNumber }>; - - "envOr(string,string,address[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[string[]] & { value: string[] }>; - - "envOr(string,string)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { value: string }>; - - "envOr(string,string,bool[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise<[boolean[]] & { value: boolean[] }>; - - "envString(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string[]] & { value: string[] }>; - - "envString(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { value: string }>; - - "envUint(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber] & { value: BigNumber }>; - - "envUint(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber[]] & { value: BigNumber[] }>; - - eth_getLogs( - fromBlock: PromiseOrValue, - toBlock: PromiseOrValue, - target: PromiseOrValue, - topics: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - exists( - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - ffi( - commandInput: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - fsMetadata( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise< - [VmSafe.FsMetadataStructOutput] & { - metadata: VmSafe.FsMetadataStructOutput; - } - >; - - getBlobBaseFee( - overrides?: CallOverrides - ): Promise<[BigNumber] & { blobBaseFee: BigNumber }>; - - getBlockNumber( - overrides?: CallOverrides - ): Promise<[BigNumber] & { height: BigNumber }>; - - getBlockTimestamp( - overrides?: CallOverrides - ): Promise<[BigNumber] & { timestamp: BigNumber }>; - - getCode( - artifactPath: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { creationBytecode: string }>; - - getDeployedCode( - artifactPath: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { runtimeBytecode: string }>; - - getLabel( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { currentLabel: string }>; - - getMappingKeyAndParentOf( - target: PromiseOrValue, - elementSlot: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getMappingLength( - target: PromiseOrValue, - mappingSlot: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getMappingSlotAt( - target: PromiseOrValue, - mappingSlot: PromiseOrValue, - idx: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "getNonce(address)"( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber] & { nonce: BigNumber }>; - - "getNonce((address,uint256,uint256,uint256))"( - wallet: VmSafe.WalletStruct, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getRecordedLogs( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - indexOf( - input: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - isContext( - context: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[boolean] & { result: boolean }>; - - isDir( - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - isFile( - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - keyExists( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[boolean]>; - - keyExistsJson( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[boolean]>; - - keyExistsToml( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[boolean]>; - - label( - account: PromiseOrValue, - newLabel: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - lastCallGas( - overrides?: CallOverrides - ): Promise<[VmSafe.GasStructOutput] & { gas: VmSafe.GasStructOutput }>; - - load( - target: PromiseOrValue, - slot: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { data: string }>; - - parseAddress( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { parsedValue: string }>; - - parseBool( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[boolean] & { parsedValue: boolean }>; - - parseBytes( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { parsedValue: string }>; - - parseBytes32( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { parsedValue: string }>; - - parseInt( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber] & { parsedValue: BigNumber }>; - - "parseJson(string)"( - json: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { abiEncodedData: string }>; - - "parseJson(string,string)"( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { abiEncodedData: string }>; - - parseJsonAddress( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - parseJsonAddressArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string[]]>; - - parseJsonBool( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[boolean]>; - - parseJsonBoolArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[boolean[]]>; - - parseJsonBytes( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - parseJsonBytes32( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - parseJsonBytes32Array( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string[]]>; - - parseJsonBytesArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string[]]>; - - parseJsonInt( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - parseJsonIntArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber[]]>; - - parseJsonKeys( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string[]] & { keys: string[] }>; - - parseJsonString( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - parseJsonStringArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string[]]>; - - parseJsonUint( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - parseJsonUintArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber[]]>; - - "parseToml(string,string)"( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { abiEncodedData: string }>; - - "parseToml(string)"( - toml: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { abiEncodedData: string }>; - - parseTomlAddress( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - parseTomlAddressArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string[]]>; - - parseTomlBool( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[boolean]>; - - parseTomlBoolArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[boolean[]]>; - - parseTomlBytes( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - parseTomlBytes32( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - parseTomlBytes32Array( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string[]]>; - - parseTomlBytesArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string[]]>; - - parseTomlInt( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - parseTomlIntArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber[]]>; - - parseTomlKeys( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string[]] & { keys: string[] }>; - - parseTomlString( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - parseTomlStringArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string[]]>; - - parseTomlUint( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - parseTomlUintArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber[]]>; - - parseUint( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber] & { parsedValue: BigNumber }>; - - pauseGasMetering( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - projectRoot( - overrides?: CallOverrides - ): Promise<[string] & { path: string }>; - - prompt( - promptText: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - promptAddress( - promptText: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - promptSecret( - promptText: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - promptSecretUint( - promptText: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - promptUint( - promptText: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - randomAddress( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "randomUint()"( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "randomUint(uint256,uint256)"( - min: PromiseOrValue, - max: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "readDir(string,uint64)"( - path: PromiseOrValue, - maxDepth: PromiseOrValue, - overrides?: CallOverrides - ): Promise< - [VmSafe.DirEntryStructOutput[]] & { - entries: VmSafe.DirEntryStructOutput[]; - } - >; - - "readDir(string,uint64,bool)"( - path: PromiseOrValue, - maxDepth: PromiseOrValue, - followLinks: PromiseOrValue, - overrides?: CallOverrides - ): Promise< - [VmSafe.DirEntryStructOutput[]] & { - entries: VmSafe.DirEntryStructOutput[]; - } - >; - - "readDir(string)"( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise< - [VmSafe.DirEntryStructOutput[]] & { - entries: VmSafe.DirEntryStructOutput[]; - } - >; - - readFile( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { data: string }>; - - readFileBinary( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { data: string }>; - - readLine( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { line: string }>; - - readLink( - linkPath: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { targetPath: string }>; - - record( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - recordLogs( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - rememberKey( - privateKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - removeDir( - path: PromiseOrValue, - recursive: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - removeFile( - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - replace( - input: PromiseOrValue, - from: PromiseOrValue, - to: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { output: string }>; - - resumeGasMetering( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - rpc( - method: PromiseOrValue, - params: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - rpcUrl( - rpcAlias: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { json: string }>; - - rpcUrlStructs( - overrides?: CallOverrides - ): Promise<[VmSafe.RpcStructOutput[]] & { urls: VmSafe.RpcStructOutput[] }>; - - rpcUrls( - overrides?: CallOverrides - ): Promise<[[string, string][]] & { urls: [string, string][] }>; - - "serializeAddress(string,string,address[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeAddress(string,string,address)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBool(string,string,bool[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBool(string,string,bool)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBytes(string,string,bytes[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBytes(string,string,bytes)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBytes32(string,string,bytes32[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBytes32(string,string,bytes32)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeInt(string,string,int256)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeInt(string,string,int256[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - serializeJson( - objectKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeString(string,string,string[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeString(string,string,string)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeUint(string,string,uint256)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeUint(string,string,uint256[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - serializeUintToHex( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setEnv( - name: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "sign(bytes32)"( - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[number, string, string] & { v: number; r: string; s: string }>; - - "sign(address,bytes32)"( - signer: PromiseOrValue, - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[number, string, string] & { v: number; r: string; s: string }>; - - "sign((address,uint256,uint256,uint256),bytes32)"( - wallet: VmSafe.WalletStruct, - digest: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "sign(uint256,bytes32)"( - privateKey: PromiseOrValue, - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[number, string, string] & { v: number; r: string; s: string }>; - - signP256( - privateKey: PromiseOrValue, - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string, string] & { r: string; s: string }>; - - sleep( - duration: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - split( - input: PromiseOrValue, - delimiter: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string[]] & { outputs: string[] }>; - - "startBroadcast()"( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "startBroadcast(address)"( - signer: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "startBroadcast(uint256)"( - privateKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - startMappingRecording( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - startStateDiffRecording( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - stopAndReturnStateDiff( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - stopBroadcast( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - stopMappingRecording( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "toBase64(string)"( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - "toBase64(bytes)"( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - "toBase64URL(string)"( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - "toBase64URL(bytes)"( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - toLowercase( - input: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { output: string }>; - - "toString(address)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { stringifiedValue: string }>; - - "toString(uint256)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { stringifiedValue: string }>; - - "toString(bytes)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { stringifiedValue: string }>; - - "toString(bool)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { stringifiedValue: string }>; - - "toString(int256)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { stringifiedValue: string }>; - - "toString(bytes32)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { stringifiedValue: string }>; - - toUppercase( - input: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { output: string }>; - - trim( - input: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { output: string }>; - - tryFfi( - commandInput: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - unixTime( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - writeFile( - path: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - writeFileBinary( - path: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "writeJson(string,string,string)"( - json: PromiseOrValue, - path: PromiseOrValue, - valueKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "writeJson(string,string)"( - json: PromiseOrValue, - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - writeLine( - path: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "writeToml(string,string,string)"( - json: PromiseOrValue, - path: PromiseOrValue, - valueKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "writeToml(string,string)"( - json: PromiseOrValue, - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - accesses( - target: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - addr( - privateKey: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbs(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbs(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbs(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbs(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRel(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRel(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRel(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRel(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRelDecimal(int256,int256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes32[],bytes32[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(int256[],int256[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(address,address,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(string,string,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(address[],address[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(address[],address[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bool,bool,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(address,address)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(uint256[],uint256[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bool[],bool[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(int256[],int256[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes32,bytes32)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(uint256[],uint256[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes,bytes)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes32,bytes32,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(string[],string[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes32[],bytes32[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes,bytes,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bool[],bool[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes[],bytes[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(string[],string[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(string,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes[],bytes[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bool,bool)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEqDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEqDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEqDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEqDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertFalse(bool,string)"( - condition: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertFalse(bool)"( - condition: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGe(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGe(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGe(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGe(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGeDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGeDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGeDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGeDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGt(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGt(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGt(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGt(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGtDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGtDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGtDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGtDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLe(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLe(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLe(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLe(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLeDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLeDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLeDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLeDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLt(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLt(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLt(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLt(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLtDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLtDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLtDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLtDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes32[],bytes32[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(int256[],int256[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bool,bool,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes[],bytes[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bool,bool)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bool[],bool[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes,bytes)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(address[],address[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(uint256[],uint256[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bool[],bool[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(string,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(address[],address[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(string,string,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(address,address,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes32,bytes32)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes,bytes,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(uint256[],uint256[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(address,address)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes32,bytes32,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(string[],string[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes32[],bytes32[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(string[],string[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(int256[],int256[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes[],bytes[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEqDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEqDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEqDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEqDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertTrue(bool)"( - condition: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertTrue(bool,string)"( - condition: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - assume( - condition: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "breakpoint(string)"( - char: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "breakpoint(string,bool)"( - char: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "broadcast()"( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "broadcast(address)"( - signer: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "broadcast(uint256)"( - privateKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - closeFile( - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "computeCreate2Address(bytes32,bytes32)"( - salt: PromiseOrValue, - initCodeHash: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "computeCreate2Address(bytes32,bytes32,address)"( - salt: PromiseOrValue, - initCodeHash: PromiseOrValue, - deployer: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - computeCreateAddress( - deployer: PromiseOrValue, - nonce: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - copyFile( - from: PromiseOrValue, - to: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - createDir( - path: PromiseOrValue, - recursive: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createWallet(string)"( - walletLabel: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createWallet(uint256)"( - privateKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createWallet(uint256,string)"( - privateKey: PromiseOrValue, - walletLabel: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "deriveKey(string,string,uint32,string)"( - mnemonic: PromiseOrValue, - derivationPath: PromiseOrValue, - index: PromiseOrValue, - language: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "deriveKey(string,uint32,string)"( - mnemonic: PromiseOrValue, - index: PromiseOrValue, - language: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "deriveKey(string,uint32)"( - mnemonic: PromiseOrValue, - index: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "deriveKey(string,string,uint32)"( - mnemonic: PromiseOrValue, - derivationPath: PromiseOrValue, - index: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - ensNamehash( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envAddress(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envAddress(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBool(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBool(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBytes(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBytes(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBytes32(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBytes32(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - envExists( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envInt(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envInt(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,bytes32[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,int256[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,bool)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,address)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,uint256)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,bytes[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,uint256[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,string[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,bytes)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,bytes32)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,int256)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,address[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,string)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,bool[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envString(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envString(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envUint(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envUint(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - eth_getLogs( - fromBlock: PromiseOrValue, - toBlock: PromiseOrValue, - target: PromiseOrValue, - topics: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - exists( - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - ffi( - commandInput: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - fsMetadata( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getBlobBaseFee(overrides?: CallOverrides): Promise; - - getBlockNumber(overrides?: CallOverrides): Promise; - - getBlockTimestamp(overrides?: CallOverrides): Promise; - - getCode( - artifactPath: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getDeployedCode( - artifactPath: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getLabel( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getMappingKeyAndParentOf( - target: PromiseOrValue, - elementSlot: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getMappingLength( - target: PromiseOrValue, - mappingSlot: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getMappingSlotAt( - target: PromiseOrValue, - mappingSlot: PromiseOrValue, - idx: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "getNonce(address)"( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "getNonce((address,uint256,uint256,uint256))"( - wallet: VmSafe.WalletStruct, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getRecordedLogs( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - indexOf( - input: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - isContext( - context: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - isDir( - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - isFile( - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - keyExists( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - keyExistsJson( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - keyExistsToml( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - label( - account: PromiseOrValue, - newLabel: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - lastCallGas(overrides?: CallOverrides): Promise; - - load( - target: PromiseOrValue, - slot: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseAddress( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseBool( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseBytes( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseBytes32( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseInt( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "parseJson(string)"( - json: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "parseJson(string,string)"( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonAddress( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonAddressArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBool( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBoolArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBytes( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBytes32( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBytes32Array( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBytesArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonInt( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonIntArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonKeys( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonString( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonStringArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonUint( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonUintArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "parseToml(string,string)"( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "parseToml(string)"( - toml: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlAddress( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlAddressArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBool( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBoolArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBytes( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBytes32( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBytes32Array( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBytesArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlInt( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlIntArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlKeys( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlString( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlStringArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlUint( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlUintArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseUint( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - pauseGasMetering( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - projectRoot(overrides?: CallOverrides): Promise; - - prompt( - promptText: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - promptAddress( - promptText: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - promptSecret( - promptText: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - promptSecretUint( - promptText: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - promptUint( - promptText: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - randomAddress( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "randomUint()"( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "randomUint(uint256,uint256)"( - min: PromiseOrValue, - max: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "readDir(string,uint64)"( - path: PromiseOrValue, - maxDepth: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "readDir(string,uint64,bool)"( - path: PromiseOrValue, - maxDepth: PromiseOrValue, - followLinks: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "readDir(string)"( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - readFile( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - readFileBinary( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - readLine( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - readLink( - linkPath: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - record( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - recordLogs( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - rememberKey( - privateKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - removeDir( - path: PromiseOrValue, - recursive: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - removeFile( - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - replace( - input: PromiseOrValue, - from: PromiseOrValue, - to: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - resumeGasMetering( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - rpc( - method: PromiseOrValue, - params: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - rpcUrl( - rpcAlias: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - rpcUrlStructs(overrides?: CallOverrides): Promise; - - rpcUrls(overrides?: CallOverrides): Promise<[string, string][]>; - - "serializeAddress(string,string,address[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeAddress(string,string,address)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBool(string,string,bool[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBool(string,string,bool)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBytes(string,string,bytes[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBytes(string,string,bytes)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBytes32(string,string,bytes32[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBytes32(string,string,bytes32)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeInt(string,string,int256)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeInt(string,string,int256[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - serializeJson( - objectKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeString(string,string,string[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeString(string,string,string)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeUint(string,string,uint256)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeUint(string,string,uint256[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - serializeUintToHex( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setEnv( - name: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "sign(bytes32)"( - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[number, string, string] & { v: number; r: string; s: string }>; - - "sign(address,bytes32)"( - signer: PromiseOrValue, - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[number, string, string] & { v: number; r: string; s: string }>; - - "sign((address,uint256,uint256,uint256),bytes32)"( - wallet: VmSafe.WalletStruct, - digest: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "sign(uint256,bytes32)"( - privateKey: PromiseOrValue, - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[number, string, string] & { v: number; r: string; s: string }>; - - signP256( - privateKey: PromiseOrValue, - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string, string] & { r: string; s: string }>; - - sleep( - duration: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - split( - input: PromiseOrValue, - delimiter: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "startBroadcast()"( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "startBroadcast(address)"( - signer: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "startBroadcast(uint256)"( - privateKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - startMappingRecording( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - startStateDiffRecording( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - stopAndReturnStateDiff( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - stopBroadcast( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - stopMappingRecording( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "toBase64(string)"( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toBase64(bytes)"( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toBase64URL(string)"( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toBase64URL(bytes)"( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - toLowercase( - input: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(address)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(uint256)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(bytes)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(bool)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(int256)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(bytes32)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - toUppercase( - input: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - trim( - input: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - tryFfi( - commandInput: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - unixTime( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - writeFile( - path: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - writeFileBinary( - path: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "writeJson(string,string,string)"( - json: PromiseOrValue, - path: PromiseOrValue, - valueKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "writeJson(string,string)"( - json: PromiseOrValue, - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - writeLine( - path: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "writeToml(string,string,string)"( - json: PromiseOrValue, - path: PromiseOrValue, - valueKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "writeToml(string,string)"( - json: PromiseOrValue, - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - accesses( - target: PromiseOrValue, - overrides?: CallOverrides - ): Promise< - [string[], string[]] & { readSlots: string[]; writeSlots: string[] } - >; - - addr( - privateKey: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbs(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbs(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbs(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbs(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRel(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRel(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRel(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRel(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRelDecimal(int256,int256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes32[],bytes32[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(int256[],int256[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(address,address,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(string,string,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(address[],address[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(address[],address[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bool,bool,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(address,address)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(uint256[],uint256[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bool[],bool[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(int256[],int256[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes32,bytes32)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(uint256[],uint256[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes,bytes)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes32,bytes32,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(string[],string[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes32[],bytes32[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes,bytes,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bool[],bool[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes[],bytes[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(string[],string[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(string,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes[],bytes[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bool,bool)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEqDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEqDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEqDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEqDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertFalse(bool,string)"( - condition: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertFalse(bool)"( - condition: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGe(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGe(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGe(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGe(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGeDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGeDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGeDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGeDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGt(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGt(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGt(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGt(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGtDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGtDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGtDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGtDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLe(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLe(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLe(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLe(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLeDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLeDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLeDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLeDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLt(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLt(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLt(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLt(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLtDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLtDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLtDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLtDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes32[],bytes32[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(int256[],int256[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bool,bool,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes[],bytes[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bool,bool)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bool[],bool[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes,bytes)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(address[],address[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(uint256[],uint256[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bool[],bool[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(string,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(address[],address[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(string,string,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(address,address,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes32,bytes32)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes,bytes,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(uint256[],uint256[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(address,address)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes32,bytes32,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(string[],string[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes32[],bytes32[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(string[],string[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(int256[],int256[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes[],bytes[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEqDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEqDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEqDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEqDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertTrue(bool)"( - condition: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertTrue(bool,string)"( - condition: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - assume( - condition: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "breakpoint(string)"( - char: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "breakpoint(string,bool)"( - char: PromiseOrValue, - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "broadcast()"(overrides?: CallOverrides): Promise; - - "broadcast(address)"( - signer: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "broadcast(uint256)"( - privateKey: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - closeFile( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "computeCreate2Address(bytes32,bytes32)"( - salt: PromiseOrValue, - initCodeHash: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "computeCreate2Address(bytes32,bytes32,address)"( - salt: PromiseOrValue, - initCodeHash: PromiseOrValue, - deployer: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - computeCreateAddress( - deployer: PromiseOrValue, - nonce: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - copyFile( - from: PromiseOrValue, - to: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - createDir( - path: PromiseOrValue, - recursive: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "createWallet(string)"( - walletLabel: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "createWallet(uint256)"( - privateKey: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "createWallet(uint256,string)"( - privateKey: PromiseOrValue, - walletLabel: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "deriveKey(string,string,uint32,string)"( - mnemonic: PromiseOrValue, - derivationPath: PromiseOrValue, - index: PromiseOrValue, - language: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "deriveKey(string,uint32,string)"( - mnemonic: PromiseOrValue, - index: PromiseOrValue, - language: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "deriveKey(string,uint32)"( - mnemonic: PromiseOrValue, - index: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "deriveKey(string,string,uint32)"( - mnemonic: PromiseOrValue, - derivationPath: PromiseOrValue, - index: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - ensNamehash( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envAddress(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envAddress(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBool(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBool(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBytes(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBytes(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBytes32(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBytes32(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - envExists( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envInt(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envInt(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,bytes32[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,int256[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,bool)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,address)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,uint256)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,bytes[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,uint256[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,string[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,bytes)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,bytes32)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,int256)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,address[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,string)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,bool[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envString(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envString(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envUint(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envUint(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - eth_getLogs( - fromBlock: PromiseOrValue, - toBlock: PromiseOrValue, - target: PromiseOrValue, - topics: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - exists( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - ffi( - commandInput: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - fsMetadata( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getBlobBaseFee(overrides?: CallOverrides): Promise; - - getBlockNumber(overrides?: CallOverrides): Promise; - - getBlockTimestamp(overrides?: CallOverrides): Promise; - - getCode( - artifactPath: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getDeployedCode( - artifactPath: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getLabel( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getMappingKeyAndParentOf( - target: PromiseOrValue, - elementSlot: PromiseOrValue, - overrides?: CallOverrides - ): Promise< - [boolean, string, string] & { - found: boolean; - key: string; - parent: string; - } - >; - - getMappingLength( - target: PromiseOrValue, - mappingSlot: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getMappingSlotAt( - target: PromiseOrValue, - mappingSlot: PromiseOrValue, - idx: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "getNonce(address)"( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "getNonce((address,uint256,uint256,uint256))"( - wallet: VmSafe.WalletStruct, - overrides?: CallOverrides - ): Promise; - - getRecordedLogs( - overrides?: CallOverrides - ): Promise; - - indexOf( - input: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - isContext( - context: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - isDir( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - isFile( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - keyExists( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - keyExistsJson( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - keyExistsToml( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - label( - account: PromiseOrValue, - newLabel: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - lastCallGas(overrides?: CallOverrides): Promise; - - load( - target: PromiseOrValue, - slot: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseAddress( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseBool( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseBytes( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseBytes32( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseInt( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "parseJson(string)"( - json: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "parseJson(string,string)"( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonAddress( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonAddressArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBool( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBoolArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBytes( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBytes32( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBytes32Array( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBytesArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonInt( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonIntArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonKeys( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonString( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonStringArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonUint( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonUintArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "parseToml(string,string)"( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "parseToml(string)"( - toml: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlAddress( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlAddressArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBool( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBoolArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBytes( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBytes32( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBytes32Array( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBytesArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlInt( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlIntArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlKeys( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlString( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlStringArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlUint( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlUintArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseUint( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - pauseGasMetering(overrides?: CallOverrides): Promise; - - projectRoot(overrides?: CallOverrides): Promise; - - prompt( - promptText: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - promptAddress( - promptText: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - promptSecret( - promptText: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - promptSecretUint( - promptText: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - promptUint( - promptText: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - randomAddress(overrides?: CallOverrides): Promise; - - "randomUint()"(overrides?: CallOverrides): Promise; - - "randomUint(uint256,uint256)"( - min: PromiseOrValue, - max: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "readDir(string,uint64)"( - path: PromiseOrValue, - maxDepth: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "readDir(string,uint64,bool)"( - path: PromiseOrValue, - maxDepth: PromiseOrValue, - followLinks: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "readDir(string)"( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - readFile( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - readFileBinary( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - readLine( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - readLink( - linkPath: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - record(overrides?: CallOverrides): Promise; - - recordLogs(overrides?: CallOverrides): Promise; - - rememberKey( - privateKey: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - removeDir( - path: PromiseOrValue, - recursive: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - removeFile( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - replace( - input: PromiseOrValue, - from: PromiseOrValue, - to: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - resumeGasMetering(overrides?: CallOverrides): Promise; - - rpc( - method: PromiseOrValue, - params: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - rpcUrl( - rpcAlias: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - rpcUrlStructs(overrides?: CallOverrides): Promise; - - rpcUrls(overrides?: CallOverrides): Promise<[string, string][]>; - - "serializeAddress(string,string,address[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "serializeAddress(string,string,address)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "serializeBool(string,string,bool[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "serializeBool(string,string,bool)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "serializeBytes(string,string,bytes[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "serializeBytes(string,string,bytes)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "serializeBytes32(string,string,bytes32[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "serializeBytes32(string,string,bytes32)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "serializeInt(string,string,int256)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "serializeInt(string,string,int256[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - serializeJson( - objectKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "serializeString(string,string,string[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "serializeString(string,string,string)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "serializeUint(string,string,uint256)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "serializeUint(string,string,uint256[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - serializeUintToHex( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - setEnv( - name: PromiseOrValue, - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "sign(bytes32)"( - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[number, string, string] & { v: number; r: string; s: string }>; - - "sign(address,bytes32)"( - signer: PromiseOrValue, - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[number, string, string] & { v: number; r: string; s: string }>; - - "sign((address,uint256,uint256,uint256),bytes32)"( - wallet: VmSafe.WalletStruct, - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[number, string, string] & { v: number; r: string; s: string }>; - - "sign(uint256,bytes32)"( - privateKey: PromiseOrValue, - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[number, string, string] & { v: number; r: string; s: string }>; - - signP256( - privateKey: PromiseOrValue, - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string, string] & { r: string; s: string }>; - - sleep( - duration: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - split( - input: PromiseOrValue, - delimiter: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "startBroadcast()"(overrides?: CallOverrides): Promise; - - "startBroadcast(address)"( - signer: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "startBroadcast(uint256)"( - privateKey: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - startMappingRecording(overrides?: CallOverrides): Promise; - - startStateDiffRecording(overrides?: CallOverrides): Promise; - - stopAndReturnStateDiff( - overrides?: CallOverrides - ): Promise; - - stopBroadcast(overrides?: CallOverrides): Promise; - - stopMappingRecording(overrides?: CallOverrides): Promise; - - "toBase64(string)"( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toBase64(bytes)"( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toBase64URL(string)"( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toBase64URL(bytes)"( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - toLowercase( - input: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(address)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(uint256)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(bytes)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(bool)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(int256)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(bytes32)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - toUppercase( - input: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - trim( - input: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - tryFfi( - commandInput: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - unixTime(overrides?: CallOverrides): Promise; - - writeFile( - path: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - writeFileBinary( - path: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "writeJson(string,string,string)"( - json: PromiseOrValue, - path: PromiseOrValue, - valueKey: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "writeJson(string,string)"( - json: PromiseOrValue, - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - writeLine( - path: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "writeToml(string,string,string)"( - json: PromiseOrValue, - path: PromiseOrValue, - valueKey: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "writeToml(string,string)"( - json: PromiseOrValue, - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: {}; - - estimateGas: { - accesses( - target: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - addr( - privateKey: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbs(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbs(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbs(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbs(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRel(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRel(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRel(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRel(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRelDecimal(int256,int256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes32[],bytes32[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(int256[],int256[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(address,address,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(string,string,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(address[],address[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(address[],address[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bool,bool,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(address,address)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(uint256[],uint256[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bool[],bool[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(int256[],int256[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes32,bytes32)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(uint256[],uint256[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes,bytes)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes32,bytes32,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(string[],string[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes32[],bytes32[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes,bytes,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bool[],bool[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes[],bytes[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(string[],string[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(string,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes[],bytes[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bool,bool)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEqDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEqDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEqDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEqDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertFalse(bool,string)"( - condition: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertFalse(bool)"( - condition: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGe(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGe(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGe(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGe(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGeDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGeDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGeDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGeDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGt(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGt(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGt(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGt(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGtDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGtDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGtDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGtDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLe(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLe(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLe(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLe(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLeDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLeDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLeDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLeDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLt(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLt(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLt(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLt(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLtDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLtDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLtDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLtDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes32[],bytes32[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(int256[],int256[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bool,bool,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes[],bytes[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bool,bool)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bool[],bool[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes,bytes)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(address[],address[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(uint256[],uint256[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bool[],bool[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(string,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(address[],address[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(string,string,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(address,address,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes32,bytes32)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes,bytes,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(uint256[],uint256[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(address,address)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes32,bytes32,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(string[],string[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes32[],bytes32[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(string[],string[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(int256[],int256[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes[],bytes[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEqDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEqDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEqDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEqDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertTrue(bool)"( - condition: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertTrue(bool,string)"( - condition: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - assume( - condition: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "breakpoint(string)"( - char: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "breakpoint(string,bool)"( - char: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "broadcast()"( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "broadcast(address)"( - signer: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "broadcast(uint256)"( - privateKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - closeFile( - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "computeCreate2Address(bytes32,bytes32)"( - salt: PromiseOrValue, - initCodeHash: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "computeCreate2Address(bytes32,bytes32,address)"( - salt: PromiseOrValue, - initCodeHash: PromiseOrValue, - deployer: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - computeCreateAddress( - deployer: PromiseOrValue, - nonce: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - copyFile( - from: PromiseOrValue, - to: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - createDir( - path: PromiseOrValue, - recursive: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createWallet(string)"( - walletLabel: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createWallet(uint256)"( - privateKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createWallet(uint256,string)"( - privateKey: PromiseOrValue, - walletLabel: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "deriveKey(string,string,uint32,string)"( - mnemonic: PromiseOrValue, - derivationPath: PromiseOrValue, - index: PromiseOrValue, - language: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "deriveKey(string,uint32,string)"( - mnemonic: PromiseOrValue, - index: PromiseOrValue, - language: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "deriveKey(string,uint32)"( - mnemonic: PromiseOrValue, - index: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "deriveKey(string,string,uint32)"( - mnemonic: PromiseOrValue, - derivationPath: PromiseOrValue, - index: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - ensNamehash( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envAddress(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envAddress(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBool(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBool(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBytes(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBytes(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBytes32(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBytes32(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - envExists( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envInt(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envInt(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,bytes32[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,int256[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,bool)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,address)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,uint256)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,bytes[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,uint256[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,string[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,bytes)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,bytes32)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,int256)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,address[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,string)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,bool[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envString(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envString(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envUint(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envUint(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - eth_getLogs( - fromBlock: PromiseOrValue, - toBlock: PromiseOrValue, - target: PromiseOrValue, - topics: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - exists( - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - ffi( - commandInput: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - fsMetadata( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getBlobBaseFee(overrides?: CallOverrides): Promise; - - getBlockNumber(overrides?: CallOverrides): Promise; - - getBlockTimestamp(overrides?: CallOverrides): Promise; - - getCode( - artifactPath: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getDeployedCode( - artifactPath: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getLabel( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getMappingKeyAndParentOf( - target: PromiseOrValue, - elementSlot: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getMappingLength( - target: PromiseOrValue, - mappingSlot: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getMappingSlotAt( - target: PromiseOrValue, - mappingSlot: PromiseOrValue, - idx: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "getNonce(address)"( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "getNonce((address,uint256,uint256,uint256))"( - wallet: VmSafe.WalletStruct, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getRecordedLogs( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - indexOf( - input: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - isContext( - context: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - isDir( - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - isFile( - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - keyExists( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - keyExistsJson( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - keyExistsToml( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - label( - account: PromiseOrValue, - newLabel: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - lastCallGas(overrides?: CallOverrides): Promise; - - load( - target: PromiseOrValue, - slot: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseAddress( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseBool( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseBytes( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseBytes32( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseInt( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "parseJson(string)"( - json: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "parseJson(string,string)"( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonAddress( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonAddressArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBool( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBoolArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBytes( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBytes32( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBytes32Array( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBytesArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonInt( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonIntArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonKeys( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonString( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonStringArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonUint( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonUintArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "parseToml(string,string)"( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "parseToml(string)"( - toml: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlAddress( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlAddressArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBool( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBoolArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBytes( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBytes32( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBytes32Array( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBytesArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlInt( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlIntArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlKeys( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlString( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlStringArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlUint( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlUintArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseUint( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - pauseGasMetering( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - projectRoot(overrides?: CallOverrides): Promise; - - prompt( - promptText: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - promptAddress( - promptText: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - promptSecret( - promptText: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - promptSecretUint( - promptText: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - promptUint( - promptText: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - randomAddress( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "randomUint()"( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "randomUint(uint256,uint256)"( - min: PromiseOrValue, - max: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "readDir(string,uint64)"( - path: PromiseOrValue, - maxDepth: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "readDir(string,uint64,bool)"( - path: PromiseOrValue, - maxDepth: PromiseOrValue, - followLinks: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "readDir(string)"( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - readFile( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - readFileBinary( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - readLine( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - readLink( - linkPath: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - record( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - recordLogs( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - rememberKey( - privateKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - removeDir( - path: PromiseOrValue, - recursive: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - removeFile( - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - replace( - input: PromiseOrValue, - from: PromiseOrValue, - to: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - resumeGasMetering( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - rpc( - method: PromiseOrValue, - params: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - rpcUrl( - rpcAlias: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - rpcUrlStructs(overrides?: CallOverrides): Promise; - - rpcUrls(overrides?: CallOverrides): Promise; - - "serializeAddress(string,string,address[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeAddress(string,string,address)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBool(string,string,bool[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBool(string,string,bool)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBytes(string,string,bytes[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBytes(string,string,bytes)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBytes32(string,string,bytes32[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBytes32(string,string,bytes32)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeInt(string,string,int256)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeInt(string,string,int256[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - serializeJson( - objectKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeString(string,string,string[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeString(string,string,string)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeUint(string,string,uint256)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeUint(string,string,uint256[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - serializeUintToHex( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setEnv( - name: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "sign(bytes32)"( - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "sign(address,bytes32)"( - signer: PromiseOrValue, - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "sign((address,uint256,uint256,uint256),bytes32)"( - wallet: VmSafe.WalletStruct, - digest: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "sign(uint256,bytes32)"( - privateKey: PromiseOrValue, - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - signP256( - privateKey: PromiseOrValue, - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - sleep( - duration: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - split( - input: PromiseOrValue, - delimiter: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "startBroadcast()"( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "startBroadcast(address)"( - signer: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "startBroadcast(uint256)"( - privateKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - startMappingRecording( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - startStateDiffRecording( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - stopAndReturnStateDiff( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - stopBroadcast( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - stopMappingRecording( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "toBase64(string)"( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toBase64(bytes)"( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toBase64URL(string)"( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toBase64URL(bytes)"( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - toLowercase( - input: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(address)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(uint256)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(bytes)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(bool)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(int256)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(bytes32)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - toUppercase( - input: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - trim( - input: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - tryFfi( - commandInput: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - unixTime( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - writeFile( - path: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - writeFileBinary( - path: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "writeJson(string,string,string)"( - json: PromiseOrValue, - path: PromiseOrValue, - valueKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "writeJson(string,string)"( - json: PromiseOrValue, - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - writeLine( - path: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "writeToml(string,string,string)"( - json: PromiseOrValue, - path: PromiseOrValue, - valueKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "writeToml(string,string)"( - json: PromiseOrValue, - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - accesses( - target: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - addr( - privateKey: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbs(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbs(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbs(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbs(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbsDecimal(int256,int256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbsDecimal(uint256,uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqAbsDecimal(int256,int256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxDelta: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRel(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRel(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRel(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRel(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRelDecimal(uint256,uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRelDecimal(int256,int256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertApproxEqRelDecimal(int256,int256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - maxPercentDelta: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes32[],bytes32[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(int256[],int256[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(address,address,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(string,string,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(address[],address[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(address[],address[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bool,bool,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(address,address)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(uint256[],uint256[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bool[],bool[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(int256[],int256[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes32,bytes32)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(uint256[],uint256[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes,bytes)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes32,bytes32,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(string[],string[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes32[],bytes32[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes,bytes,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bool[],bool[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes[],bytes[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertEq(string[],string[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(string,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bytes[],bytes[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(bool,bool)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEq(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEqDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEqDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEqDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertEqDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertFalse(bool,string)"( - condition: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertFalse(bool)"( - condition: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGe(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGe(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGe(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGe(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGeDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGeDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGeDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGeDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGt(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGt(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGt(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGt(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGtDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGtDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGtDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertGtDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLe(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLe(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLe(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLe(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLeDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLeDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLeDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLeDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLt(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLt(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLt(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLt(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLtDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLtDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLtDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertLtDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes32[],bytes32[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(int256[],int256[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bool,bool,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes[],bytes[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bool,bool)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bool[],bool[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes,bytes)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(address[],address[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(int256,int256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(uint256[],uint256[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bool[],bool[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(string,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(address[],address[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(string,string,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(address,address,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes32,bytes32)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes,bytes,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(uint256[],uint256[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(address,address)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes32,bytes32,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(string[],string[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes32[],bytes32[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(string[],string[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(int256[],int256[],string)"( - left: PromiseOrValue[], - right: PromiseOrValue[], - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEq(bytes[],bytes[])"( - left: PromiseOrValue[], - right: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "assertNotEq(int256,int256)"( - left: PromiseOrValue, - right: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEqDecimal(int256,int256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEqDecimal(int256,int256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEqDecimal(uint256,uint256,uint256)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertNotEqDecimal(uint256,uint256,uint256,string)"( - left: PromiseOrValue, - right: PromiseOrValue, - decimals: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertTrue(bool)"( - condition: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "assertTrue(bool,string)"( - condition: PromiseOrValue, - error: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - assume( - condition: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "breakpoint(string)"( - char: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "breakpoint(string,bool)"( - char: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "broadcast()"( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "broadcast(address)"( - signer: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "broadcast(uint256)"( - privateKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - closeFile( - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "computeCreate2Address(bytes32,bytes32)"( - salt: PromiseOrValue, - initCodeHash: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "computeCreate2Address(bytes32,bytes32,address)"( - salt: PromiseOrValue, - initCodeHash: PromiseOrValue, - deployer: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - computeCreateAddress( - deployer: PromiseOrValue, - nonce: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - copyFile( - from: PromiseOrValue, - to: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - createDir( - path: PromiseOrValue, - recursive: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createWallet(string)"( - walletLabel: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createWallet(uint256)"( - privateKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "createWallet(uint256,string)"( - privateKey: PromiseOrValue, - walletLabel: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "deriveKey(string,string,uint32,string)"( - mnemonic: PromiseOrValue, - derivationPath: PromiseOrValue, - index: PromiseOrValue, - language: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "deriveKey(string,uint32,string)"( - mnemonic: PromiseOrValue, - index: PromiseOrValue, - language: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "deriveKey(string,uint32)"( - mnemonic: PromiseOrValue, - index: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "deriveKey(string,string,uint32)"( - mnemonic: PromiseOrValue, - derivationPath: PromiseOrValue, - index: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - ensNamehash( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envAddress(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envAddress(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBool(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBool(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBytes(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBytes(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBytes32(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envBytes32(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - envExists( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envInt(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envInt(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,bytes32[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,int256[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,bool)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,address)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,uint256)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,bytes[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,uint256[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,string[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,bytes)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,bytes32)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,int256)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,address[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envOr(string,string)"( - name: PromiseOrValue, - defaultValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envOr(string,string,bool[])"( - name: PromiseOrValue, - delim: PromiseOrValue, - defaultValue: PromiseOrValue[], - overrides?: CallOverrides - ): Promise; - - "envString(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envString(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envUint(string)"( - name: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "envUint(string,string)"( - name: PromiseOrValue, - delim: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - eth_getLogs( - fromBlock: PromiseOrValue, - toBlock: PromiseOrValue, - target: PromiseOrValue, - topics: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - exists( - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - ffi( - commandInput: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - fsMetadata( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getBlobBaseFee(overrides?: CallOverrides): Promise; - - getBlockNumber(overrides?: CallOverrides): Promise; - - getBlockTimestamp(overrides?: CallOverrides): Promise; - - getCode( - artifactPath: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getDeployedCode( - artifactPath: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getLabel( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getMappingKeyAndParentOf( - target: PromiseOrValue, - elementSlot: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getMappingLength( - target: PromiseOrValue, - mappingSlot: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getMappingSlotAt( - target: PromiseOrValue, - mappingSlot: PromiseOrValue, - idx: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "getNonce(address)"( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "getNonce((address,uint256,uint256,uint256))"( - wallet: VmSafe.WalletStruct, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - getRecordedLogs( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - indexOf( - input: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - isContext( - context: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - isDir( - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - isFile( - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - keyExists( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - keyExistsJson( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - keyExistsToml( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - label( - account: PromiseOrValue, - newLabel: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - lastCallGas(overrides?: CallOverrides): Promise; - - load( - target: PromiseOrValue, - slot: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseAddress( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseBool( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseBytes( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseBytes32( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseInt( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "parseJson(string)"( - json: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "parseJson(string,string)"( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonAddress( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonAddressArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBool( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBoolArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBytes( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBytes32( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBytes32Array( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonBytesArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonInt( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonIntArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonKeys( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonString( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonStringArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonUint( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseJsonUintArray( - json: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "parseToml(string,string)"( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "parseToml(string)"( - toml: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlAddress( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlAddressArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBool( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBoolArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBytes( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBytes32( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBytes32Array( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlBytesArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlInt( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlIntArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlKeys( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlString( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlStringArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlUint( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseTomlUintArray( - toml: PromiseOrValue, - key: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - parseUint( - stringifiedValue: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - pauseGasMetering( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - projectRoot(overrides?: CallOverrides): Promise; - - prompt( - promptText: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - promptAddress( - promptText: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - promptSecret( - promptText: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - promptSecretUint( - promptText: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - promptUint( - promptText: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - randomAddress( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "randomUint()"( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "randomUint(uint256,uint256)"( - min: PromiseOrValue, - max: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "readDir(string,uint64)"( - path: PromiseOrValue, - maxDepth: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "readDir(string,uint64,bool)"( - path: PromiseOrValue, - maxDepth: PromiseOrValue, - followLinks: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "readDir(string)"( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - readFile( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - readFileBinary( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - readLine( - path: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - readLink( - linkPath: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - record( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - recordLogs( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - rememberKey( - privateKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - removeDir( - path: PromiseOrValue, - recursive: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - removeFile( - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - replace( - input: PromiseOrValue, - from: PromiseOrValue, - to: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - resumeGasMetering( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - rpc( - method: PromiseOrValue, - params: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - rpcUrl( - rpcAlias: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - rpcUrlStructs(overrides?: CallOverrides): Promise; - - rpcUrls(overrides?: CallOverrides): Promise; - - "serializeAddress(string,string,address[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeAddress(string,string,address)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBool(string,string,bool[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBool(string,string,bool)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBytes(string,string,bytes[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBytes(string,string,bytes)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBytes32(string,string,bytes32[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeBytes32(string,string,bytes32)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeInt(string,string,int256)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeInt(string,string,int256[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - serializeJson( - objectKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeString(string,string,string[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeString(string,string,string)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeUint(string,string,uint256)"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "serializeUint(string,string,uint256[])"( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - values: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - serializeUintToHex( - objectKey: PromiseOrValue, - valueKey: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - setEnv( - name: PromiseOrValue, - value: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "sign(bytes32)"( - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "sign(address,bytes32)"( - signer: PromiseOrValue, - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "sign((address,uint256,uint256,uint256),bytes32)"( - wallet: VmSafe.WalletStruct, - digest: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "sign(uint256,bytes32)"( - privateKey: PromiseOrValue, - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - signP256( - privateKey: PromiseOrValue, - digest: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - sleep( - duration: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - split( - input: PromiseOrValue, - delimiter: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "startBroadcast()"( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "startBroadcast(address)"( - signer: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "startBroadcast(uint256)"( - privateKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - startMappingRecording( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - startStateDiffRecording( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - stopAndReturnStateDiff( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - stopBroadcast( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - stopMappingRecording( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "toBase64(string)"( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toBase64(bytes)"( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toBase64URL(string)"( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toBase64URL(bytes)"( - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - toLowercase( - input: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(address)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(uint256)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(bytes)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(bool)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(int256)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "toString(bytes32)"( - value: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - toUppercase( - input: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - trim( - input: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - tryFfi( - commandInput: PromiseOrValue[], - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - unixTime( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - writeFile( - path: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - writeFileBinary( - path: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "writeJson(string,string,string)"( - json: PromiseOrValue, - path: PromiseOrValue, - valueKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "writeJson(string,string)"( - json: PromiseOrValue, - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - writeLine( - path: PromiseOrValue, - data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "writeToml(string,string,string)"( - json: PromiseOrValue, - path: PromiseOrValue, - valueKey: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - "writeToml(string,string)"( - json: PromiseOrValue, - path: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/forge-std/index.ts b/typechain-types/forge-std/index.ts deleted file mode 100644 index 8112c903..00000000 --- a/typechain-types/forge-std/index.ts +++ /dev/null @@ -1,16 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as stdErrorSol from "./StdError.sol"; -export type { stdErrorSol }; -import type * as stdStorageSol from "./StdStorage.sol"; -export type { stdStorageSol }; -import type * as vmSol from "./Vm.sol"; -export type { vmSol }; -import type * as interfaces from "./interfaces"; -export type { interfaces }; -import type * as mocks from "./mocks"; -export type { mocks }; -export type { StdAssertions } from "./StdAssertions"; -export type { StdInvariant } from "./StdInvariant"; -export type { Test } from "./Test"; diff --git a/typechain-types/forge-std/interfaces/IERC165.ts b/typechain-types/forge-std/interfaces/IERC165.ts deleted file mode 100644 index e1645ae5..00000000 --- a/typechain-types/forge-std/interfaces/IERC165.ts +++ /dev/null @@ -1,103 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BytesLike, - CallOverrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { FunctionFragment, Result } from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../common"; - -export interface IERC165Interface extends utils.Interface { - functions: { - "supportsInterface(bytes4)": FunctionFragment; - }; - - getFunction(nameOrSignatureOrTopic: "supportsInterface"): FunctionFragment; - - encodeFunctionData( - functionFragment: "supportsInterface", - values: [PromiseOrValue] - ): string; - - decodeFunctionResult( - functionFragment: "supportsInterface", - data: BytesLike - ): Result; - - events: {}; -} - -export interface IERC165 extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: IERC165Interface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - supportsInterface( - interfaceID: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[boolean]>; - }; - - supportsInterface( - interfaceID: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - callStatic: { - supportsInterface( - interfaceID: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: {}; - - estimateGas: { - supportsInterface( - interfaceID: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - populateTransaction: { - supportsInterface( - interfaceID: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; -} diff --git a/typechain-types/forge-std/interfaces/IERC20.ts b/typechain-types/forge-std/interfaces/IERC20.ts deleted file mode 100644 index 35a8ca5f..00000000 --- a/typechain-types/forge-std/interfaces/IERC20.ts +++ /dev/null @@ -1,384 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../common"; - -export interface IERC20Interface extends utils.Interface { - functions: { - "allowance(address,address)": FunctionFragment; - "approve(address,uint256)": FunctionFragment; - "balanceOf(address)": FunctionFragment; - "decimals()": FunctionFragment; - "name()": FunctionFragment; - "symbol()": FunctionFragment; - "totalSupply()": FunctionFragment; - "transfer(address,uint256)": FunctionFragment; - "transferFrom(address,address,uint256)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "allowance" - | "approve" - | "balanceOf" - | "decimals" - | "name" - | "symbol" - | "totalSupply" - | "transfer" - | "transferFrom" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "allowance", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [PromiseOrValue] - ): 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: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): 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; - - events: { - "Approval(address,address,uint256)": EventFragment; - "Transfer(address,address,uint256)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment; -} - -export interface ApprovalEventObject { - owner: string; - spender: string; - value: BigNumber; -} -export type ApprovalEvent = TypedEvent< - [string, string, BigNumber], - ApprovalEventObject ->; - -export type ApprovalEventFilter = TypedEventFilter; - -export interface TransferEventObject { - from: string; - to: string; - value: BigNumber; -} -export type TransferEvent = TypedEvent< - [string, string, BigNumber], - TransferEventObject ->; - -export type TransferEventFilter = TypedEventFilter; - -export interface IERC20 extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: IERC20Interface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - allowance( - owner: PromiseOrValue, - spender: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - approve( - spender: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - decimals(overrides?: CallOverrides): Promise<[number]>; - - name(overrides?: CallOverrides): Promise<[string]>; - - symbol(overrides?: CallOverrides): Promise<[string]>; - - totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>; - - transfer( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferFrom( - from: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - allowance( - owner: PromiseOrValue, - spender: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - approve( - spender: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferFrom( - from: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - allowance( - owner: PromiseOrValue, - spender: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - approve( - spender: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - balanceOf( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - transferFrom( - from: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "Approval(address,address,uint256)"( - owner?: PromiseOrValue | null, - spender?: PromiseOrValue | null, - value?: null - ): ApprovalEventFilter; - Approval( - owner?: PromiseOrValue | null, - spender?: PromiseOrValue | null, - value?: null - ): ApprovalEventFilter; - - "Transfer(address,address,uint256)"( - from?: PromiseOrValue | null, - to?: PromiseOrValue | null, - value?: null - ): TransferEventFilter; - Transfer( - from?: PromiseOrValue | null, - to?: PromiseOrValue | null, - value?: null - ): TransferEventFilter; - }; - - estimateGas: { - allowance( - owner: PromiseOrValue, - spender: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - approve( - spender: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferFrom( - from: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - allowance( - owner: PromiseOrValue, - spender: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - approve( - spender: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - account: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - name(overrides?: CallOverrides): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferFrom( - from: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/forge-std/interfaces/IERC721.sol/IERC721.ts b/typechain-types/forge-std/interfaces/IERC721.sol/IERC721.ts deleted file mode 100644 index 1b01fec3..00000000 --- a/typechain-types/forge-std/interfaces/IERC721.sol/IERC721.ts +++ /dev/null @@ -1,560 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PayableOverrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../common"; - -export interface IERC721Interface extends utils.Interface { - functions: { - "approve(address,uint256)": FunctionFragment; - "balanceOf(address)": FunctionFragment; - "getApproved(uint256)": FunctionFragment; - "isApprovedForAll(address,address)": FunctionFragment; - "ownerOf(uint256)": FunctionFragment; - "safeTransferFrom(address,address,uint256)": FunctionFragment; - "safeTransferFrom(address,address,uint256,bytes)": FunctionFragment; - "setApprovalForAll(address,bool)": FunctionFragment; - "supportsInterface(bytes4)": FunctionFragment; - "transferFrom(address,address,uint256)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "approve" - | "balanceOf" - | "getApproved" - | "isApprovedForAll" - | "ownerOf" - | "safeTransferFrom(address,address,uint256)" - | "safeTransferFrom(address,address,uint256,bytes)" - | "setApprovalForAll" - | "supportsInterface" - | "transferFrom" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "approve", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "getApproved", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "isApprovedForAll", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "ownerOf", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "safeTransferFrom(address,address,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "safeTransferFrom(address,address,uint256,bytes)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "setApprovalForAll", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "supportsInterface", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): 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; - - events: { - "Approval(address,address,uint256)": EventFragment; - "ApprovalForAll(address,address,bool)": EventFragment; - "Transfer(address,address,uint256)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ApprovalForAll"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment; -} - -export interface ApprovalEventObject { - _owner: string; - _approved: string; - _tokenId: BigNumber; -} -export type ApprovalEvent = TypedEvent< - [string, string, BigNumber], - ApprovalEventObject ->; - -export type ApprovalEventFilter = TypedEventFilter; - -export interface ApprovalForAllEventObject { - _owner: string; - _operator: string; - _approved: boolean; -} -export type ApprovalForAllEvent = TypedEvent< - [string, string, boolean], - ApprovalForAllEventObject ->; - -export type ApprovalForAllEventFilter = TypedEventFilter; - -export interface TransferEventObject { - _from: string; - _to: string; - _tokenId: BigNumber; -} -export type TransferEvent = TypedEvent< - [string, string, BigNumber], - TransferEventObject ->; - -export type TransferEventFilter = TypedEventFilter; - -export interface IERC721 extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: IERC721Interface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - approve( - _approved: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - _owner: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - getApproved( - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - isApprovedForAll( - _owner: PromiseOrValue, - _operator: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[boolean]>; - - ownerOf( - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - "safeTransferFrom(address,address,uint256)"( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "safeTransferFrom(address,address,uint256,bytes)"( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - setApprovalForAll( - _operator: PromiseOrValue, - _approved: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - supportsInterface( - interfaceID: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[boolean]>; - - transferFrom( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; - - approve( - _approved: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - _owner: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getApproved( - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - isApprovedForAll( - _owner: PromiseOrValue, - _operator: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - ownerOf( - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "safeTransferFrom(address,address,uint256)"( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "safeTransferFrom(address,address,uint256,bytes)"( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - setApprovalForAll( - _operator: PromiseOrValue, - _approved: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - supportsInterface( - interfaceID: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - transferFrom( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - approve( - _approved: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - balanceOf( - _owner: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getApproved( - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - isApprovedForAll( - _owner: PromiseOrValue, - _operator: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - ownerOf( - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "safeTransferFrom(address,address,uint256)"( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "safeTransferFrom(address,address,uint256,bytes)"( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - setApprovalForAll( - _operator: PromiseOrValue, - _approved: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - supportsInterface( - interfaceID: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - transferFrom( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "Approval(address,address,uint256)"( - _owner?: PromiseOrValue | null, - _approved?: PromiseOrValue | null, - _tokenId?: PromiseOrValue | null - ): ApprovalEventFilter; - Approval( - _owner?: PromiseOrValue | null, - _approved?: PromiseOrValue | null, - _tokenId?: PromiseOrValue | null - ): ApprovalEventFilter; - - "ApprovalForAll(address,address,bool)"( - _owner?: PromiseOrValue | null, - _operator?: PromiseOrValue | null, - _approved?: null - ): ApprovalForAllEventFilter; - ApprovalForAll( - _owner?: PromiseOrValue | null, - _operator?: PromiseOrValue | null, - _approved?: null - ): ApprovalForAllEventFilter; - - "Transfer(address,address,uint256)"( - _from?: PromiseOrValue | null, - _to?: PromiseOrValue | null, - _tokenId?: PromiseOrValue | null - ): TransferEventFilter; - Transfer( - _from?: PromiseOrValue | null, - _to?: PromiseOrValue | null, - _tokenId?: PromiseOrValue | null - ): TransferEventFilter; - }; - - estimateGas: { - approve( - _approved: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - _owner: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getApproved( - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - isApprovedForAll( - _owner: PromiseOrValue, - _operator: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - ownerOf( - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "safeTransferFrom(address,address,uint256)"( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "safeTransferFrom(address,address,uint256,bytes)"( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - setApprovalForAll( - _operator: PromiseOrValue, - _approved: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - supportsInterface( - interfaceID: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - transferFrom( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - approve( - _approved: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - _owner: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getApproved( - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - isApprovedForAll( - _owner: PromiseOrValue, - _operator: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - ownerOf( - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "safeTransferFrom(address,address,uint256)"( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "safeTransferFrom(address,address,uint256,bytes)"( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - setApprovalForAll( - _operator: PromiseOrValue, - _approved: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - supportsInterface( - interfaceID: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - transferFrom( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/forge-std/interfaces/IERC721.sol/IERC721Enumerable.ts b/typechain-types/forge-std/interfaces/IERC721.sol/IERC721Enumerable.ts deleted file mode 100644 index 9d2cc565..00000000 --- a/typechain-types/forge-std/interfaces/IERC721.sol/IERC721Enumerable.ts +++ /dev/null @@ -1,655 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PayableOverrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../common"; - -export interface IERC721EnumerableInterface extends utils.Interface { - functions: { - "approve(address,uint256)": FunctionFragment; - "balanceOf(address)": FunctionFragment; - "getApproved(uint256)": FunctionFragment; - "isApprovedForAll(address,address)": FunctionFragment; - "ownerOf(uint256)": FunctionFragment; - "safeTransferFrom(address,address,uint256)": FunctionFragment; - "safeTransferFrom(address,address,uint256,bytes)": FunctionFragment; - "setApprovalForAll(address,bool)": FunctionFragment; - "supportsInterface(bytes4)": FunctionFragment; - "tokenByIndex(uint256)": FunctionFragment; - "tokenOfOwnerByIndex(address,uint256)": FunctionFragment; - "totalSupply()": FunctionFragment; - "transferFrom(address,address,uint256)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "approve" - | "balanceOf" - | "getApproved" - | "isApprovedForAll" - | "ownerOf" - | "safeTransferFrom(address,address,uint256)" - | "safeTransferFrom(address,address,uint256,bytes)" - | "setApprovalForAll" - | "supportsInterface" - | "tokenByIndex" - | "tokenOfOwnerByIndex" - | "totalSupply" - | "transferFrom" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "approve", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "getApproved", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "isApprovedForAll", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "ownerOf", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "safeTransferFrom(address,address,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "safeTransferFrom(address,address,uint256,bytes)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "setApprovalForAll", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "supportsInterface", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "tokenByIndex", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "tokenOfOwnerByIndex", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): 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; - - events: { - "Approval(address,address,uint256)": EventFragment; - "ApprovalForAll(address,address,bool)": EventFragment; - "Transfer(address,address,uint256)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ApprovalForAll"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment; -} - -export interface ApprovalEventObject { - _owner: string; - _approved: string; - _tokenId: BigNumber; -} -export type ApprovalEvent = TypedEvent< - [string, string, BigNumber], - ApprovalEventObject ->; - -export type ApprovalEventFilter = TypedEventFilter; - -export interface ApprovalForAllEventObject { - _owner: string; - _operator: string; - _approved: boolean; -} -export type ApprovalForAllEvent = TypedEvent< - [string, string, boolean], - ApprovalForAllEventObject ->; - -export type ApprovalForAllEventFilter = TypedEventFilter; - -export interface TransferEventObject { - _from: string; - _to: string; - _tokenId: BigNumber; -} -export type TransferEvent = TypedEvent< - [string, string, BigNumber], - TransferEventObject ->; - -export type TransferEventFilter = TypedEventFilter; - -export interface IERC721Enumerable extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: IERC721EnumerableInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - approve( - _approved: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - _owner: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - getApproved( - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - isApprovedForAll( - _owner: PromiseOrValue, - _operator: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[boolean]>; - - ownerOf( - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - "safeTransferFrom(address,address,uint256)"( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "safeTransferFrom(address,address,uint256,bytes)"( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - setApprovalForAll( - _operator: PromiseOrValue, - _approved: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - supportsInterface( - interfaceID: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[boolean]>; - - tokenByIndex( - _index: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - tokenOfOwnerByIndex( - _owner: PromiseOrValue, - _index: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>; - - transferFrom( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; - - approve( - _approved: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - _owner: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getApproved( - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - isApprovedForAll( - _owner: PromiseOrValue, - _operator: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - ownerOf( - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "safeTransferFrom(address,address,uint256)"( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "safeTransferFrom(address,address,uint256,bytes)"( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - setApprovalForAll( - _operator: PromiseOrValue, - _approved: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - supportsInterface( - interfaceID: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - tokenByIndex( - _index: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - tokenOfOwnerByIndex( - _owner: PromiseOrValue, - _index: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transferFrom( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - approve( - _approved: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - balanceOf( - _owner: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getApproved( - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - isApprovedForAll( - _owner: PromiseOrValue, - _operator: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - ownerOf( - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "safeTransferFrom(address,address,uint256)"( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "safeTransferFrom(address,address,uint256,bytes)"( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - setApprovalForAll( - _operator: PromiseOrValue, - _approved: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - supportsInterface( - interfaceID: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - tokenByIndex( - _index: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - tokenOfOwnerByIndex( - _owner: PromiseOrValue, - _index: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transferFrom( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "Approval(address,address,uint256)"( - _owner?: PromiseOrValue | null, - _approved?: PromiseOrValue | null, - _tokenId?: PromiseOrValue | null - ): ApprovalEventFilter; - Approval( - _owner?: PromiseOrValue | null, - _approved?: PromiseOrValue | null, - _tokenId?: PromiseOrValue | null - ): ApprovalEventFilter; - - "ApprovalForAll(address,address,bool)"( - _owner?: PromiseOrValue | null, - _operator?: PromiseOrValue | null, - _approved?: null - ): ApprovalForAllEventFilter; - ApprovalForAll( - _owner?: PromiseOrValue | null, - _operator?: PromiseOrValue | null, - _approved?: null - ): ApprovalForAllEventFilter; - - "Transfer(address,address,uint256)"( - _from?: PromiseOrValue | null, - _to?: PromiseOrValue | null, - _tokenId?: PromiseOrValue | null - ): TransferEventFilter; - Transfer( - _from?: PromiseOrValue | null, - _to?: PromiseOrValue | null, - _tokenId?: PromiseOrValue | null - ): TransferEventFilter; - }; - - estimateGas: { - approve( - _approved: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - _owner: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getApproved( - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - isApprovedForAll( - _owner: PromiseOrValue, - _operator: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - ownerOf( - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "safeTransferFrom(address,address,uint256)"( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "safeTransferFrom(address,address,uint256,bytes)"( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - setApprovalForAll( - _operator: PromiseOrValue, - _approved: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - supportsInterface( - interfaceID: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - tokenByIndex( - _index: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - tokenOfOwnerByIndex( - _owner: PromiseOrValue, - _index: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transferFrom( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - approve( - _approved: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - _owner: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getApproved( - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - isApprovedForAll( - _owner: PromiseOrValue, - _operator: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - ownerOf( - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "safeTransferFrom(address,address,uint256)"( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "safeTransferFrom(address,address,uint256,bytes)"( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - setApprovalForAll( - _operator: PromiseOrValue, - _approved: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - supportsInterface( - interfaceID: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - tokenByIndex( - _index: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - tokenOfOwnerByIndex( - _owner: PromiseOrValue, - _index: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transferFrom( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/forge-std/interfaces/IERC721.sol/IERC721Metadata.ts b/typechain-types/forge-std/interfaces/IERC721.sol/IERC721Metadata.ts deleted file mode 100644 index ffa90d03..00000000 --- a/typechain-types/forge-std/interfaces/IERC721.sol/IERC721Metadata.ts +++ /dev/null @@ -1,620 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PayableOverrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../common"; - -export interface IERC721MetadataInterface extends utils.Interface { - functions: { - "approve(address,uint256)": FunctionFragment; - "balanceOf(address)": FunctionFragment; - "getApproved(uint256)": FunctionFragment; - "isApprovedForAll(address,address)": FunctionFragment; - "name()": FunctionFragment; - "ownerOf(uint256)": FunctionFragment; - "safeTransferFrom(address,address,uint256)": FunctionFragment; - "safeTransferFrom(address,address,uint256,bytes)": FunctionFragment; - "setApprovalForAll(address,bool)": FunctionFragment; - "supportsInterface(bytes4)": FunctionFragment; - "symbol()": FunctionFragment; - "tokenURI(uint256)": FunctionFragment; - "transferFrom(address,address,uint256)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "approve" - | "balanceOf" - | "getApproved" - | "isApprovedForAll" - | "name" - | "ownerOf" - | "safeTransferFrom(address,address,uint256)" - | "safeTransferFrom(address,address,uint256,bytes)" - | "setApprovalForAll" - | "supportsInterface" - | "symbol" - | "tokenURI" - | "transferFrom" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "approve", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "getApproved", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "isApprovedForAll", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData(functionFragment: "name", values?: undefined): string; - encodeFunctionData( - functionFragment: "ownerOf", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "safeTransferFrom(address,address,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "safeTransferFrom(address,address,uint256,bytes)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "setApprovalForAll", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "supportsInterface", - values: [PromiseOrValue] - ): string; - encodeFunctionData(functionFragment: "symbol", values?: undefined): string; - encodeFunctionData( - functionFragment: "tokenURI", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): 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; - - events: { - "Approval(address,address,uint256)": EventFragment; - "ApprovalForAll(address,address,bool)": EventFragment; - "Transfer(address,address,uint256)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ApprovalForAll"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment; -} - -export interface ApprovalEventObject { - _owner: string; - _approved: string; - _tokenId: BigNumber; -} -export type ApprovalEvent = TypedEvent< - [string, string, BigNumber], - ApprovalEventObject ->; - -export type ApprovalEventFilter = TypedEventFilter; - -export interface ApprovalForAllEventObject { - _owner: string; - _operator: string; - _approved: boolean; -} -export type ApprovalForAllEvent = TypedEvent< - [string, string, boolean], - ApprovalForAllEventObject ->; - -export type ApprovalForAllEventFilter = TypedEventFilter; - -export interface TransferEventObject { - _from: string; - _to: string; - _tokenId: BigNumber; -} -export type TransferEvent = TypedEvent< - [string, string, BigNumber], - TransferEventObject ->; - -export type TransferEventFilter = TypedEventFilter; - -export interface IERC721Metadata extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: IERC721MetadataInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - approve( - _approved: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - _owner: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - getApproved( - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - isApprovedForAll( - _owner: PromiseOrValue, - _operator: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[boolean]>; - - name(overrides?: CallOverrides): Promise<[string] & { _name: string }>; - - ownerOf( - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - "safeTransferFrom(address,address,uint256)"( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "safeTransferFrom(address,address,uint256,bytes)"( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - setApprovalForAll( - _operator: PromiseOrValue, - _approved: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - supportsInterface( - interfaceID: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[boolean]>; - - symbol(overrides?: CallOverrides): Promise<[string] & { _symbol: string }>; - - tokenURI( - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - transferFrom( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; - - approve( - _approved: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - _owner: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getApproved( - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - isApprovedForAll( - _owner: PromiseOrValue, - _operator: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - name(overrides?: CallOverrides): Promise; - - ownerOf( - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "safeTransferFrom(address,address,uint256)"( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "safeTransferFrom(address,address,uint256,bytes)"( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - setApprovalForAll( - _operator: PromiseOrValue, - _approved: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - supportsInterface( - interfaceID: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - symbol(overrides?: CallOverrides): Promise; - - tokenURI( - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - transferFrom( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - approve( - _approved: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - balanceOf( - _owner: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getApproved( - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - isApprovedForAll( - _owner: PromiseOrValue, - _operator: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - name(overrides?: CallOverrides): Promise; - - ownerOf( - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "safeTransferFrom(address,address,uint256)"( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "safeTransferFrom(address,address,uint256,bytes)"( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - setApprovalForAll( - _operator: PromiseOrValue, - _approved: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - supportsInterface( - interfaceID: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - symbol(overrides?: CallOverrides): Promise; - - tokenURI( - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - transferFrom( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "Approval(address,address,uint256)"( - _owner?: PromiseOrValue | null, - _approved?: PromiseOrValue | null, - _tokenId?: PromiseOrValue | null - ): ApprovalEventFilter; - Approval( - _owner?: PromiseOrValue | null, - _approved?: PromiseOrValue | null, - _tokenId?: PromiseOrValue | null - ): ApprovalEventFilter; - - "ApprovalForAll(address,address,bool)"( - _owner?: PromiseOrValue | null, - _operator?: PromiseOrValue | null, - _approved?: null - ): ApprovalForAllEventFilter; - ApprovalForAll( - _owner?: PromiseOrValue | null, - _operator?: PromiseOrValue | null, - _approved?: null - ): ApprovalForAllEventFilter; - - "Transfer(address,address,uint256)"( - _from?: PromiseOrValue | null, - _to?: PromiseOrValue | null, - _tokenId?: PromiseOrValue | null - ): TransferEventFilter; - Transfer( - _from?: PromiseOrValue | null, - _to?: PromiseOrValue | null, - _tokenId?: PromiseOrValue | null - ): TransferEventFilter; - }; - - estimateGas: { - approve( - _approved: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - _owner: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getApproved( - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - isApprovedForAll( - _owner: PromiseOrValue, - _operator: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - name(overrides?: CallOverrides): Promise; - - ownerOf( - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "safeTransferFrom(address,address,uint256)"( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "safeTransferFrom(address,address,uint256,bytes)"( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - setApprovalForAll( - _operator: PromiseOrValue, - _approved: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - supportsInterface( - interfaceID: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - symbol(overrides?: CallOverrides): Promise; - - tokenURI( - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - transferFrom( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - approve( - _approved: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - _owner: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getApproved( - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - isApprovedForAll( - _owner: PromiseOrValue, - _operator: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - name(overrides?: CallOverrides): Promise; - - ownerOf( - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "safeTransferFrom(address,address,uint256)"( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "safeTransferFrom(address,address,uint256,bytes)"( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - setApprovalForAll( - _operator: PromiseOrValue, - _approved: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - supportsInterface( - interfaceID: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - symbol(overrides?: CallOverrides): Promise; - - tokenURI( - _tokenId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - transferFrom( - _from: PromiseOrValue, - _to: PromiseOrValue, - _tokenId: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/forge-std/interfaces/IERC721.sol/IERC721TokenReceiver.ts b/typechain-types/forge-std/interfaces/IERC721.sol/IERC721TokenReceiver.ts deleted file mode 100644 index 98cfe54a..00000000 --- a/typechain-types/forge-std/interfaces/IERC721.sol/IERC721TokenReceiver.ts +++ /dev/null @@ -1,126 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { FunctionFragment, Result } from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../../common"; - -export interface IERC721TokenReceiverInterface extends utils.Interface { - functions: { - "onERC721Received(address,address,uint256,bytes)": FunctionFragment; - }; - - getFunction(nameOrSignatureOrTopic: "onERC721Received"): FunctionFragment; - - encodeFunctionData( - functionFragment: "onERC721Received", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - - decodeFunctionResult( - functionFragment: "onERC721Received", - data: BytesLike - ): Result; - - events: {}; -} - -export interface IERC721TokenReceiver extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: IERC721TokenReceiverInterface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - onERC721Received( - _operator: PromiseOrValue, - _from: PromiseOrValue, - _tokenId: PromiseOrValue, - _data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - onERC721Received( - _operator: PromiseOrValue, - _from: PromiseOrValue, - _tokenId: PromiseOrValue, - _data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - onERC721Received( - _operator: PromiseOrValue, - _from: PromiseOrValue, - _tokenId: PromiseOrValue, - _data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: {}; - - estimateGas: { - onERC721Received( - _operator: PromiseOrValue, - _from: PromiseOrValue, - _tokenId: PromiseOrValue, - _data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - onERC721Received( - _operator: PromiseOrValue, - _from: PromiseOrValue, - _tokenId: PromiseOrValue, - _data: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/forge-std/interfaces/IMulticall3.ts b/typechain-types/forge-std/interfaces/IMulticall3.ts deleted file mode 100644 index a07e1cd4..00000000 --- a/typechain-types/forge-std/interfaces/IMulticall3.ts +++ /dev/null @@ -1,598 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - PayableOverrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { FunctionFragment, Result } from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../common"; - -export declare namespace IMulticall3 { - export type CallStruct = { - target: PromiseOrValue; - callData: PromiseOrValue; - }; - - export type CallStructOutput = [string, string] & { - target: string; - callData: string; - }; - - export type Call3Struct = { - target: PromiseOrValue; - allowFailure: PromiseOrValue; - callData: PromiseOrValue; - }; - - export type Call3StructOutput = [string, boolean, string] & { - target: string; - allowFailure: boolean; - callData: string; - }; - - export type ResultStruct = { - success: PromiseOrValue; - returnData: PromiseOrValue; - }; - - export type ResultStructOutput = [boolean, string] & { - success: boolean; - returnData: string; - }; - - export type Call3ValueStruct = { - target: PromiseOrValue; - allowFailure: PromiseOrValue; - value: PromiseOrValue; - callData: PromiseOrValue; - }; - - export type Call3ValueStructOutput = [string, boolean, BigNumber, string] & { - target: string; - allowFailure: boolean; - value: BigNumber; - callData: string; - }; -} - -export interface IMulticall3Interface extends utils.Interface { - functions: { - "aggregate((address,bytes)[])": FunctionFragment; - "aggregate3((address,bool,bytes)[])": FunctionFragment; - "aggregate3Value((address,bool,uint256,bytes)[])": FunctionFragment; - "blockAndAggregate((address,bytes)[])": FunctionFragment; - "getBasefee()": FunctionFragment; - "getBlockHash(uint256)": FunctionFragment; - "getBlockNumber()": FunctionFragment; - "getChainId()": FunctionFragment; - "getCurrentBlockCoinbase()": FunctionFragment; - "getCurrentBlockDifficulty()": FunctionFragment; - "getCurrentBlockGasLimit()": FunctionFragment; - "getCurrentBlockTimestamp()": FunctionFragment; - "getEthBalance(address)": FunctionFragment; - "getLastBlockHash()": FunctionFragment; - "tryAggregate(bool,(address,bytes)[])": FunctionFragment; - "tryBlockAndAggregate(bool,(address,bytes)[])": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "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: [PromiseOrValue] - ): 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: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "getLastBlockHash", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "tryAggregate", - values: [PromiseOrValue, IMulticall3.CallStruct[]] - ): string; - encodeFunctionData( - functionFragment: "tryBlockAndAggregate", - values: [PromiseOrValue, 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; - - events: {}; -} - -export interface IMulticall3 extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: IMulticall3Interface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - aggregate( - calls: IMulticall3.CallStruct[], - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - aggregate3( - calls: IMulticall3.Call3Struct[], - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - aggregate3Value( - calls: IMulticall3.Call3ValueStruct[], - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - blockAndAggregate( - calls: IMulticall3.CallStruct[], - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - getBasefee( - overrides?: CallOverrides - ): Promise<[BigNumber] & { basefee: BigNumber }>; - - getBlockHash( - blockNumber: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { blockHash: string }>; - - getBlockNumber( - overrides?: CallOverrides - ): Promise<[BigNumber] & { blockNumber: BigNumber }>; - - getChainId( - overrides?: CallOverrides - ): Promise<[BigNumber] & { chainid: BigNumber }>; - - getCurrentBlockCoinbase( - overrides?: CallOverrides - ): Promise<[string] & { coinbase: string }>; - - getCurrentBlockDifficulty( - overrides?: CallOverrides - ): Promise<[BigNumber] & { difficulty: BigNumber }>; - - getCurrentBlockGasLimit( - overrides?: CallOverrides - ): Promise<[BigNumber] & { gaslimit: BigNumber }>; - - getCurrentBlockTimestamp( - overrides?: CallOverrides - ): Promise<[BigNumber] & { timestamp: BigNumber }>; - - getEthBalance( - addr: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber] & { balance: BigNumber }>; - - getLastBlockHash( - overrides?: CallOverrides - ): Promise<[string] & { blockHash: string }>; - - tryAggregate( - requireSuccess: PromiseOrValue, - calls: IMulticall3.CallStruct[], - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - tryBlockAndAggregate( - requireSuccess: PromiseOrValue, - calls: IMulticall3.CallStruct[], - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; - - aggregate( - calls: IMulticall3.CallStruct[], - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - aggregate3( - calls: IMulticall3.Call3Struct[], - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - aggregate3Value( - calls: IMulticall3.Call3ValueStruct[], - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - blockAndAggregate( - calls: IMulticall3.CallStruct[], - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - getBasefee(overrides?: CallOverrides): Promise; - - getBlockHash( - blockNumber: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getBlockNumber(overrides?: CallOverrides): Promise; - - getChainId(overrides?: CallOverrides): Promise; - - getCurrentBlockCoinbase(overrides?: CallOverrides): Promise; - - getCurrentBlockDifficulty(overrides?: CallOverrides): Promise; - - getCurrentBlockGasLimit(overrides?: CallOverrides): Promise; - - getCurrentBlockTimestamp(overrides?: CallOverrides): Promise; - - getEthBalance( - addr: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getLastBlockHash(overrides?: CallOverrides): Promise; - - tryAggregate( - requireSuccess: PromiseOrValue, - calls: IMulticall3.CallStruct[], - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - tryBlockAndAggregate( - requireSuccess: PromiseOrValue, - calls: IMulticall3.CallStruct[], - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - aggregate( - calls: IMulticall3.CallStruct[], - overrides?: CallOverrides - ): Promise< - [BigNumber, string[]] & { blockNumber: BigNumber; returnData: string[] } - >; - - aggregate3( - calls: IMulticall3.Call3Struct[], - overrides?: CallOverrides - ): Promise; - - aggregate3Value( - calls: IMulticall3.Call3ValueStruct[], - overrides?: CallOverrides - ): Promise; - - blockAndAggregate( - calls: IMulticall3.CallStruct[], - overrides?: CallOverrides - ): Promise< - [BigNumber, string, IMulticall3.ResultStructOutput[]] & { - blockNumber: BigNumber; - blockHash: string; - returnData: IMulticall3.ResultStructOutput[]; - } - >; - - getBasefee(overrides?: CallOverrides): Promise; - - getBlockHash( - blockNumber: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getBlockNumber(overrides?: CallOverrides): Promise; - - getChainId(overrides?: CallOverrides): Promise; - - getCurrentBlockCoinbase(overrides?: CallOverrides): Promise; - - getCurrentBlockDifficulty(overrides?: CallOverrides): Promise; - - getCurrentBlockGasLimit(overrides?: CallOverrides): Promise; - - getCurrentBlockTimestamp(overrides?: CallOverrides): Promise; - - getEthBalance( - addr: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getLastBlockHash(overrides?: CallOverrides): Promise; - - tryAggregate( - requireSuccess: PromiseOrValue, - calls: IMulticall3.CallStruct[], - overrides?: CallOverrides - ): Promise; - - tryBlockAndAggregate( - requireSuccess: PromiseOrValue, - calls: IMulticall3.CallStruct[], - overrides?: CallOverrides - ): Promise< - [BigNumber, string, IMulticall3.ResultStructOutput[]] & { - blockNumber: BigNumber; - blockHash: string; - returnData: IMulticall3.ResultStructOutput[]; - } - >; - }; - - filters: {}; - - estimateGas: { - aggregate( - calls: IMulticall3.CallStruct[], - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - aggregate3( - calls: IMulticall3.Call3Struct[], - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - aggregate3Value( - calls: IMulticall3.Call3ValueStruct[], - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - blockAndAggregate( - calls: IMulticall3.CallStruct[], - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - getBasefee(overrides?: CallOverrides): Promise; - - getBlockHash( - blockNumber: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getBlockNumber(overrides?: CallOverrides): Promise; - - getChainId(overrides?: CallOverrides): Promise; - - getCurrentBlockCoinbase(overrides?: CallOverrides): Promise; - - getCurrentBlockDifficulty(overrides?: CallOverrides): Promise; - - getCurrentBlockGasLimit(overrides?: CallOverrides): Promise; - - getCurrentBlockTimestamp(overrides?: CallOverrides): Promise; - - getEthBalance( - addr: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getLastBlockHash(overrides?: CallOverrides): Promise; - - tryAggregate( - requireSuccess: PromiseOrValue, - calls: IMulticall3.CallStruct[], - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - tryBlockAndAggregate( - requireSuccess: PromiseOrValue, - calls: IMulticall3.CallStruct[], - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - aggregate( - calls: IMulticall3.CallStruct[], - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - aggregate3( - calls: IMulticall3.Call3Struct[], - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - aggregate3Value( - calls: IMulticall3.Call3ValueStruct[], - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - blockAndAggregate( - calls: IMulticall3.CallStruct[], - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - getBasefee(overrides?: CallOverrides): Promise; - - getBlockHash( - blockNumber: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getBlockNumber(overrides?: CallOverrides): Promise; - - getChainId(overrides?: CallOverrides): Promise; - - getCurrentBlockCoinbase( - overrides?: CallOverrides - ): Promise; - - getCurrentBlockDifficulty( - overrides?: CallOverrides - ): Promise; - - getCurrentBlockGasLimit( - overrides?: CallOverrides - ): Promise; - - getCurrentBlockTimestamp( - overrides?: CallOverrides - ): Promise; - - getEthBalance( - addr: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getLastBlockHash(overrides?: CallOverrides): Promise; - - tryAggregate( - requireSuccess: PromiseOrValue, - calls: IMulticall3.CallStruct[], - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - tryBlockAndAggregate( - requireSuccess: PromiseOrValue, - calls: IMulticall3.CallStruct[], - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/forge-std/interfaces/index.ts b/typechain-types/forge-std/interfaces/index.ts deleted file mode 100644 index 0e278083..00000000 --- a/typechain-types/forge-std/interfaces/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as ierc721Sol from "./IERC721.sol"; -export type { ierc721Sol }; -export type { IERC165 } from "./IERC165"; -export type { IERC20 } from "./IERC20"; -export type { IMulticall3 } from "./IMulticall3"; diff --git a/typechain-types/forge-std/mocks/MockERC20.ts b/typechain-types/forge-std/mocks/MockERC20.ts deleted file mode 100644 index ba397218..00000000 --- a/typechain-types/forge-std/mocks/MockERC20.ts +++ /dev/null @@ -1,552 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../common"; - -export interface MockERC20Interface extends utils.Interface { - functions: { - "DOMAIN_SEPARATOR()": FunctionFragment; - "allowance(address,address)": FunctionFragment; - "approve(address,uint256)": FunctionFragment; - "balanceOf(address)": FunctionFragment; - "decimals()": FunctionFragment; - "initialize(string,string,uint8)": FunctionFragment; - "name()": FunctionFragment; - "nonces(address)": FunctionFragment; - "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment; - "symbol()": FunctionFragment; - "totalSupply()": FunctionFragment; - "transfer(address,uint256)": FunctionFragment; - "transferFrom(address,address,uint256)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "DOMAIN_SEPARATOR" - | "allowance" - | "approve" - | "balanceOf" - | "decimals" - | "initialize" - | "name" - | "nonces" - | "permit" - | "symbol" - | "totalSupply" - | "transfer" - | "transferFrom" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "DOMAIN_SEPARATOR", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "allowance", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [PromiseOrValue] - ): string; - encodeFunctionData(functionFragment: "decimals", values?: undefined): string; - encodeFunctionData( - functionFragment: "initialize", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData(functionFragment: "name", values?: undefined): string; - encodeFunctionData( - functionFragment: "nonces", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "permit", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData(functionFragment: "symbol", values?: undefined): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): 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; - - events: { - "Approval(address,address,uint256)": EventFragment; - "Transfer(address,address,uint256)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment; -} - -export interface ApprovalEventObject { - owner: string; - spender: string; - value: BigNumber; -} -export type ApprovalEvent = TypedEvent< - [string, string, BigNumber], - ApprovalEventObject ->; - -export type ApprovalEventFilter = TypedEventFilter; - -export interface TransferEventObject { - from: string; - to: string; - value: BigNumber; -} -export type TransferEvent = TypedEvent< - [string, string, BigNumber], - TransferEventObject ->; - -export type TransferEventFilter = TypedEventFilter; - -export interface MockERC20 extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: MockERC20Interface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<[string]>; - - allowance( - owner: PromiseOrValue, - spender: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - approve( - spender: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - owner: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - decimals(overrides?: CallOverrides): Promise<[number]>; - - initialize( - name_: PromiseOrValue, - symbol_: PromiseOrValue, - decimals_: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - name(overrides?: CallOverrides): Promise<[string]>; - - nonces( - arg0: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - permit( - owner: PromiseOrValue, - spender: PromiseOrValue, - value: PromiseOrValue, - deadline: PromiseOrValue, - v: PromiseOrValue, - r: PromiseOrValue, - s: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - symbol(overrides?: CallOverrides): Promise<[string]>; - - totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>; - - transfer( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferFrom( - from: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; - - allowance( - owner: PromiseOrValue, - spender: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - approve( - spender: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - owner: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - initialize( - name_: PromiseOrValue, - symbol_: PromiseOrValue, - decimals_: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - name(overrides?: CallOverrides): Promise; - - nonces( - arg0: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - permit( - owner: PromiseOrValue, - spender: PromiseOrValue, - value: PromiseOrValue, - deadline: PromiseOrValue, - v: PromiseOrValue, - r: PromiseOrValue, - s: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferFrom( - from: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; - - allowance( - owner: PromiseOrValue, - spender: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - approve( - spender: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - balanceOf( - owner: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - initialize( - name_: PromiseOrValue, - symbol_: PromiseOrValue, - decimals_: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - name(overrides?: CallOverrides): Promise; - - nonces( - arg0: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - permit( - owner: PromiseOrValue, - spender: PromiseOrValue, - value: PromiseOrValue, - deadline: PromiseOrValue, - v: PromiseOrValue, - r: PromiseOrValue, - s: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - transferFrom( - from: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "Approval(address,address,uint256)"( - owner?: PromiseOrValue | null, - spender?: PromiseOrValue | null, - value?: null - ): ApprovalEventFilter; - Approval( - owner?: PromiseOrValue | null, - spender?: PromiseOrValue | null, - value?: null - ): ApprovalEventFilter; - - "Transfer(address,address,uint256)"( - from?: PromiseOrValue | null, - to?: PromiseOrValue | null, - value?: null - ): TransferEventFilter; - Transfer( - from?: PromiseOrValue | null, - to?: PromiseOrValue | null, - value?: null - ): TransferEventFilter; - }; - - estimateGas: { - DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; - - allowance( - owner: PromiseOrValue, - spender: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - approve( - spender: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - owner: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - initialize( - name_: PromiseOrValue, - symbol_: PromiseOrValue, - decimals_: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - name(overrides?: CallOverrides): Promise; - - nonces( - arg0: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - permit( - owner: PromiseOrValue, - spender: PromiseOrValue, - value: PromiseOrValue, - deadline: PromiseOrValue, - v: PromiseOrValue, - r: PromiseOrValue, - s: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferFrom( - from: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise; - - allowance( - owner: PromiseOrValue, - spender: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - approve( - spender: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - owner: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - decimals(overrides?: CallOverrides): Promise; - - initialize( - name_: PromiseOrValue, - symbol_: PromiseOrValue, - decimals_: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - name(overrides?: CallOverrides): Promise; - - nonces( - arg0: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - permit( - owner: PromiseOrValue, - spender: PromiseOrValue, - value: PromiseOrValue, - deadline: PromiseOrValue, - v: PromiseOrValue, - r: PromiseOrValue, - s: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - symbol(overrides?: CallOverrides): Promise; - - totalSupply(overrides?: CallOverrides): Promise; - - transfer( - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - transferFrom( - from: PromiseOrValue, - to: PromiseOrValue, - amount: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/forge-std/mocks/MockERC721.ts b/typechain-types/forge-std/mocks/MockERC721.ts deleted file mode 100644 index 2f516783..00000000 --- a/typechain-types/forge-std/mocks/MockERC721.ts +++ /dev/null @@ -1,657 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumber, - BigNumberish, - BytesLike, - CallOverrides, - ContractTransaction, - Overrides, - PayableOverrides, - PopulatedTransaction, - Signer, - utils, -} from "ethers"; -import type { - FunctionFragment, - Result, - EventFragment, -} from "@ethersproject/abi"; -import type { Listener, Provider } from "@ethersproject/providers"; -import type { - TypedEventFilter, - TypedEvent, - TypedListener, - OnEvent, - PromiseOrValue, -} from "../../common"; - -export interface MockERC721Interface extends utils.Interface { - functions: { - "approve(address,uint256)": FunctionFragment; - "balanceOf(address)": FunctionFragment; - "getApproved(uint256)": FunctionFragment; - "initialize(string,string)": FunctionFragment; - "isApprovedForAll(address,address)": FunctionFragment; - "name()": FunctionFragment; - "ownerOf(uint256)": FunctionFragment; - "safeTransferFrom(address,address,uint256)": FunctionFragment; - "safeTransferFrom(address,address,uint256,bytes)": FunctionFragment; - "setApprovalForAll(address,bool)": FunctionFragment; - "supportsInterface(bytes4)": FunctionFragment; - "symbol()": FunctionFragment; - "tokenURI(uint256)": FunctionFragment; - "transferFrom(address,address,uint256)": FunctionFragment; - }; - - getFunction( - nameOrSignatureOrTopic: - | "approve" - | "balanceOf" - | "getApproved" - | "initialize" - | "isApprovedForAll" - | "name" - | "ownerOf" - | "safeTransferFrom(address,address,uint256)" - | "safeTransferFrom(address,address,uint256,bytes)" - | "setApprovalForAll" - | "supportsInterface" - | "symbol" - | "tokenURI" - | "transferFrom" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "approve", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "getApproved", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "initialize", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "isApprovedForAll", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData(functionFragment: "name", values?: undefined): string; - encodeFunctionData( - functionFragment: "ownerOf", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "safeTransferFrom(address,address,uint256)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "safeTransferFrom(address,address,uint256,bytes)", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): string; - encodeFunctionData( - functionFragment: "setApprovalForAll", - values: [PromiseOrValue, PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "supportsInterface", - values: [PromiseOrValue] - ): string; - encodeFunctionData(functionFragment: "symbol", values?: undefined): string; - encodeFunctionData( - functionFragment: "tokenURI", - values: [PromiseOrValue] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [ - PromiseOrValue, - PromiseOrValue, - PromiseOrValue - ] - ): 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; - - events: { - "Approval(address,address,uint256)": EventFragment; - "ApprovalForAll(address,address,bool)": EventFragment; - "Transfer(address,address,uint256)": EventFragment; - }; - - getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment; - getEvent(nameOrSignatureOrTopic: "ApprovalForAll"): EventFragment; - getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment; -} - -export interface ApprovalEventObject { - _owner: string; - _approved: string; - _tokenId: BigNumber; -} -export type ApprovalEvent = TypedEvent< - [string, string, BigNumber], - ApprovalEventObject ->; - -export type ApprovalEventFilter = TypedEventFilter; - -export interface ApprovalForAllEventObject { - _owner: string; - _operator: string; - _approved: boolean; -} -export type ApprovalForAllEvent = TypedEvent< - [string, string, boolean], - ApprovalForAllEventObject ->; - -export type ApprovalForAllEventFilter = TypedEventFilter; - -export interface TransferEventObject { - _from: string; - _to: string; - _tokenId: BigNumber; -} -export type TransferEvent = TypedEvent< - [string, string, BigNumber], - TransferEventObject ->; - -export type TransferEventFilter = TypedEventFilter; - -export interface MockERC721 extends BaseContract { - connect(signerOrProvider: Signer | Provider | string): this; - attach(addressOrName: string): this; - deployed(): Promise; - - interface: MockERC721Interface; - - queryFilter( - event: TypedEventFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>; - - listeners( - eventFilter?: TypedEventFilter - ): Array>; - listeners(eventName?: string): Array; - removeAllListeners( - eventFilter: TypedEventFilter - ): this; - removeAllListeners(eventName?: string): this; - off: OnEvent; - on: OnEvent; - once: OnEvent; - removeListener: OnEvent; - - functions: { - approve( - spender: PromiseOrValue, - id: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - owner: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[BigNumber]>; - - getApproved( - id: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - initialize( - name_: PromiseOrValue, - symbol_: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - isApprovedForAll( - owner: PromiseOrValue, - operator: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[boolean]>; - - name(overrides?: CallOverrides): Promise<[string]>; - - ownerOf( - id: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string] & { owner: string }>; - - "safeTransferFrom(address,address,uint256)"( - from: PromiseOrValue, - to: PromiseOrValue, - id: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "safeTransferFrom(address,address,uint256,bytes)"( - from: PromiseOrValue, - to: PromiseOrValue, - id: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - setApprovalForAll( - operator: PromiseOrValue, - approved: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - supportsInterface( - interfaceId: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[boolean]>; - - symbol(overrides?: CallOverrides): Promise<[string]>; - - tokenURI( - id: PromiseOrValue, - overrides?: CallOverrides - ): Promise<[string]>; - - transferFrom( - from: PromiseOrValue, - to: PromiseOrValue, - id: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; - - approve( - spender: PromiseOrValue, - id: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - owner: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getApproved( - id: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - initialize( - name_: PromiseOrValue, - symbol_: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - isApprovedForAll( - owner: PromiseOrValue, - operator: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - name(overrides?: CallOverrides): Promise; - - ownerOf( - id: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "safeTransferFrom(address,address,uint256)"( - from: PromiseOrValue, - to: PromiseOrValue, - id: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "safeTransferFrom(address,address,uint256,bytes)"( - from: PromiseOrValue, - to: PromiseOrValue, - id: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - setApprovalForAll( - operator: PromiseOrValue, - approved: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - supportsInterface( - interfaceId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - symbol(overrides?: CallOverrides): Promise; - - tokenURI( - id: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - transferFrom( - from: PromiseOrValue, - to: PromiseOrValue, - id: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - callStatic: { - approve( - spender: PromiseOrValue, - id: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - balanceOf( - owner: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getApproved( - id: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - initialize( - name_: PromiseOrValue, - symbol_: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - isApprovedForAll( - owner: PromiseOrValue, - operator: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - name(overrides?: CallOverrides): Promise; - - ownerOf( - id: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "safeTransferFrom(address,address,uint256)"( - from: PromiseOrValue, - to: PromiseOrValue, - id: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "safeTransferFrom(address,address,uint256,bytes)"( - from: PromiseOrValue, - to: PromiseOrValue, - id: PromiseOrValue, - data: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - setApprovalForAll( - operator: PromiseOrValue, - approved: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - supportsInterface( - interfaceId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - symbol(overrides?: CallOverrides): Promise; - - tokenURI( - id: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - transferFrom( - from: PromiseOrValue, - to: PromiseOrValue, - id: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - }; - - filters: { - "Approval(address,address,uint256)"( - _owner?: PromiseOrValue | null, - _approved?: PromiseOrValue | null, - _tokenId?: PromiseOrValue | null - ): ApprovalEventFilter; - Approval( - _owner?: PromiseOrValue | null, - _approved?: PromiseOrValue | null, - _tokenId?: PromiseOrValue | null - ): ApprovalEventFilter; - - "ApprovalForAll(address,address,bool)"( - _owner?: PromiseOrValue | null, - _operator?: PromiseOrValue | null, - _approved?: null - ): ApprovalForAllEventFilter; - ApprovalForAll( - _owner?: PromiseOrValue | null, - _operator?: PromiseOrValue | null, - _approved?: null - ): ApprovalForAllEventFilter; - - "Transfer(address,address,uint256)"( - _from?: PromiseOrValue | null, - _to?: PromiseOrValue | null, - _tokenId?: PromiseOrValue | null - ): TransferEventFilter; - Transfer( - _from?: PromiseOrValue | null, - _to?: PromiseOrValue | null, - _tokenId?: PromiseOrValue | null - ): TransferEventFilter; - }; - - estimateGas: { - approve( - spender: PromiseOrValue, - id: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - owner: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getApproved( - id: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - initialize( - name_: PromiseOrValue, - symbol_: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - isApprovedForAll( - owner: PromiseOrValue, - operator: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - name(overrides?: CallOverrides): Promise; - - ownerOf( - id: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "safeTransferFrom(address,address,uint256)"( - from: PromiseOrValue, - to: PromiseOrValue, - id: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "safeTransferFrom(address,address,uint256,bytes)"( - from: PromiseOrValue, - to: PromiseOrValue, - id: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - setApprovalForAll( - operator: PromiseOrValue, - approved: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - supportsInterface( - interfaceId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - symbol(overrides?: CallOverrides): Promise; - - tokenURI( - id: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - transferFrom( - from: PromiseOrValue, - to: PromiseOrValue, - id: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; - - populateTransaction: { - approve( - spender: PromiseOrValue, - id: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - balanceOf( - owner: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - getApproved( - id: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - initialize( - name_: PromiseOrValue, - symbol_: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - isApprovedForAll( - owner: PromiseOrValue, - operator: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - name(overrides?: CallOverrides): Promise; - - ownerOf( - id: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - "safeTransferFrom(address,address,uint256)"( - from: PromiseOrValue, - to: PromiseOrValue, - id: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - "safeTransferFrom(address,address,uint256,bytes)"( - from: PromiseOrValue, - to: PromiseOrValue, - id: PromiseOrValue, - data: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - - setApprovalForAll( - operator: PromiseOrValue, - approved: PromiseOrValue, - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise; - - supportsInterface( - interfaceId: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - symbol(overrides?: CallOverrides): Promise; - - tokenURI( - id: PromiseOrValue, - overrides?: CallOverrides - ): Promise; - - transferFrom( - from: PromiseOrValue, - to: PromiseOrValue, - id: PromiseOrValue, - overrides?: PayableOverrides & { from?: PromiseOrValue } - ): Promise; - }; -} diff --git a/typechain-types/forge-std/mocks/index.ts b/typechain-types/forge-std/mocks/index.ts deleted file mode 100644 index bb1eac6a..00000000 --- a/typechain-types/forge-std/mocks/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { MockERC20 } from "./MockERC20"; -export type { MockERC721 } from "./MockERC721"; diff --git a/.env.example b/v1/.env.example similarity index 100% rename from .env.example rename to v1/.env.example diff --git a/.eslintignore b/v1/.eslintignore similarity index 100% rename from .eslintignore rename to v1/.eslintignore diff --git a/.eslintrc.js b/v1/.eslintrc.js similarity index 100% rename from .eslintrc.js rename to v1/.eslintrc.js diff --git a/.solhint.json b/v1/.solhint.json similarity index 100% rename from .solhint.json rename to v1/.solhint.json diff --git a/Dockerfile b/v1/Dockerfile similarity index 100% rename from Dockerfile rename to v1/Dockerfile diff --git a/contracts/evm/ERC20Custody.sol b/v1/contracts/evm/ERC20Custody.sol similarity index 100% rename from contracts/evm/ERC20Custody.sol rename to v1/contracts/evm/ERC20Custody.sol diff --git a/contracts/evm/Zeta.eth.sol b/v1/contracts/evm/Zeta.eth.sol similarity index 100% rename from contracts/evm/Zeta.eth.sol rename to v1/contracts/evm/Zeta.eth.sol diff --git a/contracts/evm/Zeta.non-eth.sol b/v1/contracts/evm/Zeta.non-eth.sol similarity index 96% rename from contracts/evm/Zeta.non-eth.sol rename to v1/contracts/evm/Zeta.non-eth.sol index 70b0bc81..13301812 100644 --- a/contracts/evm/Zeta.non-eth.sol +++ b/v1/contracts/evm/Zeta.non-eth.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.7; +pragma solidity ^0.8.0; import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol"; diff --git a/contracts/evm/ZetaConnector.base.sol b/v1/contracts/evm/ZetaConnector.base.sol similarity index 100% rename from contracts/evm/ZetaConnector.base.sol rename to v1/contracts/evm/ZetaConnector.base.sol diff --git a/contracts/evm/ZetaConnector.eth.sol b/v1/contracts/evm/ZetaConnector.eth.sol similarity index 100% rename from contracts/evm/ZetaConnector.eth.sol rename to v1/contracts/evm/ZetaConnector.eth.sol diff --git a/contracts/evm/ZetaConnector.non-eth.sol b/v1/contracts/evm/ZetaConnector.non-eth.sol similarity index 100% rename from contracts/evm/ZetaConnector.non-eth.sol rename to v1/contracts/evm/ZetaConnector.non-eth.sol diff --git a/contracts/evm/interfaces/ConnectorErrors.sol b/v1/contracts/evm/interfaces/ConnectorErrors.sol similarity index 100% rename from contracts/evm/interfaces/ConnectorErrors.sol rename to v1/contracts/evm/interfaces/ConnectorErrors.sol diff --git a/contracts/evm/interfaces/ZetaErrors.sol b/v1/contracts/evm/interfaces/ZetaErrors.sol similarity index 97% rename from contracts/evm/interfaces/ZetaErrors.sol rename to v1/contracts/evm/interfaces/ZetaErrors.sol index 88976a1f..3cc37828 100644 --- a/contracts/evm/interfaces/ZetaErrors.sol +++ b/v1/contracts/evm/interfaces/ZetaErrors.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.7; +pragma solidity ^0.8.0; /** * @dev Common custom errors diff --git a/contracts/evm/interfaces/ZetaInteractorErrors.sol b/v1/contracts/evm/interfaces/ZetaInteractorErrors.sol similarity index 100% rename from contracts/evm/interfaces/ZetaInteractorErrors.sol rename to v1/contracts/evm/interfaces/ZetaInteractorErrors.sol diff --git a/contracts/evm/interfaces/ZetaInterfaces.sol b/v1/contracts/evm/interfaces/ZetaInterfaces.sol similarity index 99% rename from contracts/evm/interfaces/ZetaInterfaces.sol rename to v1/contracts/evm/interfaces/ZetaInterfaces.sol index a28a24f2..68b737ec 100644 --- a/contracts/evm/interfaces/ZetaInterfaces.sol +++ b/v1/contracts/evm/interfaces/ZetaInterfaces.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.7; +pragma solidity ^0.8.0; interface ZetaInterfaces { /** diff --git a/contracts/evm/interfaces/ZetaNonEthInterface.sol b/v1/contracts/evm/interfaces/ZetaNonEthInterface.sol similarity index 93% rename from contracts/evm/interfaces/ZetaNonEthInterface.sol rename to v1/contracts/evm/interfaces/ZetaNonEthInterface.sol index 164645cd..617e6ca1 100644 --- a/contracts/evm/interfaces/ZetaNonEthInterface.sol +++ b/v1/contracts/evm/interfaces/ZetaNonEthInterface.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.7; +pragma solidity ^0.8.0; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; diff --git a/contracts/evm/testing/AttackerContract.sol b/v1/contracts/evm/testing/AttackerContract.sol similarity index 100% rename from contracts/evm/testing/AttackerContract.sol rename to v1/contracts/evm/testing/AttackerContract.sol diff --git a/contracts/evm/testing/ERC20Mock.sol b/v1/contracts/evm/testing/ERC20Mock.sol similarity index 100% rename from contracts/evm/testing/ERC20Mock.sol rename to v1/contracts/evm/testing/ERC20Mock.sol diff --git a/contracts/evm/testing/TestUniswapV3Contracts.sol b/v1/contracts/evm/testing/TestUniswapV3Contracts.sol similarity index 100% rename from contracts/evm/testing/TestUniswapV3Contracts.sol rename to v1/contracts/evm/testing/TestUniswapV3Contracts.sol diff --git a/contracts/evm/testing/ZetaInteractorMock.sol b/v1/contracts/evm/testing/ZetaInteractorMock.sol similarity index 100% rename from contracts/evm/testing/ZetaInteractorMock.sol rename to v1/contracts/evm/testing/ZetaInteractorMock.sol diff --git a/contracts/evm/testing/ZetaReceiverMock.sol b/v1/contracts/evm/testing/ZetaReceiverMock.sol similarity index 100% rename from contracts/evm/testing/ZetaReceiverMock.sol rename to v1/contracts/evm/testing/ZetaReceiverMock.sol diff --git a/contracts/evm/tools/ImmutableCreate2Factory.sol b/v1/contracts/evm/tools/ImmutableCreate2Factory.sol similarity index 100% rename from contracts/evm/tools/ImmutableCreate2Factory.sol rename to v1/contracts/evm/tools/ImmutableCreate2Factory.sol diff --git a/contracts/evm/tools/ZetaInteractor.sol b/v1/contracts/evm/tools/ZetaInteractor.sol similarity index 100% rename from contracts/evm/tools/ZetaInteractor.sol rename to v1/contracts/evm/tools/ZetaInteractor.sol diff --git a/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol b/v1/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol similarity index 100% rename from contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol rename to v1/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol diff --git a/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol b/v1/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol similarity index 100% rename from contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol rename to v1/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol diff --git a/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol b/v1/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol similarity index 100% rename from contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol rename to v1/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol diff --git a/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol b/v1/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol similarity index 100% rename from contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol rename to v1/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol diff --git a/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol b/v1/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol similarity index 100% rename from contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol rename to v1/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol diff --git a/contracts/evm/tools/interfaces/TridentConcentratedLiquidityPoolFactory.sol b/v1/contracts/evm/tools/interfaces/TridentConcentratedLiquidityPoolFactory.sol similarity index 100% rename from contracts/evm/tools/interfaces/TridentConcentratedLiquidityPoolFactory.sol rename to v1/contracts/evm/tools/interfaces/TridentConcentratedLiquidityPoolFactory.sol diff --git a/contracts/evm/tools/interfaces/TridentIPoolRouter.sol b/v1/contracts/evm/tools/interfaces/TridentIPoolRouter.sol similarity index 100% rename from contracts/evm/tools/interfaces/TridentIPoolRouter.sol rename to v1/contracts/evm/tools/interfaces/TridentIPoolRouter.sol diff --git a/contracts/zevm/SystemContract.sol b/v1/contracts/zevm/SystemContract.sol similarity index 100% rename from contracts/zevm/SystemContract.sol rename to v1/contracts/zevm/SystemContract.sol diff --git a/contracts/zevm/Uniswap.sol b/v1/contracts/zevm/Uniswap.sol similarity index 100% rename from contracts/zevm/Uniswap.sol rename to v1/contracts/zevm/Uniswap.sol diff --git a/contracts/zevm/UniswapPeriphery.sol b/v1/contracts/zevm/UniswapPeriphery.sol similarity index 100% rename from contracts/zevm/UniswapPeriphery.sol rename to v1/contracts/zevm/UniswapPeriphery.sol diff --git a/contracts/zevm/WZETA.sol b/v1/contracts/zevm/WZETA.sol similarity index 100% rename from contracts/zevm/WZETA.sol rename to v1/contracts/zevm/WZETA.sol diff --git a/contracts/zevm/ZRC20.sol b/v1/contracts/zevm/ZRC20.sol similarity index 100% rename from contracts/zevm/ZRC20.sol rename to v1/contracts/zevm/ZRC20.sol diff --git a/contracts/zevm/ZetaConnectorZEVM.sol b/v1/contracts/zevm/ZetaConnectorZEVM.sol similarity index 100% rename from contracts/zevm/ZetaConnectorZEVM.sol rename to v1/contracts/zevm/ZetaConnectorZEVM.sol diff --git a/contracts/zevm/interfaces/ISystem.sol b/v1/contracts/zevm/interfaces/ISystem.sol similarity index 100% rename from contracts/zevm/interfaces/ISystem.sol rename to v1/contracts/zevm/interfaces/ISystem.sol diff --git a/contracts/zevm/interfaces/IUniswapV2Router01.sol b/v1/contracts/zevm/interfaces/IUniswapV2Router01.sol similarity index 100% rename from contracts/zevm/interfaces/IUniswapV2Router01.sol rename to v1/contracts/zevm/interfaces/IUniswapV2Router01.sol diff --git a/contracts/zevm/interfaces/IUniswapV2Router02.sol b/v1/contracts/zevm/interfaces/IUniswapV2Router02.sol similarity index 100% rename from contracts/zevm/interfaces/IUniswapV2Router02.sol rename to v1/contracts/zevm/interfaces/IUniswapV2Router02.sol diff --git a/contracts/zevm/interfaces/IWZETA.sol b/v1/contracts/zevm/interfaces/IWZETA.sol similarity index 100% rename from contracts/zevm/interfaces/IWZETA.sol rename to v1/contracts/zevm/interfaces/IWZETA.sol diff --git a/contracts/zevm/interfaces/IZRC20.sol b/v1/contracts/zevm/interfaces/IZRC20.sol similarity index 100% rename from contracts/zevm/interfaces/IZRC20.sol rename to v1/contracts/zevm/interfaces/IZRC20.sol diff --git a/contracts/zevm/interfaces/zContract.sol b/v1/contracts/zevm/interfaces/zContract.sol similarity index 100% rename from contracts/zevm/interfaces/zContract.sol rename to v1/contracts/zevm/interfaces/zContract.sol diff --git a/contracts/zevm/testing/SystemContractMock.sol b/v1/contracts/zevm/testing/SystemContractMock.sol similarity index 100% rename from contracts/zevm/testing/SystemContractMock.sol rename to v1/contracts/zevm/testing/SystemContractMock.sol diff --git a/data/addresses.json b/v1/data/addresses.json similarity index 100% rename from data/addresses.json rename to v1/data/addresses.json diff --git a/data/addresses.mainnet.json b/v1/data/addresses.mainnet.json similarity index 100% rename from data/addresses.mainnet.json rename to v1/data/addresses.mainnet.json diff --git a/data/addresses.testnet.json b/v1/data/addresses.testnet.json similarity index 100% rename from data/addresses.testnet.json rename to v1/data/addresses.testnet.json diff --git a/data/readme.md b/v1/data/readme.md similarity index 100% rename from data/readme.md rename to v1/data/readme.md diff --git a/docs/.gitignore b/v1/docs/.gitignore similarity index 100% rename from docs/.gitignore rename to v1/docs/.gitignore diff --git a/docs/book.css b/v1/docs/book.css similarity index 100% rename from docs/book.css rename to v1/docs/book.css diff --git a/docs/book.toml b/v1/docs/book.toml similarity index 100% rename from docs/book.toml rename to v1/docs/book.toml diff --git a/docs/solidity.min.js b/v1/docs/solidity.min.js similarity index 100% rename from docs/solidity.min.js rename to v1/docs/solidity.min.js diff --git a/docs/src/README.md b/v1/docs/src/README.md similarity index 100% rename from docs/src/README.md rename to v1/docs/src/README.md diff --git a/docs/src/SUMMARY.md b/v1/docs/src/SUMMARY.md similarity index 100% rename from docs/src/SUMMARY.md rename to v1/docs/src/SUMMARY.md diff --git a/docs/src/contracts/README.md b/v1/docs/src/contracts/README.md similarity index 100% rename from docs/src/contracts/README.md rename to v1/docs/src/contracts/README.md diff --git a/docs/src/contracts/evm/ERC20Custody.sol/contract.ERC20Custody.md b/v1/docs/src/contracts/evm/ERC20Custody.sol/contract.ERC20Custody.md similarity index 100% rename from docs/src/contracts/evm/ERC20Custody.sol/contract.ERC20Custody.md rename to v1/docs/src/contracts/evm/ERC20Custody.sol/contract.ERC20Custody.md diff --git a/docs/src/contracts/evm/README.md b/v1/docs/src/contracts/evm/README.md similarity index 100% rename from docs/src/contracts/evm/README.md rename to v1/docs/src/contracts/evm/README.md diff --git a/docs/src/contracts/evm/Zeta.eth.sol/contract.ZetaEth.md b/v1/docs/src/contracts/evm/Zeta.eth.sol/contract.ZetaEth.md similarity index 100% rename from docs/src/contracts/evm/Zeta.eth.sol/contract.ZetaEth.md rename to v1/docs/src/contracts/evm/Zeta.eth.sol/contract.ZetaEth.md diff --git a/docs/src/contracts/evm/Zeta.non-eth.sol/contract.ZetaNonEth.md b/v1/docs/src/contracts/evm/Zeta.non-eth.sol/contract.ZetaNonEth.md similarity index 100% rename from docs/src/contracts/evm/Zeta.non-eth.sol/contract.ZetaNonEth.md rename to v1/docs/src/contracts/evm/Zeta.non-eth.sol/contract.ZetaNonEth.md diff --git a/docs/src/contracts/evm/ZetaConnector.base.sol/contract.ZetaConnectorBase.md b/v1/docs/src/contracts/evm/ZetaConnector.base.sol/contract.ZetaConnectorBase.md similarity index 100% rename from docs/src/contracts/evm/ZetaConnector.base.sol/contract.ZetaConnectorBase.md rename to v1/docs/src/contracts/evm/ZetaConnector.base.sol/contract.ZetaConnectorBase.md diff --git a/docs/src/contracts/evm/ZetaConnector.eth.sol/contract.ZetaConnectorEth.md b/v1/docs/src/contracts/evm/ZetaConnector.eth.sol/contract.ZetaConnectorEth.md similarity index 100% rename from docs/src/contracts/evm/ZetaConnector.eth.sol/contract.ZetaConnectorEth.md rename to v1/docs/src/contracts/evm/ZetaConnector.eth.sol/contract.ZetaConnectorEth.md diff --git a/docs/src/contracts/evm/ZetaConnector.non-eth.sol/contract.ZetaConnectorNonEth.md b/v1/docs/src/contracts/evm/ZetaConnector.non-eth.sol/contract.ZetaConnectorNonEth.md similarity index 100% rename from docs/src/contracts/evm/ZetaConnector.non-eth.sol/contract.ZetaConnectorNonEth.md rename to v1/docs/src/contracts/evm/ZetaConnector.non-eth.sol/contract.ZetaConnectorNonEth.md diff --git a/docs/src/contracts/evm/interfaces/ConnectorErrors.sol/interface.ConnectorErrors.md b/v1/docs/src/contracts/evm/interfaces/ConnectorErrors.sol/interface.ConnectorErrors.md similarity index 100% rename from docs/src/contracts/evm/interfaces/ConnectorErrors.sol/interface.ConnectorErrors.md rename to v1/docs/src/contracts/evm/interfaces/ConnectorErrors.sol/interface.ConnectorErrors.md diff --git a/docs/src/contracts/evm/interfaces/README.md b/v1/docs/src/contracts/evm/interfaces/README.md similarity index 100% rename from docs/src/contracts/evm/interfaces/README.md rename to v1/docs/src/contracts/evm/interfaces/README.md diff --git a/docs/src/contracts/evm/interfaces/ZetaErrors.sol/interface.ZetaErrors.md b/v1/docs/src/contracts/evm/interfaces/ZetaErrors.sol/interface.ZetaErrors.md similarity index 100% rename from docs/src/contracts/evm/interfaces/ZetaErrors.sol/interface.ZetaErrors.md rename to v1/docs/src/contracts/evm/interfaces/ZetaErrors.sol/interface.ZetaErrors.md diff --git a/docs/src/contracts/evm/interfaces/ZetaInteractorErrors.sol/interface.ZetaInteractorErrors.md b/v1/docs/src/contracts/evm/interfaces/ZetaInteractorErrors.sol/interface.ZetaInteractorErrors.md similarity index 100% rename from docs/src/contracts/evm/interfaces/ZetaInteractorErrors.sol/interface.ZetaInteractorErrors.md rename to v1/docs/src/contracts/evm/interfaces/ZetaInteractorErrors.sol/interface.ZetaInteractorErrors.md diff --git a/docs/src/contracts/evm/interfaces/ZetaInterfaces.sol/interface.ZetaCommonErrors.md b/v1/docs/src/contracts/evm/interfaces/ZetaInterfaces.sol/interface.ZetaCommonErrors.md similarity index 100% rename from docs/src/contracts/evm/interfaces/ZetaInterfaces.sol/interface.ZetaCommonErrors.md rename to v1/docs/src/contracts/evm/interfaces/ZetaInterfaces.sol/interface.ZetaCommonErrors.md diff --git a/docs/src/contracts/evm/interfaces/ZetaInterfaces.sol/interface.ZetaConnector.md b/v1/docs/src/contracts/evm/interfaces/ZetaInterfaces.sol/interface.ZetaConnector.md similarity index 100% rename from docs/src/contracts/evm/interfaces/ZetaInterfaces.sol/interface.ZetaConnector.md rename to v1/docs/src/contracts/evm/interfaces/ZetaInterfaces.sol/interface.ZetaConnector.md diff --git a/docs/src/contracts/evm/interfaces/ZetaInterfaces.sol/interface.ZetaInterfaces.md b/v1/docs/src/contracts/evm/interfaces/ZetaInterfaces.sol/interface.ZetaInterfaces.md similarity index 100% rename from docs/src/contracts/evm/interfaces/ZetaInterfaces.sol/interface.ZetaInterfaces.md rename to v1/docs/src/contracts/evm/interfaces/ZetaInterfaces.sol/interface.ZetaInterfaces.md diff --git a/docs/src/contracts/evm/interfaces/ZetaInterfaces.sol/interface.ZetaReceiver.md b/v1/docs/src/contracts/evm/interfaces/ZetaInterfaces.sol/interface.ZetaReceiver.md similarity index 100% rename from docs/src/contracts/evm/interfaces/ZetaInterfaces.sol/interface.ZetaReceiver.md rename to v1/docs/src/contracts/evm/interfaces/ZetaInterfaces.sol/interface.ZetaReceiver.md diff --git a/docs/src/contracts/evm/interfaces/ZetaInterfaces.sol/interface.ZetaTokenConsumer.md b/v1/docs/src/contracts/evm/interfaces/ZetaInterfaces.sol/interface.ZetaTokenConsumer.md similarity index 100% rename from docs/src/contracts/evm/interfaces/ZetaInterfaces.sol/interface.ZetaTokenConsumer.md rename to v1/docs/src/contracts/evm/interfaces/ZetaInterfaces.sol/interface.ZetaTokenConsumer.md diff --git a/docs/src/contracts/evm/interfaces/ZetaNonEthInterface.sol/interface.ZetaNonEthInterface.md b/v1/docs/src/contracts/evm/interfaces/ZetaNonEthInterface.sol/interface.ZetaNonEthInterface.md similarity index 100% rename from docs/src/contracts/evm/interfaces/ZetaNonEthInterface.sol/interface.ZetaNonEthInterface.md rename to v1/docs/src/contracts/evm/interfaces/ZetaNonEthInterface.sol/interface.ZetaNonEthInterface.md diff --git a/docs/src/contracts/evm/testing/AttackerContract.sol/contract.AttackerContract.md b/v1/docs/src/contracts/evm/testing/AttackerContract.sol/contract.AttackerContract.md similarity index 100% rename from docs/src/contracts/evm/testing/AttackerContract.sol/contract.AttackerContract.md rename to v1/docs/src/contracts/evm/testing/AttackerContract.sol/contract.AttackerContract.md diff --git a/docs/src/contracts/evm/testing/AttackerContract.sol/interface.Victim.md b/v1/docs/src/contracts/evm/testing/AttackerContract.sol/interface.Victim.md similarity index 100% rename from docs/src/contracts/evm/testing/AttackerContract.sol/interface.Victim.md rename to v1/docs/src/contracts/evm/testing/AttackerContract.sol/interface.Victim.md diff --git a/docs/src/contracts/evm/testing/ERC20Mock.sol/contract.ERC20Mock.md b/v1/docs/src/contracts/evm/testing/ERC20Mock.sol/contract.ERC20Mock.md similarity index 100% rename from docs/src/contracts/evm/testing/ERC20Mock.sol/contract.ERC20Mock.md rename to v1/docs/src/contracts/evm/testing/ERC20Mock.sol/contract.ERC20Mock.md diff --git a/docs/src/contracts/evm/testing/README.md b/v1/docs/src/contracts/evm/testing/README.md similarity index 100% rename from docs/src/contracts/evm/testing/README.md rename to v1/docs/src/contracts/evm/testing/README.md diff --git a/docs/src/contracts/evm/testing/TestUniswapV3Contracts.sol/interface.INonfungiblePositionManager.md b/v1/docs/src/contracts/evm/testing/TestUniswapV3Contracts.sol/interface.INonfungiblePositionManager.md similarity index 100% rename from docs/src/contracts/evm/testing/TestUniswapV3Contracts.sol/interface.INonfungiblePositionManager.md rename to v1/docs/src/contracts/evm/testing/TestUniswapV3Contracts.sol/interface.INonfungiblePositionManager.md diff --git a/docs/src/contracts/evm/testing/TestUniswapV3Contracts.sol/interface.IPoolInitializer.md b/v1/docs/src/contracts/evm/testing/TestUniswapV3Contracts.sol/interface.IPoolInitializer.md similarity index 100% rename from docs/src/contracts/evm/testing/TestUniswapV3Contracts.sol/interface.IPoolInitializer.md rename to v1/docs/src/contracts/evm/testing/TestUniswapV3Contracts.sol/interface.IPoolInitializer.md diff --git a/docs/src/contracts/evm/testing/ZetaInteractorMock.sol/contract.ZetaInteractorMock.md b/v1/docs/src/contracts/evm/testing/ZetaInteractorMock.sol/contract.ZetaInteractorMock.md similarity index 100% rename from docs/src/contracts/evm/testing/ZetaInteractorMock.sol/contract.ZetaInteractorMock.md rename to v1/docs/src/contracts/evm/testing/ZetaInteractorMock.sol/contract.ZetaInteractorMock.md diff --git a/docs/src/contracts/evm/testing/ZetaReceiverMock.sol/contract.ZetaReceiverMock.md b/v1/docs/src/contracts/evm/testing/ZetaReceiverMock.sol/contract.ZetaReceiverMock.md similarity index 100% rename from docs/src/contracts/evm/testing/ZetaReceiverMock.sol/contract.ZetaReceiverMock.md rename to v1/docs/src/contracts/evm/testing/ZetaReceiverMock.sol/contract.ZetaReceiverMock.md diff --git a/docs/src/contracts/evm/tools/ImmutableCreate2Factory.sol/contract.ImmutableCreate2Factory.md b/v1/docs/src/contracts/evm/tools/ImmutableCreate2Factory.sol/contract.ImmutableCreate2Factory.md similarity index 100% rename from docs/src/contracts/evm/tools/ImmutableCreate2Factory.sol/contract.ImmutableCreate2Factory.md rename to v1/docs/src/contracts/evm/tools/ImmutableCreate2Factory.sol/contract.ImmutableCreate2Factory.md diff --git a/docs/src/contracts/evm/tools/ImmutableCreate2Factory.sol/interface.Ownable.md b/v1/docs/src/contracts/evm/tools/ImmutableCreate2Factory.sol/interface.Ownable.md similarity index 100% rename from docs/src/contracts/evm/tools/ImmutableCreate2Factory.sol/interface.Ownable.md rename to v1/docs/src/contracts/evm/tools/ImmutableCreate2Factory.sol/interface.Ownable.md diff --git a/docs/src/contracts/evm/tools/README.md b/v1/docs/src/contracts/evm/tools/README.md similarity index 100% rename from docs/src/contracts/evm/tools/README.md rename to v1/docs/src/contracts/evm/tools/README.md diff --git a/docs/src/contracts/evm/tools/ZetaInteractor.sol/abstract.ZetaInteractor.md b/v1/docs/src/contracts/evm/tools/ZetaInteractor.sol/abstract.ZetaInteractor.md similarity index 100% rename from docs/src/contracts/evm/tools/ZetaInteractor.sol/abstract.ZetaInteractor.md rename to v1/docs/src/contracts/evm/tools/ZetaInteractor.sol/abstract.ZetaInteractor.md diff --git a/docs/src/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/contract.ZetaTokenConsumerPancakeV3.md b/v1/docs/src/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/contract.ZetaTokenConsumerPancakeV3.md similarity index 100% rename from docs/src/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/contract.ZetaTokenConsumerPancakeV3.md rename to v1/docs/src/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/contract.ZetaTokenConsumerPancakeV3.md diff --git a/docs/src/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/interface.ISwapRouterPancake.md b/v1/docs/src/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/interface.ISwapRouterPancake.md similarity index 100% rename from docs/src/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/interface.ISwapRouterPancake.md rename to v1/docs/src/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/interface.ISwapRouterPancake.md diff --git a/docs/src/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/interface.WETH9.md b/v1/docs/src/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/interface.WETH9.md similarity index 100% rename from docs/src/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/interface.WETH9.md rename to v1/docs/src/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/interface.WETH9.md diff --git a/docs/src/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/interface.ZetaTokenConsumerUniV3Errors.md b/v1/docs/src/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/interface.ZetaTokenConsumerUniV3Errors.md similarity index 100% rename from docs/src/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/interface.ZetaTokenConsumerUniV3Errors.md rename to v1/docs/src/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/interface.ZetaTokenConsumerUniV3Errors.md diff --git a/docs/src/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/contract.ZetaTokenConsumerTrident.md b/v1/docs/src/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/contract.ZetaTokenConsumerTrident.md similarity index 100% rename from docs/src/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/contract.ZetaTokenConsumerTrident.md rename to v1/docs/src/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/contract.ZetaTokenConsumerTrident.md diff --git a/docs/src/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/interface.WETH9.md b/v1/docs/src/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/interface.WETH9.md similarity index 100% rename from docs/src/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/interface.WETH9.md rename to v1/docs/src/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/interface.WETH9.md diff --git a/docs/src/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/interface.ZetaTokenConsumerTridentErrors.md b/v1/docs/src/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/interface.ZetaTokenConsumerTridentErrors.md similarity index 100% rename from docs/src/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/interface.ZetaTokenConsumerTridentErrors.md rename to v1/docs/src/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/interface.ZetaTokenConsumerTridentErrors.md diff --git a/docs/src/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/contract.ZetaTokenConsumerUniV2.md b/v1/docs/src/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/contract.ZetaTokenConsumerUniV2.md similarity index 100% rename from docs/src/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/contract.ZetaTokenConsumerUniV2.md rename to v1/docs/src/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/contract.ZetaTokenConsumerUniV2.md diff --git a/docs/src/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/interface.ZetaTokenConsumerUniV2Errors.md b/v1/docs/src/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/interface.ZetaTokenConsumerUniV2Errors.md similarity index 100% rename from docs/src/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/interface.ZetaTokenConsumerUniV2Errors.md rename to v1/docs/src/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/interface.ZetaTokenConsumerUniV2Errors.md diff --git a/docs/src/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/contract.ZetaTokenConsumerUniV3.md b/v1/docs/src/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/contract.ZetaTokenConsumerUniV3.md similarity index 100% rename from docs/src/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/contract.ZetaTokenConsumerUniV3.md rename to v1/docs/src/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/contract.ZetaTokenConsumerUniV3.md diff --git a/docs/src/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/interface.WETH9.md b/v1/docs/src/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/interface.WETH9.md similarity index 100% rename from docs/src/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/interface.WETH9.md rename to v1/docs/src/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/interface.WETH9.md diff --git a/docs/src/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/interface.ZetaTokenConsumerUniV3Errors.md b/v1/docs/src/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/interface.ZetaTokenConsumerUniV3Errors.md similarity index 100% rename from docs/src/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/interface.ZetaTokenConsumerUniV3Errors.md rename to v1/docs/src/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/interface.ZetaTokenConsumerUniV3Errors.md diff --git a/docs/src/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/contract.ZetaTokenConsumerZEVM.md b/v1/docs/src/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/contract.ZetaTokenConsumerZEVM.md similarity index 100% rename from docs/src/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/contract.ZetaTokenConsumerZEVM.md rename to v1/docs/src/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/contract.ZetaTokenConsumerZEVM.md diff --git a/docs/src/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/interface.ZetaTokenConsumerZEVMErrors.md b/v1/docs/src/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/interface.ZetaTokenConsumerZEVMErrors.md similarity index 100% rename from docs/src/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/interface.ZetaTokenConsumerZEVMErrors.md rename to v1/docs/src/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/interface.ZetaTokenConsumerZEVMErrors.md diff --git a/docs/src/contracts/evm/tools/interfaces/README.md b/v1/docs/src/contracts/evm/tools/interfaces/README.md similarity index 100% rename from docs/src/contracts/evm/tools/interfaces/README.md rename to v1/docs/src/contracts/evm/tools/interfaces/README.md diff --git a/docs/src/contracts/evm/tools/interfaces/TridentConcentratedLiquidityPoolFactory.sol/interface.ConcentratedLiquidityPoolFactory.md b/v1/docs/src/contracts/evm/tools/interfaces/TridentConcentratedLiquidityPoolFactory.sol/interface.ConcentratedLiquidityPoolFactory.md similarity index 100% rename from docs/src/contracts/evm/tools/interfaces/TridentConcentratedLiquidityPoolFactory.sol/interface.ConcentratedLiquidityPoolFactory.md rename to v1/docs/src/contracts/evm/tools/interfaces/TridentConcentratedLiquidityPoolFactory.sol/interface.ConcentratedLiquidityPoolFactory.md diff --git a/docs/src/contracts/evm/tools/interfaces/TridentIPoolRouter.sol/interface.IPoolRouter.md b/v1/docs/src/contracts/evm/tools/interfaces/TridentIPoolRouter.sol/interface.IPoolRouter.md similarity index 100% rename from docs/src/contracts/evm/tools/interfaces/TridentIPoolRouter.sol/interface.IPoolRouter.md rename to v1/docs/src/contracts/evm/tools/interfaces/TridentIPoolRouter.sol/interface.IPoolRouter.md diff --git a/docs/src/contracts/zevm/Interfaces.sol/enum.CoinType.md b/v1/docs/src/contracts/zevm/Interfaces.sol/enum.CoinType.md similarity index 100% rename from docs/src/contracts/zevm/Interfaces.sol/enum.CoinType.md rename to v1/docs/src/contracts/zevm/Interfaces.sol/enum.CoinType.md diff --git a/docs/src/contracts/zevm/Interfaces.sol/interface.ISystem.md b/v1/docs/src/contracts/zevm/Interfaces.sol/interface.ISystem.md similarity index 100% rename from docs/src/contracts/zevm/Interfaces.sol/interface.ISystem.md rename to v1/docs/src/contracts/zevm/Interfaces.sol/interface.ISystem.md diff --git a/docs/src/contracts/zevm/Interfaces.sol/interface.IZRC20.md b/v1/docs/src/contracts/zevm/Interfaces.sol/interface.IZRC20.md similarity index 100% rename from docs/src/contracts/zevm/Interfaces.sol/interface.IZRC20.md rename to v1/docs/src/contracts/zevm/Interfaces.sol/interface.IZRC20.md diff --git a/docs/src/contracts/zevm/Interfaces.sol/interface.IZRC20Metadata.md b/v1/docs/src/contracts/zevm/Interfaces.sol/interface.IZRC20Metadata.md similarity index 100% rename from docs/src/contracts/zevm/Interfaces.sol/interface.IZRC20Metadata.md rename to v1/docs/src/contracts/zevm/Interfaces.sol/interface.IZRC20Metadata.md diff --git a/docs/src/contracts/zevm/README.md b/v1/docs/src/contracts/zevm/README.md similarity index 100% rename from docs/src/contracts/zevm/README.md rename to v1/docs/src/contracts/zevm/README.md diff --git a/docs/src/contracts/zevm/SystemContract.sol/contract.SystemContract.md b/v1/docs/src/contracts/zevm/SystemContract.sol/contract.SystemContract.md similarity index 100% rename from docs/src/contracts/zevm/SystemContract.sol/contract.SystemContract.md rename to v1/docs/src/contracts/zevm/SystemContract.sol/contract.SystemContract.md diff --git a/docs/src/contracts/zevm/SystemContract.sol/interface.SystemContractErrors.md b/v1/docs/src/contracts/zevm/SystemContract.sol/interface.SystemContractErrors.md similarity index 100% rename from docs/src/contracts/zevm/SystemContract.sol/interface.SystemContractErrors.md rename to v1/docs/src/contracts/zevm/SystemContract.sol/interface.SystemContractErrors.md diff --git a/docs/src/contracts/zevm/Uniswap.sol/contract.UniswapImports.md b/v1/docs/src/contracts/zevm/Uniswap.sol/contract.UniswapImports.md similarity index 100% rename from docs/src/contracts/zevm/Uniswap.sol/contract.UniswapImports.md rename to v1/docs/src/contracts/zevm/Uniswap.sol/contract.UniswapImports.md diff --git a/docs/src/contracts/zevm/UniswapPeriphery.sol/contract.UniswapImports.md b/v1/docs/src/contracts/zevm/UniswapPeriphery.sol/contract.UniswapImports.md similarity index 100% rename from docs/src/contracts/zevm/UniswapPeriphery.sol/contract.UniswapImports.md rename to v1/docs/src/contracts/zevm/UniswapPeriphery.sol/contract.UniswapImports.md diff --git a/docs/src/contracts/zevm/WZETA.sol/contract.WETH9.md b/v1/docs/src/contracts/zevm/WZETA.sol/contract.WETH9.md similarity index 100% rename from docs/src/contracts/zevm/WZETA.sol/contract.WETH9.md rename to v1/docs/src/contracts/zevm/WZETA.sol/contract.WETH9.md diff --git a/docs/src/contracts/zevm/ZRC20.sol/contract.ZRC20.md b/v1/docs/src/contracts/zevm/ZRC20.sol/contract.ZRC20.md similarity index 100% rename from docs/src/contracts/zevm/ZRC20.sol/contract.ZRC20.md rename to v1/docs/src/contracts/zevm/ZRC20.sol/contract.ZRC20.md diff --git a/docs/src/contracts/zevm/ZRC20.sol/interface.ZRC20Errors.md b/v1/docs/src/contracts/zevm/ZRC20.sol/interface.ZRC20Errors.md similarity index 100% rename from docs/src/contracts/zevm/ZRC20.sol/interface.ZRC20Errors.md rename to v1/docs/src/contracts/zevm/ZRC20.sol/interface.ZRC20Errors.md diff --git a/docs/src/contracts/zevm/ZetaConnectorZEVM.sol/contract.ZetaConnectorZEVM.md b/v1/docs/src/contracts/zevm/ZetaConnectorZEVM.sol/contract.ZetaConnectorZEVM.md similarity index 100% rename from docs/src/contracts/zevm/ZetaConnectorZEVM.sol/contract.ZetaConnectorZEVM.md rename to v1/docs/src/contracts/zevm/ZetaConnectorZEVM.sol/contract.ZetaConnectorZEVM.md diff --git a/docs/src/contracts/zevm/ZetaConnectorZEVM.sol/interface.ZetaInterfaces.md b/v1/docs/src/contracts/zevm/ZetaConnectorZEVM.sol/interface.ZetaInterfaces.md similarity index 100% rename from docs/src/contracts/zevm/ZetaConnectorZEVM.sol/interface.ZetaInterfaces.md rename to v1/docs/src/contracts/zevm/ZetaConnectorZEVM.sol/interface.ZetaInterfaces.md diff --git a/docs/src/contracts/zevm/ZetaConnectorZEVM.sol/interface.ZetaReceiver.md b/v1/docs/src/contracts/zevm/ZetaConnectorZEVM.sol/interface.ZetaReceiver.md similarity index 100% rename from docs/src/contracts/zevm/ZetaConnectorZEVM.sol/interface.ZetaReceiver.md rename to v1/docs/src/contracts/zevm/ZetaConnectorZEVM.sol/interface.ZetaReceiver.md diff --git a/docs/src/contracts/zevm/interfaces/IUniswapV2Router01.sol/interface.IUniswapV2Router01.md b/v1/docs/src/contracts/zevm/interfaces/IUniswapV2Router01.sol/interface.IUniswapV2Router01.md similarity index 100% rename from docs/src/contracts/zevm/interfaces/IUniswapV2Router01.sol/interface.IUniswapV2Router01.md rename to v1/docs/src/contracts/zevm/interfaces/IUniswapV2Router01.sol/interface.IUniswapV2Router01.md diff --git a/docs/src/contracts/zevm/interfaces/IUniswapV2Router02.sol/interface.IUniswapV2Router02.md b/v1/docs/src/contracts/zevm/interfaces/IUniswapV2Router02.sol/interface.IUniswapV2Router02.md similarity index 100% rename from docs/src/contracts/zevm/interfaces/IUniswapV2Router02.sol/interface.IUniswapV2Router02.md rename to v1/docs/src/contracts/zevm/interfaces/IUniswapV2Router02.sol/interface.IUniswapV2Router02.md diff --git a/docs/src/contracts/zevm/interfaces/IWZETA.sol/interface.IWETH9.md b/v1/docs/src/contracts/zevm/interfaces/IWZETA.sol/interface.IWETH9.md similarity index 100% rename from docs/src/contracts/zevm/interfaces/IWZETA.sol/interface.IWETH9.md rename to v1/docs/src/contracts/zevm/interfaces/IWZETA.sol/interface.IWETH9.md diff --git a/docs/src/contracts/zevm/interfaces/IZRC20.sol/interface.IZRC20.md b/v1/docs/src/contracts/zevm/interfaces/IZRC20.sol/interface.IZRC20.md similarity index 100% rename from docs/src/contracts/zevm/interfaces/IZRC20.sol/interface.IZRC20.md rename to v1/docs/src/contracts/zevm/interfaces/IZRC20.sol/interface.IZRC20.md diff --git a/docs/src/contracts/zevm/interfaces/README.md b/v1/docs/src/contracts/zevm/interfaces/README.md similarity index 100% rename from docs/src/contracts/zevm/interfaces/README.md rename to v1/docs/src/contracts/zevm/interfaces/README.md diff --git a/docs/src/contracts/zevm/interfaces/zContract.sol/interface.zContract.md b/v1/docs/src/contracts/zevm/interfaces/zContract.sol/interface.zContract.md similarity index 100% rename from docs/src/contracts/zevm/interfaces/zContract.sol/interface.zContract.md rename to v1/docs/src/contracts/zevm/interfaces/zContract.sol/interface.zContract.md diff --git a/docs/src/contracts/zevm/interfaces/zContract.sol/struct.zContext.md b/v1/docs/src/contracts/zevm/interfaces/zContract.sol/struct.zContext.md similarity index 100% rename from docs/src/contracts/zevm/interfaces/zContract.sol/struct.zContext.md rename to v1/docs/src/contracts/zevm/interfaces/zContract.sol/struct.zContext.md diff --git a/docs/src/contracts/zevm/testing/README.md b/v1/docs/src/contracts/zevm/testing/README.md similarity index 100% rename from docs/src/contracts/zevm/testing/README.md rename to v1/docs/src/contracts/zevm/testing/README.md diff --git a/docs/src/contracts/zevm/testing/SystemContractMock.sol/contract.SystemContractMock.md b/v1/docs/src/contracts/zevm/testing/SystemContractMock.sol/contract.SystemContractMock.md similarity index 100% rename from docs/src/contracts/zevm/testing/SystemContractMock.sol/contract.SystemContractMock.md rename to v1/docs/src/contracts/zevm/testing/SystemContractMock.sol/contract.SystemContractMock.md diff --git a/docs/src/contracts/zevm/testing/SystemContractMock.sol/interface.SystemContractErrors.md b/v1/docs/src/contracts/zevm/testing/SystemContractMock.sol/interface.SystemContractErrors.md similarity index 100% rename from docs/src/contracts/zevm/testing/SystemContractMock.sol/interface.SystemContractErrors.md rename to v1/docs/src/contracts/zevm/testing/SystemContractMock.sol/interface.SystemContractErrors.md diff --git a/go.mod b/v1/go.mod similarity index 100% rename from go.mod rename to v1/go.mod diff --git a/go.sum b/v1/go.sum similarity index 100% rename from go.sum rename to v1/go.sum diff --git a/hardhat.config.ts b/v1/hardhat.config.ts similarity index 96% rename from hardhat.config.ts rename to v1/hardhat.config.ts index 61fb6b4c..864adeb3 100644 --- a/hardhat.config.ts +++ b/v1/hardhat.config.ts @@ -7,9 +7,7 @@ import "uniswap-v2-deploy-plugin"; import "solidity-coverage"; import "hardhat-gas-reporter"; import "./tasks/addresses"; -import "./tasks/localnet"; import "@openzeppelin/hardhat-upgrades"; -import "@nomicfoundation/hardhat-foundry"; import { getHardhatConfigNetworks } from "@zetachain/networks"; import * as dotenv from "dotenv"; diff --git a/lib/ImmutableCreate2Factory/ImmutableCreate2Factory.helpers.ts b/v1/lib/ImmutableCreate2Factory/ImmutableCreate2Factory.helpers.ts similarity index 100% rename from lib/ImmutableCreate2Factory/ImmutableCreate2Factory.helpers.ts rename to v1/lib/ImmutableCreate2Factory/ImmutableCreate2Factory.helpers.ts diff --git a/lib/address.helpers.ts b/v1/lib/address.helpers.ts similarity index 100% rename from lib/address.helpers.ts rename to v1/lib/address.helpers.ts diff --git a/lib/address.tools.ts b/v1/lib/address.tools.ts similarity index 100% rename from lib/address.tools.ts rename to v1/lib/address.tools.ts diff --git a/lib/addresses.ts b/v1/lib/addresses.ts similarity index 100% rename from lib/addresses.ts rename to v1/lib/addresses.ts diff --git a/lib/contracts.constants.ts b/v1/lib/contracts.constants.ts similarity index 100% rename from lib/contracts.constants.ts rename to v1/lib/contracts.constants.ts diff --git a/lib/contracts.helpers.ts b/v1/lib/contracts.helpers.ts similarity index 100% rename from lib/contracts.helpers.ts rename to v1/lib/contracts.helpers.ts diff --git a/lib/deterministic-deploy.helpers.ts b/v1/lib/deterministic-deploy.helpers.ts similarity index 100% rename from lib/deterministic-deploy.helpers.ts rename to v1/lib/deterministic-deploy.helpers.ts diff --git a/lib/index.ts b/v1/lib/index.ts similarity index 100% rename from lib/index.ts rename to v1/lib/index.ts diff --git a/lib/types.ts b/v1/lib/types.ts similarity index 100% rename from lib/types.ts rename to v1/lib/types.ts diff --git a/package.json b/v1/package.json similarity index 85% rename from package.json rename to v1/package.json index 03b75e05..f028cded 100644 --- a/package.json +++ b/v1/package.json @@ -5,7 +5,6 @@ "@ethersproject/abi": "^5.4.7", "@ethersproject/providers": "^5.4.7", "@nomicfoundation/hardhat-chai-matchers": "^1.0.6", - "@nomicfoundation/hardhat-foundry": "^1.1.2", "@nomicfoundation/hardhat-network-helpers": "^1.0.0", "@nomicfoundation/hardhat-toolbox": "^2.0.0", "@nomicfoundation/hardhat-verify": "2.0.3", @@ -81,19 +80,13 @@ "scripts": { "build": "yarn compile && npx del-cli dist abi && npx tsc || true && npx del-cli './dist/typechain-types/**/*.js' && npx cpx './data/**/*' dist/data && npx cpx './artifacts/contracts/**/*' ./abi && npx del-cli './abi/**/*.dbg.json'", "compile": "npx hardhat compile --force", - "coverage": "forge clean && cross-env FOUNDRY_SRC='contracts/prototypes' forge coverage --report lcov", - "docs": "forge doc", "generate": "yarn compile && ./scripts/generate_go.sh || true && ./scripts/generate_addresses.sh && yarn lint:fix", "lint": "npx eslint . --ext .js,.ts --ignore-pattern lib/", "lint:fix": "npx eslint . --ext .js,.ts,.json --fix --ignore-pattern coverage/ --ignore-pattern coverage.json --ignore-pattern lib/ --ignore-pattern out --ignore-pattern cache_forge/", "lint:sol": "solhint 'contracts/**/*.sol'", - "localnet": "concurrently --names \"NODE,WORKER\" --prefix-colors \"blue.bold,green.bold\" \"npx hardhat node\" \"wait-on tcp:8545 && yarn worker\"", "prepublishOnly": "yarn build", "test": "npx hardhat test", - "test:foundry": "forge clean && forge test -vvv", - "test:prototypes": "yarn compile && npx hardhat test test/prototypes/*", - "tsc:watch": "npx tsc --watch", - "worker": "npx hardhat run scripts/worker.ts --network localhost" + "tsc:watch": "npx tsc --watch" }, "types": "./dist/lib/index.d.ts", "version": "0.0.8" diff --git a/pkg/contracts/evm/erc20custody.sol/erc20custody.go b/v1/pkg/contracts/evm/erc20custody.sol/erc20custody.go similarity index 100% rename from pkg/contracts/evm/erc20custody.sol/erc20custody.go rename to v1/pkg/contracts/evm/erc20custody.sol/erc20custody.go diff --git a/pkg/contracts/evm/interfaces/connectorerrors.sol/connectorerrors.go b/v1/pkg/contracts/evm/interfaces/connectorerrors.sol/connectorerrors.go similarity index 100% rename from pkg/contracts/evm/interfaces/connectorerrors.sol/connectorerrors.go rename to v1/pkg/contracts/evm/interfaces/connectorerrors.sol/connectorerrors.go diff --git a/pkg/contracts/evm/interfaces/zetaerrors.sol/zetaerrors.go b/v1/pkg/contracts/evm/interfaces/zetaerrors.sol/zetaerrors.go similarity index 100% rename from pkg/contracts/evm/interfaces/zetaerrors.sol/zetaerrors.go rename to v1/pkg/contracts/evm/interfaces/zetaerrors.sol/zetaerrors.go diff --git a/pkg/contracts/evm/interfaces/zetainteractorerrors.sol/zetainteractorerrors.go b/v1/pkg/contracts/evm/interfaces/zetainteractorerrors.sol/zetainteractorerrors.go similarity index 100% rename from pkg/contracts/evm/interfaces/zetainteractorerrors.sol/zetainteractorerrors.go rename to v1/pkg/contracts/evm/interfaces/zetainteractorerrors.sol/zetainteractorerrors.go diff --git a/pkg/contracts/evm/interfaces/zetainterfaces.sol/zetacommonerrors.go b/v1/pkg/contracts/evm/interfaces/zetainterfaces.sol/zetacommonerrors.go similarity index 100% rename from pkg/contracts/evm/interfaces/zetainterfaces.sol/zetacommonerrors.go rename to v1/pkg/contracts/evm/interfaces/zetainterfaces.sol/zetacommonerrors.go diff --git a/pkg/contracts/evm/interfaces/zetainterfaces.sol/zetaconnector.go b/v1/pkg/contracts/evm/interfaces/zetainterfaces.sol/zetaconnector.go similarity index 100% rename from pkg/contracts/evm/interfaces/zetainterfaces.sol/zetaconnector.go rename to v1/pkg/contracts/evm/interfaces/zetainterfaces.sol/zetaconnector.go diff --git a/pkg/contracts/evm/interfaces/zetainterfaces.sol/zetainterfaces.go b/v1/pkg/contracts/evm/interfaces/zetainterfaces.sol/zetainterfaces.go similarity index 100% rename from pkg/contracts/evm/interfaces/zetainterfaces.sol/zetainterfaces.go rename to v1/pkg/contracts/evm/interfaces/zetainterfaces.sol/zetainterfaces.go diff --git a/pkg/contracts/evm/interfaces/zetainterfaces.sol/zetareceiver.go b/v1/pkg/contracts/evm/interfaces/zetainterfaces.sol/zetareceiver.go similarity index 100% rename from pkg/contracts/evm/interfaces/zetainterfaces.sol/zetareceiver.go rename to v1/pkg/contracts/evm/interfaces/zetainterfaces.sol/zetareceiver.go diff --git a/pkg/contracts/evm/interfaces/zetainterfaces.sol/zetatokenconsumer.go b/v1/pkg/contracts/evm/interfaces/zetainterfaces.sol/zetatokenconsumer.go similarity index 100% rename from pkg/contracts/evm/interfaces/zetainterfaces.sol/zetatokenconsumer.go rename to v1/pkg/contracts/evm/interfaces/zetainterfaces.sol/zetatokenconsumer.go diff --git a/pkg/contracts/evm/interfaces/zetanonethinterface.sol/zetanonethinterface.go b/v1/pkg/contracts/evm/interfaces/zetanonethinterface.sol/zetanonethinterface.go similarity index 100% rename from pkg/contracts/evm/interfaces/zetanonethinterface.sol/zetanonethinterface.go rename to v1/pkg/contracts/evm/interfaces/zetanonethinterface.sol/zetanonethinterface.go diff --git a/pkg/contracts/evm/testing/attackercontract.sol/attackercontract.go b/v1/pkg/contracts/evm/testing/attackercontract.sol/attackercontract.go similarity index 100% rename from pkg/contracts/evm/testing/attackercontract.sol/attackercontract.go rename to v1/pkg/contracts/evm/testing/attackercontract.sol/attackercontract.go diff --git a/pkg/contracts/evm/testing/attackercontract.sol/victim.go b/v1/pkg/contracts/evm/testing/attackercontract.sol/victim.go similarity index 100% rename from pkg/contracts/evm/testing/attackercontract.sol/victim.go rename to v1/pkg/contracts/evm/testing/attackercontract.sol/victim.go diff --git a/pkg/contracts/evm/testing/erc20mock.sol/erc20mock.go b/v1/pkg/contracts/evm/testing/erc20mock.sol/erc20mock.go similarity index 100% rename from pkg/contracts/evm/testing/erc20mock.sol/erc20mock.go rename to v1/pkg/contracts/evm/testing/erc20mock.sol/erc20mock.go diff --git a/pkg/contracts/evm/testing/testuniswapv3contracts.sol/inonfungiblepositionmanager.go b/v1/pkg/contracts/evm/testing/testuniswapv3contracts.sol/inonfungiblepositionmanager.go similarity index 100% rename from pkg/contracts/evm/testing/testuniswapv3contracts.sol/inonfungiblepositionmanager.go rename to v1/pkg/contracts/evm/testing/testuniswapv3contracts.sol/inonfungiblepositionmanager.go diff --git a/pkg/contracts/evm/testing/testuniswapv3contracts.sol/ipoolinitializer.go b/v1/pkg/contracts/evm/testing/testuniswapv3contracts.sol/ipoolinitializer.go similarity index 100% rename from pkg/contracts/evm/testing/testuniswapv3contracts.sol/ipoolinitializer.go rename to v1/pkg/contracts/evm/testing/testuniswapv3contracts.sol/ipoolinitializer.go diff --git a/pkg/contracts/evm/testing/zetainteractormock.sol/zetainteractormock.go b/v1/pkg/contracts/evm/testing/zetainteractormock.sol/zetainteractormock.go similarity index 99% rename from pkg/contracts/evm/testing/zetainteractormock.sol/zetainteractormock.go rename to v1/pkg/contracts/evm/testing/zetainteractormock.sol/zetainteractormock.go index 13eed8cb..a5f6a8cd 100644 --- a/pkg/contracts/evm/testing/zetainteractormock.sol/zetainteractormock.go +++ b/v1/pkg/contracts/evm/testing/zetainteractormock.sol/zetainteractormock.go @@ -51,7 +51,7 @@ type ZetaInterfacesZetaRevert struct { // ZetaInteractorMockMetaData contains all meta data concerning the ZetaInteractorMock contract. var ZetaInteractorMockMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"zetaConnectorAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"InvalidCaller\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDestinationChainId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidZetaMessageCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidZetaRevertCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"connector\",\"outputs\":[{\"internalType\":\"contractZetaConnector\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"interactorsByChainId\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"zetaTxSenderAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"sourceChainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"destinationAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"zetaValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"internalType\":\"structZetaInterfaces.ZetaMessage\",\"name\":\"zetaMessage\",\"type\":\"tuple\"}],\"name\":\"onZetaMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"zetaTxSenderAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sourceChainId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"destinationAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"destinationChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"remainingZetaValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"internalType\":\"structZetaInterfaces.ZetaRevert\",\"name\":\"zetaRevert\",\"type\":\"tuple\"}],\"name\":\"onZetaRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"destinationChainId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"contractAddress\",\"type\":\"bytes\"}],\"name\":\"setInteractorByChainId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x60c06040523480156200001157600080fd5b50604051620011dc380380620011dc833981810160405281019062000037919062000228565b80620000586200004c6200010760201b60201c565b6200010f60201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620000c0576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b46608081815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b815250505050620002ad565b600033905090565b600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556200014a816200014d60201b620005601760201c565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050620002228162000293565b92915050565b6000602082840312156200024157620002406200028e565b5b6000620002518482850162000211565b91505092915050565b600062000267826200026e565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6200029e816200025a565b8114620002aa57600080fd5b50565b60805160a05160601c610f02620002da6000396000818161043e0152610626015260005050610f026000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806379ba50971161006657806379ba50971461013157806383f3084f1461013b5780638da5cb5b14610159578063e30c397814610177578063f2fde38b146101955761009e565b80632618143f146100a35780633749c51a146100d35780633ff0693c146100ef5780634fd3f7d71461010b578063715018a614610127575b600080fd5b6100bd60048036038101906100b8919061098d565b6101b1565b6040516100ca9190610ba6565b60405180910390f35b6100ed60048036038101906100e891906108fb565b610251565b005b61010960048036038101906101049190610944565b6102e7565b005b610125600480360381019061012091906109ba565b61036b565b005b61012f61039b565b005b6101396103af565b005b61014361043c565b6040516101509190610bc8565b60405180910390f35b610161610460565b60405161016e9190610b8b565b60405180910390f35b61017f610489565b60405161018c9190610b8b565b60405180910390f35b6101af60048036038101906101aa91906108ce565b6104b3565b005b600260205280600052604060002060009150905080546101d090610d87565b80601f01602080910402602001604051908101604052809291908181526020018280546101fc90610d87565b80156102495780601f1061021e57610100808354040283529160200191610249565b820191906000526020600020905b81548152906001019060200180831161022c57829003601f168201915b505050505081565b8061025a610624565b600260008260200135815260200190815260200160002060405161027e9190610b74565b60405180910390208180600001906102969190610c23565b6040516102a4929190610b5b565b6040518091039020146102e3576040517fb473eb0a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050565b806102f0610624565b3073ffffffffffffffffffffffffffffffffffffffff1681600001602081019061031a91906108ce565b73ffffffffffffffffffffffffffffffffffffffff1614610367576040517fc03e9c3f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050565b6103736106b6565b818160026000868152602001908152602001600020919061039592919061076d565b50505050565b6103a36106b6565b6103ad6000610734565b565b60006103b9610765565b90508073ffffffffffffffffffffffffffffffffffffffff166103da610489565b73ffffffffffffffffffffffffffffffffffffffff1614610430576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042790610be3565b60405180910390fd5b61043981610734565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6104bb6106b6565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1661051b610460565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106b457336040517fcbd9d2e00000000000000000000000000000000000000000000000000000000081526004016106ab9190610b8b565b60405180910390fd5b565b6106be610765565b73ffffffffffffffffffffffffffffffffffffffff166106dc610460565b73ffffffffffffffffffffffffffffffffffffffff1614610732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072990610c03565b60405180910390fd5b565b600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905561076281610560565b50565b600033905090565b82805461077990610d87565b90600052602060002090601f01602090048101928261079b57600085556107e2565b82601f106107b457803560ff19168380011785556107e2565b828001600101855582156107e2579182015b828111156107e15782358255916020019190600101906107c6565b5b5090506107ef91906107f3565b5090565b5b8082111561080c5760008160009055506001016107f4565b5090565b60008135905061081f81610e9e565b92915050565b60008083601f84011261083b5761083a610ded565b5b8235905067ffffffffffffffff81111561085857610857610de8565b5b60208301915083600182028301111561087457610873610e01565b5b9250929050565b600060a0828403121561089157610890610df7565b5b81905092915050565b600060c082840312156108b0576108af610df7565b5b81905092915050565b6000813590506108c881610eb5565b92915050565b6000602082840312156108e4576108e3610e10565b5b60006108f284828501610810565b91505092915050565b60006020828403121561091157610910610e10565b5b600082013567ffffffffffffffff81111561092f5761092e610e0b565b5b61093b8482850161087b565b91505092915050565b60006020828403121561095a57610959610e10565b5b600082013567ffffffffffffffff81111561097857610977610e0b565b5b6109848482850161089a565b91505092915050565b6000602082840312156109a3576109a2610e10565b5b60006109b1848285016108b9565b91505092915050565b6000806000604084860312156109d3576109d2610e10565b5b60006109e1868287016108b9565b935050602084013567ffffffffffffffff811115610a0257610a01610e0b565b5b610a0e86828701610825565b92509250509250925092565b610a2381610cd3565b82525050565b6000610a358385610cb7565b9350610a42838584610d45565b82840190509392505050565b6000610a5982610c9b565b610a638185610ca6565b9350610a73818560208601610d54565b610a7c81610e15565b840191505092915050565b60008154610a9481610d87565b610a9e8186610cb7565b94506001821660008114610ab95760018114610aca57610afd565b60ff19831686528186019350610afd565b610ad385610c86565b60005b83811015610af557815481890152600182019150602081019050610ad6565b838801955050505b50505092915050565b610b0f81610d0f565b82525050565b6000610b22602983610cc2565b9150610b2d82610e26565b604082019050919050565b6000610b45602083610cc2565b9150610b5082610e75565b602082019050919050565b6000610b68828486610a29565b91508190509392505050565b6000610b808284610a87565b915081905092915050565b6000602082019050610ba06000830184610a1a565b92915050565b60006020820190508181036000830152610bc08184610a4e565b905092915050565b6000602082019050610bdd6000830184610b06565b92915050565b60006020820190508181036000830152610bfc81610b15565b9050919050565b60006020820190508181036000830152610c1c81610b38565b9050919050565b60008083356001602003843603038112610c4057610c3f610dfc565b5b80840192508235915067ffffffffffffffff821115610c6257610c61610df2565b5b602083019250600182023603831315610c7e57610c7d610e06565b5b509250929050565b60008190508160005260206000209050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000610cde82610ce5565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610d1a82610d21565b9050919050565b6000610d2c82610d33565b9050919050565b6000610d3e82610ce5565b9050919050565b82818337600083830152505050565b60005b83811015610d72578082015181840152602081019050610d57565b83811115610d81576000848401525b50505050565b60006002820490506001821680610d9f57607f821691505b60208210811415610db357610db2610db9565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b610ea781610cd3565b8114610eb257600080fd5b50565b610ebe81610d05565b8114610ec957600080fd5b5056fea264697066735822122063babae00441a1f6e87dfa1b12f25265331734088794be43384b60938347fc3864736f6c63430008070033", + Bin: "0x60c06040523480156200001157600080fd5b50604051620011dc380380620011dc833981810160405281019062000037919062000228565b80620000586200004c6200010760201b60201c565b6200010f60201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620000c0576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b46608081815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b815250505050620002ad565b600033905090565b600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556200014a816200014d60201b620005601760201c565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050620002228162000293565b92915050565b6000602082840312156200024157620002406200028e565b5b6000620002518482850162000211565b91505092915050565b600062000267826200026e565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6200029e816200025a565b8114620002aa57600080fd5b50565b60805160a05160601c610f02620002da6000396000818161043e0152610626015260005050610f026000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806379ba50971161006657806379ba50971461013157806383f3084f1461013b5780638da5cb5b14610159578063e30c397814610177578063f2fde38b146101955761009e565b80632618143f146100a35780633749c51a146100d35780633ff0693c146100ef5780634fd3f7d71461010b578063715018a614610127575b600080fd5b6100bd60048036038101906100b8919061098d565b6101b1565b6040516100ca9190610ba6565b60405180910390f35b6100ed60048036038101906100e891906108fb565b610251565b005b61010960048036038101906101049190610944565b6102e7565b005b610125600480360381019061012091906109ba565b61036b565b005b61012f61039b565b005b6101396103af565b005b61014361043c565b6040516101509190610bc8565b60405180910390f35b610161610460565b60405161016e9190610b8b565b60405180910390f35b61017f610489565b60405161018c9190610b8b565b60405180910390f35b6101af60048036038101906101aa91906108ce565b6104b3565b005b600260205280600052604060002060009150905080546101d090610d87565b80601f01602080910402602001604051908101604052809291908181526020018280546101fc90610d87565b80156102495780601f1061021e57610100808354040283529160200191610249565b820191906000526020600020905b81548152906001019060200180831161022c57829003601f168201915b505050505081565b8061025a610624565b600260008260200135815260200190815260200160002060405161027e9190610b74565b60405180910390208180600001906102969190610c23565b6040516102a4929190610b5b565b6040518091039020146102e3576040517fb473eb0a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050565b806102f0610624565b3073ffffffffffffffffffffffffffffffffffffffff1681600001602081019061031a91906108ce565b73ffffffffffffffffffffffffffffffffffffffff1614610367576040517fc03e9c3f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050565b6103736106b6565b818160026000868152602001908152602001600020919061039592919061076d565b50505050565b6103a36106b6565b6103ad6000610734565b565b60006103b9610765565b90508073ffffffffffffffffffffffffffffffffffffffff166103da610489565b73ffffffffffffffffffffffffffffffffffffffff1614610430576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042790610be3565b60405180910390fd5b61043981610734565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6104bb6106b6565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1661051b610460565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106b457336040517fcbd9d2e00000000000000000000000000000000000000000000000000000000081526004016106ab9190610b8b565b60405180910390fd5b565b6106be610765565b73ffffffffffffffffffffffffffffffffffffffff166106dc610460565b73ffffffffffffffffffffffffffffffffffffffff1614610732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072990610c03565b60405180910390fd5b565b600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905561076281610560565b50565b600033905090565b82805461077990610d87565b90600052602060002090601f01602090048101928261079b57600085556107e2565b82601f106107b457803560ff19168380011785556107e2565b828001600101855582156107e2579182015b828111156107e15782358255916020019190600101906107c6565b5b5090506107ef91906107f3565b5090565b5b8082111561080c5760008160009055506001016107f4565b5090565b60008135905061081f81610e9e565b92915050565b60008083601f84011261083b5761083a610ded565b5b8235905067ffffffffffffffff81111561085857610857610de8565b5b60208301915083600182028301111561087457610873610e01565b5b9250929050565b600060a0828403121561089157610890610df7565b5b81905092915050565b600060c082840312156108b0576108af610df7565b5b81905092915050565b6000813590506108c881610eb5565b92915050565b6000602082840312156108e4576108e3610e10565b5b60006108f284828501610810565b91505092915050565b60006020828403121561091157610910610e10565b5b600082013567ffffffffffffffff81111561092f5761092e610e0b565b5b61093b8482850161087b565b91505092915050565b60006020828403121561095a57610959610e10565b5b600082013567ffffffffffffffff81111561097857610977610e0b565b5b6109848482850161089a565b91505092915050565b6000602082840312156109a3576109a2610e10565b5b60006109b1848285016108b9565b91505092915050565b6000806000604084860312156109d3576109d2610e10565b5b60006109e1868287016108b9565b935050602084013567ffffffffffffffff811115610a0257610a01610e0b565b5b610a0e86828701610825565b92509250509250925092565b610a2381610cd3565b82525050565b6000610a358385610cb7565b9350610a42838584610d45565b82840190509392505050565b6000610a5982610c9b565b610a638185610ca6565b9350610a73818560208601610d54565b610a7c81610e15565b840191505092915050565b60008154610a9481610d87565b610a9e8186610cb7565b94506001821660008114610ab95760018114610aca57610afd565b60ff19831686528186019350610afd565b610ad385610c86565b60005b83811015610af557815481890152600182019150602081019050610ad6565b838801955050505b50505092915050565b610b0f81610d0f565b82525050565b6000610b22602983610cc2565b9150610b2d82610e26565b604082019050919050565b6000610b45602083610cc2565b9150610b5082610e75565b602082019050919050565b6000610b68828486610a29565b91508190509392505050565b6000610b808284610a87565b915081905092915050565b6000602082019050610ba06000830184610a1a565b92915050565b60006020820190508181036000830152610bc08184610a4e565b905092915050565b6000602082019050610bdd6000830184610b06565b92915050565b60006020820190508181036000830152610bfc81610b15565b9050919050565b60006020820190508181036000830152610c1c81610b38565b9050919050565b60008083356001602003843603038112610c4057610c3f610dfc565b5b80840192508235915067ffffffffffffffff821115610c6257610c61610df2565b5b602083019250600182023603831315610c7e57610c7d610e06565b5b509250929050565b60008190508160005260206000209050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000610cde82610ce5565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610d1a82610d21565b9050919050565b6000610d2c82610d33565b9050919050565b6000610d3e82610ce5565b9050919050565b82818337600083830152505050565b60005b83811015610d72578082015181840152602081019050610d57565b83811115610d81576000848401525b50505050565b60006002820490506001821680610d9f57607f821691505b60208210811415610db357610db2610db9565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b610ea781610cd3565b8114610eb257600080fd5b50565b610ebe81610d05565b8114610ec957600080fd5b5056fea2646970667358221220639370598d8dcad7cc48e15d248474209bfbec01023d8ed4d055453bab66415464736f6c63430008070033", } // ZetaInteractorMockABI is the input ABI used to generate the binding from. diff --git a/pkg/contracts/evm/testing/zetareceivermock.sol/zetareceivermock.go b/v1/pkg/contracts/evm/testing/zetareceivermock.sol/zetareceivermock.go similarity index 99% rename from pkg/contracts/evm/testing/zetareceivermock.sol/zetareceivermock.go rename to v1/pkg/contracts/evm/testing/zetareceivermock.sol/zetareceivermock.go index b9cf84ee..0007dc5a 100644 --- a/pkg/contracts/evm/testing/zetareceivermock.sol/zetareceivermock.go +++ b/v1/pkg/contracts/evm/testing/zetareceivermock.sol/zetareceivermock.go @@ -51,7 +51,7 @@ type ZetaInterfacesZetaRevert struct { // ZetaReceiverMockMetaData contains all meta data concerning the ZetaReceiverMock contract. var ZetaReceiverMockMetaData = &bind.MetaData{ ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"destinationAddress\",\"type\":\"address\"}],\"name\":\"MockOnZetaMessage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"zetaTxSenderAddress\",\"type\":\"address\"}],\"name\":\"MockOnZetaRevert\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"zetaTxSenderAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"sourceChainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"destinationAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"zetaValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"internalType\":\"structZetaInterfaces.ZetaMessage\",\"name\":\"zetaMessage\",\"type\":\"tuple\"}],\"name\":\"onZetaMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"zetaTxSenderAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sourceChainId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"destinationAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"destinationChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"remainingZetaValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"internalType\":\"structZetaInterfaces.ZetaRevert\",\"name\":\"zetaRevert\",\"type\":\"tuple\"}],\"name\":\"onZetaRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x608060405234801561001057600080fd5b506102d5806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80633749c51a1461003b5780633ff0693c14610057575b600080fd5b6100556004803603810190610050919061018b565b610073565b005b610071600480360381019061006c91906101d4565b6100bf565b005b7f72a301dee3abcbe15615f3e253229bf4b4f508460603d674991c9a777b833c6e8160400160208101906100a7919061015e565b6040516100b4919061022c565b60405180910390a150565b7f53bd04e26f94f13ff43da96839541821041c309c6f624712192cbe3a2d133cc48160000160208101906100f3919061015e565b604051610100919061022c565b60405180910390a150565b60008135905061011a81610288565b92915050565b600060a0828403121561013657610135610279565b5b81905092915050565b600060c0828403121561015557610154610279565b5b81905092915050565b60006020828403121561017457610173610283565b5b60006101828482850161010b565b91505092915050565b6000602082840312156101a1576101a0610283565b5b600082013567ffffffffffffffff8111156101bf576101be61027e565b5b6101cb84828501610120565b91505092915050565b6000602082840312156101ea576101e9610283565b5b600082013567ffffffffffffffff8111156102085761020761027e565b5b6102148482850161013f565b91505092915050565b61022681610247565b82525050565b6000602082019050610241600083018461021d565b92915050565b600061025282610259565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b600080fd5b600080fd5b61029181610247565b811461029c57600080fd5b5056fea264697066735822122008485e037d9a20d8e9f8d1e9456b89006367d84f7e0966e1d820fe73c0d706ea64736f6c63430008070033", + Bin: "0x608060405234801561001057600080fd5b506102d5806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80633749c51a1461003b5780633ff0693c14610057575b600080fd5b6100556004803603810190610050919061018b565b610073565b005b610071600480360381019061006c91906101d4565b6100bf565b005b7f72a301dee3abcbe15615f3e253229bf4b4f508460603d674991c9a777b833c6e8160400160208101906100a7919061015e565b6040516100b4919061022c565b60405180910390a150565b7f53bd04e26f94f13ff43da96839541821041c309c6f624712192cbe3a2d133cc48160000160208101906100f3919061015e565b604051610100919061022c565b60405180910390a150565b60008135905061011a81610288565b92915050565b600060a0828403121561013657610135610279565b5b81905092915050565b600060c0828403121561015557610154610279565b5b81905092915050565b60006020828403121561017457610173610283565b5b60006101828482850161010b565b91505092915050565b6000602082840312156101a1576101a0610283565b5b600082013567ffffffffffffffff8111156101bf576101be61027e565b5b6101cb84828501610120565b91505092915050565b6000602082840312156101ea576101e9610283565b5b600082013567ffffffffffffffff8111156102085761020761027e565b5b6102148482850161013f565b91505092915050565b61022681610247565b82525050565b6000602082019050610241600083018461021d565b92915050565b600061025282610259565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b600080fd5b600080fd5b61029181610247565b811461029c57600080fd5b5056fea26469706673582212206d3535c1f777f93a6d105378513b52ef987ededd64b301e5cc1914be4e5ba14564736f6c63430008070033", } // ZetaReceiverMockABI is the input ABI used to generate the binding from. diff --git a/pkg/contracts/evm/tools/immutablecreate2factory.sol/immutablecreate2factory.go b/v1/pkg/contracts/evm/tools/immutablecreate2factory.sol/immutablecreate2factory.go similarity index 100% rename from pkg/contracts/evm/tools/immutablecreate2factory.sol/immutablecreate2factory.go rename to v1/pkg/contracts/evm/tools/immutablecreate2factory.sol/immutablecreate2factory.go diff --git a/pkg/contracts/evm/tools/immutablecreate2factory.sol/ownable.go b/v1/pkg/contracts/evm/tools/immutablecreate2factory.sol/ownable.go similarity index 100% rename from pkg/contracts/evm/tools/immutablecreate2factory.sol/ownable.go rename to v1/pkg/contracts/evm/tools/immutablecreate2factory.sol/ownable.go diff --git a/pkg/contracts/evm/tools/interfaces/tridentconcentratedliquiditypoolfactory.sol/concentratedliquiditypoolfactory.go b/v1/pkg/contracts/evm/tools/interfaces/tridentconcentratedliquiditypoolfactory.sol/concentratedliquiditypoolfactory.go similarity index 100% rename from pkg/contracts/evm/tools/interfaces/tridentconcentratedliquiditypoolfactory.sol/concentratedliquiditypoolfactory.go rename to v1/pkg/contracts/evm/tools/interfaces/tridentconcentratedliquiditypoolfactory.sol/concentratedliquiditypoolfactory.go diff --git a/pkg/contracts/evm/tools/interfaces/tridentipoolrouter.sol/ipoolrouter.go b/v1/pkg/contracts/evm/tools/interfaces/tridentipoolrouter.sol/ipoolrouter.go similarity index 100% rename from pkg/contracts/evm/tools/interfaces/tridentipoolrouter.sol/ipoolrouter.go rename to v1/pkg/contracts/evm/tools/interfaces/tridentipoolrouter.sol/ipoolrouter.go diff --git a/pkg/contracts/evm/tools/zetainteractor.sol/zetainteractor.go b/v1/pkg/contracts/evm/tools/zetainteractor.sol/zetainteractor.go similarity index 100% rename from pkg/contracts/evm/tools/zetainteractor.sol/zetainteractor.go rename to v1/pkg/contracts/evm/tools/zetainteractor.sol/zetainteractor.go diff --git a/pkg/contracts/evm/tools/zetatokenconsumerpancakev3.strategy.sol/iswaprouterpancake.go b/v1/pkg/contracts/evm/tools/zetatokenconsumerpancakev3.strategy.sol/iswaprouterpancake.go similarity index 100% rename from pkg/contracts/evm/tools/zetatokenconsumerpancakev3.strategy.sol/iswaprouterpancake.go rename to v1/pkg/contracts/evm/tools/zetatokenconsumerpancakev3.strategy.sol/iswaprouterpancake.go diff --git a/pkg/contracts/evm/tools/zetatokenconsumerpancakev3.strategy.sol/weth9.go b/v1/pkg/contracts/evm/tools/zetatokenconsumerpancakev3.strategy.sol/weth9.go similarity index 100% rename from pkg/contracts/evm/tools/zetatokenconsumerpancakev3.strategy.sol/weth9.go rename to v1/pkg/contracts/evm/tools/zetatokenconsumerpancakev3.strategy.sol/weth9.go diff --git a/pkg/contracts/evm/tools/zetatokenconsumerpancakev3.strategy.sol/zetatokenconsumerpancakev3.go b/v1/pkg/contracts/evm/tools/zetatokenconsumerpancakev3.strategy.sol/zetatokenconsumerpancakev3.go similarity index 99% rename from pkg/contracts/evm/tools/zetatokenconsumerpancakev3.strategy.sol/zetatokenconsumerpancakev3.go rename to v1/pkg/contracts/evm/tools/zetatokenconsumerpancakev3.strategy.sol/zetatokenconsumerpancakev3.go index 53cdb729..91912db2 100644 --- a/pkg/contracts/evm/tools/zetatokenconsumerpancakev3.strategy.sol/zetatokenconsumerpancakev3.go +++ b/v1/pkg/contracts/evm/tools/zetatokenconsumerpancakev3.strategy.sol/zetatokenconsumerpancakev3.go @@ -32,7 +32,7 @@ var ( // ZetaTokenConsumerPancakeV3MetaData contains all meta data concerning the ZetaTokenConsumerPancakeV3 contract. var ZetaTokenConsumerPancakeV3MetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"zetaToken_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"pancakeV3Router_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"uniswapV3Factory_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"WETH9Address_\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"zetaPoolFee_\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"tokenPoolFee_\",\"type\":\"uint24\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ErrorSendingETH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InputCantBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyError\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"name\":\"EthExchangedForZeta\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"name\":\"TokenExchangedForZeta\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"name\":\"ZetaExchangedForEth\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"name\":\"ZetaExchangedForToken\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"WETH9Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destinationAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zetaTokenAmount\",\"type\":\"uint256\"}],\"name\":\"getEthFromZeta\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destinationAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"outputToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"zetaTokenAmount\",\"type\":\"uint256\"}],\"name\":\"getTokenFromZeta\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destinationAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"}],\"name\":\"getZetaFromEth\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destinationAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"inputToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"inputTokenAmount\",\"type\":\"uint256\"}],\"name\":\"getZetaFromToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hasZetaLiquidity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pancakeV3Router\",\"outputs\":[{\"internalType\":\"contractISwapRouterPancake\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenPoolFee\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"uniswapV3Factory\",\"outputs\":[{\"internalType\":\"contractIUniswapV3Factory\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zetaPoolFee\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zetaToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", - Bin: "0x6101406040523480156200001257600080fd5b506040516200288c3803806200288c83398181016040528101906200003891906200028a565b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161480620000a05750600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b80620000d85750600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80620001105750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1562000148576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508473ffffffffffffffffffffffffffffffffffffffff166101008173ffffffffffffffffffffffffffffffffffffffff1660601b815250508373ffffffffffffffffffffffffffffffffffffffff166101208173ffffffffffffffffffffffffffffffffffffffff1660601b815250508273ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508162ffffff1660808162ffffff1660e81b815250508062ffffff1660a08162ffffff1660e81b81525050505050505050620003a2565b6000815190506200026d816200036e565b92915050565b600081519050620002848162000388565b92915050565b60008060008060008060c08789031215620002aa57620002a962000369565b5b6000620002ba89828a016200025c565b9650506020620002cd89828a016200025c565b9550506040620002e089828a016200025c565b9450506060620002f389828a016200025c565b93505060806200030689828a0162000273565b92505060a06200031989828a0162000273565b9150509295509295509295565b600062000333826200033a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062ffffff82169050919050565b600080fd5b620003798162000326565b81146200038557600080fd5b50565b62000393816200035a565b81146200039f57600080fd5b50565b60805160e81c60a05160e81c60c05160601c60e05160601c6101005160601c6101205160601c6123b6620004d660003960008181610d340152610d7f01526000818161045c0152818161067c015281816107a8015281816109b401528181610b13015281816110f80152818161124401526113530152600081816103ae0152818161054e015281816107350152818161096a015281816109d601528181610a2901528181610ddc015281816110ae0152818161111a015261116d015260008181610372015281816106f301528181610a6501528181610bc001528181610dbb015281816111af01526113770152600081816106d201528181610d5801526111d00152600081816103ea015281816107140152818161089d01528181610aa101528181610dfd015261118e01526123b66000f3fe6080604052600436106100a05760003560e01c80635b549182116100645780635b549182146101ac5780635d9dfdde146101d757806380801f8414610202578063a53fb10b1461022d578063c27745dd1461026a578063c469cf1414610295576100a7565b8063013b2ff8146100ac57806321e093b1146100dc5780632405620a146101075780633cbd70051461014457806354c49a2a1461016f576100a7565b366100a757005b600080fd5b6100c660048036038101906100c191906118c0565b6102c0565b6040516100d39190612030565b60405180910390f35b3480156100e857600080fd5b506100f161054c565b6040516100fe9190611dd3565b60405180910390f35b34801561011357600080fd5b5061012e60048036038101906101299190611900565b610570565b60405161013b9190612030565b60405180910390f35b34801561015057600080fd5b5061015961089b565b6040516101669190612015565b60405180910390f35b34801561017b57600080fd5b5061019660048036038101906101919190611967565b6108bf565b6040516101a39190612030565b60405180910390f35b3480156101b857600080fd5b506101c1610d32565b6040516101ce9190611f1b565b60405180910390f35b3480156101e357600080fd5b506101ec610d56565b6040516101f99190612015565b60405180910390f35b34801561020e57600080fd5b50610217610d7a565b6040516102249190611ee5565b60405180910390f35b34801561023957600080fd5b50610254600480360381019061024f9190611900565b610f6b565b6040516102619190612030565b60405180910390f35b34801561027657600080fd5b5061027f611351565b60405161028c9190611f00565b60405180910390f35b3480156102a157600080fd5b506102aa611375565b6040516102b79190611dd3565b60405180910390f35b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610328576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000341415610363576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006040518060e001604052807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000062ffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001348152602001848152602001600073ffffffffffffffffffffffffffffffffffffffff16815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166304e45aaf34846040518363ffffffff1660e01b81526004016104b49190611ffa565b6020604051808303818588803b1580156104cd57600080fd5b505af11580156104e1573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906105069190611a14565b90507f87890b0a30955b1db16cc894fbe24779ae05d9f337bfe8b6dfc0809b5bf9da11348260405161053992919061204b565b60405180910390a1809250505092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806105d85750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561060f576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082141561064a576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106773330848673ffffffffffffffffffffffffffffffffffffffff16611399909392919063ffffffff16565b6106c27f0000000000000000000000000000000000000000000000000000000000000000838573ffffffffffffffffffffffffffffffffffffffff166114229092919063ffffffff16565b60006040518060800160405280857f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000604051602001610768959493929190611d48565b60405160208183030381529060405281526020018773ffffffffffffffffffffffffffffffffffffffff16815260200184815260200186815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b858183f836040518263ffffffff1660e01b81526004016107ff9190611fd8565b602060405180830381600087803b15801561081957600080fd5b505af115801561082d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108519190611a14565b90507f017190d3d99ee6d8dd0604ef1e71ff9802810c6485f57c9b2ed6169848dd119f85858360405161088693929190611eae565b60405180910390a18092505050949350505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610927576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000821415610962576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109af3330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16611399909392919063ffffffff16565b610a1a7f0000000000000000000000000000000000000000000000000000000000000000837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166114229092919063ffffffff16565b60006040518060e001604052807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000062ffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff168152602001848152602001858152602001600073ffffffffffffffffffffffffffffffffffffffff16815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166304e45aaf836040518263ffffffff1660e01b8152600401610b6a9190611ffa565b602060405180830381600087803b158015610b8457600080fd5b505af1158015610b98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bbc9190611a14565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b8152600401610c179190612030565b600060405180830381600087803b158015610c3157600080fd5b505af1158015610c45573d6000803e3d6000fd5b505050507f74e171117e91660f493740924d8bad0caf48dc4fbccb767fb05935397a2c17ae8482604051610c7a92919061204b565b60405180910390a160008673ffffffffffffffffffffffffffffffffffffffff1682604051610ca890611dbe565b60006040518083038185875af1925050503d8060008114610ce5576040519150601f19603f3d011682016040523d82523d6000602084013e610cea565b606091505b5050905080610d25576040517f3794aeaf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8193505050509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16631698ee827f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006040518463ffffffff1660e01b8152600401610e3a93929190611e17565b60206040518083038186803b158015610e5257600080fd5b505afa158015610e66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8a9190611893565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ecb576000915050610f68565b600081905060008173ffffffffffffffffffffffffffffffffffffffff16631a6865026040518163ffffffff1660e01b815260040160206040518083038186803b158015610f1857600080fd5b505afa158015610f2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5091906119e7565b6fffffffffffffffffffffffffffffffff1611925050505b90565b60008060009054906101000a900460ff1615610fb3576040517f29f745a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016000806101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806110345750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561106b576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008214156110a6576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110f33330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16611399909392919063ffffffff16565b61115e7f0000000000000000000000000000000000000000000000000000000000000000837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166114229092919063ffffffff16565b600060405180608001604052807f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000089604051602001611204959493929190611d48565b60405160208183030381529060405281526020018773ffffffffffffffffffffffffffffffffffffffff16815260200184815260200186815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b858183f836040518263ffffffff1660e01b815260040161129b9190611fd8565b602060405180830381600087803b1580156112b557600080fd5b505af11580156112c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ed9190611a14565b90507f0a7cb8f6e1d29e616c1209a3f418c17b3a9137005377f6dd072217b1ede2573b85858360405161132293929190611eae565b60405180910390a1809250505060008060006101000a81548160ff021916908315150217905550949350505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b61141c846323b872dd60e01b8585856040516024016113ba93929190611e4e565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611580565b50505050565b60008114806114bb575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b8152600401611469929190611dee565b60206040518083038186803b15801561148157600080fd5b505afa158015611495573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b99190611a14565b145b6114fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f190611fb8565b60405180910390fd5b61157b8363095ea7b360e01b8484604051602401611519929190611e85565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611580565b505050565b60006115e2826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166116479092919063ffffffff16565b9050600081511115611642578080602001905181019061160291906119ba565b611641576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163890611f98565b60405180910390fd5b5b505050565b6060611656848460008561165f565b90509392505050565b6060824710156116a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169b90611f58565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516116cd9190611da7565b60006040518083038185875af1925050503d806000811461170a576040519150601f19603f3d011682016040523d82523d6000602084013e61170f565b606091505b50915091506117208783838761172c565b92505050949350505050565b6060831561178f5760008351141561178757611747856117a2565b611786576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177d90611f78565b60405180910390fd5b5b82905061179a565b61179983836117c5565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156117d85781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180c9190611f36565b60405180910390fd5b60008135905061182481612324565b92915050565b60008151905061183981612324565b92915050565b60008151905061184e8161233b565b92915050565b60008151905061186381612352565b92915050565b60008135905061187881612369565b92915050565b60008151905061188d81612369565b92915050565b6000602082840312156118a9576118a86121db565b5b60006118b78482850161182a565b91505092915050565b600080604083850312156118d7576118d66121db565b5b60006118e585828601611815565b92505060206118f685828601611869565b9150509250929050565b6000806000806080858703121561191a576119196121db565b5b600061192887828801611815565b945050602061193987828801611869565b935050604061194a87828801611815565b925050606061195b87828801611869565b91505092959194509250565b6000806000606084860312156119805761197f6121db565b5b600061198e86828701611815565b935050602061199f86828701611869565b92505060406119b086828701611869565b9150509250925092565b6000602082840312156119d0576119cf6121db565b5b60006119de8482850161183f565b91505092915050565b6000602082840312156119fd576119fc6121db565b5b6000611a0b84828501611854565b91505092915050565b600060208284031215611a2a57611a296121db565b5b6000611a388482850161187e565b91505092915050565b611a4a816120b7565b82525050565b611a59816120b7565b82525050565b611a70611a6b826120b7565b6121a5565b82525050565b611a7f816120c9565b82525050565b6000611a9082612074565b611a9a818561208a565b9350611aaa818560208601612172565b611ab3816121e0565b840191505092915050565b6000611ac982612074565b611ad3818561209b565b9350611ae3818560208601612172565b80840191505092915050565b611af88161212a565b82525050565b611b078161213c565b82525050565b6000611b188261207f565b611b2281856120a6565b9350611b32818560208601612172565b611b3b816121e0565b840191505092915050565b6000611b536026836120a6565b9150611b5e8261220b565b604082019050919050565b6000611b7660008361209b565b9150611b818261225a565b600082019050919050565b6000611b99601d836120a6565b9150611ba48261225d565b602082019050919050565b6000611bbc602a836120a6565b9150611bc782612286565b604082019050919050565b6000611bdf6036836120a6565b9150611bea826122d5565b604082019050919050565b60006080830160008301518482036000860152611c128282611a85565b9150506020830151611c276020860182611a41565b506040830151611c3a6040860182611d2a565b506060830151611c4d6060860182611d2a565b508091505092915050565b60e082016000820151611c6e6000850182611a41565b506020820151611c816020850182611a41565b506040820151611c946040850182611cf5565b506060820151611ca76060850182611a41565b506080820151611cba6080850182611d2a565b5060a0820151611ccd60a0850182611d2a565b5060c0820151611ce060c0850182611ce6565b50505050565b611cef816120f1565b82525050565b611cfe81612111565b82525050565b611d0d81612111565b82525050565b611d24611d1f82612111565b6121c9565b82525050565b611d3381612120565b82525050565b611d4281612120565b82525050565b6000611d548288611a5f565b601482019150611d648287611d13565b600382019150611d748286611a5f565b601482019150611d848285611d13565b600382019150611d948284611a5f565b6014820191508190509695505050505050565b6000611db38284611abe565b915081905092915050565b6000611dc982611b69565b9150819050919050565b6000602082019050611de86000830184611a50565b92915050565b6000604082019050611e036000830185611a50565b611e106020830184611a50565b9392505050565b6000606082019050611e2c6000830186611a50565b611e396020830185611a50565b611e466040830184611d04565b949350505050565b6000606082019050611e636000830186611a50565b611e706020830185611a50565b611e7d6040830184611d39565b949350505050565b6000604082019050611e9a6000830185611a50565b611ea76020830184611d39565b9392505050565b6000606082019050611ec36000830186611a50565b611ed06020830185611d39565b611edd6040830184611d39565b949350505050565b6000602082019050611efa6000830184611a76565b92915050565b6000602082019050611f156000830184611aef565b92915050565b6000602082019050611f306000830184611afe565b92915050565b60006020820190508181036000830152611f508184611b0d565b905092915050565b60006020820190508181036000830152611f7181611b46565b9050919050565b60006020820190508181036000830152611f9181611b8c565b9050919050565b60006020820190508181036000830152611fb181611baf565b9050919050565b60006020820190508181036000830152611fd181611bd2565b9050919050565b60006020820190508181036000830152611ff28184611bf5565b905092915050565b600060e08201905061200f6000830184611c58565b92915050565b600060208201905061202a6000830184611d04565b92915050565b60006020820190506120456000830184611d39565b92915050565b60006040820190506120606000830185611d39565b61206d6020830184611d39565b9392505050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006120c2826120f1565b9050919050565b60008115159050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062ffffff82169050919050565b6000819050919050565b60006121358261214e565b9050919050565b60006121478261214e565b9050919050565b600061215982612160565b9050919050565b600061216b826120f1565b9050919050565b60005b83811015612190578082015181840152602081019050612175565b8381111561219f576000848401525b50505050565b60006121b0826121b7565b9050919050565b60006121c2826121fe565b9050919050565b60006121d4826121f1565b9050919050565b600080fd5b6000601f19601f8301169050919050565b60008160e81b9050919050565b60008160601b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b50565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b61232d816120b7565b811461233857600080fd5b50565b612344816120c9565b811461234f57600080fd5b50565b61235b816120d5565b811461236657600080fd5b50565b61237281612120565b811461237d57600080fd5b5056fea264697066735822122027f90d12abe6bc83d01268f9d1f2b1f06cb3a1291fe43afcacc978ec0c07420664736f6c63430008070033", + Bin: "0x6101406040523480156200001257600080fd5b506040516200288c3803806200288c83398181016040528101906200003891906200028a565b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161480620000a05750600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b80620000d85750600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80620001105750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1562000148576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508473ffffffffffffffffffffffffffffffffffffffff166101008173ffffffffffffffffffffffffffffffffffffffff1660601b815250508373ffffffffffffffffffffffffffffffffffffffff166101208173ffffffffffffffffffffffffffffffffffffffff1660601b815250508273ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508162ffffff1660808162ffffff1660e81b815250508062ffffff1660a08162ffffff1660e81b81525050505050505050620003a2565b6000815190506200026d816200036e565b92915050565b600081519050620002848162000388565b92915050565b60008060008060008060c08789031215620002aa57620002a962000369565b5b6000620002ba89828a016200025c565b9650506020620002cd89828a016200025c565b9550506040620002e089828a016200025c565b9450506060620002f389828a016200025c565b93505060806200030689828a0162000273565b92505060a06200031989828a0162000273565b9150509295509295509295565b600062000333826200033a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062ffffff82169050919050565b600080fd5b620003798162000326565b81146200038557600080fd5b50565b62000393816200035a565b81146200039f57600080fd5b50565b60805160e81c60a05160e81c60c05160601c60e05160601c6101005160601c6101205160601c6123b6620004d660003960008181610d340152610d7f01526000818161045c0152818161067c015281816107a8015281816109b401528181610b13015281816110f80152818161124401526113530152600081816103ae0152818161054e015281816107350152818161096a015281816109d601528181610a2901528181610ddc015281816110ae0152818161111a015261116d015260008181610372015281816106f301528181610a6501528181610bc001528181610dbb015281816111af01526113770152600081816106d201528181610d5801526111d00152600081816103ea015281816107140152818161089d01528181610aa101528181610dfd015261118e01526123b66000f3fe6080604052600436106100a05760003560e01c80635b549182116100645780635b549182146101ac5780635d9dfdde146101d757806380801f8414610202578063a53fb10b1461022d578063c27745dd1461026a578063c469cf1414610295576100a7565b8063013b2ff8146100ac57806321e093b1146100dc5780632405620a146101075780633cbd70051461014457806354c49a2a1461016f576100a7565b366100a757005b600080fd5b6100c660048036038101906100c191906118c0565b6102c0565b6040516100d39190612030565b60405180910390f35b3480156100e857600080fd5b506100f161054c565b6040516100fe9190611dd3565b60405180910390f35b34801561011357600080fd5b5061012e60048036038101906101299190611900565b610570565b60405161013b9190612030565b60405180910390f35b34801561015057600080fd5b5061015961089b565b6040516101669190612015565b60405180910390f35b34801561017b57600080fd5b5061019660048036038101906101919190611967565b6108bf565b6040516101a39190612030565b60405180910390f35b3480156101b857600080fd5b506101c1610d32565b6040516101ce9190611f1b565b60405180910390f35b3480156101e357600080fd5b506101ec610d56565b6040516101f99190612015565b60405180910390f35b34801561020e57600080fd5b50610217610d7a565b6040516102249190611ee5565b60405180910390f35b34801561023957600080fd5b50610254600480360381019061024f9190611900565b610f6b565b6040516102619190612030565b60405180910390f35b34801561027657600080fd5b5061027f611351565b60405161028c9190611f00565b60405180910390f35b3480156102a157600080fd5b506102aa611375565b6040516102b79190611dd3565b60405180910390f35b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610328576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000341415610363576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006040518060e001604052807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000062ffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001348152602001848152602001600073ffffffffffffffffffffffffffffffffffffffff16815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166304e45aaf34846040518363ffffffff1660e01b81526004016104b49190611ffa565b6020604051808303818588803b1580156104cd57600080fd5b505af11580156104e1573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906105069190611a14565b90507f87890b0a30955b1db16cc894fbe24779ae05d9f337bfe8b6dfc0809b5bf9da11348260405161053992919061204b565b60405180910390a1809250505092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806105d85750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561060f576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082141561064a576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106773330848673ffffffffffffffffffffffffffffffffffffffff16611399909392919063ffffffff16565b6106c27f0000000000000000000000000000000000000000000000000000000000000000838573ffffffffffffffffffffffffffffffffffffffff166114229092919063ffffffff16565b60006040518060800160405280857f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000604051602001610768959493929190611d48565b60405160208183030381529060405281526020018773ffffffffffffffffffffffffffffffffffffffff16815260200184815260200186815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b858183f836040518263ffffffff1660e01b81526004016107ff9190611fd8565b602060405180830381600087803b15801561081957600080fd5b505af115801561082d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108519190611a14565b90507f017190d3d99ee6d8dd0604ef1e71ff9802810c6485f57c9b2ed6169848dd119f85858360405161088693929190611eae565b60405180910390a18092505050949350505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610927576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000821415610962576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109af3330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16611399909392919063ffffffff16565b610a1a7f0000000000000000000000000000000000000000000000000000000000000000837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166114229092919063ffffffff16565b60006040518060e001604052807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000062ffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff168152602001848152602001858152602001600073ffffffffffffffffffffffffffffffffffffffff16815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166304e45aaf836040518263ffffffff1660e01b8152600401610b6a9190611ffa565b602060405180830381600087803b158015610b8457600080fd5b505af1158015610b98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bbc9190611a14565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b8152600401610c179190612030565b600060405180830381600087803b158015610c3157600080fd5b505af1158015610c45573d6000803e3d6000fd5b505050507f74e171117e91660f493740924d8bad0caf48dc4fbccb767fb05935397a2c17ae8482604051610c7a92919061204b565b60405180910390a160008673ffffffffffffffffffffffffffffffffffffffff1682604051610ca890611dbe565b60006040518083038185875af1925050503d8060008114610ce5576040519150601f19603f3d011682016040523d82523d6000602084013e610cea565b606091505b5050905080610d25576040517f3794aeaf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8193505050509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16631698ee827f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006040518463ffffffff1660e01b8152600401610e3a93929190611e17565b60206040518083038186803b158015610e5257600080fd5b505afa158015610e66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8a9190611893565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ecb576000915050610f68565b600081905060008173ffffffffffffffffffffffffffffffffffffffff16631a6865026040518163ffffffff1660e01b815260040160206040518083038186803b158015610f1857600080fd5b505afa158015610f2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5091906119e7565b6fffffffffffffffffffffffffffffffff1611925050505b90565b60008060009054906101000a900460ff1615610fb3576040517f29f745a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016000806101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806110345750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561106b576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008214156110a6576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110f33330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16611399909392919063ffffffff16565b61115e7f0000000000000000000000000000000000000000000000000000000000000000837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166114229092919063ffffffff16565b600060405180608001604052807f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000089604051602001611204959493929190611d48565b60405160208183030381529060405281526020018773ffffffffffffffffffffffffffffffffffffffff16815260200184815260200186815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b858183f836040518263ffffffff1660e01b815260040161129b9190611fd8565b602060405180830381600087803b1580156112b557600080fd5b505af11580156112c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ed9190611a14565b90507f0a7cb8f6e1d29e616c1209a3f418c17b3a9137005377f6dd072217b1ede2573b85858360405161132293929190611eae565b60405180910390a1809250505060008060006101000a81548160ff021916908315150217905550949350505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b61141c846323b872dd60e01b8585856040516024016113ba93929190611e4e565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611580565b50505050565b60008114806114bb575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b8152600401611469929190611dee565b60206040518083038186803b15801561148157600080fd5b505afa158015611495573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b99190611a14565b145b6114fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f190611fb8565b60405180910390fd5b61157b8363095ea7b360e01b8484604051602401611519929190611e85565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611580565b505050565b60006115e2826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166116479092919063ffffffff16565b9050600081511115611642578080602001905181019061160291906119ba565b611641576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163890611f98565b60405180910390fd5b5b505050565b6060611656848460008561165f565b90509392505050565b6060824710156116a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169b90611f58565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516116cd9190611da7565b60006040518083038185875af1925050503d806000811461170a576040519150601f19603f3d011682016040523d82523d6000602084013e61170f565b606091505b50915091506117208783838761172c565b92505050949350505050565b6060831561178f5760008351141561178757611747856117a2565b611786576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177d90611f78565b60405180910390fd5b5b82905061179a565b61179983836117c5565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156117d85781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180c9190611f36565b60405180910390fd5b60008135905061182481612324565b92915050565b60008151905061183981612324565b92915050565b60008151905061184e8161233b565b92915050565b60008151905061186381612352565b92915050565b60008135905061187881612369565b92915050565b60008151905061188d81612369565b92915050565b6000602082840312156118a9576118a86121db565b5b60006118b78482850161182a565b91505092915050565b600080604083850312156118d7576118d66121db565b5b60006118e585828601611815565b92505060206118f685828601611869565b9150509250929050565b6000806000806080858703121561191a576119196121db565b5b600061192887828801611815565b945050602061193987828801611869565b935050604061194a87828801611815565b925050606061195b87828801611869565b91505092959194509250565b6000806000606084860312156119805761197f6121db565b5b600061198e86828701611815565b935050602061199f86828701611869565b92505060406119b086828701611869565b9150509250925092565b6000602082840312156119d0576119cf6121db565b5b60006119de8482850161183f565b91505092915050565b6000602082840312156119fd576119fc6121db565b5b6000611a0b84828501611854565b91505092915050565b600060208284031215611a2a57611a296121db565b5b6000611a388482850161187e565b91505092915050565b611a4a816120b7565b82525050565b611a59816120b7565b82525050565b611a70611a6b826120b7565b6121a5565b82525050565b611a7f816120c9565b82525050565b6000611a9082612074565b611a9a818561208a565b9350611aaa818560208601612172565b611ab3816121e0565b840191505092915050565b6000611ac982612074565b611ad3818561209b565b9350611ae3818560208601612172565b80840191505092915050565b611af88161212a565b82525050565b611b078161213c565b82525050565b6000611b188261207f565b611b2281856120a6565b9350611b32818560208601612172565b611b3b816121e0565b840191505092915050565b6000611b536026836120a6565b9150611b5e8261220b565b604082019050919050565b6000611b7660008361209b565b9150611b818261225a565b600082019050919050565b6000611b99601d836120a6565b9150611ba48261225d565b602082019050919050565b6000611bbc602a836120a6565b9150611bc782612286565b604082019050919050565b6000611bdf6036836120a6565b9150611bea826122d5565b604082019050919050565b60006080830160008301518482036000860152611c128282611a85565b9150506020830151611c276020860182611a41565b506040830151611c3a6040860182611d2a565b506060830151611c4d6060860182611d2a565b508091505092915050565b60e082016000820151611c6e6000850182611a41565b506020820151611c816020850182611a41565b506040820151611c946040850182611cf5565b506060820151611ca76060850182611a41565b506080820151611cba6080850182611d2a565b5060a0820151611ccd60a0850182611d2a565b5060c0820151611ce060c0850182611ce6565b50505050565b611cef816120f1565b82525050565b611cfe81612111565b82525050565b611d0d81612111565b82525050565b611d24611d1f82612111565b6121c9565b82525050565b611d3381612120565b82525050565b611d4281612120565b82525050565b6000611d548288611a5f565b601482019150611d648287611d13565b600382019150611d748286611a5f565b601482019150611d848285611d13565b600382019150611d948284611a5f565b6014820191508190509695505050505050565b6000611db38284611abe565b915081905092915050565b6000611dc982611b69565b9150819050919050565b6000602082019050611de86000830184611a50565b92915050565b6000604082019050611e036000830185611a50565b611e106020830184611a50565b9392505050565b6000606082019050611e2c6000830186611a50565b611e396020830185611a50565b611e466040830184611d04565b949350505050565b6000606082019050611e636000830186611a50565b611e706020830185611a50565b611e7d6040830184611d39565b949350505050565b6000604082019050611e9a6000830185611a50565b611ea76020830184611d39565b9392505050565b6000606082019050611ec36000830186611a50565b611ed06020830185611d39565b611edd6040830184611d39565b949350505050565b6000602082019050611efa6000830184611a76565b92915050565b6000602082019050611f156000830184611aef565b92915050565b6000602082019050611f306000830184611afe565b92915050565b60006020820190508181036000830152611f508184611b0d565b905092915050565b60006020820190508181036000830152611f7181611b46565b9050919050565b60006020820190508181036000830152611f9181611b8c565b9050919050565b60006020820190508181036000830152611fb181611baf565b9050919050565b60006020820190508181036000830152611fd181611bd2565b9050919050565b60006020820190508181036000830152611ff28184611bf5565b905092915050565b600060e08201905061200f6000830184611c58565b92915050565b600060208201905061202a6000830184611d04565b92915050565b60006020820190506120456000830184611d39565b92915050565b60006040820190506120606000830185611d39565b61206d6020830184611d39565b9392505050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006120c2826120f1565b9050919050565b60008115159050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062ffffff82169050919050565b6000819050919050565b60006121358261214e565b9050919050565b60006121478261214e565b9050919050565b600061215982612160565b9050919050565b600061216b826120f1565b9050919050565b60005b83811015612190578082015181840152602081019050612175565b8381111561219f576000848401525b50505050565b60006121b0826121b7565b9050919050565b60006121c2826121fe565b9050919050565b60006121d4826121f1565b9050919050565b600080fd5b6000601f19601f8301169050919050565b60008160e81b9050919050565b60008160601b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b50565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b61232d816120b7565b811461233857600080fd5b50565b612344816120c9565b811461234f57600080fd5b50565b61235b816120d5565b811461236657600080fd5b50565b61237281612120565b811461237d57600080fd5b5056fea26469706673582212208a18b8a2abc958aa0cad934a5005344d1b05623bd9c3bfa606e20b2e17df210364736f6c63430008070033", } // ZetaTokenConsumerPancakeV3ABI is the input ABI used to generate the binding from. diff --git a/pkg/contracts/evm/tools/zetatokenconsumerpancakev3.strategy.sol/zetatokenconsumeruniv3errors.go b/v1/pkg/contracts/evm/tools/zetatokenconsumerpancakev3.strategy.sol/zetatokenconsumeruniv3errors.go similarity index 100% rename from pkg/contracts/evm/tools/zetatokenconsumerpancakev3.strategy.sol/zetatokenconsumeruniv3errors.go rename to v1/pkg/contracts/evm/tools/zetatokenconsumerpancakev3.strategy.sol/zetatokenconsumeruniv3errors.go diff --git a/pkg/contracts/evm/tools/zetatokenconsumertrident.strategy.sol/weth9.go b/v1/pkg/contracts/evm/tools/zetatokenconsumertrident.strategy.sol/weth9.go similarity index 100% rename from pkg/contracts/evm/tools/zetatokenconsumertrident.strategy.sol/weth9.go rename to v1/pkg/contracts/evm/tools/zetatokenconsumertrident.strategy.sol/weth9.go diff --git a/pkg/contracts/evm/tools/zetatokenconsumertrident.strategy.sol/zetatokenconsumertrident.go b/v1/pkg/contracts/evm/tools/zetatokenconsumertrident.strategy.sol/zetatokenconsumertrident.go similarity index 99% rename from pkg/contracts/evm/tools/zetatokenconsumertrident.strategy.sol/zetatokenconsumertrident.go rename to v1/pkg/contracts/evm/tools/zetatokenconsumertrident.strategy.sol/zetatokenconsumertrident.go index c6938a39..178c3599 100644 --- a/pkg/contracts/evm/tools/zetatokenconsumertrident.strategy.sol/zetatokenconsumertrident.go +++ b/v1/pkg/contracts/evm/tools/zetatokenconsumertrident.strategy.sol/zetatokenconsumertrident.go @@ -32,7 +32,7 @@ var ( // ZetaTokenConsumerTridentMetaData contains all meta data concerning the ZetaTokenConsumerTrident contract. var ZetaTokenConsumerTridentMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"zetaToken_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"uniswapV3Router_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"WETH9Address_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"poolFactory_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ErrorSendingETH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InputCantBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyError\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"name\":\"EthExchangedForZeta\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"name\":\"TokenExchangedForZeta\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"name\":\"ZetaExchangedForEth\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"name\":\"ZetaExchangedForToken\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destinationAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zetaTokenAmount\",\"type\":\"uint256\"}],\"name\":\"getEthFromZeta\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destinationAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"outputToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"zetaTokenAmount\",\"type\":\"uint256\"}],\"name\":\"getTokenFromZeta\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destinationAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"}],\"name\":\"getZetaFromEth\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destinationAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"inputToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"inputTokenAmount\",\"type\":\"uint256\"}],\"name\":\"getZetaFromToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hasZetaLiquidity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"poolFactory\",\"outputs\":[{\"internalType\":\"contractConcentratedLiquidityPoolFactory\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tridentRouter\",\"outputs\":[{\"internalType\":\"contractIPoolRouter\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zetaToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", - Bin: "0x6101006040523480156200001257600080fd5b5060405162002b5a38038062002b5a833981810160405281019062000038919062000245565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480620000a05750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80620000d85750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80620001105750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b1562000148576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508273ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508073ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b81525050505050506200030a565b6000815190506200023f81620002f0565b92915050565b60008060008060808587031215620002625762000261620002eb565b5b600062000272878288016200022e565b945050602062000285878288016200022e565b935050604062000298878288016200022e565b9250506060620002ab878288016200022e565b91505092959194509250565b6000620002c482620002cb565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b620002fb81620002b7565b81146200030757600080fd5b50565b60805160601c60a05160601c60c05160601c60e05160601c6127466200041460003960008181610316015281816107000152818161080c01528181610b4201528181610d14015281816111e301526112cf0152600081816104620152818161068501528181610a4801528181610c5901528181610e7f01528181610f7401528181611128015261152b0152600081816102ea01528181610557015281816107dc01528181610c0f01528181610c7b01528181610cc701528181610dd9015281816110de0152818161114a0152818161119601526114b60152600081816102c9015281816106d4015281816107bb01528181610ce8015281816111b7015261129e01526127466000f3fe60806040526004361061007f5760003560e01c806354c49a2a1161004e57806354c49a2a1461014e57806364b5528a1461018b57806380801f84146101b6578063a53fb10b146101e157610086565b8063013b2ff81461008b57806321e093b1146100bb5780632405620a146100e65780634219dc401461012357610086565b3661008657005b600080fd5b6100a560048036038101906100a09190611c10565b61021e565b6040516100b2919061231a565b60405180910390f35b3480156100c757600080fd5b506100d0610555565b6040516100dd91906120ca565b60405180910390f35b3480156100f257600080fd5b5061010d60048036038101906101089190611c50565b610579565b60405161011a919061231a565b60405180910390f35b34801561012f57600080fd5b50610138610b40565b6040516101459190612205565b60405180910390f35b34801561015a57600080fd5b5061017560048036038101906101709190611cb7565b610b64565b604051610182919061231a565b60405180910390f35b34801561019757600080fd5b506101a0610f72565b6040516101ad9190612220565b60405180910390f35b3480156101c257600080fd5b506101cb610f96565b6040516101d891906121ea565b60405180910390f35b3480156101ed57600080fd5b5061020860048036038101906102039190611c50565b610f9b565b604051610215919061231a565b60405180910390f35b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610286576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60003414156102c1576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008061030e7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061163d565b9150915060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166371a258128484600060016040518563ffffffff1660e01b8152600401610375949392919061210e565b60006040518083038186803b15801561038d57600080fd5b505afa1580156103a1573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906103ca9190611d0a565b905060006040518060c00160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020013481526020018781526020018360008151811061041657610415612532565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c07f5c3234846040518363ffffffff1660e01b81526004016104ba91906122ff565b6020604051808303818588803b1580156104d357600080fd5b505af11580156104e7573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061050c9190611d80565b90507f87890b0a30955b1db16cc894fbe24779ae05d9f337bfe8b6dfc0809b5bf9da11348260405161053f929190612335565b60405180910390a1809550505050505092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806105e15750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15610618576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000821415610653576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106803330848673ffffffffffffffffffffffffffffffffffffffff1661168d909392919063ffffffff16565b6106cb7f0000000000000000000000000000000000000000000000000000000000000000838573ffffffffffffffffffffffffffffffffffffffff166117169092919063ffffffff16565b6000806106f8857f000000000000000000000000000000000000000000000000000000000000000061163d565b9150915060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166371a258128484600060016040518563ffffffff1660e01b815260040161075f949392919061210e565b60006040518083038186803b15801561077757600080fd5b505afa15801561078b573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906107b49190611d0a565b90506108007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061163d565b809350819450505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166371a258128585600060016040518563ffffffff1660e01b815260040161086b949392919061210e565b60006040518083038186803b15801561088357600080fd5b505afa158015610897573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906108c09190611d0a565b90506000600267ffffffffffffffff8111156108df576108de612561565b5b60405190808252806020026020018201604052801561090d5781602001602082028036833780820191505090505b5090508260008151811061092457610923612532565b5b6020026020010151816000815181106109405761093f612532565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508160008151811061098e5761098d612532565b5b6020026020010151816001815181106109aa576109a9612532565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060006040518060c001604052808a73ffffffffffffffffffffffffffffffffffffffff1681526020018981526020018b81526020018381526020018c73ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663363a9dba836040518263ffffffff1660e01b8152600401610a9f91906122dd565b602060405180830381600087803b158015610ab957600080fd5b505af1158015610acd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af19190611d80565b90507f017190d3d99ee6d8dd0604ef1e71ff9802810c6485f57c9b2ed6169848dd119f8a8a83604051610b26939291906121b3565b60405180910390a180975050505050505050949350505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610bcc576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000821415610c07576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c543330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661168d909392919063ffffffff16565b610cbf7f0000000000000000000000000000000000000000000000000000000000000000837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166117169092919063ffffffff16565b600080610d0c7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061163d565b9150915060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166371a258128484600060016040518563ffffffff1660e01b8152600401610d73949392919061210e565b60006040518083038186803b158015610d8b57600080fd5b505afa158015610d9f573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610dc89190611d0a565b905060006040518060c001604052807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16815260200187815260200188815260200183600081518110610e3357610e32612532565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff16815260200160011515815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c07f5c32836040518263ffffffff1660e01b8152600401610ed691906122ff565b602060405180830381600087803b158015610ef057600080fd5b505af1158015610f04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f289190611d80565b90507f74e171117e91660f493740924d8bad0caf48dc4fbccb767fb05935397a2c17ae8782604051610f5b929190612335565b60405180910390a180955050505050509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600090565b60008060009054906101000a900460ff1615610fe3576040517f29f745a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016000806101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806110645750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561109b576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008214156110d6576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111233330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661168d909392919063ffffffff16565b61118e7f0000000000000000000000000000000000000000000000000000000000000000837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166117169092919063ffffffff16565b6000806111db7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061163d565b9150915060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166371a258128484600060016040518563ffffffff1660e01b8152600401611242949392919061210e565b60006040518083038186803b15801561125a57600080fd5b505afa15801561126e573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906112979190611d0a565b90506112c37f00000000000000000000000000000000000000000000000000000000000000008761163d565b809350819450505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166371a258128585600060016040518563ffffffff1660e01b815260040161132e949392919061210e565b60006040518083038186803b15801561134657600080fd5b505afa15801561135a573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906113839190611d0a565b90506000600267ffffffffffffffff8111156113a2576113a1612561565b5b6040519080825280602002602001820160405280156113d05781602001602082028036833780820191505090505b509050826000815181106113e7576113e6612532565b5b60200260200101518160008151811061140357611402612532565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508160008151811061145157611450612532565b5b60200260200101518160018151811061146d5761146c612532565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060006040518060c001604052807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020018981526020018b81526020018381526020018c73ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663363a9dba836040518263ffffffff1660e01b815260040161158291906122dd565b602060405180830381600087803b15801561159c57600080fd5b505af11580156115b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d49190611d80565b90507f0a7cb8f6e1d29e616c1209a3f418c17b3a9137005377f6dd072217b1ede2573b8a8a83604051611609939291906121b3565b60405180910390a18097505050505050505060008060006101000a81548160ff021916908315150217905550949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16101561167f57838391509150611686565b8284915091505b9250929050565b611710846323b872dd60e01b8585856040516024016116ae93929190612153565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611874565b50505050565b60008114806117af575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b815260040161175d9291906120e5565b60206040518083038186803b15801561177557600080fd5b505afa158015611789573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ad9190611d80565b145b6117ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e5906122bd565b60405180910390fd5b61186f8363095ea7b360e01b848460405160240161180d92919061218a565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611874565b505050565b60006118d6826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661193b9092919063ffffffff16565b905060008151111561193657808060200190518101906118f69190611d53565b611935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192c9061229d565b60405180910390fd5b5b505050565b606061194a8484600085611953565b90509392505050565b606082471015611998576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198f9061225d565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516119c191906120b3565b60006040518083038185875af1925050503d80600081146119fe576040519150601f19603f3d011682016040523d82523d6000602084013e611a03565b606091505b5091509150611a1487838387611a20565b92505050949350505050565b60608315611a8357600083511415611a7b57611a3b85611a96565b611a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a719061227d565b60405180910390fd5b5b829050611a8e565b611a8d8383611ab9565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600082511115611acc5781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b00919061223b565b60405180910390fd5b6000611b1c611b1784612383565b61235e565b90508083825260208201905082856020860282011115611b3f57611b3e612595565b5b60005b85811015611b6f5781611b558882611b8e565b845260208401935060208301925050600181019050611b42565b5050509392505050565b600081359050611b88816126cb565b92915050565b600081519050611b9d816126cb565b92915050565b600082601f830112611bb857611bb7612590565b5b8151611bc8848260208601611b09565b91505092915050565b600081519050611be0816126e2565b92915050565b600081359050611bf5816126f9565b92915050565b600081519050611c0a816126f9565b92915050565b60008060408385031215611c2757611c2661259f565b5b6000611c3585828601611b79565b9250506020611c4685828601611be6565b9150509250929050565b60008060008060808587031215611c6a57611c6961259f565b5b6000611c7887828801611b79565b9450506020611c8987828801611be6565b9350506040611c9a87828801611b79565b9250506060611cab87828801611be6565b91505092959194509250565b600080600060608486031215611cd057611ccf61259f565b5b6000611cde86828701611b79565b9350506020611cef86828701611be6565b9250506040611d0086828701611be6565b9150509250925092565b600060208284031215611d2057611d1f61259f565b5b600082015167ffffffffffffffff811115611d3e57611d3d61259a565b5b611d4a84828501611ba3565b91505092915050565b600060208284031215611d6957611d6861259f565b5b6000611d7784828501611bd1565b91505092915050565b600060208284031215611d9657611d9561259f565b5b6000611da484828501611bfb565b91505092915050565b6000611db98383611dc5565b60208301905092915050565b611dce8161241a565b82525050565b611ddd8161241a565b82525050565b6000611dee826123bf565b611df881856123ed565b9350611e03836123af565b8060005b83811015611e34578151611e1b8882611dad565b9750611e26836123e0565b925050600181019050611e07565b5085935050505092915050565b611e4a8161242c565b82525050565b611e598161242c565b82525050565b6000611e6a826123ca565b611e7481856123fe565b9350611e848185602086016124ce565b80840191505092915050565b611e9981612462565b82525050565b611ea881612474565b82525050565b611eb781612486565b82525050565b611ec681612498565b82525050565b6000611ed7826123d5565b611ee18185612409565b9350611ef18185602086016124ce565b611efa816125a4565b840191505092915050565b6000611f12602683612409565b9150611f1d826125b5565b604082019050919050565b6000611f35601d83612409565b9150611f4082612604565b602082019050919050565b6000611f58602a83612409565b9150611f638261262d565b604082019050919050565b6000611f7b603683612409565b9150611f868261267c565b604082019050919050565b600060c083016000830151611fa96000860182611dc5565b506020830151611fbc6020860182612095565b506040830151611fcf6040860182612095565b5060608301518482036060860152611fe78282611de3565b9150506080830151611ffc6080860182611dc5565b5060a083015161200f60a0860182611e41565b508091505092915050565b60c0820160008201516120306000850182611dc5565b5060208201516120436020850182612095565b5060408201516120566040850182612095565b5060608201516120696060850182611dc5565b50608082015161207c6080850182611dc5565b5060a082015161208f60a0850182611e41565b50505050565b61209e81612458565b82525050565b6120ad81612458565b82525050565b60006120bf8284611e5f565b915081905092915050565b60006020820190506120df6000830184611dd4565b92915050565b60006040820190506120fa6000830185611dd4565b6121076020830184611dd4565b9392505050565b60006080820190506121236000830187611dd4565b6121306020830186611dd4565b61213d6040830185611eae565b61214a6060830184611ebd565b95945050505050565b60006060820190506121686000830186611dd4565b6121756020830185611dd4565b61218260408301846120a4565b949350505050565b600060408201905061219f6000830185611dd4565b6121ac60208301846120a4565b9392505050565b60006060820190506121c86000830186611dd4565b6121d560208301856120a4565b6121e260408301846120a4565b949350505050565b60006020820190506121ff6000830184611e50565b92915050565b600060208201905061221a6000830184611e90565b92915050565b60006020820190506122356000830184611e9f565b92915050565b600060208201905081810360008301526122558184611ecc565b905092915050565b6000602082019050818103600083015261227681611f05565b9050919050565b6000602082019050818103600083015261229681611f28565b9050919050565b600060208201905081810360008301526122b681611f4b565b9050919050565b600060208201905081810360008301526122d681611f6e565b9050919050565b600060208201905081810360008301526122f78184611f91565b905092915050565b600060c082019050612314600083018461201a565b92915050565b600060208201905061232f60008301846120a4565b92915050565b600060408201905061234a60008301856120a4565b61235760208301846120a4565b9392505050565b6000612368612379565b90506123748282612501565b919050565b6000604051905090565b600067ffffffffffffffff82111561239e5761239d612561565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061242582612438565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061246d826124aa565b9050919050565b600061247f826124aa565b9050919050565b600061249182612458565b9050919050565b60006124a382612458565b9050919050565b60006124b5826124bc565b9050919050565b60006124c782612438565b9050919050565b60005b838110156124ec5780820151818401526020810190506124d1565b838111156124fb576000848401525b50505050565b61250a826125a4565b810181811067ffffffffffffffff8211171561252957612528612561565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b6126d48161241a565b81146126df57600080fd5b50565b6126eb8161242c565b81146126f657600080fd5b50565b61270281612458565b811461270d57600080fd5b5056fea26469706673582212207db2a1e3db417b41f7491218078aed9cfec4ce5d3704cc0cd4a870ca5e85a28864736f6c63430008070033", + Bin: "0x6101006040523480156200001257600080fd5b5060405162002b5a38038062002b5a833981810160405281019062000038919062000245565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480620000a05750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80620000d85750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80620001105750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b1562000148576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508273ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508073ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b81525050505050506200030a565b6000815190506200023f81620002f0565b92915050565b60008060008060808587031215620002625762000261620002eb565b5b600062000272878288016200022e565b945050602062000285878288016200022e565b935050604062000298878288016200022e565b9250506060620002ab878288016200022e565b91505092959194509250565b6000620002c482620002cb565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b620002fb81620002b7565b81146200030757600080fd5b50565b60805160601c60a05160601c60c05160601c60e05160601c6127466200041460003960008181610316015281816107000152818161080c01528181610b4201528181610d14015281816111e301526112cf0152600081816104620152818161068501528181610a4801528181610c5901528181610e7f01528181610f7401528181611128015261152b0152600081816102ea01528181610557015281816107dc01528181610c0f01528181610c7b01528181610cc701528181610dd9015281816110de0152818161114a0152818161119601526114b60152600081816102c9015281816106d4015281816107bb01528181610ce8015281816111b7015261129e01526127466000f3fe60806040526004361061007f5760003560e01c806354c49a2a1161004e57806354c49a2a1461014e57806364b5528a1461018b57806380801f84146101b6578063a53fb10b146101e157610086565b8063013b2ff81461008b57806321e093b1146100bb5780632405620a146100e65780634219dc401461012357610086565b3661008657005b600080fd5b6100a560048036038101906100a09190611c10565b61021e565b6040516100b2919061231a565b60405180910390f35b3480156100c757600080fd5b506100d0610555565b6040516100dd91906120ca565b60405180910390f35b3480156100f257600080fd5b5061010d60048036038101906101089190611c50565b610579565b60405161011a919061231a565b60405180910390f35b34801561012f57600080fd5b50610138610b40565b6040516101459190612205565b60405180910390f35b34801561015a57600080fd5b5061017560048036038101906101709190611cb7565b610b64565b604051610182919061231a565b60405180910390f35b34801561019757600080fd5b506101a0610f72565b6040516101ad9190612220565b60405180910390f35b3480156101c257600080fd5b506101cb610f96565b6040516101d891906121ea565b60405180910390f35b3480156101ed57600080fd5b5061020860048036038101906102039190611c50565b610f9b565b604051610215919061231a565b60405180910390f35b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610286576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60003414156102c1576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008061030e7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061163d565b9150915060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166371a258128484600060016040518563ffffffff1660e01b8152600401610375949392919061210e565b60006040518083038186803b15801561038d57600080fd5b505afa1580156103a1573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906103ca9190611d0a565b905060006040518060c00160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020013481526020018781526020018360008151811061041657610415612532565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c07f5c3234846040518363ffffffff1660e01b81526004016104ba91906122ff565b6020604051808303818588803b1580156104d357600080fd5b505af11580156104e7573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061050c9190611d80565b90507f87890b0a30955b1db16cc894fbe24779ae05d9f337bfe8b6dfc0809b5bf9da11348260405161053f929190612335565b60405180910390a1809550505050505092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806105e15750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15610618576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000821415610653576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106803330848673ffffffffffffffffffffffffffffffffffffffff1661168d909392919063ffffffff16565b6106cb7f0000000000000000000000000000000000000000000000000000000000000000838573ffffffffffffffffffffffffffffffffffffffff166117169092919063ffffffff16565b6000806106f8857f000000000000000000000000000000000000000000000000000000000000000061163d565b9150915060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166371a258128484600060016040518563ffffffff1660e01b815260040161075f949392919061210e565b60006040518083038186803b15801561077757600080fd5b505afa15801561078b573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906107b49190611d0a565b90506108007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061163d565b809350819450505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166371a258128585600060016040518563ffffffff1660e01b815260040161086b949392919061210e565b60006040518083038186803b15801561088357600080fd5b505afa158015610897573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906108c09190611d0a565b90506000600267ffffffffffffffff8111156108df576108de612561565b5b60405190808252806020026020018201604052801561090d5781602001602082028036833780820191505090505b5090508260008151811061092457610923612532565b5b6020026020010151816000815181106109405761093f612532565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508160008151811061098e5761098d612532565b5b6020026020010151816001815181106109aa576109a9612532565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060006040518060c001604052808a73ffffffffffffffffffffffffffffffffffffffff1681526020018981526020018b81526020018381526020018c73ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663363a9dba836040518263ffffffff1660e01b8152600401610a9f91906122dd565b602060405180830381600087803b158015610ab957600080fd5b505af1158015610acd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af19190611d80565b90507f017190d3d99ee6d8dd0604ef1e71ff9802810c6485f57c9b2ed6169848dd119f8a8a83604051610b26939291906121b3565b60405180910390a180975050505050505050949350505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610bcc576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000821415610c07576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c543330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661168d909392919063ffffffff16565b610cbf7f0000000000000000000000000000000000000000000000000000000000000000837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166117169092919063ffffffff16565b600080610d0c7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061163d565b9150915060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166371a258128484600060016040518563ffffffff1660e01b8152600401610d73949392919061210e565b60006040518083038186803b158015610d8b57600080fd5b505afa158015610d9f573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610dc89190611d0a565b905060006040518060c001604052807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16815260200187815260200188815260200183600081518110610e3357610e32612532565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff16815260200160011515815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c07f5c32836040518263ffffffff1660e01b8152600401610ed691906122ff565b602060405180830381600087803b158015610ef057600080fd5b505af1158015610f04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f289190611d80565b90507f74e171117e91660f493740924d8bad0caf48dc4fbccb767fb05935397a2c17ae8782604051610f5b929190612335565b60405180910390a180955050505050509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600090565b60008060009054906101000a900460ff1615610fe3576040517f29f745a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016000806101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806110645750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561109b576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008214156110d6576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111233330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661168d909392919063ffffffff16565b61118e7f0000000000000000000000000000000000000000000000000000000000000000837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166117169092919063ffffffff16565b6000806111db7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061163d565b9150915060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166371a258128484600060016040518563ffffffff1660e01b8152600401611242949392919061210e565b60006040518083038186803b15801561125a57600080fd5b505afa15801561126e573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906112979190611d0a565b90506112c37f00000000000000000000000000000000000000000000000000000000000000008761163d565b809350819450505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166371a258128585600060016040518563ffffffff1660e01b815260040161132e949392919061210e565b60006040518083038186803b15801561134657600080fd5b505afa15801561135a573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906113839190611d0a565b90506000600267ffffffffffffffff8111156113a2576113a1612561565b5b6040519080825280602002602001820160405280156113d05781602001602082028036833780820191505090505b509050826000815181106113e7576113e6612532565b5b60200260200101518160008151811061140357611402612532565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508160008151811061145157611450612532565b5b60200260200101518160018151811061146d5761146c612532565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060006040518060c001604052807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020018981526020018b81526020018381526020018c73ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663363a9dba836040518263ffffffff1660e01b815260040161158291906122dd565b602060405180830381600087803b15801561159c57600080fd5b505af11580156115b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d49190611d80565b90507f0a7cb8f6e1d29e616c1209a3f418c17b3a9137005377f6dd072217b1ede2573b8a8a83604051611609939291906121b3565b60405180910390a18097505050505050505060008060006101000a81548160ff021916908315150217905550949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16101561167f57838391509150611686565b8284915091505b9250929050565b611710846323b872dd60e01b8585856040516024016116ae93929190612153565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611874565b50505050565b60008114806117af575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b815260040161175d9291906120e5565b60206040518083038186803b15801561177557600080fd5b505afa158015611789573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ad9190611d80565b145b6117ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e5906122bd565b60405180910390fd5b61186f8363095ea7b360e01b848460405160240161180d92919061218a565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611874565b505050565b60006118d6826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661193b9092919063ffffffff16565b905060008151111561193657808060200190518101906118f69190611d53565b611935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192c9061229d565b60405180910390fd5b5b505050565b606061194a8484600085611953565b90509392505050565b606082471015611998576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198f9061225d565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516119c191906120b3565b60006040518083038185875af1925050503d80600081146119fe576040519150601f19603f3d011682016040523d82523d6000602084013e611a03565b606091505b5091509150611a1487838387611a20565b92505050949350505050565b60608315611a8357600083511415611a7b57611a3b85611a96565b611a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a719061227d565b60405180910390fd5b5b829050611a8e565b611a8d8383611ab9565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600082511115611acc5781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b00919061223b565b60405180910390fd5b6000611b1c611b1784612383565b61235e565b90508083825260208201905082856020860282011115611b3f57611b3e612595565b5b60005b85811015611b6f5781611b558882611b8e565b845260208401935060208301925050600181019050611b42565b5050509392505050565b600081359050611b88816126cb565b92915050565b600081519050611b9d816126cb565b92915050565b600082601f830112611bb857611bb7612590565b5b8151611bc8848260208601611b09565b91505092915050565b600081519050611be0816126e2565b92915050565b600081359050611bf5816126f9565b92915050565b600081519050611c0a816126f9565b92915050565b60008060408385031215611c2757611c2661259f565b5b6000611c3585828601611b79565b9250506020611c4685828601611be6565b9150509250929050565b60008060008060808587031215611c6a57611c6961259f565b5b6000611c7887828801611b79565b9450506020611c8987828801611be6565b9350506040611c9a87828801611b79565b9250506060611cab87828801611be6565b91505092959194509250565b600080600060608486031215611cd057611ccf61259f565b5b6000611cde86828701611b79565b9350506020611cef86828701611be6565b9250506040611d0086828701611be6565b9150509250925092565b600060208284031215611d2057611d1f61259f565b5b600082015167ffffffffffffffff811115611d3e57611d3d61259a565b5b611d4a84828501611ba3565b91505092915050565b600060208284031215611d6957611d6861259f565b5b6000611d7784828501611bd1565b91505092915050565b600060208284031215611d9657611d9561259f565b5b6000611da484828501611bfb565b91505092915050565b6000611db98383611dc5565b60208301905092915050565b611dce8161241a565b82525050565b611ddd8161241a565b82525050565b6000611dee826123bf565b611df881856123ed565b9350611e03836123af565b8060005b83811015611e34578151611e1b8882611dad565b9750611e26836123e0565b925050600181019050611e07565b5085935050505092915050565b611e4a8161242c565b82525050565b611e598161242c565b82525050565b6000611e6a826123ca565b611e7481856123fe565b9350611e848185602086016124ce565b80840191505092915050565b611e9981612462565b82525050565b611ea881612474565b82525050565b611eb781612486565b82525050565b611ec681612498565b82525050565b6000611ed7826123d5565b611ee18185612409565b9350611ef18185602086016124ce565b611efa816125a4565b840191505092915050565b6000611f12602683612409565b9150611f1d826125b5565b604082019050919050565b6000611f35601d83612409565b9150611f4082612604565b602082019050919050565b6000611f58602a83612409565b9150611f638261262d565b604082019050919050565b6000611f7b603683612409565b9150611f868261267c565b604082019050919050565b600060c083016000830151611fa96000860182611dc5565b506020830151611fbc6020860182612095565b506040830151611fcf6040860182612095565b5060608301518482036060860152611fe78282611de3565b9150506080830151611ffc6080860182611dc5565b5060a083015161200f60a0860182611e41565b508091505092915050565b60c0820160008201516120306000850182611dc5565b5060208201516120436020850182612095565b5060408201516120566040850182612095565b5060608201516120696060850182611dc5565b50608082015161207c6080850182611dc5565b5060a082015161208f60a0850182611e41565b50505050565b61209e81612458565b82525050565b6120ad81612458565b82525050565b60006120bf8284611e5f565b915081905092915050565b60006020820190506120df6000830184611dd4565b92915050565b60006040820190506120fa6000830185611dd4565b6121076020830184611dd4565b9392505050565b60006080820190506121236000830187611dd4565b6121306020830186611dd4565b61213d6040830185611eae565b61214a6060830184611ebd565b95945050505050565b60006060820190506121686000830186611dd4565b6121756020830185611dd4565b61218260408301846120a4565b949350505050565b600060408201905061219f6000830185611dd4565b6121ac60208301846120a4565b9392505050565b60006060820190506121c86000830186611dd4565b6121d560208301856120a4565b6121e260408301846120a4565b949350505050565b60006020820190506121ff6000830184611e50565b92915050565b600060208201905061221a6000830184611e90565b92915050565b60006020820190506122356000830184611e9f565b92915050565b600060208201905081810360008301526122558184611ecc565b905092915050565b6000602082019050818103600083015261227681611f05565b9050919050565b6000602082019050818103600083015261229681611f28565b9050919050565b600060208201905081810360008301526122b681611f4b565b9050919050565b600060208201905081810360008301526122d681611f6e565b9050919050565b600060208201905081810360008301526122f78184611f91565b905092915050565b600060c082019050612314600083018461201a565b92915050565b600060208201905061232f60008301846120a4565b92915050565b600060408201905061234a60008301856120a4565b61235760208301846120a4565b9392505050565b6000612368612379565b90506123748282612501565b919050565b6000604051905090565b600067ffffffffffffffff82111561239e5761239d612561565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061242582612438565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061246d826124aa565b9050919050565b600061247f826124aa565b9050919050565b600061249182612458565b9050919050565b60006124a382612458565b9050919050565b60006124b5826124bc565b9050919050565b60006124c782612438565b9050919050565b60005b838110156124ec5780820151818401526020810190506124d1565b838111156124fb576000848401525b50505050565b61250a826125a4565b810181811067ffffffffffffffff8211171561252957612528612561565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b6126d48161241a565b81146126df57600080fd5b50565b6126eb8161242c565b81146126f657600080fd5b50565b61270281612458565b811461270d57600080fd5b5056fea264697066735822122052bfd21f617a098a8e9f7179f87b0511ff7b45f29043d147ad39b847dabfaf1364736f6c63430008070033", } // ZetaTokenConsumerTridentABI is the input ABI used to generate the binding from. diff --git a/pkg/contracts/evm/tools/zetatokenconsumertrident.strategy.sol/zetatokenconsumertridenterrors.go b/v1/pkg/contracts/evm/tools/zetatokenconsumertrident.strategy.sol/zetatokenconsumertridenterrors.go similarity index 100% rename from pkg/contracts/evm/tools/zetatokenconsumertrident.strategy.sol/zetatokenconsumertridenterrors.go rename to v1/pkg/contracts/evm/tools/zetatokenconsumertrident.strategy.sol/zetatokenconsumertridenterrors.go diff --git a/pkg/contracts/evm/tools/zetatokenconsumeruniv2.strategy.sol/zetatokenconsumeruniv2.go b/v1/pkg/contracts/evm/tools/zetatokenconsumeruniv2.strategy.sol/zetatokenconsumeruniv2.go similarity index 99% rename from pkg/contracts/evm/tools/zetatokenconsumeruniv2.strategy.sol/zetatokenconsumeruniv2.go rename to v1/pkg/contracts/evm/tools/zetatokenconsumeruniv2.strategy.sol/zetatokenconsumeruniv2.go index 04ca8867..e64f4ae5 100644 --- a/pkg/contracts/evm/tools/zetatokenconsumeruniv2.strategy.sol/zetatokenconsumeruniv2.go +++ b/v1/pkg/contracts/evm/tools/zetatokenconsumeruniv2.strategy.sol/zetatokenconsumeruniv2.go @@ -32,7 +32,7 @@ var ( // ZetaTokenConsumerUniV2MetaData contains all meta data concerning the ZetaTokenConsumerUniV2 contract. var ZetaTokenConsumerUniV2MetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"zetaToken_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"uniswapV2Router_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InputCantBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"name\":\"EthExchangedForZeta\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"name\":\"TokenExchangedForZeta\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"name\":\"ZetaExchangedForEth\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"name\":\"ZetaExchangedForToken\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destinationAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zetaTokenAmount\",\"type\":\"uint256\"}],\"name\":\"getEthFromZeta\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destinationAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"outputToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"zetaTokenAmount\",\"type\":\"uint256\"}],\"name\":\"getTokenFromZeta\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destinationAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"}],\"name\":\"getZetaFromEth\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destinationAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"inputToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"inputTokenAmount\",\"type\":\"uint256\"}],\"name\":\"getZetaFromToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hasZetaLiquidity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zetaToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x60e06040523480156200001157600080fd5b50604051620029a0380380620029a083398181016040528101906200003791906200024e565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806200009f5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15620000d7576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508073ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200018c57600080fd5b505afa158015620001a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c791906200021c565b73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250505050620002e8565b6000815190506200021681620002ce565b92915050565b600060208284031215620002355762000234620002c9565b5b6000620002458482850162000205565b91505092915050565b60008060408385031215620002685762000267620002c9565b5b6000620002788582860162000205565b92505060206200028b8582860162000205565b9150509250929050565b6000620002a282620002a9565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b620002d98162000295565b8114620002e557600080fd5b50565b60805160601c60a05160601c60c05160601c6125c9620003d76000396000818161036a015281816105ce0152818161091701528181610b4501528181610cdb01528181610f400152818161115501526114be0152600081816102f9015281816104a001528181610727015281816108a501528181610afb01528181610b6701528181610bfb01528181610ed10152818161110b015281816111770152818161125f015261138e01526000818161028a01528181610618015281816106b80152818161083601528181610c6a01528181610e62015281816111bf015281816112ce01526113fd01526125c96000f3fe6080604052600436106100555760003560e01c8063013b2ff81461005a57806321e093b11461008a5780632405620a146100b557806354c49a2a146100f257806380801f841461012f578063a53fb10b1461015a575b600080fd5b610074600480360381019061006f9190611b65565b610197565b6040516100819190612098565b60405180910390f35b34801561009657600080fd5b5061009f61049e565b6040516100ac9190611ed0565b60405180910390f35b3480156100c157600080fd5b506100dc60048036038101906100d79190611ba5565b6104c2565b6040516100e99190612098565b60405180910390f35b3480156100fe57600080fd5b5061011960048036038101906101149190611c0c565b610a50565b6040516101269190612098565b60405180910390f35b34801561013b57600080fd5b50610144610e11565b6040516101519190611fab565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c9190611ba5565b611029565b60405161018e9190612098565b60405180910390f35b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156101ff576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600034141561023a576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600267ffffffffffffffff811115610257576102566123e4565b5b6040519080825280602002602001820160405280156102855781602001602082028036833780820191505090505b5090507f0000000000000000000000000000000000000000000000000000000000000000816000815181106102bd576102bc6123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061032c5761032b6123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637ff36ab53486858960c8426103b5919061223e565b6040518663ffffffff1660e01b81526004016103d494939291906120b3565b6000604051808303818588803b1580156103ed57600080fd5b505af1158015610401573d6000803e3d6000fd5b50505050506040513d6000823e3d601f19601f8201168201806040525081019061042b9190611c5f565b90506000816001845161043e9190612294565b8151811061044f5761044e6123b5565b5b602002602001015190507f87890b0a30955b1db16cc894fbe24779ae05d9f337bfe8b6dfc0809b5bf9da11348260405161048a9291906120ff565b60405180910390a180935050505092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061052a5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15610561576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082141561059c576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105c93330848673ffffffffffffffffffffffffffffffffffffffff166115f7909392919063ffffffff16565b6106147f0000000000000000000000000000000000000000000000000000000000000000838573ffffffffffffffffffffffffffffffffffffffff166116809092919063ffffffff16565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561079957600267ffffffffffffffff811115610685576106846123e4565b5b6040519080825280602002602001820160405280156106b35781602001602082028036833780820191505090505b5090507f0000000000000000000000000000000000000000000000000000000000000000816000815181106106eb576106ea6123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061075a576107596123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050610913565b600367ffffffffffffffff8111156107b4576107b36123e4565b5b6040519080825280602002602001820160405280156107e25781602001602082028036833780820191505090505b50905083816000815181106107fa576107f96123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610869576108686123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000000000000000000000000000000000000000000000816002815181106108d8576108d76123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166338ed17398588858b60c842610962919061223e565b6040518663ffffffff1660e01b8152600401610982959493929190612128565b600060405180830381600087803b15801561099c57600080fd5b505af11580156109b0573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906109d99190611c5f565b9050600081600184516109ec9190612294565b815181106109fd576109fc6123b5565b5b602002602001015190507f017190d3d99ee6d8dd0604ef1e71ff9802810c6485f57c9b2ed6169848dd119f868683604051610a3a93929190611f74565b60405180910390a1809350505050949350505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610ab8576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000821415610af3576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b403330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166115f7909392919063ffffffff16565b610bab7f0000000000000000000000000000000000000000000000000000000000000000837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166116809092919063ffffffff16565b6000600267ffffffffffffffff811115610bc857610bc76123e4565b5b604051908082528060200260200182016040528015610bf65781602001602082028036833780820191505090505b5090507f000000000000000000000000000000000000000000000000000000000000000081600081518110610c2e57610c2d6123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610c9d57610c9c6123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318cbafe58587858a60c842610d26919061223e565b6040518663ffffffff1660e01b8152600401610d46959493929190612128565b600060405180830381600087803b158015610d6057600080fd5b505af1158015610d74573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610d9d9190611c5f565b905060008160018451610db09190612294565b81518110610dc157610dc06123b5565b5b602002602001015190507f74e171117e91660f493740924d8bad0caf48dc4fbccb767fb05935397a2c17ae8582604051610dfc9291906120ff565b60405180910390a18093505050509392505050565b600080600267ffffffffffffffff811115610e2f57610e2e6123e4565b5b604051908082528060200260200182016040528015610e5d5781602001602082028036833780820191505090505b5090507f000000000000000000000000000000000000000000000000000000000000000081600081518110610e9557610e946123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610f0457610f036123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d06ca61f6001836040518363ffffffff1660e01b8152600401610f9a929190611fc6565b60006040518083038186803b158015610fb257600080fd5b505afa925050508015610fe857506040513d6000823e3d601f19601f82011682018060405250810190610fe59190611c5f565b60015b610ff6576000915050611026565b600081600184516110079190612294565b81518110611018576110176123b5565b5b602002602001015111925050505b90565b60008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806110915750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156110c8576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000821415611103576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111503330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166115f7909392919063ffffffff16565b6111bb7f0000000000000000000000000000000000000000000000000000000000000000837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166116809092919063ffffffff16565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561134057600267ffffffffffffffff81111561122c5761122b6123e4565b5b60405190808252806020026020018201604052801561125a5781602001602082028036833780820191505090505b5090507f000000000000000000000000000000000000000000000000000000000000000081600081518110611292576112916123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110611301576113006123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506114ba565b600367ffffffffffffffff81111561135b5761135a6123e4565b5b6040519080825280602002602001820160405280156113895781602001602082028036833780820191505090505b5090507f0000000000000000000000000000000000000000000000000000000000000000816000815181106113c1576113c06123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000000000000000000000000000000000000000000000816001815181106114305761142f6123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050838160028151811061147f5761147e6123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166338ed17398588858b60c842611509919061223e565b6040518663ffffffff1660e01b8152600401611529959493929190612128565b600060405180830381600087803b15801561154357600080fd5b505af1158015611557573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906115809190611c5f565b9050600081600184516115939190612294565b815181106115a4576115a36123b5565b5b602002602001015190507f0a7cb8f6e1d29e616c1209a3f418c17b3a9137005377f6dd072217b1ede2573b8686836040516115e193929190611f74565b60405180910390a1809350505050949350505050565b61167a846323b872dd60e01b85858560405160240161161893929190611f14565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506117de565b50505050565b6000811480611719575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b81526004016116c7929190611eeb565b60206040518083038186803b1580156116df57600080fd5b505afa1580156116f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117179190611cd5565b145b611758576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174f90612078565b60405180910390fd5b6117d98363095ea7b360e01b8484604051602401611777929190611f4b565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506117de565b505050565b6000611840826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166118a59092919063ffffffff16565b90506000815111156118a057808060200190518101906118609190611ca8565b61189f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189690612058565b60405180910390fd5b5b505050565b60606118b484846000856118bd565b90509392505050565b606082471015611902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f990612018565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161192b9190611eb9565b60006040518083038185875af1925050503d8060008114611968576040519150601f19603f3d011682016040523d82523d6000602084013e61196d565b606091505b509150915061197e8783838761198a565b92505050949350505050565b606083156119ed576000835114156119e5576119a585611a00565b6119e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119db90612038565b60405180910390fd5b5b8290506119f8565b6119f78383611a23565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600082511115611a365781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6a9190611ff6565b60405180910390fd5b6000611a86611a81846121a7565b612182565b90508083825260208201905082856020860282011115611aa957611aa8612418565b5b60005b85811015611ad95781611abf8882611b50565b845260208401935060208301925050600181019050611aac565b5050509392505050565b600081359050611af28161254e565b92915050565b600082601f830112611b0d57611b0c612413565b5b8151611b1d848260208601611a73565b91505092915050565b600081519050611b3581612565565b92915050565b600081359050611b4a8161257c565b92915050565b600081519050611b5f8161257c565b92915050565b60008060408385031215611b7c57611b7b612422565b5b6000611b8a85828601611ae3565b9250506020611b9b85828601611b3b565b9150509250929050565b60008060008060808587031215611bbf57611bbe612422565b5b6000611bcd87828801611ae3565b9450506020611bde87828801611b3b565b9350506040611bef87828801611ae3565b9250506060611c0087828801611b3b565b91505092959194509250565b600080600060608486031215611c2557611c24612422565b5b6000611c3386828701611ae3565b9350506020611c4486828701611b3b565b9250506040611c5586828701611b3b565b9150509250925092565b600060208284031215611c7557611c74612422565b5b600082015167ffffffffffffffff811115611c9357611c9261241d565b5b611c9f84828501611af8565b91505092915050565b600060208284031215611cbe57611cbd612422565b5b6000611ccc84828501611b26565b91505092915050565b600060208284031215611ceb57611cea612422565b5b6000611cf984828501611b50565b91505092915050565b6000611d0e8383611d1a565b60208301905092915050565b611d23816122c8565b82525050565b611d32816122c8565b82525050565b6000611d43826121e3565b611d4d8185612211565b9350611d58836121d3565b8060005b83811015611d89578151611d708882611d02565b9750611d7b83612204565b925050600181019050611d5c565b5085935050505092915050565b611d9f816122da565b82525050565b6000611db0826121ee565b611dba8185612222565b9350611dca818560208601612322565b80840191505092915050565b611ddf81612310565b82525050565b6000611df0826121f9565b611dfa818561222d565b9350611e0a818560208601612322565b611e1381612427565b840191505092915050565b6000611e2b60268361222d565b9150611e3682612438565b604082019050919050565b6000611e4e601d8361222d565b9150611e5982612487565b602082019050919050565b6000611e71602a8361222d565b9150611e7c826124b0565b604082019050919050565b6000611e9460368361222d565b9150611e9f826124ff565b604082019050919050565b611eb381612306565b82525050565b6000611ec58284611da5565b915081905092915050565b6000602082019050611ee56000830184611d29565b92915050565b6000604082019050611f006000830185611d29565b611f0d6020830184611d29565b9392505050565b6000606082019050611f296000830186611d29565b611f366020830185611d29565b611f436040830184611eaa565b949350505050565b6000604082019050611f606000830185611d29565b611f6d6020830184611eaa565b9392505050565b6000606082019050611f896000830186611d29565b611f966020830185611eaa565b611fa36040830184611eaa565b949350505050565b6000602082019050611fc06000830184611d96565b92915050565b6000604082019050611fdb6000830185611dd6565b8181036020830152611fed8184611d38565b90509392505050565b600060208201905081810360008301526120108184611de5565b905092915050565b6000602082019050818103600083015261203181611e1e565b9050919050565b6000602082019050818103600083015261205181611e41565b9050919050565b6000602082019050818103600083015261207181611e64565b9050919050565b6000602082019050818103600083015261209181611e87565b9050919050565b60006020820190506120ad6000830184611eaa565b92915050565b60006080820190506120c86000830187611eaa565b81810360208301526120da8186611d38565b90506120e96040830185611d29565b6120f66060830184611eaa565b95945050505050565b60006040820190506121146000830185611eaa565b6121216020830184611eaa565b9392505050565b600060a08201905061213d6000830188611eaa565b61214a6020830187611eaa565b818103604083015261215c8186611d38565b905061216b6060830185611d29565b6121786080830184611eaa565b9695505050505050565b600061218c61219d565b90506121988282612355565b919050565b6000604051905090565b600067ffffffffffffffff8211156121c2576121c16123e4565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061224982612306565b915061225483612306565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561228957612288612386565b5b828201905092915050565b600061229f82612306565b91506122aa83612306565b9250828210156122bd576122bc612386565b5b828203905092915050565b60006122d3826122e6565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061231b82612306565b9050919050565b60005b83811015612340578082015181840152602081019050612325565b8381111561234f576000848401525b50505050565b61235e82612427565b810181811067ffffffffffffffff8211171561237d5761237c6123e4565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b612557816122c8565b811461256257600080fd5b50565b61256e816122da565b811461257957600080fd5b50565b61258581612306565b811461259057600080fd5b5056fea26469706673582212203b367a485c1c8365253eb443a67a0af9e708d5f18be04ddce696d86f9d990a5364736f6c63430008070033", + Bin: "0x60e06040523480156200001157600080fd5b50604051620029a0380380620029a083398181016040528101906200003791906200024e565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806200009f5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15620000d7576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508073ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200018c57600080fd5b505afa158015620001a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c791906200021c565b73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250505050620002e8565b6000815190506200021681620002ce565b92915050565b600060208284031215620002355762000234620002c9565b5b6000620002458482850162000205565b91505092915050565b60008060408385031215620002685762000267620002c9565b5b6000620002788582860162000205565b92505060206200028b8582860162000205565b9150509250929050565b6000620002a282620002a9565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b620002d98162000295565b8114620002e557600080fd5b50565b60805160601c60a05160601c60c05160601c6125c9620003d76000396000818161036a015281816105ce0152818161091701528181610b4501528181610cdb01528181610f400152818161115501526114be0152600081816102f9015281816104a001528181610727015281816108a501528181610afb01528181610b6701528181610bfb01528181610ed10152818161110b015281816111770152818161125f015261138e01526000818161028a01528181610618015281816106b80152818161083601528181610c6a01528181610e62015281816111bf015281816112ce01526113fd01526125c96000f3fe6080604052600436106100555760003560e01c8063013b2ff81461005a57806321e093b11461008a5780632405620a146100b557806354c49a2a146100f257806380801f841461012f578063a53fb10b1461015a575b600080fd5b610074600480360381019061006f9190611b65565b610197565b6040516100819190612098565b60405180910390f35b34801561009657600080fd5b5061009f61049e565b6040516100ac9190611ed0565b60405180910390f35b3480156100c157600080fd5b506100dc60048036038101906100d79190611ba5565b6104c2565b6040516100e99190612098565b60405180910390f35b3480156100fe57600080fd5b5061011960048036038101906101149190611c0c565b610a50565b6040516101269190612098565b60405180910390f35b34801561013b57600080fd5b50610144610e11565b6040516101519190611fab565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c9190611ba5565b611029565b60405161018e9190612098565b60405180910390f35b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156101ff576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600034141561023a576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600267ffffffffffffffff811115610257576102566123e4565b5b6040519080825280602002602001820160405280156102855781602001602082028036833780820191505090505b5090507f0000000000000000000000000000000000000000000000000000000000000000816000815181106102bd576102bc6123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061032c5761032b6123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637ff36ab53486858960c8426103b5919061223e565b6040518663ffffffff1660e01b81526004016103d494939291906120b3565b6000604051808303818588803b1580156103ed57600080fd5b505af1158015610401573d6000803e3d6000fd5b50505050506040513d6000823e3d601f19601f8201168201806040525081019061042b9190611c5f565b90506000816001845161043e9190612294565b8151811061044f5761044e6123b5565b5b602002602001015190507f87890b0a30955b1db16cc894fbe24779ae05d9f337bfe8b6dfc0809b5bf9da11348260405161048a9291906120ff565b60405180910390a180935050505092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061052a5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15610561576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082141561059c576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105c93330848673ffffffffffffffffffffffffffffffffffffffff166115f7909392919063ffffffff16565b6106147f0000000000000000000000000000000000000000000000000000000000000000838573ffffffffffffffffffffffffffffffffffffffff166116809092919063ffffffff16565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561079957600267ffffffffffffffff811115610685576106846123e4565b5b6040519080825280602002602001820160405280156106b35781602001602082028036833780820191505090505b5090507f0000000000000000000000000000000000000000000000000000000000000000816000815181106106eb576106ea6123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061075a576107596123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050610913565b600367ffffffffffffffff8111156107b4576107b36123e4565b5b6040519080825280602002602001820160405280156107e25781602001602082028036833780820191505090505b50905083816000815181106107fa576107f96123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610869576108686123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000000000000000000000000000000000000000000000816002815181106108d8576108d76123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166338ed17398588858b60c842610962919061223e565b6040518663ffffffff1660e01b8152600401610982959493929190612128565b600060405180830381600087803b15801561099c57600080fd5b505af11580156109b0573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906109d99190611c5f565b9050600081600184516109ec9190612294565b815181106109fd576109fc6123b5565b5b602002602001015190507f017190d3d99ee6d8dd0604ef1e71ff9802810c6485f57c9b2ed6169848dd119f868683604051610a3a93929190611f74565b60405180910390a1809350505050949350505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610ab8576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000821415610af3576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b403330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166115f7909392919063ffffffff16565b610bab7f0000000000000000000000000000000000000000000000000000000000000000837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166116809092919063ffffffff16565b6000600267ffffffffffffffff811115610bc857610bc76123e4565b5b604051908082528060200260200182016040528015610bf65781602001602082028036833780820191505090505b5090507f000000000000000000000000000000000000000000000000000000000000000081600081518110610c2e57610c2d6123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610c9d57610c9c6123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318cbafe58587858a60c842610d26919061223e565b6040518663ffffffff1660e01b8152600401610d46959493929190612128565b600060405180830381600087803b158015610d6057600080fd5b505af1158015610d74573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610d9d9190611c5f565b905060008160018451610db09190612294565b81518110610dc157610dc06123b5565b5b602002602001015190507f74e171117e91660f493740924d8bad0caf48dc4fbccb767fb05935397a2c17ae8582604051610dfc9291906120ff565b60405180910390a18093505050509392505050565b600080600267ffffffffffffffff811115610e2f57610e2e6123e4565b5b604051908082528060200260200182016040528015610e5d5781602001602082028036833780820191505090505b5090507f000000000000000000000000000000000000000000000000000000000000000081600081518110610e9557610e946123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610f0457610f036123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d06ca61f6001836040518363ffffffff1660e01b8152600401610f9a929190611fc6565b60006040518083038186803b158015610fb257600080fd5b505afa925050508015610fe857506040513d6000823e3d601f19601f82011682018060405250810190610fe59190611c5f565b60015b610ff6576000915050611026565b600081600184516110079190612294565b81518110611018576110176123b5565b5b602002602001015111925050505b90565b60008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806110915750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156110c8576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000821415611103576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111503330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166115f7909392919063ffffffff16565b6111bb7f0000000000000000000000000000000000000000000000000000000000000000837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166116809092919063ffffffff16565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561134057600267ffffffffffffffff81111561122c5761122b6123e4565b5b60405190808252806020026020018201604052801561125a5781602001602082028036833780820191505090505b5090507f000000000000000000000000000000000000000000000000000000000000000081600081518110611292576112916123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110611301576113006123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506114ba565b600367ffffffffffffffff81111561135b5761135a6123e4565b5b6040519080825280602002602001820160405280156113895781602001602082028036833780820191505090505b5090507f0000000000000000000000000000000000000000000000000000000000000000816000815181106113c1576113c06123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000000000000000000000000000000000000000000000816001815181106114305761142f6123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050838160028151811061147f5761147e6123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166338ed17398588858b60c842611509919061223e565b6040518663ffffffff1660e01b8152600401611529959493929190612128565b600060405180830381600087803b15801561154357600080fd5b505af1158015611557573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906115809190611c5f565b9050600081600184516115939190612294565b815181106115a4576115a36123b5565b5b602002602001015190507f0a7cb8f6e1d29e616c1209a3f418c17b3a9137005377f6dd072217b1ede2573b8686836040516115e193929190611f74565b60405180910390a1809350505050949350505050565b61167a846323b872dd60e01b85858560405160240161161893929190611f14565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506117de565b50505050565b6000811480611719575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b81526004016116c7929190611eeb565b60206040518083038186803b1580156116df57600080fd5b505afa1580156116f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117179190611cd5565b145b611758576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174f90612078565b60405180910390fd5b6117d98363095ea7b360e01b8484604051602401611777929190611f4b565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506117de565b505050565b6000611840826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166118a59092919063ffffffff16565b90506000815111156118a057808060200190518101906118609190611ca8565b61189f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189690612058565b60405180910390fd5b5b505050565b60606118b484846000856118bd565b90509392505050565b606082471015611902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f990612018565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161192b9190611eb9565b60006040518083038185875af1925050503d8060008114611968576040519150601f19603f3d011682016040523d82523d6000602084013e61196d565b606091505b509150915061197e8783838761198a565b92505050949350505050565b606083156119ed576000835114156119e5576119a585611a00565b6119e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119db90612038565b60405180910390fd5b5b8290506119f8565b6119f78383611a23565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600082511115611a365781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6a9190611ff6565b60405180910390fd5b6000611a86611a81846121a7565b612182565b90508083825260208201905082856020860282011115611aa957611aa8612418565b5b60005b85811015611ad95781611abf8882611b50565b845260208401935060208301925050600181019050611aac565b5050509392505050565b600081359050611af28161254e565b92915050565b600082601f830112611b0d57611b0c612413565b5b8151611b1d848260208601611a73565b91505092915050565b600081519050611b3581612565565b92915050565b600081359050611b4a8161257c565b92915050565b600081519050611b5f8161257c565b92915050565b60008060408385031215611b7c57611b7b612422565b5b6000611b8a85828601611ae3565b9250506020611b9b85828601611b3b565b9150509250929050565b60008060008060808587031215611bbf57611bbe612422565b5b6000611bcd87828801611ae3565b9450506020611bde87828801611b3b565b9350506040611bef87828801611ae3565b9250506060611c0087828801611b3b565b91505092959194509250565b600080600060608486031215611c2557611c24612422565b5b6000611c3386828701611ae3565b9350506020611c4486828701611b3b565b9250506040611c5586828701611b3b565b9150509250925092565b600060208284031215611c7557611c74612422565b5b600082015167ffffffffffffffff811115611c9357611c9261241d565b5b611c9f84828501611af8565b91505092915050565b600060208284031215611cbe57611cbd612422565b5b6000611ccc84828501611b26565b91505092915050565b600060208284031215611ceb57611cea612422565b5b6000611cf984828501611b50565b91505092915050565b6000611d0e8383611d1a565b60208301905092915050565b611d23816122c8565b82525050565b611d32816122c8565b82525050565b6000611d43826121e3565b611d4d8185612211565b9350611d58836121d3565b8060005b83811015611d89578151611d708882611d02565b9750611d7b83612204565b925050600181019050611d5c565b5085935050505092915050565b611d9f816122da565b82525050565b6000611db0826121ee565b611dba8185612222565b9350611dca818560208601612322565b80840191505092915050565b611ddf81612310565b82525050565b6000611df0826121f9565b611dfa818561222d565b9350611e0a818560208601612322565b611e1381612427565b840191505092915050565b6000611e2b60268361222d565b9150611e3682612438565b604082019050919050565b6000611e4e601d8361222d565b9150611e5982612487565b602082019050919050565b6000611e71602a8361222d565b9150611e7c826124b0565b604082019050919050565b6000611e9460368361222d565b9150611e9f826124ff565b604082019050919050565b611eb381612306565b82525050565b6000611ec58284611da5565b915081905092915050565b6000602082019050611ee56000830184611d29565b92915050565b6000604082019050611f006000830185611d29565b611f0d6020830184611d29565b9392505050565b6000606082019050611f296000830186611d29565b611f366020830185611d29565b611f436040830184611eaa565b949350505050565b6000604082019050611f606000830185611d29565b611f6d6020830184611eaa565b9392505050565b6000606082019050611f896000830186611d29565b611f966020830185611eaa565b611fa36040830184611eaa565b949350505050565b6000602082019050611fc06000830184611d96565b92915050565b6000604082019050611fdb6000830185611dd6565b8181036020830152611fed8184611d38565b90509392505050565b600060208201905081810360008301526120108184611de5565b905092915050565b6000602082019050818103600083015261203181611e1e565b9050919050565b6000602082019050818103600083015261205181611e41565b9050919050565b6000602082019050818103600083015261207181611e64565b9050919050565b6000602082019050818103600083015261209181611e87565b9050919050565b60006020820190506120ad6000830184611eaa565b92915050565b60006080820190506120c86000830187611eaa565b81810360208301526120da8186611d38565b90506120e96040830185611d29565b6120f66060830184611eaa565b95945050505050565b60006040820190506121146000830185611eaa565b6121216020830184611eaa565b9392505050565b600060a08201905061213d6000830188611eaa565b61214a6020830187611eaa565b818103604083015261215c8186611d38565b905061216b6060830185611d29565b6121786080830184611eaa565b9695505050505050565b600061218c61219d565b90506121988282612355565b919050565b6000604051905090565b600067ffffffffffffffff8211156121c2576121c16123e4565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061224982612306565b915061225483612306565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561228957612288612386565b5b828201905092915050565b600061229f82612306565b91506122aa83612306565b9250828210156122bd576122bc612386565b5b828203905092915050565b60006122d3826122e6565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061231b82612306565b9050919050565b60005b83811015612340578082015181840152602081019050612325565b8381111561234f576000848401525b50505050565b61235e82612427565b810181811067ffffffffffffffff8211171561237d5761237c6123e4565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b612557816122c8565b811461256257600080fd5b50565b61256e816122da565b811461257957600080fd5b50565b61258581612306565b811461259057600080fd5b5056fea264697066735822122043c2ef06b0d58aa4604eef6078aa0a569cff03f21dd48c315ad501590326c57264736f6c63430008070033", } // ZetaTokenConsumerUniV2ABI is the input ABI used to generate the binding from. diff --git a/pkg/contracts/evm/tools/zetatokenconsumeruniv2.strategy.sol/zetatokenconsumeruniv2errors.go b/v1/pkg/contracts/evm/tools/zetatokenconsumeruniv2.strategy.sol/zetatokenconsumeruniv2errors.go similarity index 100% rename from pkg/contracts/evm/tools/zetatokenconsumeruniv2.strategy.sol/zetatokenconsumeruniv2errors.go rename to v1/pkg/contracts/evm/tools/zetatokenconsumeruniv2.strategy.sol/zetatokenconsumeruniv2errors.go diff --git a/pkg/contracts/evm/tools/zetatokenconsumeruniv3.strategy.sol/weth9.go b/v1/pkg/contracts/evm/tools/zetatokenconsumeruniv3.strategy.sol/weth9.go similarity index 100% rename from pkg/contracts/evm/tools/zetatokenconsumeruniv3.strategy.sol/weth9.go rename to v1/pkg/contracts/evm/tools/zetatokenconsumeruniv3.strategy.sol/weth9.go diff --git a/pkg/contracts/evm/tools/zetatokenconsumeruniv3.strategy.sol/zetatokenconsumeruniv3.go b/v1/pkg/contracts/evm/tools/zetatokenconsumeruniv3.strategy.sol/zetatokenconsumeruniv3.go similarity index 99% rename from pkg/contracts/evm/tools/zetatokenconsumeruniv3.strategy.sol/zetatokenconsumeruniv3.go rename to v1/pkg/contracts/evm/tools/zetatokenconsumeruniv3.strategy.sol/zetatokenconsumeruniv3.go index f7af068c..619e9d8b 100644 --- a/pkg/contracts/evm/tools/zetatokenconsumeruniv3.strategy.sol/zetatokenconsumeruniv3.go +++ b/v1/pkg/contracts/evm/tools/zetatokenconsumeruniv3.strategy.sol/zetatokenconsumeruniv3.go @@ -32,7 +32,7 @@ var ( // ZetaTokenConsumerUniV3MetaData contains all meta data concerning the ZetaTokenConsumerUniV3 contract. var ZetaTokenConsumerUniV3MetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"zetaToken_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"uniswapV3Router_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"uniswapV3Factory_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"WETH9Address_\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"zetaPoolFee_\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"tokenPoolFee_\",\"type\":\"uint24\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ErrorSendingETH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InputCantBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyError\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"name\":\"EthExchangedForZeta\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"name\":\"TokenExchangedForZeta\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"name\":\"ZetaExchangedForEth\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"name\":\"ZetaExchangedForToken\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"WETH9Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destinationAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zetaTokenAmount\",\"type\":\"uint256\"}],\"name\":\"getEthFromZeta\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destinationAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"outputToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"zetaTokenAmount\",\"type\":\"uint256\"}],\"name\":\"getTokenFromZeta\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destinationAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"}],\"name\":\"getZetaFromEth\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destinationAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"inputToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"inputTokenAmount\",\"type\":\"uint256\"}],\"name\":\"getZetaFromToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hasZetaLiquidity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenPoolFee\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"uniswapV3Factory\",\"outputs\":[{\"internalType\":\"contractIUniswapV3Factory\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"uniswapV3Router\",\"outputs\":[{\"internalType\":\"contractISwapRouter\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zetaPoolFee\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zetaToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", - Bin: "0x6101406040523480156200001257600080fd5b50604051620029833803806200298383398181016040528101906200003891906200028a565b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161480620000a05750600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b80620000d85750600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80620001105750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1562000148576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508473ffffffffffffffffffffffffffffffffffffffff166101008173ffffffffffffffffffffffffffffffffffffffff1660601b815250508373ffffffffffffffffffffffffffffffffffffffff166101208173ffffffffffffffffffffffffffffffffffffffff1660601b815250508273ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508162ffffff1660808162ffffff1660e81b815250508062ffffff1660a08162ffffff1660e81b81525050505050505050620003a2565b6000815190506200026d816200036e565b92915050565b600081519050620002848162000388565b92915050565b60008060008060008060c08789031215620002aa57620002a962000369565b5b6000620002ba89828a016200025c565b9650506020620002cd89828a016200025c565b9550506040620002e089828a016200025c565b9450506060620002f389828a016200025c565b93505060806200030689828a0162000273565b92505060a06200031989828a0162000273565b9150509295509295509295565b600062000333826200033a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062ffffff82169050919050565b600080fd5b620003798162000326565b81146200038557600080fd5b50565b62000393816200035a565b81146200039f57600080fd5b50565b60805160e81c60a05160e81c60c05160601c60e05160601c6101005160601c6101205160601c6124ad620004d660003960008181610d900152610ddb01526000818161046f0152818161068f015281816107cd015281816108c2015281816109fd01528181610b6f0152818161115401526112b20152600081816103af0152818161056101528181610748015281816109b301528181610a1f01528181610a7301528181610e380152818161110a0152818161117601526111c90152600081816103730152818161070601528181610aaf01528181610c1c01528181610e170152818161120b01526113c10152600081816106e501528181610db4015261122c0152600081816103eb01528181610727015281816108e601528181610aeb01528181610e5901526111ea01526124ad6000f3fe6080604052600436106100a05760003560e01c806354c49a2a1161006457806354c49a2a1461019a5780635b549182146101d75780635d9dfdde1461020257806380801f841461022d578063a53fb10b14610258578063c469cf1414610295576100a7565b8063013b2ff8146100ac57806321e093b1146100dc5780632405620a146101075780632c76d7a6146101445780633cbd70051461016f576100a7565b366100a757005b600080fd5b6100c660048036038101906100c1919061190a565b6102c0565b6040516100d391906120a2565b60405180910390f35b3480156100e857600080fd5b506100f161055f565b6040516100fe9190611e44565b60405180910390f35b34801561011357600080fd5b5061012e6004803603810190610129919061194a565b610583565b60405161013b91906120a2565b60405180910390f35b34801561015057600080fd5b506101596108c0565b6040516101669190611f71565b60405180910390f35b34801561017b57600080fd5b506101846108e4565b6040516101919190612087565b60405180910390f35b3480156101a657600080fd5b506101c160048036038101906101bc91906119b1565b610908565b6040516101ce91906120a2565b60405180910390f35b3480156101e357600080fd5b506101ec610d8e565b6040516101f99190611f8c565b60405180910390f35b34801561020e57600080fd5b50610217610db2565b6040516102249190612087565b60405180910390f35b34801561023957600080fd5b50610242610dd6565b60405161024f9190611f56565b60405180910390f35b34801561026457600080fd5b5061027f600480360381019061027a919061194a565b610fc7565b60405161028c91906120a2565b60405180910390f35b3480156102a157600080fd5b506102aa6113bf565b6040516102b79190611e44565b60405180910390f35b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610328576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000341415610363576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006040518061010001604052807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000062ffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200160c84261043d9190612129565b8152602001348152602001848152602001600073ffffffffffffffffffffffffffffffffffffffff16815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663414bf38934846040518363ffffffff1660e01b81526004016104c7919061206b565b6020604051808303818588803b1580156104e057600080fd5b505af11580156104f4573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906105199190611a5e565b90507f87890b0a30955b1db16cc894fbe24779ae05d9f337bfe8b6dfc0809b5bf9da11348260405161054c9291906120bd565b60405180910390a1809250505092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806105eb5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15610622576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082141561065d576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61068a3330848673ffffffffffffffffffffffffffffffffffffffff166113e3909392919063ffffffff16565b6106d57f0000000000000000000000000000000000000000000000000000000000000000838573ffffffffffffffffffffffffffffffffffffffff1661146c9092919063ffffffff16565b60006040518060a00160405280857f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060405160200161077b959493929190611db9565b60405160208183030381529060405281526020018773ffffffffffffffffffffffffffffffffffffffff16815260200160c8426107b89190612129565b815260200184815260200186815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c04b8d59836040518263ffffffff1660e01b81526004016108249190612049565b602060405180830381600087803b15801561083e57600080fd5b505af1158015610852573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108769190611a5e565b90507f017190d3d99ee6d8dd0604ef1e71ff9802810c6485f57c9b2ed6169848dd119f8585836040516108ab93929190611f1f565b60405180910390a18092505050949350505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610970576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008214156109ab576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109f83330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166113e3909392919063ffffffff16565b610a637f0000000000000000000000000000000000000000000000000000000000000000837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661146c9092919063ffffffff16565b60006040518061010001604052807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000062ffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff16815260200160c842610b3d9190612129565b8152602001848152602001858152602001600073ffffffffffffffffffffffffffffffffffffffff16815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663414bf389836040518263ffffffff1660e01b8152600401610bc6919061206b565b602060405180830381600087803b158015610be057600080fd5b505af1158015610bf4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c189190611a5e565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b8152600401610c7391906120a2565b600060405180830381600087803b158015610c8d57600080fd5b505af1158015610ca1573d6000803e3d6000fd5b505050507f74e171117e91660f493740924d8bad0caf48dc4fbccb767fb05935397a2c17ae8482604051610cd69291906120bd565b60405180910390a160008673ffffffffffffffffffffffffffffffffffffffff1682604051610d0490611e2f565b60006040518083038185875af1925050503d8060008114610d41576040519150601f19603f3d011682016040523d82523d6000602084013e610d46565b606091505b5050905080610d81576040517f3794aeaf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8193505050509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16631698ee827f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006040518463ffffffff1660e01b8152600401610e9693929190611e88565b60206040518083038186803b158015610eae57600080fd5b505afa158015610ec2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee691906118dd565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f27576000915050610fc4565b600081905060008173ffffffffffffffffffffffffffffffffffffffff16631a6865026040518163ffffffff1660e01b815260040160206040518083038186803b158015610f7457600080fd5b505afa158015610f88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fac9190611a31565b6fffffffffffffffffffffffffffffffff1611925050505b90565b60008060009054906101000a900460ff161561100f576040517f29f745a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016000806101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806110905750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156110c7576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000821415611102576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61114f3330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166113e3909392919063ffffffff16565b6111ba7f0000000000000000000000000000000000000000000000000000000000000000837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661146c9092919063ffffffff16565b60006040518060a001604052807f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000089604051602001611260959493929190611db9565b60405160208183030381529060405281526020018773ffffffffffffffffffffffffffffffffffffffff16815260200160c84261129d9190612129565b815260200184815260200186815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c04b8d59836040518263ffffffff1660e01b81526004016113099190612049565b602060405180830381600087803b15801561132357600080fd5b505af1158015611337573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135b9190611a5e565b90507f0a7cb8f6e1d29e616c1209a3f418c17b3a9137005377f6dd072217b1ede2573b85858360405161139093929190611f1f565b60405180910390a1809250505060008060006101000a81548160ff021916908315150217905550949350505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b611466846323b872dd60e01b85858560405160240161140493929190611ebf565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506115ca565b50505050565b6000811480611505575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b81526004016114b3929190611e5f565b60206040518083038186803b1580156114cb57600080fd5b505afa1580156114df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115039190611a5e565b145b611544576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153b90612029565b60405180910390fd5b6115c58363095ea7b360e01b8484604051602401611563929190611ef6565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506115ca565b505050565b600061162c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166116919092919063ffffffff16565b905060008151111561168c578080602001905181019061164c9190611a04565b61168b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168290612009565b60405180910390fd5b5b505050565b60606116a084846000856116a9565b90509392505050565b6060824710156116ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e590611fc9565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516117179190611e18565b60006040518083038185875af1925050503d8060008114611754576040519150601f19603f3d011682016040523d82523d6000602084013e611759565b606091505b509150915061176a87838387611776565b92505050949350505050565b606083156117d9576000835114156117d157611791856117ec565b6117d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c790611fe9565b60405180910390fd5b5b8290506117e4565b6117e3838361180f565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156118225781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118569190611fa7565b60405180910390fd5b60008135905061186e8161241b565b92915050565b6000815190506118838161241b565b92915050565b60008151905061189881612432565b92915050565b6000815190506118ad81612449565b92915050565b6000813590506118c281612460565b92915050565b6000815190506118d781612460565b92915050565b6000602082840312156118f3576118f26122d2565b5b600061190184828501611874565b91505092915050565b60008060408385031215611921576119206122d2565b5b600061192f8582860161185f565b9250506020611940858286016118b3565b9150509250929050565b60008060008060808587031215611964576119636122d2565b5b60006119728782880161185f565b9450506020611983878288016118b3565b93505060406119948782880161185f565b92505060606119a5878288016118b3565b91505092959194509250565b6000806000606084860312156119ca576119c96122d2565b5b60006119d88682870161185f565b93505060206119e9868287016118b3565b92505060406119fa868287016118b3565b9150509250925092565b600060208284031215611a1a57611a196122d2565b5b6000611a2884828501611889565b91505092915050565b600060208284031215611a4757611a466122d2565b5b6000611a558482850161189e565b91505092915050565b600060208284031215611a7457611a736122d2565b5b6000611a82848285016118c8565b91505092915050565b611a948161217f565b82525050565b611aa38161217f565b82525050565b611aba611ab58261217f565b61226d565b82525050565b611ac981612191565b82525050565b6000611ada826120e6565b611ae481856120fc565b9350611af481856020860161223a565b611afd816122d7565b840191505092915050565b6000611b13826120e6565b611b1d818561210d565b9350611b2d81856020860161223a565b80840191505092915050565b611b42816121f2565b82525050565b611b5181612204565b82525050565b6000611b62826120f1565b611b6c8185612118565b9350611b7c81856020860161223a565b611b85816122d7565b840191505092915050565b6000611b9d602683612118565b9150611ba882612302565b604082019050919050565b6000611bc060008361210d565b9150611bcb82612351565b600082019050919050565b6000611be3601d83612118565b9150611bee82612354565b602082019050919050565b6000611c06602a83612118565b9150611c118261237d565b604082019050919050565b6000611c29603683612118565b9150611c34826123cc565b604082019050919050565b600060a0830160008301518482036000860152611c5c8282611acf565b9150506020830151611c716020860182611a8b565b506040830151611c846040860182611d9b565b506060830151611c976060860182611d9b565b506080830151611caa6080860182611d9b565b508091505092915050565b61010082016000820151611ccc6000850182611a8b565b506020820151611cdf6020850182611a8b565b506040820151611cf26040850182611d66565b506060820151611d056060850182611a8b565b506080820151611d186080850182611d9b565b5060a0820151611d2b60a0850182611d9b565b5060c0820151611d3e60c0850182611d9b565b5060e0820151611d5160e0850182611d57565b50505050565b611d60816121b9565b82525050565b611d6f816121d9565b82525050565b611d7e816121d9565b82525050565b611d95611d90826121d9565b612291565b82525050565b611da4816121e8565b82525050565b611db3816121e8565b82525050565b6000611dc58288611aa9565b601482019150611dd58287611d84565b600382019150611de58286611aa9565b601482019150611df58285611d84565b600382019150611e058284611aa9565b6014820191508190509695505050505050565b6000611e248284611b08565b915081905092915050565b6000611e3a82611bb3565b9150819050919050565b6000602082019050611e596000830184611a9a565b92915050565b6000604082019050611e746000830185611a9a565b611e816020830184611a9a565b9392505050565b6000606082019050611e9d6000830186611a9a565b611eaa6020830185611a9a565b611eb76040830184611d75565b949350505050565b6000606082019050611ed46000830186611a9a565b611ee16020830185611a9a565b611eee6040830184611daa565b949350505050565b6000604082019050611f0b6000830185611a9a565b611f186020830184611daa565b9392505050565b6000606082019050611f346000830186611a9a565b611f416020830185611daa565b611f4e6040830184611daa565b949350505050565b6000602082019050611f6b6000830184611ac0565b92915050565b6000602082019050611f866000830184611b39565b92915050565b6000602082019050611fa16000830184611b48565b92915050565b60006020820190508181036000830152611fc18184611b57565b905092915050565b60006020820190508181036000830152611fe281611b90565b9050919050565b6000602082019050818103600083015261200281611bd6565b9050919050565b6000602082019050818103600083015261202281611bf9565b9050919050565b6000602082019050818103600083015261204281611c1c565b9050919050565b600060208201905081810360008301526120638184611c3f565b905092915050565b6000610100820190506120816000830184611cb5565b92915050565b600060208201905061209c6000830184611d75565b92915050565b60006020820190506120b76000830184611daa565b92915050565b60006040820190506120d26000830185611daa565b6120df6020830184611daa565b9392505050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000612134826121e8565b915061213f836121e8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612174576121736122a3565b5b828201905092915050565b600061218a826121b9565b9050919050565b60008115159050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062ffffff82169050919050565b6000819050919050565b60006121fd82612216565b9050919050565b600061220f82612216565b9050919050565b600061222182612228565b9050919050565b6000612233826121b9565b9050919050565b60005b8381101561225857808201518184015260208101905061223d565b83811115612267576000848401525b50505050565b60006122788261227f565b9050919050565b600061228a826122f5565b9050919050565b600061229c826122e8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160e81b9050919050565b60008160601b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b50565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b6124248161217f565b811461242f57600080fd5b50565b61243b81612191565b811461244657600080fd5b50565b6124528161219d565b811461245d57600080fd5b50565b612469816121e8565b811461247457600080fd5b5056fea26469706673582212205b01f0993d1aca09a588ccda9fc1b26d546e37338ba85cdc92932152534aeee064736f6c63430008070033", + Bin: "0x6101406040523480156200001257600080fd5b50604051620029833803806200298383398181016040528101906200003891906200028a565b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161480620000a05750600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b80620000d85750600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80620001105750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1562000148576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508473ffffffffffffffffffffffffffffffffffffffff166101008173ffffffffffffffffffffffffffffffffffffffff1660601b815250508373ffffffffffffffffffffffffffffffffffffffff166101208173ffffffffffffffffffffffffffffffffffffffff1660601b815250508273ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508162ffffff1660808162ffffff1660e81b815250508062ffffff1660a08162ffffff1660e81b81525050505050505050620003a2565b6000815190506200026d816200036e565b92915050565b600081519050620002848162000388565b92915050565b60008060008060008060c08789031215620002aa57620002a962000369565b5b6000620002ba89828a016200025c565b9650506020620002cd89828a016200025c565b9550506040620002e089828a016200025c565b9450506060620002f389828a016200025c565b93505060806200030689828a0162000273565b92505060a06200031989828a0162000273565b9150509295509295509295565b600062000333826200033a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062ffffff82169050919050565b600080fd5b620003798162000326565b81146200038557600080fd5b50565b62000393816200035a565b81146200039f57600080fd5b50565b60805160e81c60a05160e81c60c05160601c60e05160601c6101005160601c6101205160601c6124ad620004d660003960008181610d900152610ddb01526000818161046f0152818161068f015281816107cd015281816108c2015281816109fd01528181610b6f0152818161115401526112b20152600081816103af0152818161056101528181610748015281816109b301528181610a1f01528181610a7301528181610e380152818161110a0152818161117601526111c90152600081816103730152818161070601528181610aaf01528181610c1c01528181610e170152818161120b01526113c10152600081816106e501528181610db4015261122c0152600081816103eb01528181610727015281816108e601528181610aeb01528181610e5901526111ea01526124ad6000f3fe6080604052600436106100a05760003560e01c806354c49a2a1161006457806354c49a2a1461019a5780635b549182146101d75780635d9dfdde1461020257806380801f841461022d578063a53fb10b14610258578063c469cf1414610295576100a7565b8063013b2ff8146100ac57806321e093b1146100dc5780632405620a146101075780632c76d7a6146101445780633cbd70051461016f576100a7565b366100a757005b600080fd5b6100c660048036038101906100c1919061190a565b6102c0565b6040516100d391906120a2565b60405180910390f35b3480156100e857600080fd5b506100f161055f565b6040516100fe9190611e44565b60405180910390f35b34801561011357600080fd5b5061012e6004803603810190610129919061194a565b610583565b60405161013b91906120a2565b60405180910390f35b34801561015057600080fd5b506101596108c0565b6040516101669190611f71565b60405180910390f35b34801561017b57600080fd5b506101846108e4565b6040516101919190612087565b60405180910390f35b3480156101a657600080fd5b506101c160048036038101906101bc91906119b1565b610908565b6040516101ce91906120a2565b60405180910390f35b3480156101e357600080fd5b506101ec610d8e565b6040516101f99190611f8c565b60405180910390f35b34801561020e57600080fd5b50610217610db2565b6040516102249190612087565b60405180910390f35b34801561023957600080fd5b50610242610dd6565b60405161024f9190611f56565b60405180910390f35b34801561026457600080fd5b5061027f600480360381019061027a919061194a565b610fc7565b60405161028c91906120a2565b60405180910390f35b3480156102a157600080fd5b506102aa6113bf565b6040516102b79190611e44565b60405180910390f35b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610328576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000341415610363576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006040518061010001604052807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000062ffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200160c84261043d9190612129565b8152602001348152602001848152602001600073ffffffffffffffffffffffffffffffffffffffff16815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663414bf38934846040518363ffffffff1660e01b81526004016104c7919061206b565b6020604051808303818588803b1580156104e057600080fd5b505af11580156104f4573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906105199190611a5e565b90507f87890b0a30955b1db16cc894fbe24779ae05d9f337bfe8b6dfc0809b5bf9da11348260405161054c9291906120bd565b60405180910390a1809250505092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806105eb5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15610622576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082141561065d576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61068a3330848673ffffffffffffffffffffffffffffffffffffffff166113e3909392919063ffffffff16565b6106d57f0000000000000000000000000000000000000000000000000000000000000000838573ffffffffffffffffffffffffffffffffffffffff1661146c9092919063ffffffff16565b60006040518060a00160405280857f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060405160200161077b959493929190611db9565b60405160208183030381529060405281526020018773ffffffffffffffffffffffffffffffffffffffff16815260200160c8426107b89190612129565b815260200184815260200186815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c04b8d59836040518263ffffffff1660e01b81526004016108249190612049565b602060405180830381600087803b15801561083e57600080fd5b505af1158015610852573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108769190611a5e565b90507f017190d3d99ee6d8dd0604ef1e71ff9802810c6485f57c9b2ed6169848dd119f8585836040516108ab93929190611f1f565b60405180910390a18092505050949350505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610970576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008214156109ab576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109f83330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166113e3909392919063ffffffff16565b610a637f0000000000000000000000000000000000000000000000000000000000000000837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661146c9092919063ffffffff16565b60006040518061010001604052807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000062ffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff16815260200160c842610b3d9190612129565b8152602001848152602001858152602001600073ffffffffffffffffffffffffffffffffffffffff16815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663414bf389836040518263ffffffff1660e01b8152600401610bc6919061206b565b602060405180830381600087803b158015610be057600080fd5b505af1158015610bf4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c189190611a5e565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b8152600401610c7391906120a2565b600060405180830381600087803b158015610c8d57600080fd5b505af1158015610ca1573d6000803e3d6000fd5b505050507f74e171117e91660f493740924d8bad0caf48dc4fbccb767fb05935397a2c17ae8482604051610cd69291906120bd565b60405180910390a160008673ffffffffffffffffffffffffffffffffffffffff1682604051610d0490611e2f565b60006040518083038185875af1925050503d8060008114610d41576040519150601f19603f3d011682016040523d82523d6000602084013e610d46565b606091505b5050905080610d81576040517f3794aeaf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8193505050509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16631698ee827f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006040518463ffffffff1660e01b8152600401610e9693929190611e88565b60206040518083038186803b158015610eae57600080fd5b505afa158015610ec2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee691906118dd565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f27576000915050610fc4565b600081905060008173ffffffffffffffffffffffffffffffffffffffff16631a6865026040518163ffffffff1660e01b815260040160206040518083038186803b158015610f7457600080fd5b505afa158015610f88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fac9190611a31565b6fffffffffffffffffffffffffffffffff1611925050505b90565b60008060009054906101000a900460ff161561100f576040517f29f745a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016000806101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806110905750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156110c7576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000821415611102576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61114f3330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166113e3909392919063ffffffff16565b6111ba7f0000000000000000000000000000000000000000000000000000000000000000837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661146c9092919063ffffffff16565b60006040518060a001604052807f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000089604051602001611260959493929190611db9565b60405160208183030381529060405281526020018773ffffffffffffffffffffffffffffffffffffffff16815260200160c84261129d9190612129565b815260200184815260200186815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c04b8d59836040518263ffffffff1660e01b81526004016113099190612049565b602060405180830381600087803b15801561132357600080fd5b505af1158015611337573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135b9190611a5e565b90507f0a7cb8f6e1d29e616c1209a3f418c17b3a9137005377f6dd072217b1ede2573b85858360405161139093929190611f1f565b60405180910390a1809250505060008060006101000a81548160ff021916908315150217905550949350505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b611466846323b872dd60e01b85858560405160240161140493929190611ebf565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506115ca565b50505050565b6000811480611505575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b81526004016114b3929190611e5f565b60206040518083038186803b1580156114cb57600080fd5b505afa1580156114df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115039190611a5e565b145b611544576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153b90612029565b60405180910390fd5b6115c58363095ea7b360e01b8484604051602401611563929190611ef6565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506115ca565b505050565b600061162c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166116919092919063ffffffff16565b905060008151111561168c578080602001905181019061164c9190611a04565b61168b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168290612009565b60405180910390fd5b5b505050565b60606116a084846000856116a9565b90509392505050565b6060824710156116ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e590611fc9565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516117179190611e18565b60006040518083038185875af1925050503d8060008114611754576040519150601f19603f3d011682016040523d82523d6000602084013e611759565b606091505b509150915061176a87838387611776565b92505050949350505050565b606083156117d9576000835114156117d157611791856117ec565b6117d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c790611fe9565b60405180910390fd5b5b8290506117e4565b6117e3838361180f565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156118225781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118569190611fa7565b60405180910390fd5b60008135905061186e8161241b565b92915050565b6000815190506118838161241b565b92915050565b60008151905061189881612432565b92915050565b6000815190506118ad81612449565b92915050565b6000813590506118c281612460565b92915050565b6000815190506118d781612460565b92915050565b6000602082840312156118f3576118f26122d2565b5b600061190184828501611874565b91505092915050565b60008060408385031215611921576119206122d2565b5b600061192f8582860161185f565b9250506020611940858286016118b3565b9150509250929050565b60008060008060808587031215611964576119636122d2565b5b60006119728782880161185f565b9450506020611983878288016118b3565b93505060406119948782880161185f565b92505060606119a5878288016118b3565b91505092959194509250565b6000806000606084860312156119ca576119c96122d2565b5b60006119d88682870161185f565b93505060206119e9868287016118b3565b92505060406119fa868287016118b3565b9150509250925092565b600060208284031215611a1a57611a196122d2565b5b6000611a2884828501611889565b91505092915050565b600060208284031215611a4757611a466122d2565b5b6000611a558482850161189e565b91505092915050565b600060208284031215611a7457611a736122d2565b5b6000611a82848285016118c8565b91505092915050565b611a948161217f565b82525050565b611aa38161217f565b82525050565b611aba611ab58261217f565b61226d565b82525050565b611ac981612191565b82525050565b6000611ada826120e6565b611ae481856120fc565b9350611af481856020860161223a565b611afd816122d7565b840191505092915050565b6000611b13826120e6565b611b1d818561210d565b9350611b2d81856020860161223a565b80840191505092915050565b611b42816121f2565b82525050565b611b5181612204565b82525050565b6000611b62826120f1565b611b6c8185612118565b9350611b7c81856020860161223a565b611b85816122d7565b840191505092915050565b6000611b9d602683612118565b9150611ba882612302565b604082019050919050565b6000611bc060008361210d565b9150611bcb82612351565b600082019050919050565b6000611be3601d83612118565b9150611bee82612354565b602082019050919050565b6000611c06602a83612118565b9150611c118261237d565b604082019050919050565b6000611c29603683612118565b9150611c34826123cc565b604082019050919050565b600060a0830160008301518482036000860152611c5c8282611acf565b9150506020830151611c716020860182611a8b565b506040830151611c846040860182611d9b565b506060830151611c976060860182611d9b565b506080830151611caa6080860182611d9b565b508091505092915050565b61010082016000820151611ccc6000850182611a8b565b506020820151611cdf6020850182611a8b565b506040820151611cf26040850182611d66565b506060820151611d056060850182611a8b565b506080820151611d186080850182611d9b565b5060a0820151611d2b60a0850182611d9b565b5060c0820151611d3e60c0850182611d9b565b5060e0820151611d5160e0850182611d57565b50505050565b611d60816121b9565b82525050565b611d6f816121d9565b82525050565b611d7e816121d9565b82525050565b611d95611d90826121d9565b612291565b82525050565b611da4816121e8565b82525050565b611db3816121e8565b82525050565b6000611dc58288611aa9565b601482019150611dd58287611d84565b600382019150611de58286611aa9565b601482019150611df58285611d84565b600382019150611e058284611aa9565b6014820191508190509695505050505050565b6000611e248284611b08565b915081905092915050565b6000611e3a82611bb3565b9150819050919050565b6000602082019050611e596000830184611a9a565b92915050565b6000604082019050611e746000830185611a9a565b611e816020830184611a9a565b9392505050565b6000606082019050611e9d6000830186611a9a565b611eaa6020830185611a9a565b611eb76040830184611d75565b949350505050565b6000606082019050611ed46000830186611a9a565b611ee16020830185611a9a565b611eee6040830184611daa565b949350505050565b6000604082019050611f0b6000830185611a9a565b611f186020830184611daa565b9392505050565b6000606082019050611f346000830186611a9a565b611f416020830185611daa565b611f4e6040830184611daa565b949350505050565b6000602082019050611f6b6000830184611ac0565b92915050565b6000602082019050611f866000830184611b39565b92915050565b6000602082019050611fa16000830184611b48565b92915050565b60006020820190508181036000830152611fc18184611b57565b905092915050565b60006020820190508181036000830152611fe281611b90565b9050919050565b6000602082019050818103600083015261200281611bd6565b9050919050565b6000602082019050818103600083015261202281611bf9565b9050919050565b6000602082019050818103600083015261204281611c1c565b9050919050565b600060208201905081810360008301526120638184611c3f565b905092915050565b6000610100820190506120816000830184611cb5565b92915050565b600060208201905061209c6000830184611d75565b92915050565b60006020820190506120b76000830184611daa565b92915050565b60006040820190506120d26000830185611daa565b6120df6020830184611daa565b9392505050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000612134826121e8565b915061213f836121e8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612174576121736122a3565b5b828201905092915050565b600061218a826121b9565b9050919050565b60008115159050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062ffffff82169050919050565b6000819050919050565b60006121fd82612216565b9050919050565b600061220f82612216565b9050919050565b600061222182612228565b9050919050565b6000612233826121b9565b9050919050565b60005b8381101561225857808201518184015260208101905061223d565b83811115612267576000848401525b50505050565b60006122788261227f565b9050919050565b600061228a826122f5565b9050919050565b600061229c826122e8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160e81b9050919050565b60008160601b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b50565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b6124248161217f565b811461242f57600080fd5b50565b61243b81612191565b811461244657600080fd5b50565b6124528161219d565b811461245d57600080fd5b50565b612469816121e8565b811461247457600080fd5b5056fea2646970667358221220c207c922259dc7e5a2e16505dd6095616db7c385800d654ff7d82add8972c36764736f6c63430008070033", } // ZetaTokenConsumerUniV3ABI is the input ABI used to generate the binding from. diff --git a/pkg/contracts/evm/tools/zetatokenconsumeruniv3.strategy.sol/zetatokenconsumeruniv3errors.go b/v1/pkg/contracts/evm/tools/zetatokenconsumeruniv3.strategy.sol/zetatokenconsumeruniv3errors.go similarity index 100% rename from pkg/contracts/evm/tools/zetatokenconsumeruniv3.strategy.sol/zetatokenconsumeruniv3errors.go rename to v1/pkg/contracts/evm/tools/zetatokenconsumeruniv3.strategy.sol/zetatokenconsumeruniv3errors.go diff --git a/pkg/contracts/evm/tools/zetatokenconsumerzevm.strategy.sol/zetatokenconsumerzevm.go b/v1/pkg/contracts/evm/tools/zetatokenconsumerzevm.strategy.sol/zetatokenconsumerzevm.go similarity index 99% rename from pkg/contracts/evm/tools/zetatokenconsumerzevm.strategy.sol/zetatokenconsumerzevm.go rename to v1/pkg/contracts/evm/tools/zetatokenconsumerzevm.strategy.sol/zetatokenconsumerzevm.go index 1bc6f1a8..fcf406ff 100644 --- a/pkg/contracts/evm/tools/zetatokenconsumerzevm.strategy.sol/zetatokenconsumerzevm.go +++ b/v1/pkg/contracts/evm/tools/zetatokenconsumerzevm.strategy.sol/zetatokenconsumerzevm.go @@ -32,7 +32,7 @@ var ( // ZetaTokenConsumerZEVMMetaData contains all meta data concerning the ZetaTokenConsumerZEVM contract. var ZetaTokenConsumerZEVMMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"WETH9Address_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"uniswapV2Router_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ErrorSendingETH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InputCantBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InputCantBeZeta\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidForZEVM\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnoughValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyWZETAAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OutputCantBeZeta\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyError\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"name\":\"EthExchangedForZeta\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"name\":\"TokenExchangedForZeta\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"name\":\"ZetaExchangedForEth\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"name\":\"ZetaExchangedForToken\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"WETH9Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destinationAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"zetaTokenAmount\",\"type\":\"uint256\"}],\"name\":\"getEthFromZeta\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destinationAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"outputToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"zetaTokenAmount\",\"type\":\"uint256\"}],\"name\":\"getTokenFromZeta\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destinationAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"}],\"name\":\"getZetaFromEth\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destinationAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"inputToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"inputTokenAmount\",\"type\":\"uint256\"}],\"name\":\"getZetaFromToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hasZetaLiquidity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", - Bin: "0x60c06040523480156200001157600080fd5b506040516200220938038062002209833981810160405281019062000037919062000164565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806200009f5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15620000d7576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b815250505050620001fe565b6000815190506200015e81620001e4565b92915050565b600080604083850312156200017e576200017d620001df565b5b60006200018e858286016200014d565b9250506020620001a1858286016200014d565b9150509250929050565b6000620001b882620001bf565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b620001ef81620001ab565b8114620001fb57600080fd5b50565b60805160601c60a05160601c611f7e6200028b600039600081816105a4015281816106fa01528181610cb50152610e2b0152600081816060015281816103060152818161038c015281816104ee01528181610689015281816109180152818161095f01528181610bdf01528181610c6b01528181610cd701528181610d6b0152610f660152611f7e6000f3fe6080604052600436106100595760003560e01c8063013b2ff8146100ea5780632405620a1461011a57806354c49a2a1461015757806380801f8414610194578063a53fb10b146101bf578063c469cf14146101fc576100e5565b366100e5577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146100e3576040517f290ee5a500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b005b600080fd5b61010460048036038101906100ff919061157c565b610227565b6040516101119190611aa8565b60405180910390f35b34801561012657600080fd5b50610141600480360381019061013c91906115bc565b610412565b60405161014e9190611aa8565b60405180910390f35b34801561016357600080fd5b5061017e60048036038101906101799190611623565b610833565b60405161018b9190611aa8565b60405180910390f35b3480156101a057600080fd5b506101a9610acf565b6040516101b691906119eb565b60405180910390f35b3480156101cb57600080fd5b506101e660048036038101906101e191906115bc565b610b03565b6040516101f39190611aa8565b60405180910390f35b34801561020857600080fd5b50610211610f64565b60405161021e9190611910565b60405180910390f35b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561028f576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60003414156102ca576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81341015610304576040517fe2f844a000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561036c57600080fd5b505af1158015610380573d6000803e3d6000fd5b50505050506103d083347f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610f889092919063ffffffff16565b7f87890b0a30955b1db16cc894fbe24779ae05d9f337bfe8b6dfc0809b5bf9da113434604051610401929190611ac3565b60405180910390a134905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061047a5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156104b1576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008214156104ec576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610572576040517f6edfe50500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61059f3330848673ffffffffffffffffffffffffffffffffffffffff1661100e909392919063ffffffff16565b6105ea7f0000000000000000000000000000000000000000000000000000000000000000838573ffffffffffffffffffffffffffffffffffffffff166110979092919063ffffffff16565b6000600267ffffffffffffffff81111561060757610606611d96565b5b6040519080825280602002602001820160405280156106355781602001602082028036833780820191505090505b509050838160008151811061064d5761064c611d67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000000000000000000000000000000000000000000000816001815181106106bc576106bb611d67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166338ed17398588858b60c8426107459190611c02565b6040518663ffffffff1660e01b8152600401610765959493929190611aec565b600060405180830381600087803b15801561077f57600080fd5b505af1158015610793573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906107bc9190611676565b9050600081600184516107cf9190611c58565b815181106107e0576107df611d67565b5b602002602001015190507f017190d3d99ee6d8dd0604ef1e71ff9802810c6485f57c9b2ed6169848dd119f86868360405161081d939291906119b4565b60405180910390a1809350505050949350505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561089b576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008214156108d6576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82821015610910576040517fe2f844a000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61095d3330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661100e909392919063ffffffff16565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b81526004016109b69190611aa8565b600060405180830381600087803b1580156109d057600080fd5b505af11580156109e4573d6000803e3d6000fd5b505050507f74e171117e91660f493740924d8bad0caf48dc4fbccb767fb05935397a2c17ae8283604051610a19929190611ac3565b60405180910390a160008473ffffffffffffffffffffffffffffffffffffffff1683604051610a47906118fb565b60006040518083038185875af1925050503d8060008114610a84576040519150601f19603f3d011682016040523d82523d6000602084013e610a89565b606091505b5050905080610ac4576040517f3794aeaf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b829150509392505050565b60006040517f0e6a82b100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610b6b5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15610ba2576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000821415610bdd576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c63576040517f8c51927900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610cb03330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661100e909392919063ffffffff16565b610d1b7f0000000000000000000000000000000000000000000000000000000000000000837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166110979092919063ffffffff16565b6000600267ffffffffffffffff811115610d3857610d37611d96565b5b604051908082528060200260200182016040528015610d665781602001602082028036833780820191505090505b5090507f000000000000000000000000000000000000000000000000000000000000000081600081518110610d9e57610d9d611d67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508381600181518110610ded57610dec611d67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166338ed17398588858b60c842610e769190611c02565b6040518663ffffffff1660e01b8152600401610e96959493929190611aec565b600060405180830381600087803b158015610eb057600080fd5b505af1158015610ec4573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610eed9190611676565b905060008160018451610f009190611c58565b81518110610f1157610f10611d67565b5b602002602001015190507f0a7cb8f6e1d29e616c1209a3f418c17b3a9137005377f6dd072217b1ede2573b868683604051610f4e939291906119b4565b60405180910390a1809350505050949350505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6110098363a9059cbb60e01b8484604051602401610fa792919061198b565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506111f5565b505050565b611091846323b872dd60e01b85858560405160240161102f93929190611954565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506111f5565b50505050565b6000811480611130575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b81526004016110de92919061192b565b60206040518083038186803b1580156110f657600080fd5b505afa15801561110a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112e91906116ec565b145b61116f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116690611a88565b60405180910390fd5b6111f08363095ea7b360e01b848460405160240161118e92919061198b565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506111f5565b505050565b6000611257826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166112bc9092919063ffffffff16565b90506000815111156112b7578080602001905181019061127791906116bf565b6112b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ad90611a68565b60405180910390fd5b5b505050565b60606112cb84846000856112d4565b90509392505050565b606082471015611319576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131090611a28565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161134291906118e4565b60006040518083038185875af1925050503d806000811461137f576040519150601f19603f3d011682016040523d82523d6000602084013e611384565b606091505b5091509150611395878383876113a1565b92505050949350505050565b60608315611404576000835114156113fc576113bc85611417565b6113fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f290611a48565b60405180910390fd5b5b82905061140f565b61140e838361143a565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60008251111561144d5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114819190611a06565b60405180910390fd5b600061149d61149884611b6b565b611b46565b905080838252602082019050828560208602820111156114c0576114bf611dca565b5b60005b858110156114f057816114d68882611567565b8452602084019350602083019250506001810190506114c3565b5050509392505050565b60008135905061150981611f03565b92915050565b600082601f83011261152457611523611dc5565b5b815161153484826020860161148a565b91505092915050565b60008151905061154c81611f1a565b92915050565b60008135905061156181611f31565b92915050565b60008151905061157681611f31565b92915050565b6000806040838503121561159357611592611dd4565b5b60006115a1858286016114fa565b92505060206115b285828601611552565b9150509250929050565b600080600080608085870312156115d6576115d5611dd4565b5b60006115e4878288016114fa565b94505060206115f587828801611552565b9350506040611606878288016114fa565b925050606061161787828801611552565b91505092959194509250565b60008060006060848603121561163c5761163b611dd4565b5b600061164a868287016114fa565b935050602061165b86828701611552565b925050604061166c86828701611552565b9150509250925092565b60006020828403121561168c5761168b611dd4565b5b600082015167ffffffffffffffff8111156116aa576116a9611dcf565b5b6116b68482850161150f565b91505092915050565b6000602082840312156116d5576116d4611dd4565b5b60006116e38482850161153d565b91505092915050565b60006020828403121561170257611701611dd4565b5b600061171084828501611567565b91505092915050565b60006117258383611731565b60208301905092915050565b61173a81611c8c565b82525050565b61174981611c8c565b82525050565b600061175a82611ba7565b6117648185611bd5565b935061176f83611b97565b8060005b838110156117a05781516117878882611719565b975061179283611bc8565b925050600181019050611773565b5085935050505092915050565b6117b681611c9e565b82525050565b60006117c782611bb2565b6117d18185611be6565b93506117e1818560208601611cd4565b80840191505092915050565b60006117f882611bbd565b6118028185611bf1565b9350611812818560208601611cd4565b61181b81611dd9565b840191505092915050565b6000611833602683611bf1565b915061183e82611dea565b604082019050919050565b6000611856600083611be6565b915061186182611e39565b600082019050919050565b6000611879601d83611bf1565b915061188482611e3c565b602082019050919050565b600061189c602a83611bf1565b91506118a782611e65565b604082019050919050565b60006118bf603683611bf1565b91506118ca82611eb4565b604082019050919050565b6118de81611cca565b82525050565b60006118f082846117bc565b915081905092915050565b600061190682611849565b9150819050919050565b60006020820190506119256000830184611740565b92915050565b60006040820190506119406000830185611740565b61194d6020830184611740565b9392505050565b60006060820190506119696000830186611740565b6119766020830185611740565b61198360408301846118d5565b949350505050565b60006040820190506119a06000830185611740565b6119ad60208301846118d5565b9392505050565b60006060820190506119c96000830186611740565b6119d660208301856118d5565b6119e360408301846118d5565b949350505050565b6000602082019050611a0060008301846117ad565b92915050565b60006020820190508181036000830152611a2081846117ed565b905092915050565b60006020820190508181036000830152611a4181611826565b9050919050565b60006020820190508181036000830152611a618161186c565b9050919050565b60006020820190508181036000830152611a818161188f565b9050919050565b60006020820190508181036000830152611aa1816118b2565b9050919050565b6000602082019050611abd60008301846118d5565b92915050565b6000604082019050611ad860008301856118d5565b611ae560208301846118d5565b9392505050565b600060a082019050611b0160008301886118d5565b611b0e60208301876118d5565b8181036040830152611b20818661174f565b9050611b2f6060830185611740565b611b3c60808301846118d5565b9695505050505050565b6000611b50611b61565b9050611b5c8282611d07565b919050565b6000604051905090565b600067ffffffffffffffff821115611b8657611b85611d96565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000611c0d82611cca565b9150611c1883611cca565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611c4d57611c4c611d38565b5b828201905092915050565b6000611c6382611cca565b9150611c6e83611cca565b925082821015611c8157611c80611d38565b5b828203905092915050565b6000611c9782611caa565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b83811015611cf2578082015181840152602081019050611cd7565b83811115611d01576000848401525b50505050565b611d1082611dd9565b810181811067ffffffffffffffff82111715611d2f57611d2e611d96565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b50565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b611f0c81611c8c565b8114611f1757600080fd5b50565b611f2381611c9e565b8114611f2e57600080fd5b50565b611f3a81611cca565b8114611f4557600080fd5b5056fea26469706673582212208d9034aea3c8399eb52d47a1eab88ad2e74879d4a2d03d208a0237686f63877a64736f6c63430008070033", + Bin: "0x60c06040523480156200001157600080fd5b506040516200220938038062002209833981810160405281019062000037919062000164565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806200009f5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15620000d7576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b815250505050620001fe565b6000815190506200015e81620001e4565b92915050565b600080604083850312156200017e576200017d620001df565b5b60006200018e858286016200014d565b9250506020620001a1858286016200014d565b9150509250929050565b6000620001b882620001bf565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b620001ef81620001ab565b8114620001fb57600080fd5b50565b60805160601c60a05160601c611f7e6200028b600039600081816105a4015281816106fa01528181610cb50152610e2b0152600081816060015281816103060152818161038c015281816104ee01528181610689015281816109180152818161095f01528181610bdf01528181610c6b01528181610cd701528181610d6b0152610f660152611f7e6000f3fe6080604052600436106100595760003560e01c8063013b2ff8146100ea5780632405620a1461011a57806354c49a2a1461015757806380801f8414610194578063a53fb10b146101bf578063c469cf14146101fc576100e5565b366100e5577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146100e3576040517f290ee5a500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b005b600080fd5b61010460048036038101906100ff919061157c565b610227565b6040516101119190611aa8565b60405180910390f35b34801561012657600080fd5b50610141600480360381019061013c91906115bc565b610412565b60405161014e9190611aa8565b60405180910390f35b34801561016357600080fd5b5061017e60048036038101906101799190611623565b610833565b60405161018b9190611aa8565b60405180910390f35b3480156101a057600080fd5b506101a9610acf565b6040516101b691906119eb565b60405180910390f35b3480156101cb57600080fd5b506101e660048036038101906101e191906115bc565b610b03565b6040516101f39190611aa8565b60405180910390f35b34801561020857600080fd5b50610211610f64565b60405161021e9190611910565b60405180910390f35b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561028f576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60003414156102ca576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81341015610304576040517fe2f844a000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561036c57600080fd5b505af1158015610380573d6000803e3d6000fd5b50505050506103d083347f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610f889092919063ffffffff16565b7f87890b0a30955b1db16cc894fbe24779ae05d9f337bfe8b6dfc0809b5bf9da113434604051610401929190611ac3565b60405180910390a134905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061047a5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156104b1576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008214156104ec576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610572576040517f6edfe50500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61059f3330848673ffffffffffffffffffffffffffffffffffffffff1661100e909392919063ffffffff16565b6105ea7f0000000000000000000000000000000000000000000000000000000000000000838573ffffffffffffffffffffffffffffffffffffffff166110979092919063ffffffff16565b6000600267ffffffffffffffff81111561060757610606611d96565b5b6040519080825280602002602001820160405280156106355781602001602082028036833780820191505090505b509050838160008151811061064d5761064c611d67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000000000000000000000000000000000000000000000816001815181106106bc576106bb611d67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166338ed17398588858b60c8426107459190611c02565b6040518663ffffffff1660e01b8152600401610765959493929190611aec565b600060405180830381600087803b15801561077f57600080fd5b505af1158015610793573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906107bc9190611676565b9050600081600184516107cf9190611c58565b815181106107e0576107df611d67565b5b602002602001015190507f017190d3d99ee6d8dd0604ef1e71ff9802810c6485f57c9b2ed6169848dd119f86868360405161081d939291906119b4565b60405180910390a1809350505050949350505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561089b576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008214156108d6576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82821015610910576040517fe2f844a000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61095d3330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661100e909392919063ffffffff16565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b81526004016109b69190611aa8565b600060405180830381600087803b1580156109d057600080fd5b505af11580156109e4573d6000803e3d6000fd5b505050507f74e171117e91660f493740924d8bad0caf48dc4fbccb767fb05935397a2c17ae8283604051610a19929190611ac3565b60405180910390a160008473ffffffffffffffffffffffffffffffffffffffff1683604051610a47906118fb565b60006040518083038185875af1925050503d8060008114610a84576040519150601f19603f3d011682016040523d82523d6000602084013e610a89565b606091505b5050905080610ac4576040517f3794aeaf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b829150509392505050565b60006040517f0e6a82b100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610b6b5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15610ba2576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000821415610bdd576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c63576040517f8c51927900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610cb03330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661100e909392919063ffffffff16565b610d1b7f0000000000000000000000000000000000000000000000000000000000000000837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166110979092919063ffffffff16565b6000600267ffffffffffffffff811115610d3857610d37611d96565b5b604051908082528060200260200182016040528015610d665781602001602082028036833780820191505090505b5090507f000000000000000000000000000000000000000000000000000000000000000081600081518110610d9e57610d9d611d67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508381600181518110610ded57610dec611d67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166338ed17398588858b60c842610e769190611c02565b6040518663ffffffff1660e01b8152600401610e96959493929190611aec565b600060405180830381600087803b158015610eb057600080fd5b505af1158015610ec4573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610eed9190611676565b905060008160018451610f009190611c58565b81518110610f1157610f10611d67565b5b602002602001015190507f0a7cb8f6e1d29e616c1209a3f418c17b3a9137005377f6dd072217b1ede2573b868683604051610f4e939291906119b4565b60405180910390a1809350505050949350505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6110098363a9059cbb60e01b8484604051602401610fa792919061198b565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506111f5565b505050565b611091846323b872dd60e01b85858560405160240161102f93929190611954565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506111f5565b50505050565b6000811480611130575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b81526004016110de92919061192b565b60206040518083038186803b1580156110f657600080fd5b505afa15801561110a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112e91906116ec565b145b61116f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116690611a88565b60405180910390fd5b6111f08363095ea7b360e01b848460405160240161118e92919061198b565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506111f5565b505050565b6000611257826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166112bc9092919063ffffffff16565b90506000815111156112b7578080602001905181019061127791906116bf565b6112b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ad90611a68565b60405180910390fd5b5b505050565b60606112cb84846000856112d4565b90509392505050565b606082471015611319576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131090611a28565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161134291906118e4565b60006040518083038185875af1925050503d806000811461137f576040519150601f19603f3d011682016040523d82523d6000602084013e611384565b606091505b5091509150611395878383876113a1565b92505050949350505050565b60608315611404576000835114156113fc576113bc85611417565b6113fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f290611a48565b60405180910390fd5b5b82905061140f565b61140e838361143a565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60008251111561144d5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114819190611a06565b60405180910390fd5b600061149d61149884611b6b565b611b46565b905080838252602082019050828560208602820111156114c0576114bf611dca565b5b60005b858110156114f057816114d68882611567565b8452602084019350602083019250506001810190506114c3565b5050509392505050565b60008135905061150981611f03565b92915050565b600082601f83011261152457611523611dc5565b5b815161153484826020860161148a565b91505092915050565b60008151905061154c81611f1a565b92915050565b60008135905061156181611f31565b92915050565b60008151905061157681611f31565b92915050565b6000806040838503121561159357611592611dd4565b5b60006115a1858286016114fa565b92505060206115b285828601611552565b9150509250929050565b600080600080608085870312156115d6576115d5611dd4565b5b60006115e4878288016114fa565b94505060206115f587828801611552565b9350506040611606878288016114fa565b925050606061161787828801611552565b91505092959194509250565b60008060006060848603121561163c5761163b611dd4565b5b600061164a868287016114fa565b935050602061165b86828701611552565b925050604061166c86828701611552565b9150509250925092565b60006020828403121561168c5761168b611dd4565b5b600082015167ffffffffffffffff8111156116aa576116a9611dcf565b5b6116b68482850161150f565b91505092915050565b6000602082840312156116d5576116d4611dd4565b5b60006116e38482850161153d565b91505092915050565b60006020828403121561170257611701611dd4565b5b600061171084828501611567565b91505092915050565b60006117258383611731565b60208301905092915050565b61173a81611c8c565b82525050565b61174981611c8c565b82525050565b600061175a82611ba7565b6117648185611bd5565b935061176f83611b97565b8060005b838110156117a05781516117878882611719565b975061179283611bc8565b925050600181019050611773565b5085935050505092915050565b6117b681611c9e565b82525050565b60006117c782611bb2565b6117d18185611be6565b93506117e1818560208601611cd4565b80840191505092915050565b60006117f882611bbd565b6118028185611bf1565b9350611812818560208601611cd4565b61181b81611dd9565b840191505092915050565b6000611833602683611bf1565b915061183e82611dea565b604082019050919050565b6000611856600083611be6565b915061186182611e39565b600082019050919050565b6000611879601d83611bf1565b915061188482611e3c565b602082019050919050565b600061189c602a83611bf1565b91506118a782611e65565b604082019050919050565b60006118bf603683611bf1565b91506118ca82611eb4565b604082019050919050565b6118de81611cca565b82525050565b60006118f082846117bc565b915081905092915050565b600061190682611849565b9150819050919050565b60006020820190506119256000830184611740565b92915050565b60006040820190506119406000830185611740565b61194d6020830184611740565b9392505050565b60006060820190506119696000830186611740565b6119766020830185611740565b61198360408301846118d5565b949350505050565b60006040820190506119a06000830185611740565b6119ad60208301846118d5565b9392505050565b60006060820190506119c96000830186611740565b6119d660208301856118d5565b6119e360408301846118d5565b949350505050565b6000602082019050611a0060008301846117ad565b92915050565b60006020820190508181036000830152611a2081846117ed565b905092915050565b60006020820190508181036000830152611a4181611826565b9050919050565b60006020820190508181036000830152611a618161186c565b9050919050565b60006020820190508181036000830152611a818161188f565b9050919050565b60006020820190508181036000830152611aa1816118b2565b9050919050565b6000602082019050611abd60008301846118d5565b92915050565b6000604082019050611ad860008301856118d5565b611ae560208301846118d5565b9392505050565b600060a082019050611b0160008301886118d5565b611b0e60208301876118d5565b8181036040830152611b20818661174f565b9050611b2f6060830185611740565b611b3c60808301846118d5565b9695505050505050565b6000611b50611b61565b9050611b5c8282611d07565b919050565b6000604051905090565b600067ffffffffffffffff821115611b8657611b85611d96565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000611c0d82611cca565b9150611c1883611cca565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611c4d57611c4c611d38565b5b828201905092915050565b6000611c6382611cca565b9150611c6e83611cca565b925082821015611c8157611c80611d38565b5b828203905092915050565b6000611c9782611caa565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b83811015611cf2578082015181840152602081019050611cd7565b83811115611d01576000848401525b50505050565b611d1082611dd9565b810181811067ffffffffffffffff82111715611d2f57611d2e611d96565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b50565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b611f0c81611c8c565b8114611f1757600080fd5b50565b611f2381611c9e565b8114611f2e57600080fd5b50565b611f3a81611cca565b8114611f4557600080fd5b5056fea26469706673582212209d699fd174ff021ab8955aa2ab41ef5c683b288e3873f97ef4d0c4732ceebae264736f6c63430008070033", } // ZetaTokenConsumerZEVMABI is the input ABI used to generate the binding from. diff --git a/pkg/contracts/evm/tools/zetatokenconsumerzevm.strategy.sol/zetatokenconsumerzevmerrors.go b/v1/pkg/contracts/evm/tools/zetatokenconsumerzevm.strategy.sol/zetatokenconsumerzevmerrors.go similarity index 100% rename from pkg/contracts/evm/tools/zetatokenconsumerzevm.strategy.sol/zetatokenconsumerzevmerrors.go rename to v1/pkg/contracts/evm/tools/zetatokenconsumerzevm.strategy.sol/zetatokenconsumerzevmerrors.go diff --git a/pkg/contracts/evm/zeta.eth.sol/zetaeth.go b/v1/pkg/contracts/evm/zeta.eth.sol/zetaeth.go similarity index 100% rename from pkg/contracts/evm/zeta.eth.sol/zetaeth.go rename to v1/pkg/contracts/evm/zeta.eth.sol/zetaeth.go diff --git a/pkg/contracts/evm/zeta.non-eth.sol/zetanoneth.go b/v1/pkg/contracts/evm/zeta.non-eth.sol/zetanoneth.go similarity index 99% rename from pkg/contracts/evm/zeta.non-eth.sol/zetanoneth.go rename to v1/pkg/contracts/evm/zeta.non-eth.sol/zetanoneth.go index 2beabe2c..24198413 100644 --- a/pkg/contracts/evm/zeta.non-eth.sol/zetanoneth.go +++ b/v1/pkg/contracts/evm/zeta.non-eth.sol/zetanoneth.go @@ -32,7 +32,7 @@ var ( // ZetaNonEthMetaData contains all meta data concerning the ZetaNonEth contract. var ZetaNonEthMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tssAddress_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tssAddressUpdater_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"CallerIsNotConnector\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"CallerIsNotTss\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"CallerIsNotTssOrUpdater\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"CallerIsNotTssUpdater\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZetaTransferError\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"burnee\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Burnt\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"callerAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newConnectorAddress\",\"type\":\"address\"}],\"name\":\"ConnectorAddressUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"mintee\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"internalSendHash\",\"type\":\"bytes32\"}],\"name\":\"Minted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"callerAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newTssAddress\",\"type\":\"address\"}],\"name\":\"TSSAddressUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"callerAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newTssUpdaterAddress\",\"type\":\"address\"}],\"name\":\"TSSAddressUpdaterUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"connectorAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"mintee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"internalSendHash\",\"type\":\"bytes32\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceTssAddressUpdater\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tssAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tssAddressUpdater\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tssAddress_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"connectorAddress_\",\"type\":\"address\"}],\"name\":\"updateTssAndConnectorAddresses\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x60806040523480156200001157600080fd5b5060405162002423380380620024238339818101604052810190620000379190620002c8565b6040518060400160405280600481526020017f5a657461000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f5a455441000000000000000000000000000000000000000000000000000000008152508160039080519060200190620000bb92919062000201565b508060049080519060200190620000d492919062000201565b505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806200013f5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b1562000177576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050620003c7565b8280546200020f9062000343565b90600052602060002090601f0160209004810192826200023357600085556200027f565b82601f106200024e57805160ff19168380011785556200027f565b828001600101855582156200027f579182015b828111156200027e57825182559160200191906001019062000261565b5b5090506200028e919062000292565b5090565b5b80821115620002ad57600081600090555060010162000293565b5090565b600081519050620002c281620003ad565b92915050565b60008060408385031215620002e257620002e1620003a8565b5b6000620002f285828601620002b1565b92505060206200030585828601620002b1565b9150509250929050565b60006200031c8262000323565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600060028204905060018216806200035c57607f821691505b6020821081141562000373576200037262000379565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b620003b8816200030f565b8114620003c457600080fd5b50565b61204c80620003d76000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806342966c68116100ad57806395d89b411161007157806395d89b41146102f6578063a457c2d714610314578063a9059cbb14610344578063bff9662a14610374578063dd62ed3e1461039257610121565b806342966c68146102665780635b1125911461028257806370a08231146102a0578063779e3b63146102d057806379cc6790146102da57610121565b80631e458bee116100f45780631e458bee146101ae57806323b872dd146101ca578063313ce567146101fa578063328a01d014610218578063395093511461023657610121565b806306fdde0314610126578063095ea7b31461014457806315d57fd41461017457806318160ddd14610190575b600080fd5b61012e6103c2565b60405161013b91906119c5565b60405180910390f35b61015e600480360381019061015991906116d3565b610454565b60405161016b91906119aa565b60405180910390f35b61018e60048036038101906101899190611640565b610477565b005b6101986106fb565b6040516101a59190611b27565b60405180910390f35b6101c860048036038101906101c39190611713565b610705565b005b6101e460048036038101906101df9190611680565b6107f5565b6040516101f191906119aa565b60405180910390f35b610202610824565b60405161020f9190611b42565b60405180910390f35b61022061082d565b60405161022d9190611966565b60405180910390f35b610250600480360381019061024b91906116d3565b610853565b60405161025d91906119aa565b60405180910390f35b610280600480360381019061027b9190611766565b61088a565b005b61028a61089e565b6040516102979190611966565b60405180910390f35b6102ba60048036038101906102b59190611613565b6108c4565b6040516102c79190611b27565b60405180910390f35b6102d861090c565b005b6102f460048036038101906102ef91906116d3565b610ae7565b005b6102fe610bd5565b60405161030b91906119c5565b60405180910390f35b61032e600480360381019061032991906116d3565b610c67565b60405161033b91906119aa565b60405180910390f35b61035e600480360381019061035991906116d3565b610cde565b60405161036b91906119aa565b60405180910390f35b61037c610d01565b6040516103899190611966565b60405180910390f35b6103ac60048036038101906103a79190611640565b610d27565b6040516103b99190611b27565b60405180910390f35b6060600380546103d190611c61565b80601f01602080910402602001604051908101604052809291908181526020018280546103fd90611c61565b801561044a5780601f1061041f5761010080835404028352916020019161044a565b820191906000526020600020905b81548152906001019060200180831161042d57829003601f168201915b5050505050905090565b60008061045f610dae565b905061046c818585610db6565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156105235750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b1561056557336040517fcdfcef9700000000000000000000000000000000000000000000000000000000815260040161055c9190611966565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806105cc5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15610603576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fe79965b5c67dcfb2cf5fe152715e4a7256cee62a3d5dd8484fd8a8539eb8beff33836040516106b6929190611981565b60405180910390a17f1b9352454524a57a51f24f67dc66d898f616922cd1f7a12d73570ece12b1975c33826040516106ef929190611981565b60405180910390a15050565b6000600254905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461079757336040517f3fe32fba00000000000000000000000000000000000000000000000000000000815260040161078e9190611966565b60405180910390fd5b6107a18383610f81565b808373ffffffffffffffffffffffffffffffffffffffff167fc263b302aec62d29105026245f19e16f8e0137066ccd4a8bd941f716bd4096bb846040516107e89190611b27565b60405180910390a3505050565b600080610800610dae565b905061080d8582856110d8565b610818858585611164565b60019150509392505050565b60006012905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061085e610dae565b905061087f8185856108708589610d27565b61087a9190611b79565b610db6565b600191505092915050565b61089b610895610dae565b826113dc565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461099e57336040517fe700765e0000000000000000000000000000000000000000000000000000000081526004016109959190611966565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610a27576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f5104c9abdc7d111c2aeb4ce890ac70274a4be2ee83f46a62551be5e6ebc82dd033600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610add929190611981565b60405180910390a1565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b7957336040517f3fe32fba000000000000000000000000000000000000000000000000000000008152600401610b709190611966565b60405180910390fd5b610b8382826115aa565b8173ffffffffffffffffffffffffffffffffffffffff167f919f7e2092ffcc9d09f599be18d8152860b0c054df788a33bc549cdd9d0f15b182604051610bc99190611b27565b60405180910390a25050565b606060048054610be490611c61565b80601f0160208091040260200160405190810160405280929190818152602001828054610c1090611c61565b8015610c5d5780601f10610c3257610100808354040283529160200191610c5d565b820191906000526020600020905b815481529060010190602001808311610c4057829003601f168201915b5050505050905090565b600080610c72610dae565b90506000610c808286610d27565b905083811015610cc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbc90611ae7565b60405180910390fd5b610cd28286868403610db6565b60019250505092915050565b600080610ce9610dae565b9050610cf6818585611164565b600191505092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1d90611ac7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8d90611a27565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f749190611b27565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ff1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe890611b07565b60405180910390fd5b610ffd600083836115ca565b806002600082825461100f9190611b79565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516110c09190611b27565b60405180910390a36110d4600083836115cf565b5050565b60006110e48484610d27565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461115e5781811015611150576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114790611a47565b60405180910390fd5b61115d8484848403610db6565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156111d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cb90611aa7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123b906119e7565b60405180910390fd5b61124f8383836115ca565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156112d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cc90611a67565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113c39190611b27565b60405180910390a36113d68484846115cf565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561144c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144390611a87565b60405180910390fd5b611458826000836115ca565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156114de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d590611a07565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115919190611b27565b60405180910390a36115a5836000846115cf565b505050565b6115bc826115b6610dae565b836110d8565b6115c682826113dc565b5050565b505050565b505050565b6000813590506115e381611fd1565b92915050565b6000813590506115f881611fe8565b92915050565b60008135905061160d81611fff565b92915050565b60006020828403121561162957611628611cf1565b5b6000611637848285016115d4565b91505092915050565b6000806040838503121561165757611656611cf1565b5b6000611665858286016115d4565b9250506020611676858286016115d4565b9150509250929050565b60008060006060848603121561169957611698611cf1565b5b60006116a7868287016115d4565b93505060206116b8868287016115d4565b92505060406116c9868287016115fe565b9150509250925092565b600080604083850312156116ea576116e9611cf1565b5b60006116f8858286016115d4565b9250506020611709858286016115fe565b9150509250929050565b60008060006060848603121561172c5761172b611cf1565b5b600061173a868287016115d4565b935050602061174b868287016115fe565b925050604061175c868287016115e9565b9150509250925092565b60006020828403121561177c5761177b611cf1565b5b600061178a848285016115fe565b91505092915050565b61179c81611bcf565b82525050565b6117ab81611be1565b82525050565b60006117bc82611b5d565b6117c68185611b68565b93506117d6818560208601611c2e565b6117df81611cf6565b840191505092915050565b60006117f7602383611b68565b915061180282611d07565b604082019050919050565b600061181a602283611b68565b915061182582611d56565b604082019050919050565b600061183d602283611b68565b915061184882611da5565b604082019050919050565b6000611860601d83611b68565b915061186b82611df4565b602082019050919050565b6000611883602683611b68565b915061188e82611e1d565b604082019050919050565b60006118a6602183611b68565b91506118b182611e6c565b604082019050919050565b60006118c9602583611b68565b91506118d482611ebb565b604082019050919050565b60006118ec602483611b68565b91506118f782611f0a565b604082019050919050565b600061190f602583611b68565b915061191a82611f59565b604082019050919050565b6000611932601f83611b68565b915061193d82611fa8565b602082019050919050565b61195181611c17565b82525050565b61196081611c21565b82525050565b600060208201905061197b6000830184611793565b92915050565b60006040820190506119966000830185611793565b6119a36020830184611793565b9392505050565b60006020820190506119bf60008301846117a2565b92915050565b600060208201905081810360008301526119df81846117b1565b905092915050565b60006020820190508181036000830152611a00816117ea565b9050919050565b60006020820190508181036000830152611a208161180d565b9050919050565b60006020820190508181036000830152611a4081611830565b9050919050565b60006020820190508181036000830152611a6081611853565b9050919050565b60006020820190508181036000830152611a8081611876565b9050919050565b60006020820190508181036000830152611aa081611899565b9050919050565b60006020820190508181036000830152611ac0816118bc565b9050919050565b60006020820190508181036000830152611ae0816118df565b9050919050565b60006020820190508181036000830152611b0081611902565b9050919050565b60006020820190508181036000830152611b2081611925565b9050919050565b6000602082019050611b3c6000830184611948565b92915050565b6000602082019050611b576000830184611957565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611b8482611c17565b9150611b8f83611c17565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611bc457611bc3611c93565b5b828201905092915050565b6000611bda82611bf7565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611c4c578082015181840152602081019050611c31565b83811115611c5b576000848401525b50505050565b60006002820490506001821680611c7957607f821691505b60208210811415611c8d57611c8c611cc2565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b611fda81611bcf565b8114611fe557600080fd5b50565b611ff181611bed565b8114611ffc57600080fd5b50565b61200881611c17565b811461201357600080fd5b5056fea2646970667358221220bd1393fae79c8d0bb84c13332f8c58d8b5424cb9fb90b304c7162b49e7360c6f64736f6c63430008070033", + Bin: "0x60806040523480156200001157600080fd5b5060405162002423380380620024238339818101604052810190620000379190620002c8565b6040518060400160405280600481526020017f5a657461000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f5a455441000000000000000000000000000000000000000000000000000000008152508160039080519060200190620000bb92919062000201565b508060049080519060200190620000d492919062000201565b505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806200013f5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b1562000177576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050620003c7565b8280546200020f9062000343565b90600052602060002090601f0160209004810192826200023357600085556200027f565b82601f106200024e57805160ff19168380011785556200027f565b828001600101855582156200027f579182015b828111156200027e57825182559160200191906001019062000261565b5b5090506200028e919062000292565b5090565b5b80821115620002ad57600081600090555060010162000293565b5090565b600081519050620002c281620003ad565b92915050565b60008060408385031215620002e257620002e1620003a8565b5b6000620002f285828601620002b1565b92505060206200030585828601620002b1565b9150509250929050565b60006200031c8262000323565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600060028204905060018216806200035c57607f821691505b6020821081141562000373576200037262000379565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b620003b8816200030f565b8114620003c457600080fd5b50565b61204c80620003d76000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806342966c68116100ad57806395d89b411161007157806395d89b41146102f6578063a457c2d714610314578063a9059cbb14610344578063bff9662a14610374578063dd62ed3e1461039257610121565b806342966c68146102665780635b1125911461028257806370a08231146102a0578063779e3b63146102d057806379cc6790146102da57610121565b80631e458bee116100f45780631e458bee146101ae57806323b872dd146101ca578063313ce567146101fa578063328a01d014610218578063395093511461023657610121565b806306fdde0314610126578063095ea7b31461014457806315d57fd41461017457806318160ddd14610190575b600080fd5b61012e6103c2565b60405161013b91906119c5565b60405180910390f35b61015e600480360381019061015991906116d3565b610454565b60405161016b91906119aa565b60405180910390f35b61018e60048036038101906101899190611640565b610477565b005b6101986106fb565b6040516101a59190611b27565b60405180910390f35b6101c860048036038101906101c39190611713565b610705565b005b6101e460048036038101906101df9190611680565b6107f5565b6040516101f191906119aa565b60405180910390f35b610202610824565b60405161020f9190611b42565b60405180910390f35b61022061082d565b60405161022d9190611966565b60405180910390f35b610250600480360381019061024b91906116d3565b610853565b60405161025d91906119aa565b60405180910390f35b610280600480360381019061027b9190611766565b61088a565b005b61028a61089e565b6040516102979190611966565b60405180910390f35b6102ba60048036038101906102b59190611613565b6108c4565b6040516102c79190611b27565b60405180910390f35b6102d861090c565b005b6102f460048036038101906102ef91906116d3565b610ae7565b005b6102fe610bd5565b60405161030b91906119c5565b60405180910390f35b61032e600480360381019061032991906116d3565b610c67565b60405161033b91906119aa565b60405180910390f35b61035e600480360381019061035991906116d3565b610cde565b60405161036b91906119aa565b60405180910390f35b61037c610d01565b6040516103899190611966565b60405180910390f35b6103ac60048036038101906103a79190611640565b610d27565b6040516103b99190611b27565b60405180910390f35b6060600380546103d190611c61565b80601f01602080910402602001604051908101604052809291908181526020018280546103fd90611c61565b801561044a5780601f1061041f5761010080835404028352916020019161044a565b820191906000526020600020905b81548152906001019060200180831161042d57829003601f168201915b5050505050905090565b60008061045f610dae565b905061046c818585610db6565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156105235750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b1561056557336040517fcdfcef9700000000000000000000000000000000000000000000000000000000815260040161055c9190611966565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806105cc5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15610603576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fe79965b5c67dcfb2cf5fe152715e4a7256cee62a3d5dd8484fd8a8539eb8beff33836040516106b6929190611981565b60405180910390a17f1b9352454524a57a51f24f67dc66d898f616922cd1f7a12d73570ece12b1975c33826040516106ef929190611981565b60405180910390a15050565b6000600254905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461079757336040517f3fe32fba00000000000000000000000000000000000000000000000000000000815260040161078e9190611966565b60405180910390fd5b6107a18383610f81565b808373ffffffffffffffffffffffffffffffffffffffff167fc263b302aec62d29105026245f19e16f8e0137066ccd4a8bd941f716bd4096bb846040516107e89190611b27565b60405180910390a3505050565b600080610800610dae565b905061080d8582856110d8565b610818858585611164565b60019150509392505050565b60006012905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061085e610dae565b905061087f8185856108708589610d27565b61087a9190611b79565b610db6565b600191505092915050565b61089b610895610dae565b826113dc565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461099e57336040517fe700765e0000000000000000000000000000000000000000000000000000000081526004016109959190611966565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610a27576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f5104c9abdc7d111c2aeb4ce890ac70274a4be2ee83f46a62551be5e6ebc82dd033600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610add929190611981565b60405180910390a1565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b7957336040517f3fe32fba000000000000000000000000000000000000000000000000000000008152600401610b709190611966565b60405180910390fd5b610b8382826115aa565b8173ffffffffffffffffffffffffffffffffffffffff167f919f7e2092ffcc9d09f599be18d8152860b0c054df788a33bc549cdd9d0f15b182604051610bc99190611b27565b60405180910390a25050565b606060048054610be490611c61565b80601f0160208091040260200160405190810160405280929190818152602001828054610c1090611c61565b8015610c5d5780601f10610c3257610100808354040283529160200191610c5d565b820191906000526020600020905b815481529060010190602001808311610c4057829003601f168201915b5050505050905090565b600080610c72610dae565b90506000610c808286610d27565b905083811015610cc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbc90611ae7565b60405180910390fd5b610cd28286868403610db6565b60019250505092915050565b600080610ce9610dae565b9050610cf6818585611164565b600191505092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1d90611ac7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8d90611a27565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f749190611b27565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ff1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe890611b07565b60405180910390fd5b610ffd600083836115ca565b806002600082825461100f9190611b79565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516110c09190611b27565b60405180910390a36110d4600083836115cf565b5050565b60006110e48484610d27565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461115e5781811015611150576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114790611a47565b60405180910390fd5b61115d8484848403610db6565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156111d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cb90611aa7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123b906119e7565b60405180910390fd5b61124f8383836115ca565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156112d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cc90611a67565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113c39190611b27565b60405180910390a36113d68484846115cf565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561144c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144390611a87565b60405180910390fd5b611458826000836115ca565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156114de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d590611a07565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115919190611b27565b60405180910390a36115a5836000846115cf565b505050565b6115bc826115b6610dae565b836110d8565b6115c682826113dc565b5050565b505050565b505050565b6000813590506115e381611fd1565b92915050565b6000813590506115f881611fe8565b92915050565b60008135905061160d81611fff565b92915050565b60006020828403121561162957611628611cf1565b5b6000611637848285016115d4565b91505092915050565b6000806040838503121561165757611656611cf1565b5b6000611665858286016115d4565b9250506020611676858286016115d4565b9150509250929050565b60008060006060848603121561169957611698611cf1565b5b60006116a7868287016115d4565b93505060206116b8868287016115d4565b92505060406116c9868287016115fe565b9150509250925092565b600080604083850312156116ea576116e9611cf1565b5b60006116f8858286016115d4565b9250506020611709858286016115fe565b9150509250929050565b60008060006060848603121561172c5761172b611cf1565b5b600061173a868287016115d4565b935050602061174b868287016115fe565b925050604061175c868287016115e9565b9150509250925092565b60006020828403121561177c5761177b611cf1565b5b600061178a848285016115fe565b91505092915050565b61179c81611bcf565b82525050565b6117ab81611be1565b82525050565b60006117bc82611b5d565b6117c68185611b68565b93506117d6818560208601611c2e565b6117df81611cf6565b840191505092915050565b60006117f7602383611b68565b915061180282611d07565b604082019050919050565b600061181a602283611b68565b915061182582611d56565b604082019050919050565b600061183d602283611b68565b915061184882611da5565b604082019050919050565b6000611860601d83611b68565b915061186b82611df4565b602082019050919050565b6000611883602683611b68565b915061188e82611e1d565b604082019050919050565b60006118a6602183611b68565b91506118b182611e6c565b604082019050919050565b60006118c9602583611b68565b91506118d482611ebb565b604082019050919050565b60006118ec602483611b68565b91506118f782611f0a565b604082019050919050565b600061190f602583611b68565b915061191a82611f59565b604082019050919050565b6000611932601f83611b68565b915061193d82611fa8565b602082019050919050565b61195181611c17565b82525050565b61196081611c21565b82525050565b600060208201905061197b6000830184611793565b92915050565b60006040820190506119966000830185611793565b6119a36020830184611793565b9392505050565b60006020820190506119bf60008301846117a2565b92915050565b600060208201905081810360008301526119df81846117b1565b905092915050565b60006020820190508181036000830152611a00816117ea565b9050919050565b60006020820190508181036000830152611a208161180d565b9050919050565b60006020820190508181036000830152611a4081611830565b9050919050565b60006020820190508181036000830152611a6081611853565b9050919050565b60006020820190508181036000830152611a8081611876565b9050919050565b60006020820190508181036000830152611aa081611899565b9050919050565b60006020820190508181036000830152611ac0816118bc565b9050919050565b60006020820190508181036000830152611ae0816118df565b9050919050565b60006020820190508181036000830152611b0081611902565b9050919050565b60006020820190508181036000830152611b2081611925565b9050919050565b6000602082019050611b3c6000830184611948565b92915050565b6000602082019050611b576000830184611957565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611b8482611c17565b9150611b8f83611c17565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611bc457611bc3611c93565b5b828201905092915050565b6000611bda82611bf7565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611c4c578082015181840152602081019050611c31565b83811115611c5b576000848401525b50505050565b60006002820490506001821680611c7957607f821691505b60208210811415611c8d57611c8c611cc2565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b611fda81611bcf565b8114611fe557600080fd5b50565b611ff181611bed565b8114611ffc57600080fd5b50565b61200881611c17565b811461201357600080fd5b5056fea26469706673582212206bc837ff0828037cc8d7dacf17706538b4deb5a80c03f8e056ef18bae1a6288064736f6c63430008070033", } // ZetaNonEthABI is the input ABI used to generate the binding from. diff --git a/pkg/contracts/evm/zetaconnector.base.sol/zetaconnectorbase.go b/v1/pkg/contracts/evm/zetaconnector.base.sol/zetaconnectorbase.go similarity index 99% rename from pkg/contracts/evm/zetaconnector.base.sol/zetaconnectorbase.go rename to v1/pkg/contracts/evm/zetaconnector.base.sol/zetaconnectorbase.go index f3046872..c9f2099a 100644 --- a/pkg/contracts/evm/zetaconnector.base.sol/zetaconnectorbase.go +++ b/v1/pkg/contracts/evm/zetaconnector.base.sol/zetaconnectorbase.go @@ -42,7 +42,7 @@ type ZetaInterfacesSendInput struct { // ZetaConnectorBaseMetaData contains all meta data concerning the ZetaConnectorBase contract. var ZetaConnectorBaseMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"zetaToken_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tssAddress_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tssAddressUpdater_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"pauserAddress_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"CallerIsNotPauser\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"CallerIsNotTss\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"CallerIsNotTssOrUpdater\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"CallerIsNotTssUpdater\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"maxSupply\",\"type\":\"uint256\"}],\"name\":\"ExceedsMaxSupply\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZetaTransferError\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"callerAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newTssAddress\",\"type\":\"address\"}],\"name\":\"PauserAddressUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"callerAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newTssAddress\",\"type\":\"address\"}],\"name\":\"TSSAddressUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"callerAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newTssUpdaterAddress\",\"type\":\"address\"}],\"name\":\"TSSAddressUpdaterUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"zetaTxSenderAddress\",\"type\":\"bytes\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"sourceChainId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"destinationAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"zetaValue\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"internalSendHash\",\"type\":\"bytes32\"}],\"name\":\"ZetaReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"zetaTxSenderAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"sourceChainId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"destinationChainId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"destinationAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"remainingZetaValue\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"internalSendHash\",\"type\":\"bytes32\"}],\"name\":\"ZetaReverted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sourceTxOriginAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"zetaTxSenderAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"destinationChainId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"destinationAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"zetaValueAndGas\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"destinationGasLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"zetaParams\",\"type\":\"bytes\"}],\"name\":\"ZetaSent\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"zetaTxSenderAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"sourceChainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"destinationAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"zetaValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"internalSendHash\",\"type\":\"bytes32\"}],\"name\":\"onReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"zetaTxSenderAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sourceChainId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"destinationAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"destinationChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"remainingZetaValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"internalSendHash\",\"type\":\"bytes32\"}],\"name\":\"onRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauserAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceTssAddressUpdater\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"destinationChainId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"destinationAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"destinationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"zetaValueAndGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"zetaParams\",\"type\":\"bytes\"}],\"internalType\":\"structZetaInterfaces.SendInput\",\"name\":\"input\",\"type\":\"tuple\"}],\"name\":\"send\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tssAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tssAddressUpdater\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pauserAddress_\",\"type\":\"address\"}],\"name\":\"updatePauserAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tssAddress_\",\"type\":\"address\"}],\"name\":\"updateTssAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zetaToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x60a06040523480156200001157600080fd5b506040516200131e3803806200131e83398181016040528101906200003791906200027c565b60008060006101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480620000b95750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80620000f15750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80620001295750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b1562000161576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b8152505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505062000341565b600081519050620002768162000327565b92915050565b6000806000806080858703121562000299576200029862000322565b5b6000620002a98782880162000265565b9450506020620002bc8782880162000265565b9350506040620002cf8782880162000265565b9250506060620002e28782880162000265565b91505092959194509250565b6000620002fb8262000302565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6200033281620002ee565b81146200033e57600080fd5b50565b60805160601c610fbe6200036060003960006102160152610fbe6000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636128480f1161008c5780639122c344116100665780639122c344146101a2578063942a5e16146101be578063ec026901146101da578063f7fb869b146101f6576100cf565b80636128480f14610172578063779e3b631461018e5780638456cb5914610198576100cf565b806321e093b1146100d457806329dd214d146100f2578063328a01d01461010e5780633f4ba83a1461012c5780635b112591146101365780635c975abb14610154575b600080fd5b6100dc610214565b6040516100e99190610dd1565b60405180910390f35b61010c60048036038101906101079190610c55565b610238565b005b610116610242565b6040516101239190610dd1565b60405180910390f35b610134610268565b005b61013e610304565b60405161014b9190610dd1565b60405180910390f35b61015c61032a565b6040516101699190610e15565b60405180910390f35b61018c60048036038101906101879190610b46565b610340565b005b6101966104b6565b005b6101a0610691565b005b6101bc60048036038101906101b79190610b46565b61072d565b005b6101d860048036038101906101d39190610b73565b6108ff565b005b6101f460048036038101906101ef9190610d24565b61090a565b005b6101fe61090d565b60405161020b9190610dd1565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b5050505050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102fa57336040517f4677a0d30000000000000000000000000000000000000000000000000000000081526004016102f19190610dd1565b60405180910390fd5b610302610933565b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900460ff16905090565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103d257336040517f4677a0d30000000000000000000000000000000000000000000000000000000081526004016103c99190610dd1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610439576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd41d83655d484bdf299598751c371b2d92088667266fe3774b25a97bdd5d039733826040516104ab929190610dec565b60405180910390a150565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461054857336040517fe700765e00000000000000000000000000000000000000000000000000000000815260040161053f9190610dd1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156105d1576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f5104c9abdc7d111c2aeb4ce890ac70274a4be2ee83f46a62551be5e6ebc82dd033600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610687929190610dec565b60405180910390a1565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461072357336040517f4677a0d300000000000000000000000000000000000000000000000000000000815260040161071a9190610dd1565b60405180910390fd5b61072b610995565b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156107d95750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b1561081b57336040517fcdfcef970000000000000000000000000000000000000000000000000000000081526004016108129190610dd1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610882576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fe79965b5c67dcfb2cf5fe152715e4a7256cee62a3d5dd8484fd8a8539eb8beff33826040516108f4929190610dec565b60405180910390a150565b505050505050505050565b50565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61093b6109f7565b60008060006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61097e610a40565b60405161098b9190610dd1565b60405180910390a1565b61099d610a48565b60016000806101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586109e0610a40565b6040516109ed9190610dd1565b60405180910390a1565b6109ff61032a565b610a3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3590610e30565b60405180910390fd5b565b600033905090565b610a5061032a565b15610a90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8790610e50565b60405180910390fd5b565b600081359050610aa181610f43565b92915050565b600081359050610ab681610f5a565b92915050565b60008083601f840112610ad257610ad1610ed8565b5b8235905067ffffffffffffffff811115610aef57610aee610ed3565b5b602083019150836001820283011115610b0b57610b0a610ee2565b5b9250929050565b600060c08284031215610b2857610b27610edd565b5b81905092915050565b600081359050610b4081610f71565b92915050565b600060208284031215610b5c57610b5b610eec565b5b6000610b6a84828501610a92565b91505092915050565b600080600080600080600080600060e08a8c031215610b9557610b94610eec565b5b6000610ba38c828d01610a92565b9950506020610bb48c828d01610b31565b98505060408a013567ffffffffffffffff811115610bd557610bd4610ee7565b5b610be18c828d01610abc565b97509750506060610bf48c828d01610b31565b9550506080610c058c828d01610b31565b94505060a08a013567ffffffffffffffff811115610c2657610c25610ee7565b5b610c328c828d01610abc565b935093505060c0610c458c828d01610aa7565b9150509295985092959850929598565b60008060008060008060008060c0898b031215610c7557610c74610eec565b5b600089013567ffffffffffffffff811115610c9357610c92610ee7565b5b610c9f8b828c01610abc565b98509850506020610cb28b828c01610b31565b9650506040610cc38b828c01610a92565b9550506060610cd48b828c01610b31565b945050608089013567ffffffffffffffff811115610cf557610cf4610ee7565b5b610d018b828c01610abc565b935093505060a0610d148b828c01610aa7565b9150509295985092959890939650565b600060208284031215610d3a57610d39610eec565b5b600082013567ffffffffffffffff811115610d5857610d57610ee7565b5b610d6484828501610b12565b91505092915050565b610d7681610e81565b82525050565b610d8581610e93565b82525050565b6000610d98601483610e70565b9150610da382610ef1565b602082019050919050565b6000610dbb601083610e70565b9150610dc682610f1a565b602082019050919050565b6000602082019050610de66000830184610d6d565b92915050565b6000604082019050610e016000830185610d6d565b610e0e6020830184610d6d565b9392505050565b6000602082019050610e2a6000830184610d7c565b92915050565b60006020820190508181036000830152610e4981610d8b565b9050919050565b60006020820190508181036000830152610e6981610dae565b9050919050565b600082825260208201905092915050565b6000610e8c82610ea9565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b610f4c81610e81565b8114610f5757600080fd5b50565b610f6381610e9f565b8114610f6e57600080fd5b50565b610f7a81610ec9565b8114610f8557600080fd5b5056fea26469706673582212208fd8c8de0fa8c6d7ce42d081250a53e2ae3a7e5119c9670a0fb1d03e1c81c2c264736f6c63430008070033", + Bin: "0x60a06040523480156200001157600080fd5b506040516200131e3803806200131e83398181016040528101906200003791906200027c565b60008060006101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480620000b95750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80620000f15750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80620001295750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b1562000161576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b8152505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505062000341565b600081519050620002768162000327565b92915050565b6000806000806080858703121562000299576200029862000322565b5b6000620002a98782880162000265565b9450506020620002bc8782880162000265565b9350506040620002cf8782880162000265565b9250506060620002e28782880162000265565b91505092959194509250565b6000620002fb8262000302565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6200033281620002ee565b81146200033e57600080fd5b50565b60805160601c610fbe6200036060003960006102160152610fbe6000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636128480f1161008c5780639122c344116100665780639122c344146101a2578063942a5e16146101be578063ec026901146101da578063f7fb869b146101f6576100cf565b80636128480f14610172578063779e3b631461018e5780638456cb5914610198576100cf565b806321e093b1146100d457806329dd214d146100f2578063328a01d01461010e5780633f4ba83a1461012c5780635b112591146101365780635c975abb14610154575b600080fd5b6100dc610214565b6040516100e99190610dd1565b60405180910390f35b61010c60048036038101906101079190610c55565b610238565b005b610116610242565b6040516101239190610dd1565b60405180910390f35b610134610268565b005b61013e610304565b60405161014b9190610dd1565b60405180910390f35b61015c61032a565b6040516101699190610e15565b60405180910390f35b61018c60048036038101906101879190610b46565b610340565b005b6101966104b6565b005b6101a0610691565b005b6101bc60048036038101906101b79190610b46565b61072d565b005b6101d860048036038101906101d39190610b73565b6108ff565b005b6101f460048036038101906101ef9190610d24565b61090a565b005b6101fe61090d565b60405161020b9190610dd1565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b5050505050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102fa57336040517f4677a0d30000000000000000000000000000000000000000000000000000000081526004016102f19190610dd1565b60405180910390fd5b610302610933565b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900460ff16905090565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103d257336040517f4677a0d30000000000000000000000000000000000000000000000000000000081526004016103c99190610dd1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610439576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd41d83655d484bdf299598751c371b2d92088667266fe3774b25a97bdd5d039733826040516104ab929190610dec565b60405180910390a150565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461054857336040517fe700765e00000000000000000000000000000000000000000000000000000000815260040161053f9190610dd1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156105d1576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f5104c9abdc7d111c2aeb4ce890ac70274a4be2ee83f46a62551be5e6ebc82dd033600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610687929190610dec565b60405180910390a1565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461072357336040517f4677a0d300000000000000000000000000000000000000000000000000000000815260040161071a9190610dd1565b60405180910390fd5b61072b610995565b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156107d95750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b1561081b57336040517fcdfcef970000000000000000000000000000000000000000000000000000000081526004016108129190610dd1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610882576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fe79965b5c67dcfb2cf5fe152715e4a7256cee62a3d5dd8484fd8a8539eb8beff33826040516108f4929190610dec565b60405180910390a150565b505050505050505050565b50565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61093b6109f7565b60008060006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61097e610a40565b60405161098b9190610dd1565b60405180910390a1565b61099d610a48565b60016000806101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586109e0610a40565b6040516109ed9190610dd1565b60405180910390a1565b6109ff61032a565b610a3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3590610e30565b60405180910390fd5b565b600033905090565b610a5061032a565b15610a90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8790610e50565b60405180910390fd5b565b600081359050610aa181610f43565b92915050565b600081359050610ab681610f5a565b92915050565b60008083601f840112610ad257610ad1610ed8565b5b8235905067ffffffffffffffff811115610aef57610aee610ed3565b5b602083019150836001820283011115610b0b57610b0a610ee2565b5b9250929050565b600060c08284031215610b2857610b27610edd565b5b81905092915050565b600081359050610b4081610f71565b92915050565b600060208284031215610b5c57610b5b610eec565b5b6000610b6a84828501610a92565b91505092915050565b600080600080600080600080600060e08a8c031215610b9557610b94610eec565b5b6000610ba38c828d01610a92565b9950506020610bb48c828d01610b31565b98505060408a013567ffffffffffffffff811115610bd557610bd4610ee7565b5b610be18c828d01610abc565b97509750506060610bf48c828d01610b31565b9550506080610c058c828d01610b31565b94505060a08a013567ffffffffffffffff811115610c2657610c25610ee7565b5b610c328c828d01610abc565b935093505060c0610c458c828d01610aa7565b9150509295985092959850929598565b60008060008060008060008060c0898b031215610c7557610c74610eec565b5b600089013567ffffffffffffffff811115610c9357610c92610ee7565b5b610c9f8b828c01610abc565b98509850506020610cb28b828c01610b31565b9650506040610cc38b828c01610a92565b9550506060610cd48b828c01610b31565b945050608089013567ffffffffffffffff811115610cf557610cf4610ee7565b5b610d018b828c01610abc565b935093505060a0610d148b828c01610aa7565b9150509295985092959890939650565b600060208284031215610d3a57610d39610eec565b5b600082013567ffffffffffffffff811115610d5857610d57610ee7565b5b610d6484828501610b12565b91505092915050565b610d7681610e81565b82525050565b610d8581610e93565b82525050565b6000610d98601483610e70565b9150610da382610ef1565b602082019050919050565b6000610dbb601083610e70565b9150610dc682610f1a565b602082019050919050565b6000602082019050610de66000830184610d6d565b92915050565b6000604082019050610e016000830185610d6d565b610e0e6020830184610d6d565b9392505050565b6000602082019050610e2a6000830184610d7c565b92915050565b60006020820190508181036000830152610e4981610d8b565b9050919050565b60006020820190508181036000830152610e6981610dae565b9050919050565b600082825260208201905092915050565b6000610e8c82610ea9565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b610f4c81610e81565b8114610f5757600080fd5b50565b610f6381610e9f565b8114610f6e57600080fd5b50565b610f7a81610ec9565b8114610f8557600080fd5b5056fea2646970667358221220581b268b8dbd8d9f5c8f5e7e4d7ee7235e116fc6882d1ce0eb037e226f63b48064736f6c63430008070033", } // ZetaConnectorBaseABI is the input ABI used to generate the binding from. diff --git a/pkg/contracts/evm/zetaconnector.eth.sol/zetaconnectoreth.go b/v1/pkg/contracts/evm/zetaconnector.eth.sol/zetaconnectoreth.go similarity index 99% rename from pkg/contracts/evm/zetaconnector.eth.sol/zetaconnectoreth.go rename to v1/pkg/contracts/evm/zetaconnector.eth.sol/zetaconnectoreth.go index 5ee96d02..ed234187 100644 --- a/pkg/contracts/evm/zetaconnector.eth.sol/zetaconnectoreth.go +++ b/v1/pkg/contracts/evm/zetaconnector.eth.sol/zetaconnectoreth.go @@ -42,7 +42,7 @@ type ZetaInterfacesSendInput struct { // ZetaConnectorEthMetaData contains all meta data concerning the ZetaConnectorEth contract. var ZetaConnectorEthMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"zetaToken_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tssAddress_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tssAddressUpdater_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"pauserAddress_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"CallerIsNotPauser\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"CallerIsNotTss\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"CallerIsNotTssOrUpdater\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"CallerIsNotTssUpdater\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"maxSupply\",\"type\":\"uint256\"}],\"name\":\"ExceedsMaxSupply\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZetaTransferError\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"callerAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newTssAddress\",\"type\":\"address\"}],\"name\":\"PauserAddressUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"callerAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newTssAddress\",\"type\":\"address\"}],\"name\":\"TSSAddressUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"callerAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newTssUpdaterAddress\",\"type\":\"address\"}],\"name\":\"TSSAddressUpdaterUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"zetaTxSenderAddress\",\"type\":\"bytes\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"sourceChainId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"destinationAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"zetaValue\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"internalSendHash\",\"type\":\"bytes32\"}],\"name\":\"ZetaReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"zetaTxSenderAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"sourceChainId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"destinationChainId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"destinationAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"remainingZetaValue\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"internalSendHash\",\"type\":\"bytes32\"}],\"name\":\"ZetaReverted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sourceTxOriginAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"zetaTxSenderAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"destinationChainId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"destinationAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"zetaValueAndGas\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"destinationGasLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"zetaParams\",\"type\":\"bytes\"}],\"name\":\"ZetaSent\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"getLockedAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"zetaTxSenderAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"sourceChainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"destinationAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"zetaValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"internalSendHash\",\"type\":\"bytes32\"}],\"name\":\"onReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"zetaTxSenderAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sourceChainId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"destinationAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"destinationChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"remainingZetaValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"internalSendHash\",\"type\":\"bytes32\"}],\"name\":\"onRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauserAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceTssAddressUpdater\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"destinationChainId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"destinationAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"destinationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"zetaValueAndGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"zetaParams\",\"type\":\"bytes\"}],\"internalType\":\"structZetaInterfaces.SendInput\",\"name\":\"input\",\"type\":\"tuple\"}],\"name\":\"send\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tssAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tssAddressUpdater\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pauserAddress_\",\"type\":\"address\"}],\"name\":\"updatePauserAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tssAddress_\",\"type\":\"address\"}],\"name\":\"updateTssAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zetaToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x60a06040523480156200001157600080fd5b50604051620020e6380380620020e6833981810160405281019062000037919062000284565b8383838360008060006101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480620000bd5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80620000f55750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806200012d5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b1562000165576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b8152505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050505062000349565b6000815190506200027e816200032f565b92915050565b60008060008060808587031215620002a157620002a06200032a565b5b6000620002b1878288016200026d565b9450506020620002c4878288016200026d565b9350506040620002d7878288016200026d565b9250506060620002ea878288016200026d565b91505092959194509250565b600062000303826200030a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6200033a81620002f6565b81146200034657600080fd5b50565b60805160601c611d62620003846000396000818161024f01528181610275015281816103b701528181610d9501526110180152611d626000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80636128480f1161008c5780639122c344116100665780639122c344146101db578063942a5e16146101f7578063ec02690114610213578063f7fb869b1461022f576100ea565b80636128480f146101ab578063779e3b63146101c75780638456cb59146101d1576100ea565b8063328a01d0116100c8578063328a01d0146101475780633f4ba83a146101655780635b1125911461016f5780635c975abb1461018d576100ea565b806321e093b1146100ef578063252bc8861461010d57806329dd214d1461012b575b600080fd5b6100f761024d565b6040516101049190611883565b60405180910390f35b610115610271565b6040516101229190611af0565b60405180910390f35b6101456004803603810190610140919061153a565b610321565b005b61014f61063a565b60405161015c9190611883565b60405180910390f35b61016d610660565b005b6101776106fc565b6040516101849190611883565b60405180910390f35b610195610722565b6040516101a29190611a08565b60405180910390f35b6101c560048036038101906101c091906113fe565b610738565b005b6101cf6108ae565b005b6101d9610a89565b005b6101f560048036038101906101f091906113fe565b610b25565b005b610211600480360381019061020c919061142b565b610cf7565b005b61022d60048036038101906102289190611609565b61100c565b005b61023761119b565b6040516102449190611883565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016102cc9190611883565b60206040518083038186803b1580156102e457600080fd5b505afa1580156102f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031c9190611652565b905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103b357336040517fff70ace20000000000000000000000000000000000000000000000000000000081526004016103aa9190611883565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87876040518363ffffffff1660e01b815260040161041092919061197a565b602060405180830381600087803b15801561042a57600080fd5b505af115801561043e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610462919061150d565b90508061049b576040517f20878f6200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008484905011156105d7578573ffffffffffffffffffffffffffffffffffffffff16633749c51a6040518060a001604052808c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505081526020018a81526020018973ffffffffffffffffffffffffffffffffffffffff16815260200188815260200187878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508152506040518263ffffffff1660e01b81526004016105a49190611aac565b600060405180830381600087803b1580156105be57600080fd5b505af11580156105d2573d6000803e3d6000fd5b505050505b818673ffffffffffffffffffffffffffffffffffffffff16887ff1302855733b40d8acb467ee990b6d56c05c80e28ebcabfa6e6f3f57cb50d6988c8c8a8a8a604051610627959493929190611a23565b60405180910390a4505050505050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106f257336040517f4677a0d30000000000000000000000000000000000000000000000000000000081526004016106e99190611883565b60405180910390fd5b6106fa6111c1565b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900460ff16905090565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107ca57336040517f4677a0d30000000000000000000000000000000000000000000000000000000081526004016107c19190611883565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610831576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd41d83655d484bdf299598751c371b2d92088667266fe3774b25a97bdd5d039733826040516108a392919061189e565b60405180910390a150565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461094057336040517fe700765e0000000000000000000000000000000000000000000000000000000081526004016109379190611883565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156109c9576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f5104c9abdc7d111c2aeb4ce890ac70274a4be2ee83f46a62551be5e6ebc82dd033600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610a7f92919061189e565b60405180910390a1565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b1b57336040517f4677a0d3000000000000000000000000000000000000000000000000000000008152600401610b129190611883565b60405180910390fd5b610b23611223565b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610bd15750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15610c1357336040517fcdfcef97000000000000000000000000000000000000000000000000000000008152600401610c0a9190611883565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c7a576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fe79965b5c67dcfb2cf5fe152715e4a7256cee62a3d5dd8484fd8a8539eb8beff3382604051610cec92919061189e565b60405180910390a150565b610cff611285565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d9157336040517fff70ace2000000000000000000000000000000000000000000000000000000008152600401610d889190611883565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8b876040518363ffffffff1660e01b8152600401610dee92919061197a565b602060405180830381600087803b158015610e0857600080fd5b505af1158015610e1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e40919061150d565b905080610e79576040517f20878f6200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000848490501115610fbb578973ffffffffffffffffffffffffffffffffffffffff16633ff0693c6040518060c001604052808d73ffffffffffffffffffffffffffffffffffffffff1681526020018c81526020018b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050815260200189815260200188815260200187878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508152506040518263ffffffff1660e01b8152600401610f889190611ace565b600060405180830381600087803b158015610fa257600080fd5b505af1158015610fb6573d6000803e3d6000fd5b505050505b81867f521fb0b407c2eb9b1375530e9b9a569889992140a688bc076aa72c1712012c888c8c8c8c8b8b8b604051610ff897969594939291906119a3565b60405180910390a350505050505050505050565b611014611285565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd333085608001356040518463ffffffff1660e01b8152600401611077939291906118c7565b602060405180830381600087803b15801561109157600080fd5b505af11580156110a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c9919061150d565b905080611102576040517f20878f6200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600001353373ffffffffffffffffffffffffffffffffffffffff167f7ec1c94701e09b1652f3e1d307e60c4b9ebf99aff8c2079fd1d8c585e031c4e4328580602001906111509190611b0b565b8760800135886040013589806060019061116a9190611b0b565b8b8060a0019061117a9190611b0b565b60405161118f999897969594939291906118fe565b60405180910390a35050565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111c96112cf565b60008060006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61120c611318565b6040516112199190611883565b60405180910390a1565b61122b611285565b60016000806101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861126e611318565b60405161127b9190611883565b60405180910390a1565b61128d610722565b156112cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c490611a8c565b60405180910390fd5b565b6112d7610722565b611316576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130d90611a6c565b60405180910390fd5b565b600033905090565b60008135905061132f81611cd0565b92915050565b60008151905061134481611ce7565b92915050565b60008135905061135981611cfe565b92915050565b60008083601f84011261137557611374611c45565b5b8235905067ffffffffffffffff81111561139257611391611c40565b5b6020830191508360018202830111156113ae576113ad611c59565b5b9250929050565b600060c082840312156113cb576113ca611c4f565b5b81905092915050565b6000813590506113e381611d15565b92915050565b6000815190506113f881611d15565b92915050565b60006020828403121561141457611413611c68565b5b600061142284828501611320565b91505092915050565b600080600080600080600080600060e08a8c03121561144d5761144c611c68565b5b600061145b8c828d01611320565b995050602061146c8c828d016113d4565b98505060408a013567ffffffffffffffff81111561148d5761148c611c63565b5b6114998c828d0161135f565b975097505060606114ac8c828d016113d4565b95505060806114bd8c828d016113d4565b94505060a08a013567ffffffffffffffff8111156114de576114dd611c63565b5b6114ea8c828d0161135f565b935093505060c06114fd8c828d0161134a565b9150509295985092959850929598565b60006020828403121561152357611522611c68565b5b600061153184828501611335565b91505092915050565b60008060008060008060008060c0898b03121561155a57611559611c68565b5b600089013567ffffffffffffffff81111561157857611577611c63565b5b6115848b828c0161135f565b985098505060206115978b828c016113d4565b96505060406115a88b828c01611320565b95505060606115b98b828c016113d4565b945050608089013567ffffffffffffffff8111156115da576115d9611c63565b5b6115e68b828c0161135f565b935093505060a06115f98b828c0161134a565b9150509295985092959890939650565b60006020828403121561161f5761161e611c68565b5b600082013567ffffffffffffffff81111561163d5761163c611c63565b5b611649848285016113b5565b91505092915050565b60006020828403121561166857611667611c68565b5b6000611676848285016113e9565b91505092915050565b61168881611bac565b82525050565b61169781611bac565b82525050565b6116a681611bbe565b82525050565b60006116b88385611b8a565b93506116c5838584611bfe565b6116ce83611c6d565b840190509392505050565b60006116e482611b6e565b6116ee8185611b79565b93506116fe818560208601611c0d565b61170781611c6d565b840191505092915050565b600061171f601483611b9b565b915061172a82611c7e565b602082019050919050565b6000611742601083611b9b565b915061174d82611ca7565b602082019050919050565b600060a083016000830151848203600086015261177582826116d9565b915050602083015161178a6020860182611865565b50604083015161179d604086018261167f565b5060608301516117b06060860182611865565b50608083015184820360808601526117c882826116d9565b9150508091505092915050565b600060c0830160008301516117ed600086018261167f565b5060208301516118006020860182611865565b506040830151848203604086015261181882826116d9565b915050606083015161182d6060860182611865565b5060808301516118406080860182611865565b5060a083015184820360a086015261185882826116d9565b9150508091505092915050565b61186e81611bf4565b82525050565b61187d81611bf4565b82525050565b6000602082019050611898600083018461168e565b92915050565b60006040820190506118b3600083018561168e565b6118c0602083018461168e565b9392505050565b60006060820190506118dc600083018661168e565b6118e9602083018561168e565b6118f66040830184611874565b949350505050565b600060c082019050611913600083018c61168e565b8181036020830152611926818a8c6116ac565b90506119356040830189611874565b6119426060830188611874565b81810360808301526119558186886116ac565b905081810360a083015261196a8184866116ac565b90509a9950505050505050505050565b600060408201905061198f600083018561168e565b61199c6020830184611874565b9392505050565b600060a0820190506119b8600083018a61168e565b6119c56020830189611874565b81810360408301526119d88187896116ac565b90506119e76060830186611874565b81810360808301526119fa8184866116ac565b905098975050505050505050565b6000602082019050611a1d600083018461169d565b92915050565b60006060820190508181036000830152611a3e8187896116ac565b9050611a4d6020830186611874565b8181036040830152611a608184866116ac565b90509695505050505050565b60006020820190508181036000830152611a8581611712565b9050919050565b60006020820190508181036000830152611aa581611735565b9050919050565b60006020820190508181036000830152611ac68184611758565b905092915050565b60006020820190508181036000830152611ae881846117d5565b905092915050565b6000602082019050611b056000830184611874565b92915050565b60008083356001602003843603038112611b2857611b27611c54565b5b80840192508235915067ffffffffffffffff821115611b4a57611b49611c4a565b5b602083019250600182023603831315611b6657611b65611c5e565b5b509250929050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000611bb782611bd4565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015611c2b578082015181840152602081019050611c10565b83811115611c3a576000848401525b50505050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b611cd981611bac565b8114611ce457600080fd5b50565b611cf081611bbe565b8114611cfb57600080fd5b50565b611d0781611bca565b8114611d1257600080fd5b50565b611d1e81611bf4565b8114611d2957600080fd5b5056fea2646970667358221220c386ec06beb54bf2f1fa9d6ebdcbce1a2c994b9dc5c90038fe0d0a4b8174e1ea64736f6c63430008070033", + Bin: "0x60a06040523480156200001157600080fd5b50604051620020e6380380620020e6833981810160405281019062000037919062000284565b8383838360008060006101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480620000bd5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80620000f55750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806200012d5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b1562000165576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b8152505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050505062000349565b6000815190506200027e816200032f565b92915050565b60008060008060808587031215620002a157620002a06200032a565b5b6000620002b1878288016200026d565b9450506020620002c4878288016200026d565b9350506040620002d7878288016200026d565b9250506060620002ea878288016200026d565b91505092959194509250565b600062000303826200030a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6200033a81620002f6565b81146200034657600080fd5b50565b60805160601c611d62620003846000396000818161024f01528181610275015281816103b701528181610d9501526110180152611d626000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80636128480f1161008c5780639122c344116100665780639122c344146101db578063942a5e16146101f7578063ec02690114610213578063f7fb869b1461022f576100ea565b80636128480f146101ab578063779e3b63146101c75780638456cb59146101d1576100ea565b8063328a01d0116100c8578063328a01d0146101475780633f4ba83a146101655780635b1125911461016f5780635c975abb1461018d576100ea565b806321e093b1146100ef578063252bc8861461010d57806329dd214d1461012b575b600080fd5b6100f761024d565b6040516101049190611883565b60405180910390f35b610115610271565b6040516101229190611af0565b60405180910390f35b6101456004803603810190610140919061153a565b610321565b005b61014f61063a565b60405161015c9190611883565b60405180910390f35b61016d610660565b005b6101776106fc565b6040516101849190611883565b60405180910390f35b610195610722565b6040516101a29190611a08565b60405180910390f35b6101c560048036038101906101c091906113fe565b610738565b005b6101cf6108ae565b005b6101d9610a89565b005b6101f560048036038101906101f091906113fe565b610b25565b005b610211600480360381019061020c919061142b565b610cf7565b005b61022d60048036038101906102289190611609565b61100c565b005b61023761119b565b6040516102449190611883565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016102cc9190611883565b60206040518083038186803b1580156102e457600080fd5b505afa1580156102f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031c9190611652565b905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103b357336040517fff70ace20000000000000000000000000000000000000000000000000000000081526004016103aa9190611883565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87876040518363ffffffff1660e01b815260040161041092919061197a565b602060405180830381600087803b15801561042a57600080fd5b505af115801561043e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610462919061150d565b90508061049b576040517f20878f6200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008484905011156105d7578573ffffffffffffffffffffffffffffffffffffffff16633749c51a6040518060a001604052808c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505081526020018a81526020018973ffffffffffffffffffffffffffffffffffffffff16815260200188815260200187878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508152506040518263ffffffff1660e01b81526004016105a49190611aac565b600060405180830381600087803b1580156105be57600080fd5b505af11580156105d2573d6000803e3d6000fd5b505050505b818673ffffffffffffffffffffffffffffffffffffffff16887ff1302855733b40d8acb467ee990b6d56c05c80e28ebcabfa6e6f3f57cb50d6988c8c8a8a8a604051610627959493929190611a23565b60405180910390a4505050505050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106f257336040517f4677a0d30000000000000000000000000000000000000000000000000000000081526004016106e99190611883565b60405180910390fd5b6106fa6111c1565b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900460ff16905090565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107ca57336040517f4677a0d30000000000000000000000000000000000000000000000000000000081526004016107c19190611883565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610831576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd41d83655d484bdf299598751c371b2d92088667266fe3774b25a97bdd5d039733826040516108a392919061189e565b60405180910390a150565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461094057336040517fe700765e0000000000000000000000000000000000000000000000000000000081526004016109379190611883565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156109c9576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f5104c9abdc7d111c2aeb4ce890ac70274a4be2ee83f46a62551be5e6ebc82dd033600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610a7f92919061189e565b60405180910390a1565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b1b57336040517f4677a0d3000000000000000000000000000000000000000000000000000000008152600401610b129190611883565b60405180910390fd5b610b23611223565b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610bd15750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15610c1357336040517fcdfcef97000000000000000000000000000000000000000000000000000000008152600401610c0a9190611883565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c7a576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fe79965b5c67dcfb2cf5fe152715e4a7256cee62a3d5dd8484fd8a8539eb8beff3382604051610cec92919061189e565b60405180910390a150565b610cff611285565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d9157336040517fff70ace2000000000000000000000000000000000000000000000000000000008152600401610d889190611883565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8b876040518363ffffffff1660e01b8152600401610dee92919061197a565b602060405180830381600087803b158015610e0857600080fd5b505af1158015610e1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e40919061150d565b905080610e79576040517f20878f6200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000848490501115610fbb578973ffffffffffffffffffffffffffffffffffffffff16633ff0693c6040518060c001604052808d73ffffffffffffffffffffffffffffffffffffffff1681526020018c81526020018b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050815260200189815260200188815260200187878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508152506040518263ffffffff1660e01b8152600401610f889190611ace565b600060405180830381600087803b158015610fa257600080fd5b505af1158015610fb6573d6000803e3d6000fd5b505050505b81867f521fb0b407c2eb9b1375530e9b9a569889992140a688bc076aa72c1712012c888c8c8c8c8b8b8b604051610ff897969594939291906119a3565b60405180910390a350505050505050505050565b611014611285565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd333085608001356040518463ffffffff1660e01b8152600401611077939291906118c7565b602060405180830381600087803b15801561109157600080fd5b505af11580156110a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c9919061150d565b905080611102576040517f20878f6200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600001353373ffffffffffffffffffffffffffffffffffffffff167f7ec1c94701e09b1652f3e1d307e60c4b9ebf99aff8c2079fd1d8c585e031c4e4328580602001906111509190611b0b565b8760800135886040013589806060019061116a9190611b0b565b8b8060a0019061117a9190611b0b565b60405161118f999897969594939291906118fe565b60405180910390a35050565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111c96112cf565b60008060006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61120c611318565b6040516112199190611883565b60405180910390a1565b61122b611285565b60016000806101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861126e611318565b60405161127b9190611883565b60405180910390a1565b61128d610722565b156112cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c490611a8c565b60405180910390fd5b565b6112d7610722565b611316576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130d90611a6c565b60405180910390fd5b565b600033905090565b60008135905061132f81611cd0565b92915050565b60008151905061134481611ce7565b92915050565b60008135905061135981611cfe565b92915050565b60008083601f84011261137557611374611c45565b5b8235905067ffffffffffffffff81111561139257611391611c40565b5b6020830191508360018202830111156113ae576113ad611c59565b5b9250929050565b600060c082840312156113cb576113ca611c4f565b5b81905092915050565b6000813590506113e381611d15565b92915050565b6000815190506113f881611d15565b92915050565b60006020828403121561141457611413611c68565b5b600061142284828501611320565b91505092915050565b600080600080600080600080600060e08a8c03121561144d5761144c611c68565b5b600061145b8c828d01611320565b995050602061146c8c828d016113d4565b98505060408a013567ffffffffffffffff81111561148d5761148c611c63565b5b6114998c828d0161135f565b975097505060606114ac8c828d016113d4565b95505060806114bd8c828d016113d4565b94505060a08a013567ffffffffffffffff8111156114de576114dd611c63565b5b6114ea8c828d0161135f565b935093505060c06114fd8c828d0161134a565b9150509295985092959850929598565b60006020828403121561152357611522611c68565b5b600061153184828501611335565b91505092915050565b60008060008060008060008060c0898b03121561155a57611559611c68565b5b600089013567ffffffffffffffff81111561157857611577611c63565b5b6115848b828c0161135f565b985098505060206115978b828c016113d4565b96505060406115a88b828c01611320565b95505060606115b98b828c016113d4565b945050608089013567ffffffffffffffff8111156115da576115d9611c63565b5b6115e68b828c0161135f565b935093505060a06115f98b828c0161134a565b9150509295985092959890939650565b60006020828403121561161f5761161e611c68565b5b600082013567ffffffffffffffff81111561163d5761163c611c63565b5b611649848285016113b5565b91505092915050565b60006020828403121561166857611667611c68565b5b6000611676848285016113e9565b91505092915050565b61168881611bac565b82525050565b61169781611bac565b82525050565b6116a681611bbe565b82525050565b60006116b88385611b8a565b93506116c5838584611bfe565b6116ce83611c6d565b840190509392505050565b60006116e482611b6e565b6116ee8185611b79565b93506116fe818560208601611c0d565b61170781611c6d565b840191505092915050565b600061171f601483611b9b565b915061172a82611c7e565b602082019050919050565b6000611742601083611b9b565b915061174d82611ca7565b602082019050919050565b600060a083016000830151848203600086015261177582826116d9565b915050602083015161178a6020860182611865565b50604083015161179d604086018261167f565b5060608301516117b06060860182611865565b50608083015184820360808601526117c882826116d9565b9150508091505092915050565b600060c0830160008301516117ed600086018261167f565b5060208301516118006020860182611865565b506040830151848203604086015261181882826116d9565b915050606083015161182d6060860182611865565b5060808301516118406080860182611865565b5060a083015184820360a086015261185882826116d9565b9150508091505092915050565b61186e81611bf4565b82525050565b61187d81611bf4565b82525050565b6000602082019050611898600083018461168e565b92915050565b60006040820190506118b3600083018561168e565b6118c0602083018461168e565b9392505050565b60006060820190506118dc600083018661168e565b6118e9602083018561168e565b6118f66040830184611874565b949350505050565b600060c082019050611913600083018c61168e565b8181036020830152611926818a8c6116ac565b90506119356040830189611874565b6119426060830188611874565b81810360808301526119558186886116ac565b905081810360a083015261196a8184866116ac565b90509a9950505050505050505050565b600060408201905061198f600083018561168e565b61199c6020830184611874565b9392505050565b600060a0820190506119b8600083018a61168e565b6119c56020830189611874565b81810360408301526119d88187896116ac565b90506119e76060830186611874565b81810360808301526119fa8184866116ac565b905098975050505050505050565b6000602082019050611a1d600083018461169d565b92915050565b60006060820190508181036000830152611a3e8187896116ac565b9050611a4d6020830186611874565b8181036040830152611a608184866116ac565b90509695505050505050565b60006020820190508181036000830152611a8581611712565b9050919050565b60006020820190508181036000830152611aa581611735565b9050919050565b60006020820190508181036000830152611ac68184611758565b905092915050565b60006020820190508181036000830152611ae881846117d5565b905092915050565b6000602082019050611b056000830184611874565b92915050565b60008083356001602003843603038112611b2857611b27611c54565b5b80840192508235915067ffffffffffffffff821115611b4a57611b49611c4a565b5b602083019250600182023603831315611b6657611b65611c5e565b5b509250929050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000611bb782611bd4565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015611c2b578082015181840152602081019050611c10565b83811115611c3a576000848401525b50505050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b611cd981611bac565b8114611ce457600080fd5b50565b611cf081611bbe565b8114611cfb57600080fd5b50565b611d0781611bca565b8114611d1257600080fd5b50565b611d1e81611bf4565b8114611d2957600080fd5b5056fea2646970667358221220aea116262018bae5c67a2e8d7df041d67768b80865d96b72392c003b54c708f264736f6c63430008070033", } // ZetaConnectorEthABI is the input ABI used to generate the binding from. diff --git a/pkg/contracts/evm/zetaconnector.non-eth.sol/zetaconnectornoneth.go b/v1/pkg/contracts/evm/zetaconnector.non-eth.sol/zetaconnectornoneth.go similarity index 99% rename from pkg/contracts/evm/zetaconnector.non-eth.sol/zetaconnectornoneth.go rename to v1/pkg/contracts/evm/zetaconnector.non-eth.sol/zetaconnectornoneth.go index 3ef421c9..62e6a691 100644 --- a/pkg/contracts/evm/zetaconnector.non-eth.sol/zetaconnectornoneth.go +++ b/v1/pkg/contracts/evm/zetaconnector.non-eth.sol/zetaconnectornoneth.go @@ -42,7 +42,7 @@ type ZetaInterfacesSendInput struct { // ZetaConnectorNonEthMetaData contains all meta data concerning the ZetaConnectorNonEth contract. var ZetaConnectorNonEthMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"zetaTokenAddress_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tssAddress_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tssAddressUpdater_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"pauserAddress_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"CallerIsNotPauser\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"CallerIsNotTss\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"CallerIsNotTssOrUpdater\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"CallerIsNotTssUpdater\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"maxSupply\",\"type\":\"uint256\"}],\"name\":\"ExceedsMaxSupply\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZetaTransferError\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"callerAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMaxSupply\",\"type\":\"uint256\"}],\"name\":\"MaxSupplyUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"callerAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newTssAddress\",\"type\":\"address\"}],\"name\":\"PauserAddressUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"callerAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newTssAddress\",\"type\":\"address\"}],\"name\":\"TSSAddressUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"callerAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newTssUpdaterAddress\",\"type\":\"address\"}],\"name\":\"TSSAddressUpdaterUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"zetaTxSenderAddress\",\"type\":\"bytes\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"sourceChainId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"destinationAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"zetaValue\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"internalSendHash\",\"type\":\"bytes32\"}],\"name\":\"ZetaReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"zetaTxSenderAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"sourceChainId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"destinationChainId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"destinationAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"remainingZetaValue\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"internalSendHash\",\"type\":\"bytes32\"}],\"name\":\"ZetaReverted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sourceTxOriginAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"zetaTxSenderAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"destinationChainId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"destinationAddress\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"zetaValueAndGas\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"destinationGasLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"zetaParams\",\"type\":\"bytes\"}],\"name\":\"ZetaSent\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"getLockedAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"zetaTxSenderAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"sourceChainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"destinationAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"zetaValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"internalSendHash\",\"type\":\"bytes32\"}],\"name\":\"onReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"zetaTxSenderAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sourceChainId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"destinationAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"destinationChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"remainingZetaValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"internalSendHash\",\"type\":\"bytes32\"}],\"name\":\"onRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauserAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceTssAddressUpdater\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"destinationChainId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"destinationAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"destinationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"zetaValueAndGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"zetaParams\",\"type\":\"bytes\"}],\"internalType\":\"structZetaInterfaces.SendInput\",\"name\":\"input\",\"type\":\"tuple\"}],\"name\":\"send\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"maxSupply_\",\"type\":\"uint256\"}],\"name\":\"setMaxSupply\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tssAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tssAddressUpdater\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pauserAddress_\",\"type\":\"address\"}],\"name\":\"updatePauserAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tssAddress_\",\"type\":\"address\"}],\"name\":\"updateTssAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zetaToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x60a06040527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6003553480156200003557600080fd5b506040516200237b3803806200237b83398181016040528101906200005b9190620002a8565b8383838360008060006101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480620000e15750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80620001195750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80620001515750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b1562000189576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b8152505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050506200036d565b600081519050620002a28162000353565b92915050565b60008060008060808587031215620002c557620002c46200034e565b5b6000620002d58782880162000291565b9450506020620002e88782880162000291565b9350506040620002fb8782880162000291565b92505060606200030e8782880162000291565b91505092959194509250565b600062000327826200032e565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6200035e816200031a565b81146200036a57600080fd5b50565b60805160601c611fc5620003b66000396000818161029f015281816102c501528181610408015281816104f601528181610f5201528181611040015261126f0152611fc56000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80636f8b44b011610097578063942a5e1611610066578063942a5e1614610229578063d5abeb0114610245578063ec02690114610263578063f7fb869b1461027f57610100565b80636f8b44b0146101dd578063779e3b63146101f95780638456cb59146102035780639122c3441461020d57610100565b80633f4ba83a116100d35780633f4ba83a1461017b5780635b112591146101855780635c975abb146101a35780636128480f146101c157610100565b806321e093b114610105578063252bc8861461012357806329dd214d14610141578063328a01d01461015d575b600080fd5b61010d61029d565b60405161011a9190611a78565b60405180910390f35b61012b6102c1565b6040516101389190611ce5565b60405180910390f35b61015b600480360381019061015691906116f3565b610371565b005b610165610721565b6040516101729190611a78565b60405180910390f35b610183610747565b005b61018d6107e3565b60405161019a9190611a78565b60405180910390f35b6101ab610809565b6040516101b89190611bfd565b60405180910390f35b6101db60048036038101906101d691906115e4565b61081f565b005b6101f760048036038101906101f2919061180b565b610995565b005b610201610a6a565b005b61020b610c45565b005b610227600480360381019061022291906115e4565b610ce1565b005b610243600480360381019061023e9190611611565b610eb3565b005b61024d61125f565b60405161025a9190611ce5565b60405180910390f35b61027d600480360381019061027891906117c2565b611265565b005b610287611396565b6040516102949190611a78565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161031c9190611a78565b60206040518083038186803b15801561033457600080fd5b505afa158015610348573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036c9190611838565b905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461040357336040517fff70ace20000000000000000000000000000000000000000000000000000000081526004016103fa9190611a78565b60405180910390fd5b6003547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561046c57600080fd5b505afa158015610480573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104a49190611838565b856104af9190611da1565b11156104f4576003546040517f3d3dbc830000000000000000000000000000000000000000000000000000000081526004016104eb9190611ce5565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16631e458bee8686846040518463ffffffff1660e01b815260040161055193929190611b61565b600060405180830381600087803b15801561056b57600080fd5b505af115801561057f573d6000803e3d6000fd5b5050505060008383905011156106bf578473ffffffffffffffffffffffffffffffffffffffff16633749c51a6040518060a001604052808b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505081526020018981526020018873ffffffffffffffffffffffffffffffffffffffff16815260200187815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508152506040518263ffffffff1660e01b815260040161068c9190611ca1565b600060405180830381600087803b1580156106a657600080fd5b505af11580156106ba573d6000803e3d6000fd5b505050505b808573ffffffffffffffffffffffffffffffffffffffff16877ff1302855733b40d8acb467ee990b6d56c05c80e28ebcabfa6e6f3f57cb50d6988b8b89898960405161070f959493929190611c18565b60405180910390a45050505050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107d957336040517f4677a0d30000000000000000000000000000000000000000000000000000000081526004016107d09190611a78565b60405180910390fd5b6107e16113bc565b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900460ff16905090565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108b157336040517f4677a0d30000000000000000000000000000000000000000000000000000000081526004016108a89190611a78565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610918576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd41d83655d484bdf299598751c371b2d92088667266fe3774b25a97bdd5d0397338260405161098a929190611a93565b60405180910390a150565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a2757336040517fff70ace2000000000000000000000000000000000000000000000000000000008152600401610a1e9190611a78565b60405180910390fd5b806003819055507f26843c619c87f9021bcc4ec5143177198076d9da3c13ce1bb2e941644c69d42e3382604051610a5f929190611b38565b60405180910390a150565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610afc57336040517fe700765e000000000000000000000000000000000000000000000000000000008152600401610af39190611a78565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610b85576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f5104c9abdc7d111c2aeb4ce890ac70274a4be2ee83f46a62551be5e6ebc82dd033600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610c3b929190611a93565b60405180910390a1565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cd757336040517f4677a0d3000000000000000000000000000000000000000000000000000000008152600401610cce9190611a78565b60405180910390fd5b610cdf61141e565b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610d8d5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15610dcf57336040517fcdfcef97000000000000000000000000000000000000000000000000000000008152600401610dc69190611a78565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610e36576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fe79965b5c67dcfb2cf5fe152715e4a7256cee62a3d5dd8484fd8a8539eb8beff3382604051610ea8929190611a93565b60405180910390a150565b610ebb611480565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f4d57336040517fff70ace2000000000000000000000000000000000000000000000000000000008152600401610f449190611a78565b60405180910390fd5b6003547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610fb657600080fd5b505afa158015610fca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fee9190611838565b85610ff99190611da1565b111561103e576003546040517f3d3dbc830000000000000000000000000000000000000000000000000000000081526004016110359190611ce5565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16631e458bee8a86846040518463ffffffff1660e01b815260040161109b93929190611b61565b600060405180830381600087803b1580156110b557600080fd5b505af11580156110c9573d6000803e3d6000fd5b50505050600083839050111561120f578873ffffffffffffffffffffffffffffffffffffffff16633ff0693c6040518060c001604052808c73ffffffffffffffffffffffffffffffffffffffff1681526020018b81526020018a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050815260200188815260200187815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508152506040518263ffffffff1660e01b81526004016111dc9190611cc3565b600060405180830381600087803b1580156111f657600080fd5b505af115801561120a573d6000803e3d6000fd5b505050505b80857f521fb0b407c2eb9b1375530e9b9a569889992140a688bc076aa72c1712012c888b8b8b8b8a8a8a60405161124c9796959493929190611b98565b60405180910390a3505050505050505050565b60035481565b61126d611480565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166379cc67903383608001356040518363ffffffff1660e01b81526004016112cc929190611b38565b600060405180830381600087803b1580156112e657600080fd5b505af11580156112fa573d6000803e3d6000fd5b5050505080600001353373ffffffffffffffffffffffffffffffffffffffff167f7ec1c94701e09b1652f3e1d307e60c4b9ebf99aff8c2079fd1d8c585e031c4e43284806020019061134c9190611d00565b866080013587604001358880606001906113669190611d00565b8a8060a001906113769190611d00565b60405161138b99989796959493929190611abc565b60405180910390a350565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6113c46114ca565b60008060006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611407611513565b6040516114149190611a78565b60405180910390a1565b611426611480565b60016000806101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611469611513565b6040516114769190611a78565b60405180910390a1565b611488610809565b156114c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bf90611c81565b60405180910390fd5b565b6114d2610809565b611511576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150890611c61565b60405180910390fd5b565b600033905090565b60008135905061152a81611f4a565b92915050565b60008135905061153f81611f61565b92915050565b60008083601f84011261155b5761155a611ebf565b5b8235905067ffffffffffffffff81111561157857611577611eba565b5b60208301915083600182028301111561159457611593611ed3565b5b9250929050565b600060c082840312156115b1576115b0611ec9565b5b81905092915050565b6000813590506115c981611f78565b92915050565b6000815190506115de81611f78565b92915050565b6000602082840312156115fa576115f9611ee2565b5b60006116088482850161151b565b91505092915050565b600080600080600080600080600060e08a8c03121561163357611632611ee2565b5b60006116418c828d0161151b565b99505060206116528c828d016115ba565b98505060408a013567ffffffffffffffff81111561167357611672611edd565b5b61167f8c828d01611545565b975097505060606116928c828d016115ba565b95505060806116a38c828d016115ba565b94505060a08a013567ffffffffffffffff8111156116c4576116c3611edd565b5b6116d08c828d01611545565b935093505060c06116e38c828d01611530565b9150509295985092959850929598565b60008060008060008060008060c0898b03121561171357611712611ee2565b5b600089013567ffffffffffffffff81111561173157611730611edd565b5b61173d8b828c01611545565b985098505060206117508b828c016115ba565b96505060406117618b828c0161151b565b95505060606117728b828c016115ba565b945050608089013567ffffffffffffffff81111561179357611792611edd565b5b61179f8b828c01611545565b935093505060a06117b28b828c01611530565b9150509295985092959890939650565b6000602082840312156117d8576117d7611ee2565b5b600082013567ffffffffffffffff8111156117f6576117f5611edd565b5b6118028482850161159b565b91505092915050565b60006020828403121561182157611820611ee2565b5b600061182f848285016115ba565b91505092915050565b60006020828403121561184e5761184d611ee2565b5b600061185c848285016115cf565b91505092915050565b61186e81611df7565b82525050565b61187d81611df7565b82525050565b61188c81611e09565b82525050565b61189b81611e15565b82525050565b60006118ad8385611d7f565b93506118ba838584611e49565b6118c383611ee7565b840190509392505050565b60006118d982611d63565b6118e38185611d6e565b93506118f3818560208601611e58565b6118fc81611ee7565b840191505092915050565b6000611914601483611d90565b915061191f82611ef8565b602082019050919050565b6000611937601083611d90565b915061194282611f21565b602082019050919050565b600060a083016000830151848203600086015261196a82826118ce565b915050602083015161197f6020860182611a5a565b5060408301516119926040860182611865565b5060608301516119a56060860182611a5a565b50608083015184820360808601526119bd82826118ce565b9150508091505092915050565b600060c0830160008301516119e26000860182611865565b5060208301516119f56020860182611a5a565b5060408301518482036040860152611a0d82826118ce565b9150506060830151611a226060860182611a5a565b506080830151611a356080860182611a5a565b5060a083015184820360a0860152611a4d82826118ce565b9150508091505092915050565b611a6381611e3f565b82525050565b611a7281611e3f565b82525050565b6000602082019050611a8d6000830184611874565b92915050565b6000604082019050611aa86000830185611874565b611ab56020830184611874565b9392505050565b600060c082019050611ad1600083018c611874565b8181036020830152611ae4818a8c6118a1565b9050611af36040830189611a69565b611b006060830188611a69565b8181036080830152611b138186886118a1565b905081810360a0830152611b288184866118a1565b90509a9950505050505050505050565b6000604082019050611b4d6000830185611874565b611b5a6020830184611a69565b9392505050565b6000606082019050611b766000830186611874565b611b836020830185611a69565b611b906040830184611892565b949350505050565b600060a082019050611bad600083018a611874565b611bba6020830189611a69565b8181036040830152611bcd8187896118a1565b9050611bdc6060830186611a69565b8181036080830152611bef8184866118a1565b905098975050505050505050565b6000602082019050611c126000830184611883565b92915050565b60006060820190508181036000830152611c338187896118a1565b9050611c426020830186611a69565b8181036040830152611c558184866118a1565b90509695505050505050565b60006020820190508181036000830152611c7a81611907565b9050919050565b60006020820190508181036000830152611c9a8161192a565b9050919050565b60006020820190508181036000830152611cbb818461194d565b905092915050565b60006020820190508181036000830152611cdd81846119ca565b905092915050565b6000602082019050611cfa6000830184611a69565b92915050565b60008083356001602003843603038112611d1d57611d1c611ece565b5b80840192508235915067ffffffffffffffff821115611d3f57611d3e611ec4565b5b602083019250600182023603831315611d5b57611d5a611ed8565b5b509250929050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000611dac82611e3f565b9150611db783611e3f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611dec57611deb611e8b565b5b828201905092915050565b6000611e0282611e1f565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015611e76578082015181840152602081019050611e5b565b83811115611e85576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b611f5381611df7565b8114611f5e57600080fd5b50565b611f6a81611e15565b8114611f7557600080fd5b50565b611f8181611e3f565b8114611f8c57600080fd5b5056fea2646970667358221220af09dec3099b33c22fceeb145766f8056225d0604e40f061de22f5e64b79e8b564736f6c63430008070033", + Bin: "0x60a06040527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6003553480156200003557600080fd5b506040516200237b3803806200237b83398181016040528101906200005b9190620002a8565b8383838360008060006101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480620000e15750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80620001195750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80620001515750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b1562000189576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b8152505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050506200036d565b600081519050620002a28162000353565b92915050565b60008060008060808587031215620002c557620002c46200034e565b5b6000620002d58782880162000291565b9450506020620002e88782880162000291565b9350506040620002fb8782880162000291565b92505060606200030e8782880162000291565b91505092959194509250565b600062000327826200032e565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6200035e816200031a565b81146200036a57600080fd5b50565b60805160601c611fc5620003b66000396000818161029f015281816102c501528181610408015281816104f601528181610f5201528181611040015261126f0152611fc56000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80636f8b44b011610097578063942a5e1611610066578063942a5e1614610229578063d5abeb0114610245578063ec02690114610263578063f7fb869b1461027f57610100565b80636f8b44b0146101dd578063779e3b63146101f95780638456cb59146102035780639122c3441461020d57610100565b80633f4ba83a116100d35780633f4ba83a1461017b5780635b112591146101855780635c975abb146101a35780636128480f146101c157610100565b806321e093b114610105578063252bc8861461012357806329dd214d14610141578063328a01d01461015d575b600080fd5b61010d61029d565b60405161011a9190611a78565b60405180910390f35b61012b6102c1565b6040516101389190611ce5565b60405180910390f35b61015b600480360381019061015691906116f3565b610371565b005b610165610721565b6040516101729190611a78565b60405180910390f35b610183610747565b005b61018d6107e3565b60405161019a9190611a78565b60405180910390f35b6101ab610809565b6040516101b89190611bfd565b60405180910390f35b6101db60048036038101906101d691906115e4565b61081f565b005b6101f760048036038101906101f2919061180b565b610995565b005b610201610a6a565b005b61020b610c45565b005b610227600480360381019061022291906115e4565b610ce1565b005b610243600480360381019061023e9190611611565b610eb3565b005b61024d61125f565b60405161025a9190611ce5565b60405180910390f35b61027d600480360381019061027891906117c2565b611265565b005b610287611396565b6040516102949190611a78565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161031c9190611a78565b60206040518083038186803b15801561033457600080fd5b505afa158015610348573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036c9190611838565b905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461040357336040517fff70ace20000000000000000000000000000000000000000000000000000000081526004016103fa9190611a78565b60405180910390fd5b6003547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561046c57600080fd5b505afa158015610480573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104a49190611838565b856104af9190611da1565b11156104f4576003546040517f3d3dbc830000000000000000000000000000000000000000000000000000000081526004016104eb9190611ce5565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16631e458bee8686846040518463ffffffff1660e01b815260040161055193929190611b61565b600060405180830381600087803b15801561056b57600080fd5b505af115801561057f573d6000803e3d6000fd5b5050505060008383905011156106bf578473ffffffffffffffffffffffffffffffffffffffff16633749c51a6040518060a001604052808b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505081526020018981526020018873ffffffffffffffffffffffffffffffffffffffff16815260200187815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508152506040518263ffffffff1660e01b815260040161068c9190611ca1565b600060405180830381600087803b1580156106a657600080fd5b505af11580156106ba573d6000803e3d6000fd5b505050505b808573ffffffffffffffffffffffffffffffffffffffff16877ff1302855733b40d8acb467ee990b6d56c05c80e28ebcabfa6e6f3f57cb50d6988b8b89898960405161070f959493929190611c18565b60405180910390a45050505050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107d957336040517f4677a0d30000000000000000000000000000000000000000000000000000000081526004016107d09190611a78565b60405180910390fd5b6107e16113bc565b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900460ff16905090565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108b157336040517f4677a0d30000000000000000000000000000000000000000000000000000000081526004016108a89190611a78565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610918576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd41d83655d484bdf299598751c371b2d92088667266fe3774b25a97bdd5d0397338260405161098a929190611a93565b60405180910390a150565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a2757336040517fff70ace2000000000000000000000000000000000000000000000000000000008152600401610a1e9190611a78565b60405180910390fd5b806003819055507f26843c619c87f9021bcc4ec5143177198076d9da3c13ce1bb2e941644c69d42e3382604051610a5f929190611b38565b60405180910390a150565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610afc57336040517fe700765e000000000000000000000000000000000000000000000000000000008152600401610af39190611a78565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610b85576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f5104c9abdc7d111c2aeb4ce890ac70274a4be2ee83f46a62551be5e6ebc82dd033600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610c3b929190611a93565b60405180910390a1565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cd757336040517f4677a0d3000000000000000000000000000000000000000000000000000000008152600401610cce9190611a78565b60405180910390fd5b610cdf61141e565b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610d8d5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15610dcf57336040517fcdfcef97000000000000000000000000000000000000000000000000000000008152600401610dc69190611a78565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610e36576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fe79965b5c67dcfb2cf5fe152715e4a7256cee62a3d5dd8484fd8a8539eb8beff3382604051610ea8929190611a93565b60405180910390a150565b610ebb611480565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f4d57336040517fff70ace2000000000000000000000000000000000000000000000000000000008152600401610f449190611a78565b60405180910390fd5b6003547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610fb657600080fd5b505afa158015610fca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fee9190611838565b85610ff99190611da1565b111561103e576003546040517f3d3dbc830000000000000000000000000000000000000000000000000000000081526004016110359190611ce5565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16631e458bee8a86846040518463ffffffff1660e01b815260040161109b93929190611b61565b600060405180830381600087803b1580156110b557600080fd5b505af11580156110c9573d6000803e3d6000fd5b50505050600083839050111561120f578873ffffffffffffffffffffffffffffffffffffffff16633ff0693c6040518060c001604052808c73ffffffffffffffffffffffffffffffffffffffff1681526020018b81526020018a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050815260200188815260200187815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508152506040518263ffffffff1660e01b81526004016111dc9190611cc3565b600060405180830381600087803b1580156111f657600080fd5b505af115801561120a573d6000803e3d6000fd5b505050505b80857f521fb0b407c2eb9b1375530e9b9a569889992140a688bc076aa72c1712012c888b8b8b8b8a8a8a60405161124c9796959493929190611b98565b60405180910390a3505050505050505050565b60035481565b61126d611480565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166379cc67903383608001356040518363ffffffff1660e01b81526004016112cc929190611b38565b600060405180830381600087803b1580156112e657600080fd5b505af11580156112fa573d6000803e3d6000fd5b5050505080600001353373ffffffffffffffffffffffffffffffffffffffff167f7ec1c94701e09b1652f3e1d307e60c4b9ebf99aff8c2079fd1d8c585e031c4e43284806020019061134c9190611d00565b866080013587604001358880606001906113669190611d00565b8a8060a001906113769190611d00565b60405161138b99989796959493929190611abc565b60405180910390a350565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6113c46114ca565b60008060006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611407611513565b6040516114149190611a78565b60405180910390a1565b611426611480565b60016000806101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611469611513565b6040516114769190611a78565b60405180910390a1565b611488610809565b156114c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bf90611c81565b60405180910390fd5b565b6114d2610809565b611511576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150890611c61565b60405180910390fd5b565b600033905090565b60008135905061152a81611f4a565b92915050565b60008135905061153f81611f61565b92915050565b60008083601f84011261155b5761155a611ebf565b5b8235905067ffffffffffffffff81111561157857611577611eba565b5b60208301915083600182028301111561159457611593611ed3565b5b9250929050565b600060c082840312156115b1576115b0611ec9565b5b81905092915050565b6000813590506115c981611f78565b92915050565b6000815190506115de81611f78565b92915050565b6000602082840312156115fa576115f9611ee2565b5b60006116088482850161151b565b91505092915050565b600080600080600080600080600060e08a8c03121561163357611632611ee2565b5b60006116418c828d0161151b565b99505060206116528c828d016115ba565b98505060408a013567ffffffffffffffff81111561167357611672611edd565b5b61167f8c828d01611545565b975097505060606116928c828d016115ba565b95505060806116a38c828d016115ba565b94505060a08a013567ffffffffffffffff8111156116c4576116c3611edd565b5b6116d08c828d01611545565b935093505060c06116e38c828d01611530565b9150509295985092959850929598565b60008060008060008060008060c0898b03121561171357611712611ee2565b5b600089013567ffffffffffffffff81111561173157611730611edd565b5b61173d8b828c01611545565b985098505060206117508b828c016115ba565b96505060406117618b828c0161151b565b95505060606117728b828c016115ba565b945050608089013567ffffffffffffffff81111561179357611792611edd565b5b61179f8b828c01611545565b935093505060a06117b28b828c01611530565b9150509295985092959890939650565b6000602082840312156117d8576117d7611ee2565b5b600082013567ffffffffffffffff8111156117f6576117f5611edd565b5b6118028482850161159b565b91505092915050565b60006020828403121561182157611820611ee2565b5b600061182f848285016115ba565b91505092915050565b60006020828403121561184e5761184d611ee2565b5b600061185c848285016115cf565b91505092915050565b61186e81611df7565b82525050565b61187d81611df7565b82525050565b61188c81611e09565b82525050565b61189b81611e15565b82525050565b60006118ad8385611d7f565b93506118ba838584611e49565b6118c383611ee7565b840190509392505050565b60006118d982611d63565b6118e38185611d6e565b93506118f3818560208601611e58565b6118fc81611ee7565b840191505092915050565b6000611914601483611d90565b915061191f82611ef8565b602082019050919050565b6000611937601083611d90565b915061194282611f21565b602082019050919050565b600060a083016000830151848203600086015261196a82826118ce565b915050602083015161197f6020860182611a5a565b5060408301516119926040860182611865565b5060608301516119a56060860182611a5a565b50608083015184820360808601526119bd82826118ce565b9150508091505092915050565b600060c0830160008301516119e26000860182611865565b5060208301516119f56020860182611a5a565b5060408301518482036040860152611a0d82826118ce565b9150506060830151611a226060860182611a5a565b506080830151611a356080860182611a5a565b5060a083015184820360a0860152611a4d82826118ce565b9150508091505092915050565b611a6381611e3f565b82525050565b611a7281611e3f565b82525050565b6000602082019050611a8d6000830184611874565b92915050565b6000604082019050611aa86000830185611874565b611ab56020830184611874565b9392505050565b600060c082019050611ad1600083018c611874565b8181036020830152611ae4818a8c6118a1565b9050611af36040830189611a69565b611b006060830188611a69565b8181036080830152611b138186886118a1565b905081810360a0830152611b288184866118a1565b90509a9950505050505050505050565b6000604082019050611b4d6000830185611874565b611b5a6020830184611a69565b9392505050565b6000606082019050611b766000830186611874565b611b836020830185611a69565b611b906040830184611892565b949350505050565b600060a082019050611bad600083018a611874565b611bba6020830189611a69565b8181036040830152611bcd8187896118a1565b9050611bdc6060830186611a69565b8181036080830152611bef8184866118a1565b905098975050505050505050565b6000602082019050611c126000830184611883565b92915050565b60006060820190508181036000830152611c338187896118a1565b9050611c426020830186611a69565b8181036040830152611c558184866118a1565b90509695505050505050565b60006020820190508181036000830152611c7a81611907565b9050919050565b60006020820190508181036000830152611c9a8161192a565b9050919050565b60006020820190508181036000830152611cbb818461194d565b905092915050565b60006020820190508181036000830152611cdd81846119ca565b905092915050565b6000602082019050611cfa6000830184611a69565b92915050565b60008083356001602003843603038112611d1d57611d1c611ece565b5b80840192508235915067ffffffffffffffff821115611d3f57611d3e611ec4565b5b602083019250600182023603831315611d5b57611d5a611ed8565b5b509250929050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000611dac82611e3f565b9150611db783611e3f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611dec57611deb611e8b565b5b828201905092915050565b6000611e0282611e1f565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015611e76578082015181840152602081019050611e5b565b83811115611e85576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b611f5381611df7565b8114611f5e57600080fd5b50565b611f6a81611e15565b8114611f7557600080fd5b50565b611f8181611e3f565b8114611f8c57600080fd5b5056fea2646970667358221220c031f80b5c9d397027c78f70c718cbb340af3281424b52faca5743d7e7b4560464736f6c63430008070033", } // ZetaConnectorNonEthABI is the input ABI used to generate the binding from. diff --git a/pkg/contracts/zevm/interfaces/isystem.sol/isystem.go b/v1/pkg/contracts/zevm/interfaces/isystem.sol/isystem.go similarity index 100% rename from pkg/contracts/zevm/interfaces/isystem.sol/isystem.go rename to v1/pkg/contracts/zevm/interfaces/isystem.sol/isystem.go diff --git a/pkg/contracts/zevm/interfaces/iuniswapv2router01.sol/iuniswapv2router01.go b/v1/pkg/contracts/zevm/interfaces/iuniswapv2router01.sol/iuniswapv2router01.go similarity index 100% rename from pkg/contracts/zevm/interfaces/iuniswapv2router01.sol/iuniswapv2router01.go rename to v1/pkg/contracts/zevm/interfaces/iuniswapv2router01.sol/iuniswapv2router01.go diff --git a/pkg/contracts/zevm/interfaces/iuniswapv2router02.sol/iuniswapv2router02.go b/v1/pkg/contracts/zevm/interfaces/iuniswapv2router02.sol/iuniswapv2router02.go similarity index 100% rename from pkg/contracts/zevm/interfaces/iuniswapv2router02.sol/iuniswapv2router02.go rename to v1/pkg/contracts/zevm/interfaces/iuniswapv2router02.sol/iuniswapv2router02.go diff --git a/pkg/contracts/zevm/interfaces/iwzeta.sol/iweth9.go b/v1/pkg/contracts/zevm/interfaces/iwzeta.sol/iweth9.go similarity index 100% rename from pkg/contracts/zevm/interfaces/iwzeta.sol/iweth9.go rename to v1/pkg/contracts/zevm/interfaces/iwzeta.sol/iweth9.go diff --git a/pkg/contracts/zevm/interfaces/izrc20.sol/izrc20.go b/v1/pkg/contracts/zevm/interfaces/izrc20.sol/izrc20.go similarity index 100% rename from pkg/contracts/zevm/interfaces/izrc20.sol/izrc20.go rename to v1/pkg/contracts/zevm/interfaces/izrc20.sol/izrc20.go diff --git a/pkg/contracts/zevm/interfaces/izrc20.sol/izrc20metadata.go b/v1/pkg/contracts/zevm/interfaces/izrc20.sol/izrc20metadata.go similarity index 100% rename from pkg/contracts/zevm/interfaces/izrc20.sol/izrc20metadata.go rename to v1/pkg/contracts/zevm/interfaces/izrc20.sol/izrc20metadata.go diff --git a/pkg/contracts/zevm/interfaces/izrc20.sol/zrc20events.go b/v1/pkg/contracts/zevm/interfaces/izrc20.sol/zrc20events.go similarity index 100% rename from pkg/contracts/zevm/interfaces/izrc20.sol/zrc20events.go rename to v1/pkg/contracts/zevm/interfaces/izrc20.sol/zrc20events.go diff --git a/pkg/contracts/zevm/interfaces/zcontract.sol/universalcontract.go b/v1/pkg/contracts/zevm/interfaces/zcontract.sol/universalcontract.go similarity index 100% rename from pkg/contracts/zevm/interfaces/zcontract.sol/universalcontract.go rename to v1/pkg/contracts/zevm/interfaces/zcontract.sol/universalcontract.go diff --git a/pkg/contracts/zevm/interfaces/zcontract.sol/zcontract.go b/v1/pkg/contracts/zevm/interfaces/zcontract.sol/zcontract.go similarity index 100% rename from pkg/contracts/zevm/interfaces/zcontract.sol/zcontract.go rename to v1/pkg/contracts/zevm/interfaces/zcontract.sol/zcontract.go diff --git a/pkg/contracts/zevm/systemcontract.sol/systemcontract.go b/v1/pkg/contracts/zevm/systemcontract.sol/systemcontract.go similarity index 100% rename from pkg/contracts/zevm/systemcontract.sol/systemcontract.go rename to v1/pkg/contracts/zevm/systemcontract.sol/systemcontract.go diff --git a/pkg/contracts/zevm/systemcontract.sol/systemcontracterrors.go b/v1/pkg/contracts/zevm/systemcontract.sol/systemcontracterrors.go similarity index 100% rename from pkg/contracts/zevm/systemcontract.sol/systemcontracterrors.go rename to v1/pkg/contracts/zevm/systemcontract.sol/systemcontracterrors.go diff --git a/pkg/contracts/zevm/testing/systemcontractmock.sol/systemcontracterrors.go b/v1/pkg/contracts/zevm/testing/systemcontractmock.sol/systemcontracterrors.go similarity index 100% rename from pkg/contracts/zevm/testing/systemcontractmock.sol/systemcontracterrors.go rename to v1/pkg/contracts/zevm/testing/systemcontractmock.sol/systemcontracterrors.go diff --git a/pkg/contracts/zevm/testing/systemcontractmock.sol/systemcontractmock.go b/v1/pkg/contracts/zevm/testing/systemcontractmock.sol/systemcontractmock.go similarity index 100% rename from pkg/contracts/zevm/testing/systemcontractmock.sol/systemcontractmock.go rename to v1/pkg/contracts/zevm/testing/systemcontractmock.sol/systemcontractmock.go diff --git a/pkg/contracts/zevm/uniswap.sol/uniswapimports.go b/v1/pkg/contracts/zevm/uniswap.sol/uniswapimports.go similarity index 100% rename from pkg/contracts/zevm/uniswap.sol/uniswapimports.go rename to v1/pkg/contracts/zevm/uniswap.sol/uniswapimports.go diff --git a/pkg/contracts/zevm/uniswapperiphery.sol/uniswapimports.go b/v1/pkg/contracts/zevm/uniswapperiphery.sol/uniswapimports.go similarity index 100% rename from pkg/contracts/zevm/uniswapperiphery.sol/uniswapimports.go rename to v1/pkg/contracts/zevm/uniswapperiphery.sol/uniswapimports.go diff --git a/pkg/contracts/zevm/wzeta.sol/weth9.go b/v1/pkg/contracts/zevm/wzeta.sol/weth9.go similarity index 100% rename from pkg/contracts/zevm/wzeta.sol/weth9.go rename to v1/pkg/contracts/zevm/wzeta.sol/weth9.go diff --git a/pkg/contracts/zevm/zetaconnectorzevm.sol/zetaconnectorzevm.go b/v1/pkg/contracts/zevm/zetaconnectorzevm.sol/zetaconnectorzevm.go similarity index 100% rename from pkg/contracts/zevm/zetaconnectorzevm.sol/zetaconnectorzevm.go rename to v1/pkg/contracts/zevm/zetaconnectorzevm.sol/zetaconnectorzevm.go diff --git a/pkg/contracts/zevm/zetaconnectorzevm.sol/zetainterfaces.go b/v1/pkg/contracts/zevm/zetaconnectorzevm.sol/zetainterfaces.go similarity index 100% rename from pkg/contracts/zevm/zetaconnectorzevm.sol/zetainterfaces.go rename to v1/pkg/contracts/zevm/zetaconnectorzevm.sol/zetainterfaces.go diff --git a/pkg/contracts/zevm/zetaconnectorzevm.sol/zetareceiver.go b/v1/pkg/contracts/zevm/zetaconnectorzevm.sol/zetareceiver.go similarity index 100% rename from pkg/contracts/zevm/zetaconnectorzevm.sol/zetareceiver.go rename to v1/pkg/contracts/zevm/zetaconnectorzevm.sol/zetareceiver.go diff --git a/pkg/contracts/zevm/zrc20.sol/zrc20.go b/v1/pkg/contracts/zevm/zrc20.sol/zrc20.go similarity index 100% rename from pkg/contracts/zevm/zrc20.sol/zrc20.go rename to v1/pkg/contracts/zevm/zrc20.sol/zrc20.go diff --git a/pkg/contracts/zevm/zrc20.sol/zrc20errors.go b/v1/pkg/contracts/zevm/zrc20.sol/zrc20errors.go similarity index 100% rename from pkg/contracts/zevm/zrc20.sol/zrc20errors.go rename to v1/pkg/contracts/zevm/zrc20.sol/zrc20errors.go diff --git a/pkg/openzeppelin/contracts/access/ownable.sol/ownable.go b/v1/pkg/openzeppelin/contracts/access/ownable.sol/ownable.go similarity index 100% rename from pkg/openzeppelin/contracts/access/ownable.sol/ownable.go rename to v1/pkg/openzeppelin/contracts/access/ownable.sol/ownable.go diff --git a/pkg/openzeppelin/contracts/access/ownable2step.sol/ownable2step.go b/v1/pkg/openzeppelin/contracts/access/ownable2step.sol/ownable2step.go similarity index 100% rename from pkg/openzeppelin/contracts/access/ownable2step.sol/ownable2step.go rename to v1/pkg/openzeppelin/contracts/access/ownable2step.sol/ownable2step.go diff --git a/pkg/openzeppelin/contracts/security/pausable.sol/pausable.go b/v1/pkg/openzeppelin/contracts/security/pausable.sol/pausable.go similarity index 100% rename from pkg/openzeppelin/contracts/security/pausable.sol/pausable.go rename to v1/pkg/openzeppelin/contracts/security/pausable.sol/pausable.go diff --git a/pkg/openzeppelin/contracts/security/reentrancyguard.sol/reentrancyguard.go b/v1/pkg/openzeppelin/contracts/security/reentrancyguard.sol/reentrancyguard.go similarity index 100% rename from pkg/openzeppelin/contracts/security/reentrancyguard.sol/reentrancyguard.go rename to v1/pkg/openzeppelin/contracts/security/reentrancyguard.sol/reentrancyguard.go diff --git a/pkg/openzeppelin/contracts/token/erc20/erc20.sol/erc20.go b/v1/pkg/openzeppelin/contracts/token/erc20/erc20.sol/erc20.go similarity index 100% rename from pkg/openzeppelin/contracts/token/erc20/erc20.sol/erc20.go rename to v1/pkg/openzeppelin/contracts/token/erc20/erc20.sol/erc20.go diff --git a/pkg/openzeppelin/contracts/token/erc20/extensions/erc20burnable.sol/erc20burnable.go b/v1/pkg/openzeppelin/contracts/token/erc20/extensions/erc20burnable.sol/erc20burnable.go similarity index 100% rename from pkg/openzeppelin/contracts/token/erc20/extensions/erc20burnable.sol/erc20burnable.go rename to v1/pkg/openzeppelin/contracts/token/erc20/extensions/erc20burnable.sol/erc20burnable.go diff --git a/pkg/openzeppelin/contracts/token/erc20/extensions/ierc20metadata.sol/ierc20metadata.go b/v1/pkg/openzeppelin/contracts/token/erc20/extensions/ierc20metadata.sol/ierc20metadata.go similarity index 100% rename from pkg/openzeppelin/contracts/token/erc20/extensions/ierc20metadata.sol/ierc20metadata.go rename to v1/pkg/openzeppelin/contracts/token/erc20/extensions/ierc20metadata.sol/ierc20metadata.go diff --git a/pkg/openzeppelin/contracts/token/erc20/ierc20.sol/ierc20.go b/v1/pkg/openzeppelin/contracts/token/erc20/ierc20.sol/ierc20.go similarity index 100% rename from pkg/openzeppelin/contracts/token/erc20/ierc20.sol/ierc20.go rename to v1/pkg/openzeppelin/contracts/token/erc20/ierc20.sol/ierc20.go diff --git a/pkg/openzeppelin/contracts/token/erc20/utils/safeerc20.sol/safeerc20.go b/v1/pkg/openzeppelin/contracts/token/erc20/utils/safeerc20.sol/safeerc20.go similarity index 100% rename from pkg/openzeppelin/contracts/token/erc20/utils/safeerc20.sol/safeerc20.go rename to v1/pkg/openzeppelin/contracts/token/erc20/utils/safeerc20.sol/safeerc20.go diff --git a/pkg/openzeppelin/contracts/utils/address.sol/address.go b/v1/pkg/openzeppelin/contracts/utils/address.sol/address.go similarity index 100% rename from pkg/openzeppelin/contracts/utils/address.sol/address.go rename to v1/pkg/openzeppelin/contracts/utils/address.sol/address.go diff --git a/pkg/openzeppelin/contracts/utils/context.sol/context.go b/v1/pkg/openzeppelin/contracts/utils/context.sol/context.go similarity index 100% rename from pkg/openzeppelin/contracts/utils/context.sol/context.go rename to v1/pkg/openzeppelin/contracts/utils/context.sol/context.go diff --git a/pkg/uniswap/lib/contracts/libraries/transferhelper.sol/transferhelper.go b/v1/pkg/uniswap/lib/contracts/libraries/transferhelper.sol/transferhelper.go similarity index 100% rename from pkg/uniswap/lib/contracts/libraries/transferhelper.sol/transferhelper.go rename to v1/pkg/uniswap/lib/contracts/libraries/transferhelper.sol/transferhelper.go diff --git a/pkg/uniswap/v2-core/contracts/interfaces/ierc20.sol/ierc20.go b/v1/pkg/uniswap/v2-core/contracts/interfaces/ierc20.sol/ierc20.go similarity index 100% rename from pkg/uniswap/v2-core/contracts/interfaces/ierc20.sol/ierc20.go rename to v1/pkg/uniswap/v2-core/contracts/interfaces/ierc20.sol/ierc20.go diff --git a/pkg/uniswap/v2-core/contracts/interfaces/iuniswapv2callee.sol/iuniswapv2callee.go b/v1/pkg/uniswap/v2-core/contracts/interfaces/iuniswapv2callee.sol/iuniswapv2callee.go similarity index 100% rename from pkg/uniswap/v2-core/contracts/interfaces/iuniswapv2callee.sol/iuniswapv2callee.go rename to v1/pkg/uniswap/v2-core/contracts/interfaces/iuniswapv2callee.sol/iuniswapv2callee.go diff --git a/pkg/uniswap/v2-core/contracts/interfaces/iuniswapv2erc20.sol/iuniswapv2erc20.go b/v1/pkg/uniswap/v2-core/contracts/interfaces/iuniswapv2erc20.sol/iuniswapv2erc20.go similarity index 100% rename from pkg/uniswap/v2-core/contracts/interfaces/iuniswapv2erc20.sol/iuniswapv2erc20.go rename to v1/pkg/uniswap/v2-core/contracts/interfaces/iuniswapv2erc20.sol/iuniswapv2erc20.go diff --git a/pkg/uniswap/v2-core/contracts/interfaces/iuniswapv2factory.sol/iuniswapv2factory.go b/v1/pkg/uniswap/v2-core/contracts/interfaces/iuniswapv2factory.sol/iuniswapv2factory.go similarity index 100% rename from pkg/uniswap/v2-core/contracts/interfaces/iuniswapv2factory.sol/iuniswapv2factory.go rename to v1/pkg/uniswap/v2-core/contracts/interfaces/iuniswapv2factory.sol/iuniswapv2factory.go diff --git a/pkg/uniswap/v2-core/contracts/interfaces/iuniswapv2pair.sol/iuniswapv2pair.go b/v1/pkg/uniswap/v2-core/contracts/interfaces/iuniswapv2pair.sol/iuniswapv2pair.go similarity index 100% rename from pkg/uniswap/v2-core/contracts/interfaces/iuniswapv2pair.sol/iuniswapv2pair.go rename to v1/pkg/uniswap/v2-core/contracts/interfaces/iuniswapv2pair.sol/iuniswapv2pair.go diff --git a/pkg/uniswap/v2-core/contracts/libraries/math.sol/math.go b/v1/pkg/uniswap/v2-core/contracts/libraries/math.sol/math.go similarity index 100% rename from pkg/uniswap/v2-core/contracts/libraries/math.sol/math.go rename to v1/pkg/uniswap/v2-core/contracts/libraries/math.sol/math.go diff --git a/pkg/uniswap/v2-core/contracts/libraries/safemath.sol/safemath.go b/v1/pkg/uniswap/v2-core/contracts/libraries/safemath.sol/safemath.go similarity index 100% rename from pkg/uniswap/v2-core/contracts/libraries/safemath.sol/safemath.go rename to v1/pkg/uniswap/v2-core/contracts/libraries/safemath.sol/safemath.go diff --git a/pkg/uniswap/v2-core/contracts/libraries/uq112x112.sol/uq112x112.go b/v1/pkg/uniswap/v2-core/contracts/libraries/uq112x112.sol/uq112x112.go similarity index 100% rename from pkg/uniswap/v2-core/contracts/libraries/uq112x112.sol/uq112x112.go rename to v1/pkg/uniswap/v2-core/contracts/libraries/uq112x112.sol/uq112x112.go diff --git a/pkg/uniswap/v2-core/contracts/uniswapv2erc20.sol/uniswapv2erc20.go b/v1/pkg/uniswap/v2-core/contracts/uniswapv2erc20.sol/uniswapv2erc20.go similarity index 100% rename from pkg/uniswap/v2-core/contracts/uniswapv2erc20.sol/uniswapv2erc20.go rename to v1/pkg/uniswap/v2-core/contracts/uniswapv2erc20.sol/uniswapv2erc20.go diff --git a/pkg/uniswap/v2-core/contracts/uniswapv2factory.sol/uniswapv2factory.go b/v1/pkg/uniswap/v2-core/contracts/uniswapv2factory.sol/uniswapv2factory.go similarity index 100% rename from pkg/uniswap/v2-core/contracts/uniswapv2factory.sol/uniswapv2factory.go rename to v1/pkg/uniswap/v2-core/contracts/uniswapv2factory.sol/uniswapv2factory.go diff --git a/pkg/uniswap/v2-core/contracts/uniswapv2pair.sol/uniswapv2pair.go b/v1/pkg/uniswap/v2-core/contracts/uniswapv2pair.sol/uniswapv2pair.go similarity index 100% rename from pkg/uniswap/v2-core/contracts/uniswapv2pair.sol/uniswapv2pair.go rename to v1/pkg/uniswap/v2-core/contracts/uniswapv2pair.sol/uniswapv2pair.go diff --git a/pkg/uniswap/v2-periphery/contracts/interfaces/ierc20.sol/ierc20.go b/v1/pkg/uniswap/v2-periphery/contracts/interfaces/ierc20.sol/ierc20.go similarity index 100% rename from pkg/uniswap/v2-periphery/contracts/interfaces/ierc20.sol/ierc20.go rename to v1/pkg/uniswap/v2-periphery/contracts/interfaces/ierc20.sol/ierc20.go diff --git a/pkg/uniswap/v2-periphery/contracts/interfaces/iuniswapv2router01.sol/iuniswapv2router01.go b/v1/pkg/uniswap/v2-periphery/contracts/interfaces/iuniswapv2router01.sol/iuniswapv2router01.go similarity index 100% rename from pkg/uniswap/v2-periphery/contracts/interfaces/iuniswapv2router01.sol/iuniswapv2router01.go rename to v1/pkg/uniswap/v2-periphery/contracts/interfaces/iuniswapv2router01.sol/iuniswapv2router01.go diff --git a/pkg/uniswap/v2-periphery/contracts/interfaces/iuniswapv2router02.sol/iuniswapv2router02.go b/v1/pkg/uniswap/v2-periphery/contracts/interfaces/iuniswapv2router02.sol/iuniswapv2router02.go similarity index 100% rename from pkg/uniswap/v2-periphery/contracts/interfaces/iuniswapv2router02.sol/iuniswapv2router02.go rename to v1/pkg/uniswap/v2-periphery/contracts/interfaces/iuniswapv2router02.sol/iuniswapv2router02.go diff --git a/pkg/uniswap/v2-periphery/contracts/interfaces/iweth.sol/iweth.go b/v1/pkg/uniswap/v2-periphery/contracts/interfaces/iweth.sol/iweth.go similarity index 100% rename from pkg/uniswap/v2-periphery/contracts/interfaces/iweth.sol/iweth.go rename to v1/pkg/uniswap/v2-periphery/contracts/interfaces/iweth.sol/iweth.go diff --git a/pkg/uniswap/v2-periphery/contracts/libraries/safemath.sol/safemath.go b/v1/pkg/uniswap/v2-periphery/contracts/libraries/safemath.sol/safemath.go similarity index 100% rename from pkg/uniswap/v2-periphery/contracts/libraries/safemath.sol/safemath.go rename to v1/pkg/uniswap/v2-periphery/contracts/libraries/safemath.sol/safemath.go diff --git a/pkg/uniswap/v2-periphery/contracts/libraries/uniswapv2library.sol/uniswapv2library.go b/v1/pkg/uniswap/v2-periphery/contracts/libraries/uniswapv2library.sol/uniswapv2library.go similarity index 100% rename from pkg/uniswap/v2-periphery/contracts/libraries/uniswapv2library.sol/uniswapv2library.go rename to v1/pkg/uniswap/v2-periphery/contracts/libraries/uniswapv2library.sol/uniswapv2library.go diff --git a/pkg/uniswap/v2-periphery/contracts/uniswapv2router02.sol/uniswapv2router02.go b/v1/pkg/uniswap/v2-periphery/contracts/uniswapv2router02.sol/uniswapv2router02.go similarity index 100% rename from pkg/uniswap/v2-periphery/contracts/uniswapv2router02.sol/uniswapv2router02.go rename to v1/pkg/uniswap/v2-periphery/contracts/uniswapv2router02.sol/uniswapv2router02.go diff --git a/pkg/uniswap/v3-core/contracts/interfaces/callback/iuniswapv3swapcallback.sol/iuniswapv3swapcallback.go b/v1/pkg/uniswap/v3-core/contracts/interfaces/callback/iuniswapv3swapcallback.sol/iuniswapv3swapcallback.go similarity index 100% rename from pkg/uniswap/v3-core/contracts/interfaces/callback/iuniswapv3swapcallback.sol/iuniswapv3swapcallback.go rename to v1/pkg/uniswap/v3-core/contracts/interfaces/callback/iuniswapv3swapcallback.sol/iuniswapv3swapcallback.go diff --git a/pkg/uniswap/v3-core/contracts/interfaces/iuniswapv3factory.sol/iuniswapv3factory.go b/v1/pkg/uniswap/v3-core/contracts/interfaces/iuniswapv3factory.sol/iuniswapv3factory.go similarity index 100% rename from pkg/uniswap/v3-core/contracts/interfaces/iuniswapv3factory.sol/iuniswapv3factory.go rename to v1/pkg/uniswap/v3-core/contracts/interfaces/iuniswapv3factory.sol/iuniswapv3factory.go diff --git a/pkg/uniswap/v3-core/contracts/interfaces/iuniswapv3pool.sol/iuniswapv3pool.go b/v1/pkg/uniswap/v3-core/contracts/interfaces/iuniswapv3pool.sol/iuniswapv3pool.go similarity index 100% rename from pkg/uniswap/v3-core/contracts/interfaces/iuniswapv3pool.sol/iuniswapv3pool.go rename to v1/pkg/uniswap/v3-core/contracts/interfaces/iuniswapv3pool.sol/iuniswapv3pool.go diff --git a/pkg/uniswap/v3-core/contracts/interfaces/pool/iuniswapv3poolactions.sol/iuniswapv3poolactions.go b/v1/pkg/uniswap/v3-core/contracts/interfaces/pool/iuniswapv3poolactions.sol/iuniswapv3poolactions.go similarity index 100% rename from pkg/uniswap/v3-core/contracts/interfaces/pool/iuniswapv3poolactions.sol/iuniswapv3poolactions.go rename to v1/pkg/uniswap/v3-core/contracts/interfaces/pool/iuniswapv3poolactions.sol/iuniswapv3poolactions.go diff --git a/pkg/uniswap/v3-core/contracts/interfaces/pool/iuniswapv3poolderivedstate.sol/iuniswapv3poolderivedstate.go b/v1/pkg/uniswap/v3-core/contracts/interfaces/pool/iuniswapv3poolderivedstate.sol/iuniswapv3poolderivedstate.go similarity index 100% rename from pkg/uniswap/v3-core/contracts/interfaces/pool/iuniswapv3poolderivedstate.sol/iuniswapv3poolderivedstate.go rename to v1/pkg/uniswap/v3-core/contracts/interfaces/pool/iuniswapv3poolderivedstate.sol/iuniswapv3poolderivedstate.go diff --git a/pkg/uniswap/v3-core/contracts/interfaces/pool/iuniswapv3poolevents.sol/iuniswapv3poolevents.go b/v1/pkg/uniswap/v3-core/contracts/interfaces/pool/iuniswapv3poolevents.sol/iuniswapv3poolevents.go similarity index 100% rename from pkg/uniswap/v3-core/contracts/interfaces/pool/iuniswapv3poolevents.sol/iuniswapv3poolevents.go rename to v1/pkg/uniswap/v3-core/contracts/interfaces/pool/iuniswapv3poolevents.sol/iuniswapv3poolevents.go diff --git a/pkg/uniswap/v3-core/contracts/interfaces/pool/iuniswapv3poolimmutables.sol/iuniswapv3poolimmutables.go b/v1/pkg/uniswap/v3-core/contracts/interfaces/pool/iuniswapv3poolimmutables.sol/iuniswapv3poolimmutables.go similarity index 100% rename from pkg/uniswap/v3-core/contracts/interfaces/pool/iuniswapv3poolimmutables.sol/iuniswapv3poolimmutables.go rename to v1/pkg/uniswap/v3-core/contracts/interfaces/pool/iuniswapv3poolimmutables.sol/iuniswapv3poolimmutables.go diff --git a/pkg/uniswap/v3-core/contracts/interfaces/pool/iuniswapv3poolowneractions.sol/iuniswapv3poolowneractions.go b/v1/pkg/uniswap/v3-core/contracts/interfaces/pool/iuniswapv3poolowneractions.sol/iuniswapv3poolowneractions.go similarity index 100% rename from pkg/uniswap/v3-core/contracts/interfaces/pool/iuniswapv3poolowneractions.sol/iuniswapv3poolowneractions.go rename to v1/pkg/uniswap/v3-core/contracts/interfaces/pool/iuniswapv3poolowneractions.sol/iuniswapv3poolowneractions.go diff --git a/pkg/uniswap/v3-core/contracts/interfaces/pool/iuniswapv3poolstate.sol/iuniswapv3poolstate.go b/v1/pkg/uniswap/v3-core/contracts/interfaces/pool/iuniswapv3poolstate.sol/iuniswapv3poolstate.go similarity index 100% rename from pkg/uniswap/v3-core/contracts/interfaces/pool/iuniswapv3poolstate.sol/iuniswapv3poolstate.go rename to v1/pkg/uniswap/v3-core/contracts/interfaces/pool/iuniswapv3poolstate.sol/iuniswapv3poolstate.go diff --git a/pkg/uniswap/v3-periphery/contracts/interfaces/iquoter.sol/iquoter.go b/v1/pkg/uniswap/v3-periphery/contracts/interfaces/iquoter.sol/iquoter.go similarity index 100% rename from pkg/uniswap/v3-periphery/contracts/interfaces/iquoter.sol/iquoter.go rename to v1/pkg/uniswap/v3-periphery/contracts/interfaces/iquoter.sol/iquoter.go diff --git a/pkg/uniswap/v3-periphery/contracts/interfaces/iswaprouter.sol/iswaprouter.go b/v1/pkg/uniswap/v3-periphery/contracts/interfaces/iswaprouter.sol/iswaprouter.go similarity index 100% rename from pkg/uniswap/v3-periphery/contracts/interfaces/iswaprouter.sol/iswaprouter.go rename to v1/pkg/uniswap/v3-periphery/contracts/interfaces/iswaprouter.sol/iswaprouter.go diff --git a/readme.md b/v1/readme.md similarity index 89% rename from readme.md rename to v1/readme.md index e889516a..25c42190 100644 --- a/readme.md +++ b/v1/readme.md @@ -1,9 +1,3 @@ -### ⚠️ Important Notice: V2 in Development - -We are currently developing Version 2 (V2) of our smart contract architecture. This new version will significantly enhance the developer experience for building Universal Apps. - -Developers can already begin testing the new interface by referring to [the V2 Localnet guide](/v2_localnet.md). - # ZetaChain Protocol Contracts This repository contains ZetaChain protocol contracts: Solidity source code, diff --git a/scripts/deployments/core/deploy-deterministic.ts b/v1/scripts/deployments/core/deploy-deterministic.ts similarity index 90% rename from scripts/deployments/core/deploy-deterministic.ts rename to v1/scripts/deployments/core/deploy-deterministic.ts index eb3bc268..b2203887 100644 --- a/scripts/deployments/core/deploy-deterministic.ts +++ b/v1/scripts/deployments/core/deploy-deterministic.ts @@ -1,6 +1,6 @@ import { network } from "hardhat"; -import { isProtocolNetworkName } from "../../../lib/address.tools"; +import { isProtocolNetworkName } from "../../../../lib/address.tools"; import { deterministicDeployERC20Custody } from "./deterministic-deploy-erc20-custody"; import { deterministicDeployZetaConnector } from "./deterministic-deploy-zeta-connector"; import { deterministicDeployZetaToken } from "./deterministic-deploy-zeta-token"; diff --git a/scripts/deployments/core/deploy-erc20-custody.ts b/v1/scripts/deployments/core/deploy-erc20-custody.ts similarity index 100% rename from scripts/deployments/core/deploy-erc20-custody.ts rename to v1/scripts/deployments/core/deploy-erc20-custody.ts diff --git a/scripts/deployments/core/deploy-immutable-create2-factory.ts b/v1/scripts/deployments/core/deploy-immutable-create2-factory.ts similarity index 100% rename from scripts/deployments/core/deploy-immutable-create2-factory.ts rename to v1/scripts/deployments/core/deploy-immutable-create2-factory.ts diff --git a/scripts/deployments/core/deploy-zeta-connector.ts b/v1/scripts/deployments/core/deploy-zeta-connector.ts similarity index 100% rename from scripts/deployments/core/deploy-zeta-connector.ts rename to v1/scripts/deployments/core/deploy-zeta-connector.ts diff --git a/scripts/deployments/core/deploy-zeta-token.ts b/v1/scripts/deployments/core/deploy-zeta-token.ts similarity index 100% rename from scripts/deployments/core/deploy-zeta-token.ts rename to v1/scripts/deployments/core/deploy-zeta-token.ts diff --git a/scripts/deployments/core/deploy.ts b/v1/scripts/deployments/core/deploy.ts similarity index 100% rename from scripts/deployments/core/deploy.ts rename to v1/scripts/deployments/core/deploy.ts diff --git a/scripts/deployments/core/deterministic-deploy-erc20-custody.ts b/v1/scripts/deployments/core/deterministic-deploy-erc20-custody.ts similarity index 94% rename from scripts/deployments/core/deterministic-deploy-erc20-custody.ts rename to v1/scripts/deployments/core/deterministic-deploy-erc20-custody.ts index 370fc145..c95d82a7 100644 --- a/scripts/deployments/core/deterministic-deploy-erc20-custody.ts +++ b/v1/scripts/deployments/core/deterministic-deploy-erc20-custody.ts @@ -2,11 +2,11 @@ import { BigNumber } from "ethers"; import { ethers, network } from "hardhat"; import { getAddress, isProtocolNetworkName } from "lib"; -import { ERC20_CUSTODY_ZETA_FEE, ERC20_CUSTODY_ZETA_MAX_FEE, getSaltNumber } from "../../../lib/contracts.constants"; +import { ERC20_CUSTODY_ZETA_FEE, ERC20_CUSTODY_ZETA_MAX_FEE, getSaltNumber } from "../../../../lib/contracts.constants"; import { deployContractToAddress, saltToHex, -} from "../../../lib/ImmutableCreate2Factory/ImmutableCreate2Factory.helpers"; +} from "../../../../lib/ImmutableCreate2Factory/ImmutableCreate2Factory.helpers"; import { ERC20Custody__factory } from "../../../typechain-types"; export const deterministicDeployERC20Custody = async () => { diff --git a/scripts/deployments/core/deterministic-deploy-zeta-connector.ts b/v1/scripts/deployments/core/deterministic-deploy-zeta-connector.ts similarity index 90% rename from scripts/deployments/core/deterministic-deploy-zeta-connector.ts rename to v1/scripts/deployments/core/deterministic-deploy-zeta-connector.ts index dcb116db..be4403ac 100644 --- a/scripts/deployments/core/deterministic-deploy-zeta-connector.ts +++ b/v1/scripts/deployments/core/deterministic-deploy-zeta-connector.ts @@ -2,12 +2,12 @@ import { BigNumber } from "ethers"; import { ethers, network } from "hardhat"; import { getAddress, isProtocolNetworkName } from "lib"; -import { getSaltNumber } from "../../../lib/contracts.constants"; -import { isEthNetworkName } from "../../../lib/contracts.helpers"; +import { getSaltNumber } from "../../../../lib/contracts.constants"; +import { isEthNetworkName } from "../../../../lib/contracts.helpers"; import { deployContractToAddress, saltToHex, -} from "../../../lib/ImmutableCreate2Factory/ImmutableCreate2Factory.helpers"; +} from "../../../../lib/ImmutableCreate2Factory/ImmutableCreate2Factory.helpers"; import { ZetaConnectorEth__factory, ZetaConnectorNonEth__factory } from "../../../typechain-types"; export const deterministicDeployZetaConnector = async () => { diff --git a/scripts/deployments/core/deterministic-deploy-zeta-token.ts b/v1/scripts/deployments/core/deterministic-deploy-zeta-token.ts similarity index 90% rename from scripts/deployments/core/deterministic-deploy-zeta-token.ts rename to v1/scripts/deployments/core/deterministic-deploy-zeta-token.ts index 4ff01072..167f0f5c 100644 --- a/scripts/deployments/core/deterministic-deploy-zeta-token.ts +++ b/v1/scripts/deployments/core/deterministic-deploy-zeta-token.ts @@ -2,12 +2,12 @@ import { BigNumber } from "ethers"; import { ethers, network } from "hardhat"; import { getAddress, isProtocolNetworkName } from "lib"; -import { getSaltNumber, ZETA_INITIAL_SUPPLY } from "../../../lib/contracts.constants"; -import { isEthNetworkName } from "../../../lib/contracts.helpers"; +import { getSaltNumber, ZETA_INITIAL_SUPPLY } from "../../../../lib/contracts.constants"; +import { isEthNetworkName } from "../../../../lib/contracts.helpers"; import { deployContractToAddress, saltToHex, -} from "../../../lib/ImmutableCreate2Factory/ImmutableCreate2Factory.helpers"; +} from "../../../../lib/ImmutableCreate2Factory/ImmutableCreate2Factory.helpers"; import { ZetaEth__factory, ZetaNonEth__factory } from "../../../typechain-types"; export const deterministicDeployZetaToken = async () => { diff --git a/scripts/deployments/tools/deterministic-deploy-zeta-consumer-pancakev3.ts b/v1/scripts/deployments/tools/deterministic-deploy-zeta-consumer-pancakev3.ts similarity index 100% rename from scripts/deployments/tools/deterministic-deploy-zeta-consumer-pancakev3.ts rename to v1/scripts/deployments/tools/deterministic-deploy-zeta-consumer-pancakev3.ts diff --git a/scripts/deployments/tools/deterministic-deploy-zeta-consumer-v2.ts b/v1/scripts/deployments/tools/deterministic-deploy-zeta-consumer-v2.ts similarity index 100% rename from scripts/deployments/tools/deterministic-deploy-zeta-consumer-v2.ts rename to v1/scripts/deployments/tools/deterministic-deploy-zeta-consumer-v2.ts diff --git a/scripts/deployments/tools/deterministic-deploy-zeta-consumer-v3.ts b/v1/scripts/deployments/tools/deterministic-deploy-zeta-consumer-v3.ts similarity index 100% rename from scripts/deployments/tools/deterministic-deploy-zeta-consumer-v3.ts rename to v1/scripts/deployments/tools/deterministic-deploy-zeta-consumer-v3.ts diff --git a/scripts/deployments/tools/deterministic-get-salt-erc20-custody.ts b/v1/scripts/deployments/tools/deterministic-get-salt-erc20-custody.ts similarity index 100% rename from scripts/deployments/tools/deterministic-get-salt-erc20-custody.ts rename to v1/scripts/deployments/tools/deterministic-get-salt-erc20-custody.ts diff --git a/scripts/deployments/tools/deterministic-get-salt-zeta-connector.ts b/v1/scripts/deployments/tools/deterministic-get-salt-zeta-connector.ts similarity index 100% rename from scripts/deployments/tools/deterministic-get-salt-zeta-connector.ts rename to v1/scripts/deployments/tools/deterministic-get-salt-zeta-connector.ts diff --git a/scripts/deployments/tools/deterministic-get-salt-zeta-token.ts b/v1/scripts/deployments/tools/deterministic-get-salt-zeta-token.ts similarity index 100% rename from scripts/deployments/tools/deterministic-get-salt-zeta-token.ts rename to v1/scripts/deployments/tools/deterministic-get-salt-zeta-token.ts diff --git a/scripts/generate_addresses.sh b/v1/scripts/generate_addresses.sh similarity index 100% rename from scripts/generate_addresses.sh rename to v1/scripts/generate_addresses.sh diff --git a/scripts/generate_addresses_types.ts b/v1/scripts/generate_addresses_types.ts similarity index 100% rename from scripts/generate_addresses_types.ts rename to v1/scripts/generate_addresses_types.ts diff --git a/scripts/generate_go.sh b/v1/scripts/generate_go.sh similarity index 100% rename from scripts/generate_go.sh rename to v1/scripts/generate_go.sh diff --git a/scripts/tools/bytecode-checker/bytecode.constants.ts b/v1/scripts/tools/bytecode-checker/bytecode.constants.ts similarity index 100% rename from scripts/tools/bytecode-checker/bytecode.constants.ts rename to v1/scripts/tools/bytecode-checker/bytecode.constants.ts diff --git a/scripts/tools/bytecode-checker/bytecode.helpers.ts b/v1/scripts/tools/bytecode-checker/bytecode.helpers.ts similarity index 100% rename from scripts/tools/bytecode-checker/bytecode.helpers.ts rename to v1/scripts/tools/bytecode-checker/bytecode.helpers.ts diff --git a/scripts/tools/bytecode-checker/bytecode.ts b/v1/scripts/tools/bytecode-checker/bytecode.ts similarity index 100% rename from scripts/tools/bytecode-checker/bytecode.ts rename to v1/scripts/tools/bytecode-checker/bytecode.ts diff --git a/scripts/tools/send-tss-gas.ts b/v1/scripts/tools/send-tss-gas.ts similarity index 100% rename from scripts/tools/send-tss-gas.ts rename to v1/scripts/tools/send-tss-gas.ts diff --git a/scripts/tools/set-zeta-token-addresses.ts b/v1/scripts/tools/set-zeta-token-addresses.ts similarity index 100% rename from scripts/tools/set-zeta-token-addresses.ts rename to v1/scripts/tools/set-zeta-token-addresses.ts diff --git a/scripts/tools/test-zeta-send.ts b/v1/scripts/tools/test-zeta-send.ts similarity index 100% rename from scripts/tools/test-zeta-send.ts rename to v1/scripts/tools/test-zeta-send.ts diff --git a/scripts/tools/token-approval.ts b/v1/scripts/tools/token-approval.ts similarity index 100% rename from scripts/tools/token-approval.ts rename to v1/scripts/tools/token-approval.ts diff --git a/scripts/tools/update-tss-address.ts b/v1/scripts/tools/update-tss-address.ts similarity index 100% rename from scripts/tools/update-tss-address.ts rename to v1/scripts/tools/update-tss-address.ts diff --git a/scripts/tools/update-zeta-connector.ts b/v1/scripts/tools/update-zeta-connector.ts similarity index 100% rename from scripts/tools/update-zeta-connector.ts rename to v1/scripts/tools/update-zeta-connector.ts diff --git a/tasks/addresses.mainnet.json b/v1/tasks/addresses.mainnet.json similarity index 100% rename from tasks/addresses.mainnet.json rename to v1/tasks/addresses.mainnet.json diff --git a/tasks/addresses.testnet.json b/v1/tasks/addresses.testnet.json similarity index 100% rename from tasks/addresses.testnet.json rename to v1/tasks/addresses.testnet.json diff --git a/tasks/addresses.ts b/v1/tasks/addresses.ts similarity index 100% rename from tasks/addresses.ts rename to v1/tasks/addresses.ts diff --git a/tasks/readme.md b/v1/tasks/readme.md similarity index 100% rename from tasks/readme.md rename to v1/tasks/readme.md diff --git a/test/ConnectorZEVM.spec.ts b/v1/test/ConnectorZEVM.spec.ts similarity index 100% rename from test/ConnectorZEVM.spec.ts rename to v1/test/ConnectorZEVM.spec.ts diff --git a/test/ERC20Custody.spec.ts b/v1/test/ERC20Custody.spec.ts similarity index 100% rename from test/ERC20Custody.spec.ts rename to v1/test/ERC20Custody.spec.ts diff --git a/test/ImmutableCreate2Factory.spec.ts b/v1/test/ImmutableCreate2Factory.spec.ts similarity index 100% rename from test/ImmutableCreate2Factory.spec.ts rename to v1/test/ImmutableCreate2Factory.spec.ts diff --git a/test/ZRC20.spec.ts b/v1/test/ZRC20.spec.ts similarity index 100% rename from test/ZRC20.spec.ts rename to v1/test/ZRC20.spec.ts diff --git a/test/Zeta.non-eth.spec.ts b/v1/test/Zeta.non-eth.spec.ts similarity index 100% rename from test/Zeta.non-eth.spec.ts rename to v1/test/Zeta.non-eth.spec.ts diff --git a/test/ZetaConnector.spec.ts b/v1/test/ZetaConnector.spec.ts similarity index 100% rename from test/ZetaConnector.spec.ts rename to v1/test/ZetaConnector.spec.ts diff --git a/test/ZetaInteractor.spec.ts b/v1/test/ZetaInteractor.spec.ts similarity index 100% rename from test/ZetaInteractor.spec.ts rename to v1/test/ZetaInteractor.spec.ts diff --git a/test/ZetaTokenConsumer.spec.ts b/v1/test/ZetaTokenConsumer.spec.ts similarity index 100% rename from test/ZetaTokenConsumer.spec.ts rename to v1/test/ZetaTokenConsumer.spec.ts diff --git a/test/ZetaTokenConsumerZEVM.spec.ts b/v1/test/ZetaTokenConsumerZEVM.spec.ts similarity index 100% rename from test/ZetaTokenConsumerZEVM.spec.ts rename to v1/test/ZetaTokenConsumerZEVM.spec.ts diff --git a/test/test.helpers.ts b/v1/test/test.helpers.ts similarity index 100% rename from test/test.helpers.ts rename to v1/test/test.helpers.ts diff --git a/tsconfig.json b/v1/tsconfig.json similarity index 100% rename from tsconfig.json rename to v1/tsconfig.json diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.ts b/v1/typechain-types/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.ts similarity index 100% rename from typechain-types/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.ts rename to v1/typechain-types/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.ts diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/access/index.ts b/v1/typechain-types/@openzeppelin/contracts-upgradeable/access/index.ts similarity index 100% rename from typechain-types/@openzeppelin/contracts-upgradeable/access/index.ts rename to v1/typechain-types/@openzeppelin/contracts-upgradeable/access/index.ts diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/index.ts b/v1/typechain-types/@openzeppelin/contracts-upgradeable/index.ts similarity index 100% rename from typechain-types/@openzeppelin/contracts-upgradeable/index.ts rename to v1/typechain-types/@openzeppelin/contracts-upgradeable/index.ts diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable.ts b/v1/typechain-types/@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable.ts similarity index 100% rename from typechain-types/@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable.ts rename to v1/typechain-types/@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable.ts diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol/IERC1822ProxiableUpgradeable.ts b/v1/typechain-types/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol/IERC1822ProxiableUpgradeable.ts similarity index 100% rename from typechain-types/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol/IERC1822ProxiableUpgradeable.ts rename to v1/typechain-types/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol/IERC1822ProxiableUpgradeable.ts diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol/index.ts b/v1/typechain-types/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol/index.ts similarity index 100% rename from typechain-types/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol/index.ts rename to v1/typechain-types/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol/index.ts diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/interfaces/index.ts b/v1/typechain-types/@openzeppelin/contracts-upgradeable/interfaces/index.ts similarity index 100% rename from typechain-types/@openzeppelin/contracts-upgradeable/interfaces/index.ts rename to v1/typechain-types/@openzeppelin/contracts-upgradeable/interfaces/index.ts diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.ts b/v1/typechain-types/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.ts similarity index 100% rename from typechain-types/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.ts rename to v1/typechain-types/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.ts diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/proxy/ERC1967/index.ts b/v1/typechain-types/@openzeppelin/contracts-upgradeable/proxy/ERC1967/index.ts similarity index 100% rename from typechain-types/@openzeppelin/contracts-upgradeable/proxy/ERC1967/index.ts rename to v1/typechain-types/@openzeppelin/contracts-upgradeable/proxy/ERC1967/index.ts diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.ts b/v1/typechain-types/@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.ts similarity index 100% rename from typechain-types/@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.ts rename to v1/typechain-types/@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.ts diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/proxy/beacon/index.ts b/v1/typechain-types/@openzeppelin/contracts-upgradeable/proxy/beacon/index.ts similarity index 100% rename from typechain-types/@openzeppelin/contracts-upgradeable/proxy/beacon/index.ts rename to v1/typechain-types/@openzeppelin/contracts-upgradeable/proxy/beacon/index.ts diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/proxy/index.ts b/v1/typechain-types/@openzeppelin/contracts-upgradeable/proxy/index.ts similarity index 100% rename from typechain-types/@openzeppelin/contracts-upgradeable/proxy/index.ts rename to v1/typechain-types/@openzeppelin/contracts-upgradeable/proxy/index.ts diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.ts b/v1/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.ts similarity index 100% rename from typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.ts rename to v1/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.ts diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.ts b/v1/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.ts similarity index 100% rename from typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.ts rename to v1/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.ts diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/index.ts b/v1/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/index.ts similarity index 100% rename from typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/index.ts rename to v1/typechain-types/@openzeppelin/contracts-upgradeable/proxy/utils/index.ts diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.ts b/v1/typechain-types/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.ts similarity index 100% rename from typechain-types/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.ts rename to v1/typechain-types/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.ts diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/security/index.ts b/v1/typechain-types/@openzeppelin/contracts-upgradeable/security/index.ts similarity index 100% rename from typechain-types/@openzeppelin/contracts-upgradeable/security/index.ts rename to v1/typechain-types/@openzeppelin/contracts-upgradeable/security/index.ts diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.ts b/v1/typechain-types/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.ts similarity index 100% rename from typechain-types/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.ts rename to v1/typechain-types/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.ts diff --git a/typechain-types/@openzeppelin/contracts-upgradeable/utils/index.ts b/v1/typechain-types/@openzeppelin/contracts-upgradeable/utils/index.ts similarity index 100% rename from typechain-types/@openzeppelin/contracts-upgradeable/utils/index.ts rename to v1/typechain-types/@openzeppelin/contracts-upgradeable/utils/index.ts diff --git a/typechain-types/@openzeppelin/contracts/access/Ownable.ts b/v1/typechain-types/@openzeppelin/contracts/access/Ownable.ts similarity index 100% rename from typechain-types/@openzeppelin/contracts/access/Ownable.ts rename to v1/typechain-types/@openzeppelin/contracts/access/Ownable.ts diff --git a/typechain-types/@openzeppelin/contracts/access/Ownable2Step.ts b/v1/typechain-types/@openzeppelin/contracts/access/Ownable2Step.ts similarity index 100% rename from typechain-types/@openzeppelin/contracts/access/Ownable2Step.ts rename to v1/typechain-types/@openzeppelin/contracts/access/Ownable2Step.ts diff --git a/typechain-types/@openzeppelin/contracts/access/index.ts b/v1/typechain-types/@openzeppelin/contracts/access/index.ts similarity index 100% rename from typechain-types/@openzeppelin/contracts/access/index.ts rename to v1/typechain-types/@openzeppelin/contracts/access/index.ts diff --git a/typechain-types/@openzeppelin/contracts/index.ts b/v1/typechain-types/@openzeppelin/contracts/index.ts similarity index 100% rename from typechain-types/@openzeppelin/contracts/index.ts rename to v1/typechain-types/@openzeppelin/contracts/index.ts diff --git a/typechain-types/@openzeppelin/contracts/security/Pausable.ts b/v1/typechain-types/@openzeppelin/contracts/security/Pausable.ts similarity index 100% rename from typechain-types/@openzeppelin/contracts/security/Pausable.ts rename to v1/typechain-types/@openzeppelin/contracts/security/Pausable.ts diff --git a/typechain-types/@openzeppelin/contracts/security/index.ts b/v1/typechain-types/@openzeppelin/contracts/security/index.ts similarity index 100% rename from typechain-types/@openzeppelin/contracts/security/index.ts rename to v1/typechain-types/@openzeppelin/contracts/security/index.ts diff --git a/typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.ts b/v1/typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.ts similarity index 100% rename from typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.ts rename to v1/typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.ts diff --git a/typechain-types/@openzeppelin/contracts/token/ERC20/IERC20.ts b/v1/typechain-types/@openzeppelin/contracts/token/ERC20/IERC20.ts similarity index 100% rename from typechain-types/@openzeppelin/contracts/token/ERC20/IERC20.ts rename to v1/typechain-types/@openzeppelin/contracts/token/ERC20/IERC20.ts diff --git a/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.ts b/v1/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.ts similarity index 100% rename from typechain-types/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.ts rename to v1/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.ts diff --git a/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.ts b/v1/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.ts similarity index 100% rename from typechain-types/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.ts rename to v1/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.ts diff --git a/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.ts b/v1/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.ts similarity index 100% rename from typechain-types/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.ts rename to v1/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.ts diff --git a/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.ts b/v1/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.ts similarity index 100% rename from typechain-types/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.ts rename to v1/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.ts diff --git a/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/index.ts b/v1/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/index.ts similarity index 100% rename from typechain-types/@openzeppelin/contracts/token/ERC20/extensions/index.ts rename to v1/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/index.ts diff --git a/typechain-types/@openzeppelin/contracts/token/ERC20/index.ts b/v1/typechain-types/@openzeppelin/contracts/token/ERC20/index.ts similarity index 100% rename from typechain-types/@openzeppelin/contracts/token/ERC20/index.ts rename to v1/typechain-types/@openzeppelin/contracts/token/ERC20/index.ts diff --git a/typechain-types/@openzeppelin/contracts/token/index.ts b/v1/typechain-types/@openzeppelin/contracts/token/index.ts similarity index 100% rename from typechain-types/@openzeppelin/contracts/token/index.ts rename to v1/typechain-types/@openzeppelin/contracts/token/index.ts diff --git a/typechain-types/@uniswap/v2-core/index.ts b/v1/typechain-types/@openzeppelin/index.ts similarity index 100% rename from typechain-types/@uniswap/v2-core/index.ts rename to v1/typechain-types/@openzeppelin/index.ts diff --git a/typechain-types/@uniswap/index.ts b/v1/typechain-types/@uniswap/index.ts similarity index 100% rename from typechain-types/@uniswap/index.ts rename to v1/typechain-types/@uniswap/index.ts diff --git a/typechain-types/@uniswap/v2-core/contracts/UniswapV2ERC20.ts b/v1/typechain-types/@uniswap/v2-core/contracts/UniswapV2ERC20.ts similarity index 100% rename from typechain-types/@uniswap/v2-core/contracts/UniswapV2ERC20.ts rename to v1/typechain-types/@uniswap/v2-core/contracts/UniswapV2ERC20.ts diff --git a/typechain-types/@uniswap/v2-core/contracts/UniswapV2Factory.ts b/v1/typechain-types/@uniswap/v2-core/contracts/UniswapV2Factory.ts similarity index 100% rename from typechain-types/@uniswap/v2-core/contracts/UniswapV2Factory.ts rename to v1/typechain-types/@uniswap/v2-core/contracts/UniswapV2Factory.ts diff --git a/typechain-types/@uniswap/v2-core/contracts/UniswapV2Pair.ts b/v1/typechain-types/@uniswap/v2-core/contracts/UniswapV2Pair.ts similarity index 100% rename from typechain-types/@uniswap/v2-core/contracts/UniswapV2Pair.ts rename to v1/typechain-types/@uniswap/v2-core/contracts/UniswapV2Pair.ts diff --git a/typechain-types/@uniswap/v2-core/contracts/index.ts b/v1/typechain-types/@uniswap/v2-core/contracts/index.ts similarity index 100% rename from typechain-types/@uniswap/v2-core/contracts/index.ts rename to v1/typechain-types/@uniswap/v2-core/contracts/index.ts diff --git a/typechain-types/@uniswap/v2-core/contracts/interfaces/IERC20.ts b/v1/typechain-types/@uniswap/v2-core/contracts/interfaces/IERC20.ts similarity index 100% rename from typechain-types/@uniswap/v2-core/contracts/interfaces/IERC20.ts rename to v1/typechain-types/@uniswap/v2-core/contracts/interfaces/IERC20.ts diff --git a/typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2Callee.ts b/v1/typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2Callee.ts similarity index 100% rename from typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2Callee.ts rename to v1/typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2Callee.ts diff --git a/typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2ERC20.ts b/v1/typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2ERC20.ts similarity index 100% rename from typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2ERC20.ts rename to v1/typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2ERC20.ts diff --git a/typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.ts b/v1/typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.ts similarity index 100% rename from typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.ts rename to v1/typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.ts diff --git a/typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair.ts b/v1/typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair.ts similarity index 100% rename from typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair.ts rename to v1/typechain-types/@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair.ts diff --git a/typechain-types/@uniswap/v2-core/contracts/interfaces/index.ts b/v1/typechain-types/@uniswap/v2-core/contracts/interfaces/index.ts similarity index 100% rename from typechain-types/@uniswap/v2-core/contracts/interfaces/index.ts rename to v1/typechain-types/@uniswap/v2-core/contracts/interfaces/index.ts diff --git a/typechain-types/@uniswap/v2-periphery/index.ts b/v1/typechain-types/@uniswap/v2-core/index.ts similarity index 100% rename from typechain-types/@uniswap/v2-periphery/index.ts rename to v1/typechain-types/@uniswap/v2-core/index.ts diff --git a/typechain-types/@uniswap/v2-periphery/contracts/UniswapV2Router02.ts b/v1/typechain-types/@uniswap/v2-periphery/contracts/UniswapV2Router02.ts similarity index 100% rename from typechain-types/@uniswap/v2-periphery/contracts/UniswapV2Router02.ts rename to v1/typechain-types/@uniswap/v2-periphery/contracts/UniswapV2Router02.ts diff --git a/typechain-types/@uniswap/v2-periphery/contracts/index.ts b/v1/typechain-types/@uniswap/v2-periphery/contracts/index.ts similarity index 100% rename from typechain-types/@uniswap/v2-periphery/contracts/index.ts rename to v1/typechain-types/@uniswap/v2-periphery/contracts/index.ts diff --git a/typechain-types/@uniswap/v2-periphery/contracts/interfaces/IERC20.ts b/v1/typechain-types/@uniswap/v2-periphery/contracts/interfaces/IERC20.ts similarity index 100% rename from typechain-types/@uniswap/v2-periphery/contracts/interfaces/IERC20.ts rename to v1/typechain-types/@uniswap/v2-periphery/contracts/interfaces/IERC20.ts diff --git a/typechain-types/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01.ts b/v1/typechain-types/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01.ts similarity index 100% rename from typechain-types/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01.ts rename to v1/typechain-types/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01.ts diff --git a/typechain-types/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.ts b/v1/typechain-types/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.ts similarity index 100% rename from typechain-types/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.ts rename to v1/typechain-types/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.ts diff --git a/typechain-types/@uniswap/v2-periphery/contracts/interfaces/IWETH.ts b/v1/typechain-types/@uniswap/v2-periphery/contracts/interfaces/IWETH.ts similarity index 100% rename from typechain-types/@uniswap/v2-periphery/contracts/interfaces/IWETH.ts rename to v1/typechain-types/@uniswap/v2-periphery/contracts/interfaces/IWETH.ts diff --git a/typechain-types/@uniswap/v2-periphery/contracts/interfaces/index.ts b/v1/typechain-types/@uniswap/v2-periphery/contracts/interfaces/index.ts similarity index 100% rename from typechain-types/@uniswap/v2-periphery/contracts/interfaces/index.ts rename to v1/typechain-types/@uniswap/v2-periphery/contracts/interfaces/index.ts diff --git a/typechain-types/@uniswap/v3-core/index.ts b/v1/typechain-types/@uniswap/v2-periphery/index.ts similarity index 100% rename from typechain-types/@uniswap/v3-core/index.ts rename to v1/typechain-types/@uniswap/v2-periphery/index.ts diff --git a/typechain-types/@uniswap/v3-core/contracts/index.ts b/v1/typechain-types/@uniswap/v3-core/contracts/index.ts similarity index 100% rename from typechain-types/@uniswap/v3-core/contracts/index.ts rename to v1/typechain-types/@uniswap/v3-core/contracts/index.ts diff --git a/typechain-types/@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.ts b/v1/typechain-types/@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.ts similarity index 100% rename from typechain-types/@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.ts rename to v1/typechain-types/@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.ts diff --git a/typechain-types/@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.ts b/v1/typechain-types/@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.ts similarity index 100% rename from typechain-types/@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.ts rename to v1/typechain-types/@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.ts diff --git a/typechain-types/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.ts b/v1/typechain-types/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.ts similarity index 100% rename from typechain-types/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.ts rename to v1/typechain-types/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.ts diff --git a/typechain-types/@uniswap/v3-core/contracts/interfaces/callback/index.ts b/v1/typechain-types/@uniswap/v3-core/contracts/interfaces/callback/index.ts similarity index 100% rename from typechain-types/@uniswap/v3-core/contracts/interfaces/callback/index.ts rename to v1/typechain-types/@uniswap/v3-core/contracts/interfaces/callback/index.ts diff --git a/typechain-types/@uniswap/v3-core/contracts/interfaces/index.ts b/v1/typechain-types/@uniswap/v3-core/contracts/interfaces/index.ts similarity index 100% rename from typechain-types/@uniswap/v3-core/contracts/interfaces/index.ts rename to v1/typechain-types/@uniswap/v3-core/contracts/interfaces/index.ts diff --git a/typechain-types/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.ts b/v1/typechain-types/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.ts similarity index 100% rename from typechain-types/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.ts rename to v1/typechain-types/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.ts diff --git a/typechain-types/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.ts b/v1/typechain-types/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.ts similarity index 100% rename from typechain-types/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.ts rename to v1/typechain-types/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.ts diff --git a/typechain-types/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.ts b/v1/typechain-types/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.ts similarity index 100% rename from typechain-types/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.ts rename to v1/typechain-types/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.ts diff --git a/typechain-types/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.ts b/v1/typechain-types/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.ts similarity index 100% rename from typechain-types/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.ts rename to v1/typechain-types/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.ts diff --git a/typechain-types/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.ts b/v1/typechain-types/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.ts similarity index 100% rename from typechain-types/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.ts rename to v1/typechain-types/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.ts diff --git a/typechain-types/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.ts b/v1/typechain-types/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.ts similarity index 100% rename from typechain-types/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.ts rename to v1/typechain-types/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.ts diff --git a/typechain-types/@uniswap/v3-core/contracts/interfaces/pool/index.ts b/v1/typechain-types/@uniswap/v3-core/contracts/interfaces/pool/index.ts similarity index 100% rename from typechain-types/@uniswap/v3-core/contracts/interfaces/pool/index.ts rename to v1/typechain-types/@uniswap/v3-core/contracts/interfaces/pool/index.ts diff --git a/typechain-types/@uniswap/v3-periphery/index.ts b/v1/typechain-types/@uniswap/v3-core/index.ts similarity index 100% rename from typechain-types/@uniswap/v3-periphery/index.ts rename to v1/typechain-types/@uniswap/v3-core/index.ts diff --git a/typechain-types/@uniswap/v3-periphery/contracts/index.ts b/v1/typechain-types/@uniswap/v3-periphery/contracts/index.ts similarity index 100% rename from typechain-types/@uniswap/v3-periphery/contracts/index.ts rename to v1/typechain-types/@uniswap/v3-periphery/contracts/index.ts diff --git a/typechain-types/@uniswap/v3-periphery/contracts/interfaces/IQuoter.ts b/v1/typechain-types/@uniswap/v3-periphery/contracts/interfaces/IQuoter.ts similarity index 100% rename from typechain-types/@uniswap/v3-periphery/contracts/interfaces/IQuoter.ts rename to v1/typechain-types/@uniswap/v3-periphery/contracts/interfaces/IQuoter.ts diff --git a/typechain-types/@uniswap/v3-periphery/contracts/interfaces/ISwapRouter.ts b/v1/typechain-types/@uniswap/v3-periphery/contracts/interfaces/ISwapRouter.ts similarity index 100% rename from typechain-types/@uniswap/v3-periphery/contracts/interfaces/ISwapRouter.ts rename to v1/typechain-types/@uniswap/v3-periphery/contracts/interfaces/ISwapRouter.ts diff --git a/typechain-types/@uniswap/v3-periphery/contracts/interfaces/index.ts b/v1/typechain-types/@uniswap/v3-periphery/contracts/interfaces/index.ts similarity index 100% rename from typechain-types/@uniswap/v3-periphery/contracts/interfaces/index.ts rename to v1/typechain-types/@uniswap/v3-periphery/contracts/interfaces/index.ts diff --git a/typechain-types/@openzeppelin/index.ts b/v1/typechain-types/@uniswap/v3-periphery/index.ts similarity index 60% rename from typechain-types/@openzeppelin/index.ts rename to v1/typechain-types/@uniswap/v3-periphery/index.ts index f34b8770..a11e4ca2 100644 --- a/typechain-types/@openzeppelin/index.ts +++ b/v1/typechain-types/@uniswap/v3-periphery/index.ts @@ -3,5 +3,3 @@ /* eslint-disable */ import type * as contracts from "./contracts"; export type { contracts }; -import type * as contractsUpgradeable from "./contracts-upgradeable"; -export type { contractsUpgradeable }; diff --git a/typechain-types/common.ts b/v1/typechain-types/common.ts similarity index 100% rename from typechain-types/common.ts rename to v1/typechain-types/common.ts diff --git a/typechain-types/contracts/evm/ERC20Custody.ts b/v1/typechain-types/contracts/evm/ERC20Custody.ts similarity index 100% rename from typechain-types/contracts/evm/ERC20Custody.ts rename to v1/typechain-types/contracts/evm/ERC20Custody.ts diff --git a/typechain-types/contracts/evm/Zeta.eth.sol/ZetaEth.ts b/v1/typechain-types/contracts/evm/Zeta.eth.sol/ZetaEth.ts similarity index 100% rename from typechain-types/contracts/evm/Zeta.eth.sol/ZetaEth.ts rename to v1/typechain-types/contracts/evm/Zeta.eth.sol/ZetaEth.ts diff --git a/typechain-types/contracts/evm/Zeta.eth.sol/index.ts b/v1/typechain-types/contracts/evm/Zeta.eth.sol/index.ts similarity index 100% rename from typechain-types/contracts/evm/Zeta.eth.sol/index.ts rename to v1/typechain-types/contracts/evm/Zeta.eth.sol/index.ts diff --git a/typechain-types/contracts/evm/Zeta.non-eth.sol/ZetaNonEth.ts b/v1/typechain-types/contracts/evm/Zeta.non-eth.sol/ZetaNonEth.ts similarity index 100% rename from typechain-types/contracts/evm/Zeta.non-eth.sol/ZetaNonEth.ts rename to v1/typechain-types/contracts/evm/Zeta.non-eth.sol/ZetaNonEth.ts diff --git a/typechain-types/contracts/evm/Zeta.non-eth.sol/index.ts b/v1/typechain-types/contracts/evm/Zeta.non-eth.sol/index.ts similarity index 100% rename from typechain-types/contracts/evm/Zeta.non-eth.sol/index.ts rename to v1/typechain-types/contracts/evm/Zeta.non-eth.sol/index.ts diff --git a/typechain-types/contracts/evm/ZetaConnector.base.sol/ZetaConnectorBase.ts b/v1/typechain-types/contracts/evm/ZetaConnector.base.sol/ZetaConnectorBase.ts similarity index 100% rename from typechain-types/contracts/evm/ZetaConnector.base.sol/ZetaConnectorBase.ts rename to v1/typechain-types/contracts/evm/ZetaConnector.base.sol/ZetaConnectorBase.ts diff --git a/typechain-types/contracts/evm/ZetaConnector.base.sol/index.ts b/v1/typechain-types/contracts/evm/ZetaConnector.base.sol/index.ts similarity index 100% rename from typechain-types/contracts/evm/ZetaConnector.base.sol/index.ts rename to v1/typechain-types/contracts/evm/ZetaConnector.base.sol/index.ts diff --git a/typechain-types/contracts/evm/ZetaConnector.eth.sol/ZetaConnectorEth.ts b/v1/typechain-types/contracts/evm/ZetaConnector.eth.sol/ZetaConnectorEth.ts similarity index 100% rename from typechain-types/contracts/evm/ZetaConnector.eth.sol/ZetaConnectorEth.ts rename to v1/typechain-types/contracts/evm/ZetaConnector.eth.sol/ZetaConnectorEth.ts diff --git a/typechain-types/contracts/evm/ZetaConnector.eth.sol/index.ts b/v1/typechain-types/contracts/evm/ZetaConnector.eth.sol/index.ts similarity index 100% rename from typechain-types/contracts/evm/ZetaConnector.eth.sol/index.ts rename to v1/typechain-types/contracts/evm/ZetaConnector.eth.sol/index.ts diff --git a/typechain-types/contracts/evm/ZetaConnector.non-eth.sol/ZetaConnectorNonEth.ts b/v1/typechain-types/contracts/evm/ZetaConnector.non-eth.sol/ZetaConnectorNonEth.ts similarity index 100% rename from typechain-types/contracts/evm/ZetaConnector.non-eth.sol/ZetaConnectorNonEth.ts rename to v1/typechain-types/contracts/evm/ZetaConnector.non-eth.sol/ZetaConnectorNonEth.ts diff --git a/typechain-types/contracts/evm/ZetaConnector.non-eth.sol/index.ts b/v1/typechain-types/contracts/evm/ZetaConnector.non-eth.sol/index.ts similarity index 100% rename from typechain-types/contracts/evm/ZetaConnector.non-eth.sol/index.ts rename to v1/typechain-types/contracts/evm/ZetaConnector.non-eth.sol/index.ts diff --git a/typechain-types/contracts/evm/index.ts b/v1/typechain-types/contracts/evm/index.ts similarity index 100% rename from typechain-types/contracts/evm/index.ts rename to v1/typechain-types/contracts/evm/index.ts diff --git a/typechain-types/contracts/evm/interfaces/ConnectorErrors.ts b/v1/typechain-types/contracts/evm/interfaces/ConnectorErrors.ts similarity index 100% rename from typechain-types/contracts/evm/interfaces/ConnectorErrors.ts rename to v1/typechain-types/contracts/evm/interfaces/ConnectorErrors.ts diff --git a/typechain-types/contracts/evm/interfaces/ZetaErrors.ts b/v1/typechain-types/contracts/evm/interfaces/ZetaErrors.ts similarity index 100% rename from typechain-types/contracts/evm/interfaces/ZetaErrors.ts rename to v1/typechain-types/contracts/evm/interfaces/ZetaErrors.ts diff --git a/typechain-types/contracts/evm/interfaces/ZetaInteractorErrors.ts b/v1/typechain-types/contracts/evm/interfaces/ZetaInteractorErrors.ts similarity index 100% rename from typechain-types/contracts/evm/interfaces/ZetaInteractorErrors.ts rename to v1/typechain-types/contracts/evm/interfaces/ZetaInteractorErrors.ts diff --git a/typechain-types/contracts/evm/interfaces/ZetaInterfaces.sol/ZetaCommonErrors.ts b/v1/typechain-types/contracts/evm/interfaces/ZetaInterfaces.sol/ZetaCommonErrors.ts similarity index 100% rename from typechain-types/contracts/evm/interfaces/ZetaInterfaces.sol/ZetaCommonErrors.ts rename to v1/typechain-types/contracts/evm/interfaces/ZetaInterfaces.sol/ZetaCommonErrors.ts diff --git a/typechain-types/contracts/evm/interfaces/ZetaInterfaces.sol/ZetaConnector.ts b/v1/typechain-types/contracts/evm/interfaces/ZetaInterfaces.sol/ZetaConnector.ts similarity index 100% rename from typechain-types/contracts/evm/interfaces/ZetaInterfaces.sol/ZetaConnector.ts rename to v1/typechain-types/contracts/evm/interfaces/ZetaInterfaces.sol/ZetaConnector.ts diff --git a/typechain-types/contracts/evm/interfaces/ZetaInterfaces.sol/ZetaReceiver.ts b/v1/typechain-types/contracts/evm/interfaces/ZetaInterfaces.sol/ZetaReceiver.ts similarity index 100% rename from typechain-types/contracts/evm/interfaces/ZetaInterfaces.sol/ZetaReceiver.ts rename to v1/typechain-types/contracts/evm/interfaces/ZetaInterfaces.sol/ZetaReceiver.ts diff --git a/typechain-types/contracts/evm/interfaces/ZetaInterfaces.sol/ZetaTokenConsumer.ts b/v1/typechain-types/contracts/evm/interfaces/ZetaInterfaces.sol/ZetaTokenConsumer.ts similarity index 100% rename from typechain-types/contracts/evm/interfaces/ZetaInterfaces.sol/ZetaTokenConsumer.ts rename to v1/typechain-types/contracts/evm/interfaces/ZetaInterfaces.sol/ZetaTokenConsumer.ts diff --git a/typechain-types/contracts/evm/interfaces/ZetaInterfaces.sol/index.ts b/v1/typechain-types/contracts/evm/interfaces/ZetaInterfaces.sol/index.ts similarity index 100% rename from typechain-types/contracts/evm/interfaces/ZetaInterfaces.sol/index.ts rename to v1/typechain-types/contracts/evm/interfaces/ZetaInterfaces.sol/index.ts diff --git a/typechain-types/contracts/evm/interfaces/ZetaNonEthInterface.ts b/v1/typechain-types/contracts/evm/interfaces/ZetaNonEthInterface.ts similarity index 100% rename from typechain-types/contracts/evm/interfaces/ZetaNonEthInterface.ts rename to v1/typechain-types/contracts/evm/interfaces/ZetaNonEthInterface.ts diff --git a/typechain-types/contracts/evm/interfaces/index.ts b/v1/typechain-types/contracts/evm/interfaces/index.ts similarity index 100% rename from typechain-types/contracts/evm/interfaces/index.ts rename to v1/typechain-types/contracts/evm/interfaces/index.ts diff --git a/typechain-types/contracts/evm/testing/AttackerContract.sol/AttackerContract.ts b/v1/typechain-types/contracts/evm/testing/AttackerContract.sol/AttackerContract.ts similarity index 100% rename from typechain-types/contracts/evm/testing/AttackerContract.sol/AttackerContract.ts rename to v1/typechain-types/contracts/evm/testing/AttackerContract.sol/AttackerContract.ts diff --git a/typechain-types/contracts/evm/testing/AttackerContract.sol/Victim.ts b/v1/typechain-types/contracts/evm/testing/AttackerContract.sol/Victim.ts similarity index 100% rename from typechain-types/contracts/evm/testing/AttackerContract.sol/Victim.ts rename to v1/typechain-types/contracts/evm/testing/AttackerContract.sol/Victim.ts diff --git a/typechain-types/contracts/evm/testing/AttackerContract.sol/index.ts b/v1/typechain-types/contracts/evm/testing/AttackerContract.sol/index.ts similarity index 100% rename from typechain-types/contracts/evm/testing/AttackerContract.sol/index.ts rename to v1/typechain-types/contracts/evm/testing/AttackerContract.sol/index.ts diff --git a/typechain-types/contracts/evm/testing/ERC20Mock.ts b/v1/typechain-types/contracts/evm/testing/ERC20Mock.ts similarity index 100% rename from typechain-types/contracts/evm/testing/ERC20Mock.ts rename to v1/typechain-types/contracts/evm/testing/ERC20Mock.ts diff --git a/typechain-types/contracts/evm/testing/TestUniswapV3Contracts.sol/INonfungiblePositionManager.ts b/v1/typechain-types/contracts/evm/testing/TestUniswapV3Contracts.sol/INonfungiblePositionManager.ts similarity index 100% rename from typechain-types/contracts/evm/testing/TestUniswapV3Contracts.sol/INonfungiblePositionManager.ts rename to v1/typechain-types/contracts/evm/testing/TestUniswapV3Contracts.sol/INonfungiblePositionManager.ts diff --git a/typechain-types/contracts/evm/testing/TestUniswapV3Contracts.sol/IPoolInitializer.ts b/v1/typechain-types/contracts/evm/testing/TestUniswapV3Contracts.sol/IPoolInitializer.ts similarity index 100% rename from typechain-types/contracts/evm/testing/TestUniswapV3Contracts.sol/IPoolInitializer.ts rename to v1/typechain-types/contracts/evm/testing/TestUniswapV3Contracts.sol/IPoolInitializer.ts diff --git a/typechain-types/contracts/evm/testing/TestUniswapV3Contracts.sol/index.ts b/v1/typechain-types/contracts/evm/testing/TestUniswapV3Contracts.sol/index.ts similarity index 100% rename from typechain-types/contracts/evm/testing/TestUniswapV3Contracts.sol/index.ts rename to v1/typechain-types/contracts/evm/testing/TestUniswapV3Contracts.sol/index.ts diff --git a/typechain-types/contracts/evm/testing/ZetaInteractorMock.ts b/v1/typechain-types/contracts/evm/testing/ZetaInteractorMock.ts similarity index 100% rename from typechain-types/contracts/evm/testing/ZetaInteractorMock.ts rename to v1/typechain-types/contracts/evm/testing/ZetaInteractorMock.ts diff --git a/typechain-types/contracts/evm/testing/ZetaReceiverMock.ts b/v1/typechain-types/contracts/evm/testing/ZetaReceiverMock.ts similarity index 100% rename from typechain-types/contracts/evm/testing/ZetaReceiverMock.ts rename to v1/typechain-types/contracts/evm/testing/ZetaReceiverMock.ts diff --git a/typechain-types/contracts/evm/testing/index.ts b/v1/typechain-types/contracts/evm/testing/index.ts similarity index 100% rename from typechain-types/contracts/evm/testing/index.ts rename to v1/typechain-types/contracts/evm/testing/index.ts diff --git a/typechain-types/contracts/evm/tools/ImmutableCreate2Factory.sol/ImmutableCreate2Factory.ts b/v1/typechain-types/contracts/evm/tools/ImmutableCreate2Factory.sol/ImmutableCreate2Factory.ts similarity index 100% rename from typechain-types/contracts/evm/tools/ImmutableCreate2Factory.sol/ImmutableCreate2Factory.ts rename to v1/typechain-types/contracts/evm/tools/ImmutableCreate2Factory.sol/ImmutableCreate2Factory.ts diff --git a/typechain-types/contracts/evm/tools/ImmutableCreate2Factory.sol/Ownable.ts b/v1/typechain-types/contracts/evm/tools/ImmutableCreate2Factory.sol/Ownable.ts similarity index 100% rename from typechain-types/contracts/evm/tools/ImmutableCreate2Factory.sol/Ownable.ts rename to v1/typechain-types/contracts/evm/tools/ImmutableCreate2Factory.sol/Ownable.ts diff --git a/typechain-types/contracts/evm/tools/ImmutableCreate2Factory.sol/index.ts b/v1/typechain-types/contracts/evm/tools/ImmutableCreate2Factory.sol/index.ts similarity index 100% rename from typechain-types/contracts/evm/tools/ImmutableCreate2Factory.sol/index.ts rename to v1/typechain-types/contracts/evm/tools/ImmutableCreate2Factory.sol/index.ts diff --git a/typechain-types/contracts/evm/tools/ZetaInteractor.ts b/v1/typechain-types/contracts/evm/tools/ZetaInteractor.ts similarity index 100% rename from typechain-types/contracts/evm/tools/ZetaInteractor.ts rename to v1/typechain-types/contracts/evm/tools/ZetaInteractor.ts diff --git a/typechain-types/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/ISwapRouterPancake.ts b/v1/typechain-types/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/ISwapRouterPancake.ts similarity index 100% rename from typechain-types/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/ISwapRouterPancake.ts rename to v1/typechain-types/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/ISwapRouterPancake.ts diff --git a/typechain-types/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/WETH9.ts b/v1/typechain-types/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/WETH9.ts similarity index 100% rename from typechain-types/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/WETH9.ts rename to v1/typechain-types/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/WETH9.ts diff --git a/typechain-types/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/ZetaTokenConsumerPancakeV3.ts b/v1/typechain-types/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/ZetaTokenConsumerPancakeV3.ts similarity index 100% rename from typechain-types/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/ZetaTokenConsumerPancakeV3.ts rename to v1/typechain-types/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/ZetaTokenConsumerPancakeV3.ts diff --git a/typechain-types/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/ZetaTokenConsumerUniV3Errors.ts b/v1/typechain-types/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/ZetaTokenConsumerUniV3Errors.ts similarity index 100% rename from typechain-types/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/ZetaTokenConsumerUniV3Errors.ts rename to v1/typechain-types/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/ZetaTokenConsumerUniV3Errors.ts diff --git a/typechain-types/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/index.ts b/v1/typechain-types/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/index.ts similarity index 100% rename from typechain-types/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/index.ts rename to v1/typechain-types/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/index.ts diff --git a/typechain-types/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/WETH9.ts b/v1/typechain-types/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/WETH9.ts similarity index 100% rename from typechain-types/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/WETH9.ts rename to v1/typechain-types/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/WETH9.ts diff --git a/typechain-types/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/ZetaTokenConsumerTrident.ts b/v1/typechain-types/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/ZetaTokenConsumerTrident.ts similarity index 100% rename from typechain-types/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/ZetaTokenConsumerTrident.ts rename to v1/typechain-types/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/ZetaTokenConsumerTrident.ts diff --git a/typechain-types/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/ZetaTokenConsumerTridentErrors.ts b/v1/typechain-types/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/ZetaTokenConsumerTridentErrors.ts similarity index 100% rename from typechain-types/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/ZetaTokenConsumerTridentErrors.ts rename to v1/typechain-types/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/ZetaTokenConsumerTridentErrors.ts diff --git a/typechain-types/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/index.ts b/v1/typechain-types/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/index.ts similarity index 100% rename from typechain-types/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/index.ts rename to v1/typechain-types/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/index.ts diff --git a/typechain-types/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/ZetaTokenConsumerUniV2.ts b/v1/typechain-types/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/ZetaTokenConsumerUniV2.ts similarity index 100% rename from typechain-types/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/ZetaTokenConsumerUniV2.ts rename to v1/typechain-types/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/ZetaTokenConsumerUniV2.ts diff --git a/typechain-types/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/ZetaTokenConsumerUniV2Errors.ts b/v1/typechain-types/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/ZetaTokenConsumerUniV2Errors.ts similarity index 100% rename from typechain-types/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/ZetaTokenConsumerUniV2Errors.ts rename to v1/typechain-types/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/ZetaTokenConsumerUniV2Errors.ts diff --git a/typechain-types/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/index.ts b/v1/typechain-types/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/index.ts similarity index 100% rename from typechain-types/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/index.ts rename to v1/typechain-types/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/index.ts diff --git a/typechain-types/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/WETH9.ts b/v1/typechain-types/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/WETH9.ts similarity index 100% rename from typechain-types/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/WETH9.ts rename to v1/typechain-types/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/WETH9.ts diff --git a/typechain-types/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/ZetaTokenConsumerUniV3.ts b/v1/typechain-types/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/ZetaTokenConsumerUniV3.ts similarity index 100% rename from typechain-types/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/ZetaTokenConsumerUniV3.ts rename to v1/typechain-types/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/ZetaTokenConsumerUniV3.ts diff --git a/typechain-types/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/ZetaTokenConsumerUniV3Errors.ts b/v1/typechain-types/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/ZetaTokenConsumerUniV3Errors.ts similarity index 100% rename from typechain-types/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/ZetaTokenConsumerUniV3Errors.ts rename to v1/typechain-types/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/ZetaTokenConsumerUniV3Errors.ts diff --git a/typechain-types/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/index.ts b/v1/typechain-types/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/index.ts similarity index 100% rename from typechain-types/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/index.ts rename to v1/typechain-types/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/index.ts diff --git a/typechain-types/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/ZetaTokenConsumerZEVM.ts b/v1/typechain-types/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/ZetaTokenConsumerZEVM.ts similarity index 100% rename from typechain-types/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/ZetaTokenConsumerZEVM.ts rename to v1/typechain-types/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/ZetaTokenConsumerZEVM.ts diff --git a/typechain-types/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/ZetaTokenConsumerZEVMErrors.ts b/v1/typechain-types/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/ZetaTokenConsumerZEVMErrors.ts similarity index 100% rename from typechain-types/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/ZetaTokenConsumerZEVMErrors.ts rename to v1/typechain-types/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/ZetaTokenConsumerZEVMErrors.ts diff --git a/typechain-types/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/index.ts b/v1/typechain-types/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/index.ts similarity index 100% rename from typechain-types/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/index.ts rename to v1/typechain-types/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/index.ts diff --git a/typechain-types/contracts/evm/tools/index.ts b/v1/typechain-types/contracts/evm/tools/index.ts similarity index 100% rename from typechain-types/contracts/evm/tools/index.ts rename to v1/typechain-types/contracts/evm/tools/index.ts diff --git a/typechain-types/contracts/evm/tools/interfaces/TridentConcentratedLiquidityPoolFactory.sol/ConcentratedLiquidityPoolFactory.ts b/v1/typechain-types/contracts/evm/tools/interfaces/TridentConcentratedLiquidityPoolFactory.sol/ConcentratedLiquidityPoolFactory.ts similarity index 100% rename from typechain-types/contracts/evm/tools/interfaces/TridentConcentratedLiquidityPoolFactory.sol/ConcentratedLiquidityPoolFactory.ts rename to v1/typechain-types/contracts/evm/tools/interfaces/TridentConcentratedLiquidityPoolFactory.sol/ConcentratedLiquidityPoolFactory.ts diff --git a/typechain-types/contracts/evm/tools/interfaces/TridentConcentratedLiquidityPoolFactory.sol/index.ts b/v1/typechain-types/contracts/evm/tools/interfaces/TridentConcentratedLiquidityPoolFactory.sol/index.ts similarity index 100% rename from typechain-types/contracts/evm/tools/interfaces/TridentConcentratedLiquidityPoolFactory.sol/index.ts rename to v1/typechain-types/contracts/evm/tools/interfaces/TridentConcentratedLiquidityPoolFactory.sol/index.ts diff --git a/typechain-types/contracts/evm/tools/interfaces/TridentIPoolRouter.sol/IPoolRouter.ts b/v1/typechain-types/contracts/evm/tools/interfaces/TridentIPoolRouter.sol/IPoolRouter.ts similarity index 100% rename from typechain-types/contracts/evm/tools/interfaces/TridentIPoolRouter.sol/IPoolRouter.ts rename to v1/typechain-types/contracts/evm/tools/interfaces/TridentIPoolRouter.sol/IPoolRouter.ts diff --git a/typechain-types/contracts/evm/tools/interfaces/TridentIPoolRouter.sol/index.ts b/v1/typechain-types/contracts/evm/tools/interfaces/TridentIPoolRouter.sol/index.ts similarity index 100% rename from typechain-types/contracts/evm/tools/interfaces/TridentIPoolRouter.sol/index.ts rename to v1/typechain-types/contracts/evm/tools/interfaces/TridentIPoolRouter.sol/index.ts diff --git a/typechain-types/contracts/evm/tools/interfaces/index.ts b/v1/typechain-types/contracts/evm/tools/interfaces/index.ts similarity index 100% rename from typechain-types/contracts/evm/tools/interfaces/index.ts rename to v1/typechain-types/contracts/evm/tools/interfaces/index.ts diff --git a/typechain-types/contracts/prototypes/index.ts b/v1/typechain-types/contracts/index.ts similarity index 100% rename from typechain-types/contracts/prototypes/index.ts rename to v1/typechain-types/contracts/index.ts diff --git a/typechain-types/contracts/zevm/Interfaces.sol/ISystem.ts b/v1/typechain-types/contracts/zevm/Interfaces.sol/ISystem.ts similarity index 100% rename from typechain-types/contracts/zevm/Interfaces.sol/ISystem.ts rename to v1/typechain-types/contracts/zevm/Interfaces.sol/ISystem.ts diff --git a/typechain-types/contracts/zevm/Interfaces.sol/IZRC20.ts b/v1/typechain-types/contracts/zevm/Interfaces.sol/IZRC20.ts similarity index 100% rename from typechain-types/contracts/zevm/Interfaces.sol/IZRC20.ts rename to v1/typechain-types/contracts/zevm/Interfaces.sol/IZRC20.ts diff --git a/typechain-types/contracts/zevm/Interfaces.sol/IZRC20Metadata.ts b/v1/typechain-types/contracts/zevm/Interfaces.sol/IZRC20Metadata.ts similarity index 100% rename from typechain-types/contracts/zevm/Interfaces.sol/IZRC20Metadata.ts rename to v1/typechain-types/contracts/zevm/Interfaces.sol/IZRC20Metadata.ts diff --git a/typechain-types/contracts/zevm/Interfaces.sol/index.ts b/v1/typechain-types/contracts/zevm/Interfaces.sol/index.ts similarity index 100% rename from typechain-types/contracts/zevm/Interfaces.sol/index.ts rename to v1/typechain-types/contracts/zevm/Interfaces.sol/index.ts diff --git a/typechain-types/contracts/zevm/SystemContract.sol/SystemContract.ts b/v1/typechain-types/contracts/zevm/SystemContract.sol/SystemContract.ts similarity index 100% rename from typechain-types/contracts/zevm/SystemContract.sol/SystemContract.ts rename to v1/typechain-types/contracts/zevm/SystemContract.sol/SystemContract.ts diff --git a/typechain-types/contracts/zevm/SystemContract.sol/SystemContractErrors.ts b/v1/typechain-types/contracts/zevm/SystemContract.sol/SystemContractErrors.ts similarity index 100% rename from typechain-types/contracts/zevm/SystemContract.sol/SystemContractErrors.ts rename to v1/typechain-types/contracts/zevm/SystemContract.sol/SystemContractErrors.ts diff --git a/typechain-types/contracts/zevm/SystemContract.sol/index.ts b/v1/typechain-types/contracts/zevm/SystemContract.sol/index.ts similarity index 100% rename from typechain-types/contracts/zevm/SystemContract.sol/index.ts rename to v1/typechain-types/contracts/zevm/SystemContract.sol/index.ts diff --git a/typechain-types/contracts/zevm/WZETA.sol/WETH9.ts b/v1/typechain-types/contracts/zevm/WZETA.sol/WETH9.ts similarity index 100% rename from typechain-types/contracts/zevm/WZETA.sol/WETH9.ts rename to v1/typechain-types/contracts/zevm/WZETA.sol/WETH9.ts diff --git a/typechain-types/contracts/zevm/WZETA.sol/index.ts b/v1/typechain-types/contracts/zevm/WZETA.sol/index.ts similarity index 100% rename from typechain-types/contracts/zevm/WZETA.sol/index.ts rename to v1/typechain-types/contracts/zevm/WZETA.sol/index.ts diff --git a/typechain-types/contracts/zevm/ZRC20.sol/ZRC20.ts b/v1/typechain-types/contracts/zevm/ZRC20.sol/ZRC20.ts similarity index 100% rename from typechain-types/contracts/zevm/ZRC20.sol/ZRC20.ts rename to v1/typechain-types/contracts/zevm/ZRC20.sol/ZRC20.ts diff --git a/typechain-types/contracts/zevm/ZRC20.sol/ZRC20Errors.ts b/v1/typechain-types/contracts/zevm/ZRC20.sol/ZRC20Errors.ts similarity index 100% rename from typechain-types/contracts/zevm/ZRC20.sol/ZRC20Errors.ts rename to v1/typechain-types/contracts/zevm/ZRC20.sol/ZRC20Errors.ts diff --git a/typechain-types/contracts/zevm/ZRC20.sol/index.ts b/v1/typechain-types/contracts/zevm/ZRC20.sol/index.ts similarity index 100% rename from typechain-types/contracts/zevm/ZRC20.sol/index.ts rename to v1/typechain-types/contracts/zevm/ZRC20.sol/index.ts diff --git a/typechain-types/contracts/zevm/ZetaConnectorZEVM.sol/WZETA.ts b/v1/typechain-types/contracts/zevm/ZetaConnectorZEVM.sol/WZETA.ts similarity index 100% rename from typechain-types/contracts/zevm/ZetaConnectorZEVM.sol/WZETA.ts rename to v1/typechain-types/contracts/zevm/ZetaConnectorZEVM.sol/WZETA.ts diff --git a/typechain-types/contracts/zevm/ZetaConnectorZEVM.sol/ZetaConnectorZEVM.ts b/v1/typechain-types/contracts/zevm/ZetaConnectorZEVM.sol/ZetaConnectorZEVM.ts similarity index 100% rename from typechain-types/contracts/zevm/ZetaConnectorZEVM.sol/ZetaConnectorZEVM.ts rename to v1/typechain-types/contracts/zevm/ZetaConnectorZEVM.sol/ZetaConnectorZEVM.ts diff --git a/typechain-types/contracts/zevm/ZetaConnectorZEVM.sol/ZetaReceiver.ts b/v1/typechain-types/contracts/zevm/ZetaConnectorZEVM.sol/ZetaReceiver.ts similarity index 100% rename from typechain-types/contracts/zevm/ZetaConnectorZEVM.sol/ZetaReceiver.ts rename to v1/typechain-types/contracts/zevm/ZetaConnectorZEVM.sol/ZetaReceiver.ts diff --git a/typechain-types/contracts/zevm/ZetaConnectorZEVM.sol/index.ts b/v1/typechain-types/contracts/zevm/ZetaConnectorZEVM.sol/index.ts similarity index 100% rename from typechain-types/contracts/zevm/ZetaConnectorZEVM.sol/index.ts rename to v1/typechain-types/contracts/zevm/ZetaConnectorZEVM.sol/index.ts diff --git a/typechain-types/contracts/zevm/ZetaConnectorZEVM.ts b/v1/typechain-types/contracts/zevm/ZetaConnectorZEVM.ts similarity index 100% rename from typechain-types/contracts/zevm/ZetaConnectorZEVM.ts rename to v1/typechain-types/contracts/zevm/ZetaConnectorZEVM.ts diff --git a/typechain-types/contracts/zevm/index.ts b/v1/typechain-types/contracts/zevm/index.ts similarity index 87% rename from typechain-types/contracts/zevm/index.ts rename to v1/typechain-types/contracts/zevm/index.ts index 7bead7ac..ce645d9d 100644 --- a/typechain-types/contracts/zevm/index.ts +++ b/v1/typechain-types/contracts/zevm/index.ts @@ -7,8 +7,6 @@ import type * as wzetaSol from "./WZETA.sol"; export type { wzetaSol }; import type * as zrc20Sol from "./ZRC20.sol"; export type { zrc20Sol }; -import type * as zrc20NewSol from "./ZRC20New.sol"; -export type { zrc20NewSol }; import type * as zetaConnectorZevmSol from "./ZetaConnectorZEVM.sol"; export type { zetaConnectorZevmSol }; import type * as interfaces from "./interfaces"; diff --git a/typechain-types/contracts/zevm/interfaces/ISystem.ts b/v1/typechain-types/contracts/zevm/interfaces/ISystem.ts similarity index 100% rename from typechain-types/contracts/zevm/interfaces/ISystem.ts rename to v1/typechain-types/contracts/zevm/interfaces/ISystem.ts diff --git a/typechain-types/contracts/zevm/interfaces/IUniswapV2Router01.ts b/v1/typechain-types/contracts/zevm/interfaces/IUniswapV2Router01.ts similarity index 100% rename from typechain-types/contracts/zevm/interfaces/IUniswapV2Router01.ts rename to v1/typechain-types/contracts/zevm/interfaces/IUniswapV2Router01.ts diff --git a/typechain-types/contracts/zevm/interfaces/IUniswapV2Router02.ts b/v1/typechain-types/contracts/zevm/interfaces/IUniswapV2Router02.ts similarity index 100% rename from typechain-types/contracts/zevm/interfaces/IUniswapV2Router02.ts rename to v1/typechain-types/contracts/zevm/interfaces/IUniswapV2Router02.ts diff --git a/typechain-types/contracts/zevm/interfaces/IWZETA.sol/IWETH9.ts b/v1/typechain-types/contracts/zevm/interfaces/IWZETA.sol/IWETH9.ts similarity index 100% rename from typechain-types/contracts/zevm/interfaces/IWZETA.sol/IWETH9.ts rename to v1/typechain-types/contracts/zevm/interfaces/IWZETA.sol/IWETH9.ts diff --git a/typechain-types/contracts/zevm/interfaces/IWZETA.sol/index.ts b/v1/typechain-types/contracts/zevm/interfaces/IWZETA.sol/index.ts similarity index 100% rename from typechain-types/contracts/zevm/interfaces/IWZETA.sol/index.ts rename to v1/typechain-types/contracts/zevm/interfaces/IWZETA.sol/index.ts diff --git a/typechain-types/contracts/zevm/interfaces/IZRC20.sol/ISystem.ts b/v1/typechain-types/contracts/zevm/interfaces/IZRC20.sol/ISystem.ts similarity index 100% rename from typechain-types/contracts/zevm/interfaces/IZRC20.sol/ISystem.ts rename to v1/typechain-types/contracts/zevm/interfaces/IZRC20.sol/ISystem.ts diff --git a/typechain-types/contracts/zevm/interfaces/IZRC20.sol/IZRC20.ts b/v1/typechain-types/contracts/zevm/interfaces/IZRC20.sol/IZRC20.ts similarity index 100% rename from typechain-types/contracts/zevm/interfaces/IZRC20.sol/IZRC20.ts rename to v1/typechain-types/contracts/zevm/interfaces/IZRC20.sol/IZRC20.ts diff --git a/typechain-types/contracts/zevm/interfaces/IZRC20.sol/IZRC20Metadata.ts b/v1/typechain-types/contracts/zevm/interfaces/IZRC20.sol/IZRC20Metadata.ts similarity index 100% rename from typechain-types/contracts/zevm/interfaces/IZRC20.sol/IZRC20Metadata.ts rename to v1/typechain-types/contracts/zevm/interfaces/IZRC20.sol/IZRC20Metadata.ts diff --git a/typechain-types/contracts/zevm/interfaces/IZRC20.sol/ZRC20Events.ts b/v1/typechain-types/contracts/zevm/interfaces/IZRC20.sol/ZRC20Events.ts similarity index 100% rename from typechain-types/contracts/zevm/interfaces/IZRC20.sol/ZRC20Events.ts rename to v1/typechain-types/contracts/zevm/interfaces/IZRC20.sol/ZRC20Events.ts diff --git a/typechain-types/contracts/zevm/interfaces/IZRC20.sol/index.ts b/v1/typechain-types/contracts/zevm/interfaces/IZRC20.sol/index.ts similarity index 100% rename from typechain-types/contracts/zevm/interfaces/IZRC20.sol/index.ts rename to v1/typechain-types/contracts/zevm/interfaces/IZRC20.sol/index.ts diff --git a/typechain-types/contracts/zevm/interfaces/IZRC20.ts b/v1/typechain-types/contracts/zevm/interfaces/IZRC20.ts similarity index 100% rename from typechain-types/contracts/zevm/interfaces/IZRC20.ts rename to v1/typechain-types/contracts/zevm/interfaces/IZRC20.ts diff --git a/typechain-types/contracts/zevm/interfaces/ZContract.ts b/v1/typechain-types/contracts/zevm/interfaces/ZContract.ts similarity index 100% rename from typechain-types/contracts/zevm/interfaces/ZContract.ts rename to v1/typechain-types/contracts/zevm/interfaces/ZContract.ts diff --git a/typechain-types/contracts/zevm/interfaces/index.ts b/v1/typechain-types/contracts/zevm/interfaces/index.ts similarity index 100% rename from typechain-types/contracts/zevm/interfaces/index.ts rename to v1/typechain-types/contracts/zevm/interfaces/index.ts diff --git a/typechain-types/contracts/zevm/interfaces/zContract.sol/UniversalContract.ts b/v1/typechain-types/contracts/zevm/interfaces/zContract.sol/UniversalContract.ts similarity index 100% rename from typechain-types/contracts/zevm/interfaces/zContract.sol/UniversalContract.ts rename to v1/typechain-types/contracts/zevm/interfaces/zContract.sol/UniversalContract.ts diff --git a/typechain-types/contracts/zevm/interfaces/zContract.sol/ZContract.ts b/v1/typechain-types/contracts/zevm/interfaces/zContract.sol/ZContract.ts similarity index 100% rename from typechain-types/contracts/zevm/interfaces/zContract.sol/ZContract.ts rename to v1/typechain-types/contracts/zevm/interfaces/zContract.sol/ZContract.ts diff --git a/typechain-types/contracts/zevm/interfaces/zContract.sol/index.ts b/v1/typechain-types/contracts/zevm/interfaces/zContract.sol/index.ts similarity index 100% rename from typechain-types/contracts/zevm/interfaces/zContract.sol/index.ts rename to v1/typechain-types/contracts/zevm/interfaces/zContract.sol/index.ts diff --git a/typechain-types/contracts/zevm/testing/SystemContractMock.sol/SystemContractErrors.ts b/v1/typechain-types/contracts/zevm/testing/SystemContractMock.sol/SystemContractErrors.ts similarity index 100% rename from typechain-types/contracts/zevm/testing/SystemContractMock.sol/SystemContractErrors.ts rename to v1/typechain-types/contracts/zevm/testing/SystemContractMock.sol/SystemContractErrors.ts diff --git a/typechain-types/contracts/zevm/testing/SystemContractMock.sol/SystemContractMock.ts b/v1/typechain-types/contracts/zevm/testing/SystemContractMock.sol/SystemContractMock.ts similarity index 100% rename from typechain-types/contracts/zevm/testing/SystemContractMock.sol/SystemContractMock.ts rename to v1/typechain-types/contracts/zevm/testing/SystemContractMock.sol/SystemContractMock.ts diff --git a/typechain-types/contracts/zevm/testing/SystemContractMock.sol/index.ts b/v1/typechain-types/contracts/zevm/testing/SystemContractMock.sol/index.ts similarity index 100% rename from typechain-types/contracts/zevm/testing/SystemContractMock.sol/index.ts rename to v1/typechain-types/contracts/zevm/testing/SystemContractMock.sol/index.ts diff --git a/typechain-types/contracts/zevm/testing/index.ts b/v1/typechain-types/contracts/zevm/testing/index.ts similarity index 100% rename from typechain-types/contracts/zevm/testing/index.ts rename to v1/typechain-types/contracts/zevm/testing/index.ts diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable__factory.ts b/v1/typechain-types/factories/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable__factory.ts similarity index 100% rename from typechain-types/factories/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable__factory.ts rename to v1/typechain-types/factories/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable__factory.ts diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/access/index.ts b/v1/typechain-types/factories/@openzeppelin/contracts-upgradeable/access/index.ts similarity index 100% rename from typechain-types/factories/@openzeppelin/contracts-upgradeable/access/index.ts rename to v1/typechain-types/factories/@openzeppelin/contracts-upgradeable/access/index.ts diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/index.ts b/v1/typechain-types/factories/@openzeppelin/contracts-upgradeable/index.ts similarity index 100% rename from typechain-types/factories/@openzeppelin/contracts-upgradeable/index.ts rename to v1/typechain-types/factories/@openzeppelin/contracts-upgradeable/index.ts diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable__factory.ts b/v1/typechain-types/factories/@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable__factory.ts similarity index 100% rename from typechain-types/factories/@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable__factory.ts rename to v1/typechain-types/factories/@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable__factory.ts diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol/IERC1822ProxiableUpgradeable__factory.ts b/v1/typechain-types/factories/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol/IERC1822ProxiableUpgradeable__factory.ts similarity index 100% rename from typechain-types/factories/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol/IERC1822ProxiableUpgradeable__factory.ts rename to v1/typechain-types/factories/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol/IERC1822ProxiableUpgradeable__factory.ts diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol/index.ts b/v1/typechain-types/factories/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol/index.ts similarity index 100% rename from typechain-types/factories/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol/index.ts rename to v1/typechain-types/factories/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol/index.ts diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/interfaces/index.ts b/v1/typechain-types/factories/@openzeppelin/contracts-upgradeable/interfaces/index.ts similarity index 100% rename from typechain-types/factories/@openzeppelin/contracts-upgradeable/interfaces/index.ts rename to v1/typechain-types/factories/@openzeppelin/contracts-upgradeable/interfaces/index.ts diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable__factory.ts b/v1/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable__factory.ts similarity index 100% rename from typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable__factory.ts rename to v1/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable__factory.ts diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/ERC1967/index.ts b/v1/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/ERC1967/index.ts similarity index 100% rename from typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/ERC1967/index.ts rename to v1/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/ERC1967/index.ts diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable__factory.ts b/v1/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable__factory.ts similarity index 100% rename from typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable__factory.ts rename to v1/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable__factory.ts diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/beacon/index.ts b/v1/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/beacon/index.ts similarity index 100% rename from typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/beacon/index.ts rename to v1/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/beacon/index.ts diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/index.ts b/v1/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/index.ts similarity index 100% rename from typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/index.ts rename to v1/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/index.ts diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable__factory.ts b/v1/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable__factory.ts similarity index 100% rename from typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable__factory.ts rename to v1/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable__factory.ts diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable__factory.ts b/v1/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable__factory.ts similarity index 100% rename from typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable__factory.ts rename to v1/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable__factory.ts diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/index.ts b/v1/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/index.ts similarity index 100% rename from typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/index.ts rename to v1/typechain-types/factories/@openzeppelin/contracts-upgradeable/proxy/utils/index.ts diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable__factory.ts b/v1/typechain-types/factories/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable__factory.ts similarity index 100% rename from typechain-types/factories/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable__factory.ts rename to v1/typechain-types/factories/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable__factory.ts diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/security/index.ts b/v1/typechain-types/factories/@openzeppelin/contracts-upgradeable/security/index.ts similarity index 100% rename from typechain-types/factories/@openzeppelin/contracts-upgradeable/security/index.ts rename to v1/typechain-types/factories/@openzeppelin/contracts-upgradeable/security/index.ts diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable__factory.ts b/v1/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable__factory.ts similarity index 100% rename from typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable__factory.ts rename to v1/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable__factory.ts diff --git a/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/index.ts b/v1/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/index.ts similarity index 100% rename from typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/index.ts rename to v1/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/index.ts diff --git a/typechain-types/factories/@openzeppelin/contracts/access/Ownable2Step__factory.ts b/v1/typechain-types/factories/@openzeppelin/contracts/access/Ownable2Step__factory.ts similarity index 100% rename from typechain-types/factories/@openzeppelin/contracts/access/Ownable2Step__factory.ts rename to v1/typechain-types/factories/@openzeppelin/contracts/access/Ownable2Step__factory.ts diff --git a/typechain-types/factories/@openzeppelin/contracts/access/Ownable__factory.ts b/v1/typechain-types/factories/@openzeppelin/contracts/access/Ownable__factory.ts similarity index 100% rename from typechain-types/factories/@openzeppelin/contracts/access/Ownable__factory.ts rename to v1/typechain-types/factories/@openzeppelin/contracts/access/Ownable__factory.ts diff --git a/typechain-types/factories/@openzeppelin/contracts/access/index.ts b/v1/typechain-types/factories/@openzeppelin/contracts/access/index.ts similarity index 100% rename from typechain-types/factories/@openzeppelin/contracts/access/index.ts rename to v1/typechain-types/factories/@openzeppelin/contracts/access/index.ts diff --git a/typechain-types/factories/@openzeppelin/contracts/index.ts b/v1/typechain-types/factories/@openzeppelin/contracts/index.ts similarity index 100% rename from typechain-types/factories/@openzeppelin/contracts/index.ts rename to v1/typechain-types/factories/@openzeppelin/contracts/index.ts diff --git a/typechain-types/factories/@openzeppelin/contracts/security/Pausable__factory.ts b/v1/typechain-types/factories/@openzeppelin/contracts/security/Pausable__factory.ts similarity index 100% rename from typechain-types/factories/@openzeppelin/contracts/security/Pausable__factory.ts rename to v1/typechain-types/factories/@openzeppelin/contracts/security/Pausable__factory.ts diff --git a/typechain-types/factories/@openzeppelin/contracts/security/index.ts b/v1/typechain-types/factories/@openzeppelin/contracts/security/index.ts similarity index 100% rename from typechain-types/factories/@openzeppelin/contracts/security/index.ts rename to v1/typechain-types/factories/@openzeppelin/contracts/security/index.ts diff --git a/typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.ts b/v1/typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.ts similarity index 100% rename from typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.ts rename to v1/typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.ts diff --git a/typechain-types/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.ts b/v1/typechain-types/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.ts similarity index 100% rename from typechain-types/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.ts rename to v1/typechain-types/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.ts diff --git a/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable__factory.ts b/v1/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable__factory.ts similarity index 100% rename from typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable__factory.ts rename to v1/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable__factory.ts diff --git a/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata__factory.ts b/v1/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata__factory.ts similarity index 100% rename from typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata__factory.ts rename to v1/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata__factory.ts diff --git a/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit__factory.ts b/v1/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit__factory.ts similarity index 100% rename from typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit__factory.ts rename to v1/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit__factory.ts diff --git a/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.ts b/v1/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.ts similarity index 100% rename from typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.ts rename to v1/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/index.ts diff --git a/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/index.ts b/v1/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/index.ts similarity index 100% rename from typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/index.ts rename to v1/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/index.ts diff --git a/typechain-types/factories/@openzeppelin/contracts/token/ERC20/index.ts b/v1/typechain-types/factories/@openzeppelin/contracts/token/ERC20/index.ts similarity index 100% rename from typechain-types/factories/@openzeppelin/contracts/token/ERC20/index.ts rename to v1/typechain-types/factories/@openzeppelin/contracts/token/ERC20/index.ts diff --git a/typechain-types/factories/@openzeppelin/contracts/token/index.ts b/v1/typechain-types/factories/@openzeppelin/contracts/token/index.ts similarity index 100% rename from typechain-types/factories/@openzeppelin/contracts/token/index.ts rename to v1/typechain-types/factories/@openzeppelin/contracts/token/index.ts diff --git a/typechain-types/factories/@uniswap/v2-core/index.ts b/v1/typechain-types/factories/@openzeppelin/index.ts similarity index 100% rename from typechain-types/factories/@uniswap/v2-core/index.ts rename to v1/typechain-types/factories/@openzeppelin/index.ts diff --git a/typechain-types/factories/@uniswap/index.ts b/v1/typechain-types/factories/@uniswap/index.ts similarity index 100% rename from typechain-types/factories/@uniswap/index.ts rename to v1/typechain-types/factories/@uniswap/index.ts diff --git a/typechain-types/factories/@uniswap/v2-core/contracts/UniswapV2ERC20__factory.ts b/v1/typechain-types/factories/@uniswap/v2-core/contracts/UniswapV2ERC20__factory.ts similarity index 100% rename from typechain-types/factories/@uniswap/v2-core/contracts/UniswapV2ERC20__factory.ts rename to v1/typechain-types/factories/@uniswap/v2-core/contracts/UniswapV2ERC20__factory.ts diff --git a/typechain-types/factories/@uniswap/v2-core/contracts/UniswapV2Factory__factory.ts b/v1/typechain-types/factories/@uniswap/v2-core/contracts/UniswapV2Factory__factory.ts similarity index 100% rename from typechain-types/factories/@uniswap/v2-core/contracts/UniswapV2Factory__factory.ts rename to v1/typechain-types/factories/@uniswap/v2-core/contracts/UniswapV2Factory__factory.ts diff --git a/typechain-types/factories/@uniswap/v2-core/contracts/UniswapV2Pair__factory.ts b/v1/typechain-types/factories/@uniswap/v2-core/contracts/UniswapV2Pair__factory.ts similarity index 100% rename from typechain-types/factories/@uniswap/v2-core/contracts/UniswapV2Pair__factory.ts rename to v1/typechain-types/factories/@uniswap/v2-core/contracts/UniswapV2Pair__factory.ts diff --git a/typechain-types/factories/@uniswap/v2-core/contracts/index.ts b/v1/typechain-types/factories/@uniswap/v2-core/contracts/index.ts similarity index 100% rename from typechain-types/factories/@uniswap/v2-core/contracts/index.ts rename to v1/typechain-types/factories/@uniswap/v2-core/contracts/index.ts diff --git a/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IERC20__factory.ts b/v1/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IERC20__factory.ts similarity index 100% rename from typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IERC20__factory.ts rename to v1/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IERC20__factory.ts diff --git a/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Callee__factory.ts b/v1/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Callee__factory.ts similarity index 100% rename from typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Callee__factory.ts rename to v1/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Callee__factory.ts diff --git a/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2ERC20__factory.ts b/v1/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2ERC20__factory.ts similarity index 100% rename from typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2ERC20__factory.ts rename to v1/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2ERC20__factory.ts diff --git a/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory__factory.ts b/v1/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory__factory.ts similarity index 100% rename from typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory__factory.ts rename to v1/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory__factory.ts diff --git a/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair__factory.ts b/v1/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair__factory.ts similarity index 100% rename from typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair__factory.ts rename to v1/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair__factory.ts diff --git a/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/index.ts b/v1/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/index.ts similarity index 100% rename from typechain-types/factories/@uniswap/v2-core/contracts/interfaces/index.ts rename to v1/typechain-types/factories/@uniswap/v2-core/contracts/interfaces/index.ts diff --git a/typechain-types/factories/@uniswap/v2-periphery/index.ts b/v1/typechain-types/factories/@uniswap/v2-core/index.ts similarity index 100% rename from typechain-types/factories/@uniswap/v2-periphery/index.ts rename to v1/typechain-types/factories/@uniswap/v2-core/index.ts diff --git a/typechain-types/factories/@uniswap/v2-periphery/contracts/UniswapV2Router02__factory.ts b/v1/typechain-types/factories/@uniswap/v2-periphery/contracts/UniswapV2Router02__factory.ts similarity index 100% rename from typechain-types/factories/@uniswap/v2-periphery/contracts/UniswapV2Router02__factory.ts rename to v1/typechain-types/factories/@uniswap/v2-periphery/contracts/UniswapV2Router02__factory.ts diff --git a/typechain-types/factories/@uniswap/v2-periphery/contracts/index.ts b/v1/typechain-types/factories/@uniswap/v2-periphery/contracts/index.ts similarity index 100% rename from typechain-types/factories/@uniswap/v2-periphery/contracts/index.ts rename to v1/typechain-types/factories/@uniswap/v2-periphery/contracts/index.ts diff --git a/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IERC20__factory.ts b/v1/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IERC20__factory.ts similarity index 100% rename from typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IERC20__factory.ts rename to v1/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IERC20__factory.ts diff --git a/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01__factory.ts b/v1/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01__factory.ts similarity index 100% rename from typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01__factory.ts rename to v1/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01__factory.ts diff --git a/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02__factory.ts b/v1/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02__factory.ts similarity index 100% rename from typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02__factory.ts rename to v1/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02__factory.ts diff --git a/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IWETH__factory.ts b/v1/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IWETH__factory.ts similarity index 100% rename from typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IWETH__factory.ts rename to v1/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/IWETH__factory.ts diff --git a/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/index.ts b/v1/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/index.ts similarity index 100% rename from typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/index.ts rename to v1/typechain-types/factories/@uniswap/v2-periphery/contracts/interfaces/index.ts diff --git a/typechain-types/factories/@uniswap/v3-core/index.ts b/v1/typechain-types/factories/@uniswap/v2-periphery/index.ts similarity index 100% rename from typechain-types/factories/@uniswap/v3-core/index.ts rename to v1/typechain-types/factories/@uniswap/v2-periphery/index.ts diff --git a/typechain-types/factories/@uniswap/v3-core/contracts/index.ts b/v1/typechain-types/factories/@uniswap/v3-core/contracts/index.ts similarity index 100% rename from typechain-types/factories/@uniswap/v3-core/contracts/index.ts rename to v1/typechain-types/factories/@uniswap/v3-core/contracts/index.ts diff --git a/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory__factory.ts b/v1/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory__factory.ts similarity index 100% rename from typechain-types/factories/@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory__factory.ts rename to v1/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/IUniswapV3Factory__factory.ts diff --git a/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool__factory.ts b/v1/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool__factory.ts similarity index 100% rename from typechain-types/factories/@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool__factory.ts rename to v1/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool__factory.ts diff --git a/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback__factory.ts b/v1/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback__factory.ts similarity index 100% rename from typechain-types/factories/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback__factory.ts rename to v1/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback__factory.ts diff --git a/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/callback/index.ts b/v1/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/callback/index.ts similarity index 100% rename from typechain-types/factories/@uniswap/v3-core/contracts/interfaces/callback/index.ts rename to v1/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/callback/index.ts diff --git a/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/index.ts b/v1/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/index.ts similarity index 100% rename from typechain-types/factories/@uniswap/v3-core/contracts/interfaces/index.ts rename to v1/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/index.ts diff --git a/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions__factory.ts b/v1/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions__factory.ts similarity index 100% rename from typechain-types/factories/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions__factory.ts rename to v1/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions__factory.ts diff --git a/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState__factory.ts b/v1/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState__factory.ts similarity index 100% rename from typechain-types/factories/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState__factory.ts rename to v1/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState__factory.ts diff --git a/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents__factory.ts b/v1/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents__factory.ts similarity index 100% rename from typechain-types/factories/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents__factory.ts rename to v1/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents__factory.ts diff --git a/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables__factory.ts b/v1/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables__factory.ts similarity index 100% rename from typechain-types/factories/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables__factory.ts rename to v1/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables__factory.ts diff --git a/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions__factory.ts b/v1/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions__factory.ts similarity index 100% rename from typechain-types/factories/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions__factory.ts rename to v1/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions__factory.ts diff --git a/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState__factory.ts b/v1/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState__factory.ts similarity index 100% rename from typechain-types/factories/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState__factory.ts rename to v1/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState__factory.ts diff --git a/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/pool/index.ts b/v1/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/pool/index.ts similarity index 100% rename from typechain-types/factories/@uniswap/v3-core/contracts/interfaces/pool/index.ts rename to v1/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/pool/index.ts diff --git a/typechain-types/factories/@uniswap/v3-periphery/index.ts b/v1/typechain-types/factories/@uniswap/v3-core/index.ts similarity index 100% rename from typechain-types/factories/@uniswap/v3-periphery/index.ts rename to v1/typechain-types/factories/@uniswap/v3-core/index.ts diff --git a/typechain-types/factories/@uniswap/v3-periphery/contracts/index.ts b/v1/typechain-types/factories/@uniswap/v3-periphery/contracts/index.ts similarity index 100% rename from typechain-types/factories/@uniswap/v3-periphery/contracts/index.ts rename to v1/typechain-types/factories/@uniswap/v3-periphery/contracts/index.ts diff --git a/typechain-types/factories/@uniswap/v3-periphery/contracts/interfaces/IQuoter__factory.ts b/v1/typechain-types/factories/@uniswap/v3-periphery/contracts/interfaces/IQuoter__factory.ts similarity index 100% rename from typechain-types/factories/@uniswap/v3-periphery/contracts/interfaces/IQuoter__factory.ts rename to v1/typechain-types/factories/@uniswap/v3-periphery/contracts/interfaces/IQuoter__factory.ts diff --git a/typechain-types/factories/@uniswap/v3-periphery/contracts/interfaces/ISwapRouter__factory.ts b/v1/typechain-types/factories/@uniswap/v3-periphery/contracts/interfaces/ISwapRouter__factory.ts similarity index 100% rename from typechain-types/factories/@uniswap/v3-periphery/contracts/interfaces/ISwapRouter__factory.ts rename to v1/typechain-types/factories/@uniswap/v3-periphery/contracts/interfaces/ISwapRouter__factory.ts diff --git a/typechain-types/factories/@uniswap/v3-periphery/contracts/interfaces/index.ts b/v1/typechain-types/factories/@uniswap/v3-periphery/contracts/interfaces/index.ts similarity index 100% rename from typechain-types/factories/@uniswap/v3-periphery/contracts/interfaces/index.ts rename to v1/typechain-types/factories/@uniswap/v3-periphery/contracts/interfaces/index.ts diff --git a/typechain-types/contracts/prototypes/interfaces.sol/index.ts b/v1/typechain-types/factories/@uniswap/v3-periphery/index.ts similarity index 67% rename from typechain-types/contracts/prototypes/interfaces.sol/index.ts rename to v1/typechain-types/factories/@uniswap/v3-periphery/index.ts index 878cfe66..6397da09 100644 --- a/typechain-types/contracts/prototypes/interfaces.sol/index.ts +++ b/v1/typechain-types/factories/@uniswap/v3-periphery/index.ts @@ -1,4 +1,4 @@ /* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ -export type { IGateway } from "./IGateway"; +export * as contracts from "./contracts"; diff --git a/typechain-types/factories/contracts/evm/ERC20Custody__factory.ts b/v1/typechain-types/factories/contracts/evm/ERC20Custody__factory.ts similarity index 100% rename from typechain-types/factories/contracts/evm/ERC20Custody__factory.ts rename to v1/typechain-types/factories/contracts/evm/ERC20Custody__factory.ts diff --git a/typechain-types/factories/contracts/evm/Zeta.eth.sol/ZetaEth__factory.ts b/v1/typechain-types/factories/contracts/evm/Zeta.eth.sol/ZetaEth__factory.ts similarity index 100% rename from typechain-types/factories/contracts/evm/Zeta.eth.sol/ZetaEth__factory.ts rename to v1/typechain-types/factories/contracts/evm/Zeta.eth.sol/ZetaEth__factory.ts diff --git a/typechain-types/factories/contracts/evm/Zeta.eth.sol/index.ts b/v1/typechain-types/factories/contracts/evm/Zeta.eth.sol/index.ts similarity index 100% rename from typechain-types/factories/contracts/evm/Zeta.eth.sol/index.ts rename to v1/typechain-types/factories/contracts/evm/Zeta.eth.sol/index.ts diff --git a/typechain-types/factories/contracts/evm/Zeta.non-eth.sol/ZetaNonEth__factory.ts b/v1/typechain-types/factories/contracts/evm/Zeta.non-eth.sol/ZetaNonEth__factory.ts similarity index 99% rename from typechain-types/factories/contracts/evm/Zeta.non-eth.sol/ZetaNonEth__factory.ts rename to v1/typechain-types/factories/contracts/evm/Zeta.non-eth.sol/ZetaNonEth__factory.ts index a641e18a..1733f96c 100644 --- a/typechain-types/factories/contracts/evm/Zeta.non-eth.sol/ZetaNonEth__factory.ts +++ b/v1/typechain-types/factories/contracts/evm/Zeta.non-eth.sol/ZetaNonEth__factory.ts @@ -572,7 +572,7 @@ const _abi = [ ] as const; const _bytecode = - "0x60806040523480156200001157600080fd5b5060405162002423380380620024238339818101604052810190620000379190620002c8565b6040518060400160405280600481526020017f5a657461000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f5a455441000000000000000000000000000000000000000000000000000000008152508160039080519060200190620000bb92919062000201565b508060049080519060200190620000d492919062000201565b505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806200013f5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b1562000177576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050620003c7565b8280546200020f9062000343565b90600052602060002090601f0160209004810192826200023357600085556200027f565b82601f106200024e57805160ff19168380011785556200027f565b828001600101855582156200027f579182015b828111156200027e57825182559160200191906001019062000261565b5b5090506200028e919062000292565b5090565b5b80821115620002ad57600081600090555060010162000293565b5090565b600081519050620002c281620003ad565b92915050565b60008060408385031215620002e257620002e1620003a8565b5b6000620002f285828601620002b1565b92505060206200030585828601620002b1565b9150509250929050565b60006200031c8262000323565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600060028204905060018216806200035c57607f821691505b6020821081141562000373576200037262000379565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b620003b8816200030f565b8114620003c457600080fd5b50565b61204c80620003d76000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806342966c68116100ad57806395d89b411161007157806395d89b41146102f6578063a457c2d714610314578063a9059cbb14610344578063bff9662a14610374578063dd62ed3e1461039257610121565b806342966c68146102665780635b1125911461028257806370a08231146102a0578063779e3b63146102d057806379cc6790146102da57610121565b80631e458bee116100f45780631e458bee146101ae57806323b872dd146101ca578063313ce567146101fa578063328a01d014610218578063395093511461023657610121565b806306fdde0314610126578063095ea7b31461014457806315d57fd41461017457806318160ddd14610190575b600080fd5b61012e6103c2565b60405161013b91906119c5565b60405180910390f35b61015e600480360381019061015991906116d3565b610454565b60405161016b91906119aa565b60405180910390f35b61018e60048036038101906101899190611640565b610477565b005b6101986106fb565b6040516101a59190611b27565b60405180910390f35b6101c860048036038101906101c39190611713565b610705565b005b6101e460048036038101906101df9190611680565b6107f5565b6040516101f191906119aa565b60405180910390f35b610202610824565b60405161020f9190611b42565b60405180910390f35b61022061082d565b60405161022d9190611966565b60405180910390f35b610250600480360381019061024b91906116d3565b610853565b60405161025d91906119aa565b60405180910390f35b610280600480360381019061027b9190611766565b61088a565b005b61028a61089e565b6040516102979190611966565b60405180910390f35b6102ba60048036038101906102b59190611613565b6108c4565b6040516102c79190611b27565b60405180910390f35b6102d861090c565b005b6102f460048036038101906102ef91906116d3565b610ae7565b005b6102fe610bd5565b60405161030b91906119c5565b60405180910390f35b61032e600480360381019061032991906116d3565b610c67565b60405161033b91906119aa565b60405180910390f35b61035e600480360381019061035991906116d3565b610cde565b60405161036b91906119aa565b60405180910390f35b61037c610d01565b6040516103899190611966565b60405180910390f35b6103ac60048036038101906103a79190611640565b610d27565b6040516103b99190611b27565b60405180910390f35b6060600380546103d190611c61565b80601f01602080910402602001604051908101604052809291908181526020018280546103fd90611c61565b801561044a5780601f1061041f5761010080835404028352916020019161044a565b820191906000526020600020905b81548152906001019060200180831161042d57829003601f168201915b5050505050905090565b60008061045f610dae565b905061046c818585610db6565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156105235750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b1561056557336040517fcdfcef9700000000000000000000000000000000000000000000000000000000815260040161055c9190611966565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806105cc5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15610603576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fe79965b5c67dcfb2cf5fe152715e4a7256cee62a3d5dd8484fd8a8539eb8beff33836040516106b6929190611981565b60405180910390a17f1b9352454524a57a51f24f67dc66d898f616922cd1f7a12d73570ece12b1975c33826040516106ef929190611981565b60405180910390a15050565b6000600254905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461079757336040517f3fe32fba00000000000000000000000000000000000000000000000000000000815260040161078e9190611966565b60405180910390fd5b6107a18383610f81565b808373ffffffffffffffffffffffffffffffffffffffff167fc263b302aec62d29105026245f19e16f8e0137066ccd4a8bd941f716bd4096bb846040516107e89190611b27565b60405180910390a3505050565b600080610800610dae565b905061080d8582856110d8565b610818858585611164565b60019150509392505050565b60006012905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061085e610dae565b905061087f8185856108708589610d27565b61087a9190611b79565b610db6565b600191505092915050565b61089b610895610dae565b826113dc565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461099e57336040517fe700765e0000000000000000000000000000000000000000000000000000000081526004016109959190611966565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610a27576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f5104c9abdc7d111c2aeb4ce890ac70274a4be2ee83f46a62551be5e6ebc82dd033600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610add929190611981565b60405180910390a1565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b7957336040517f3fe32fba000000000000000000000000000000000000000000000000000000008152600401610b709190611966565b60405180910390fd5b610b8382826115aa565b8173ffffffffffffffffffffffffffffffffffffffff167f919f7e2092ffcc9d09f599be18d8152860b0c054df788a33bc549cdd9d0f15b182604051610bc99190611b27565b60405180910390a25050565b606060048054610be490611c61565b80601f0160208091040260200160405190810160405280929190818152602001828054610c1090611c61565b8015610c5d5780601f10610c3257610100808354040283529160200191610c5d565b820191906000526020600020905b815481529060010190602001808311610c4057829003601f168201915b5050505050905090565b600080610c72610dae565b90506000610c808286610d27565b905083811015610cc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbc90611ae7565b60405180910390fd5b610cd28286868403610db6565b60019250505092915050565b600080610ce9610dae565b9050610cf6818585611164565b600191505092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1d90611ac7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8d90611a27565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f749190611b27565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ff1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe890611b07565b60405180910390fd5b610ffd600083836115ca565b806002600082825461100f9190611b79565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516110c09190611b27565b60405180910390a36110d4600083836115cf565b5050565b60006110e48484610d27565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461115e5781811015611150576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114790611a47565b60405180910390fd5b61115d8484848403610db6565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156111d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cb90611aa7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123b906119e7565b60405180910390fd5b61124f8383836115ca565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156112d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cc90611a67565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113c39190611b27565b60405180910390a36113d68484846115cf565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561144c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144390611a87565b60405180910390fd5b611458826000836115ca565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156114de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d590611a07565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115919190611b27565b60405180910390a36115a5836000846115cf565b505050565b6115bc826115b6610dae565b836110d8565b6115c682826113dc565b5050565b505050565b505050565b6000813590506115e381611fd1565b92915050565b6000813590506115f881611fe8565b92915050565b60008135905061160d81611fff565b92915050565b60006020828403121561162957611628611cf1565b5b6000611637848285016115d4565b91505092915050565b6000806040838503121561165757611656611cf1565b5b6000611665858286016115d4565b9250506020611676858286016115d4565b9150509250929050565b60008060006060848603121561169957611698611cf1565b5b60006116a7868287016115d4565b93505060206116b8868287016115d4565b92505060406116c9868287016115fe565b9150509250925092565b600080604083850312156116ea576116e9611cf1565b5b60006116f8858286016115d4565b9250506020611709858286016115fe565b9150509250929050565b60008060006060848603121561172c5761172b611cf1565b5b600061173a868287016115d4565b935050602061174b868287016115fe565b925050604061175c868287016115e9565b9150509250925092565b60006020828403121561177c5761177b611cf1565b5b600061178a848285016115fe565b91505092915050565b61179c81611bcf565b82525050565b6117ab81611be1565b82525050565b60006117bc82611b5d565b6117c68185611b68565b93506117d6818560208601611c2e565b6117df81611cf6565b840191505092915050565b60006117f7602383611b68565b915061180282611d07565b604082019050919050565b600061181a602283611b68565b915061182582611d56565b604082019050919050565b600061183d602283611b68565b915061184882611da5565b604082019050919050565b6000611860601d83611b68565b915061186b82611df4565b602082019050919050565b6000611883602683611b68565b915061188e82611e1d565b604082019050919050565b60006118a6602183611b68565b91506118b182611e6c565b604082019050919050565b60006118c9602583611b68565b91506118d482611ebb565b604082019050919050565b60006118ec602483611b68565b91506118f782611f0a565b604082019050919050565b600061190f602583611b68565b915061191a82611f59565b604082019050919050565b6000611932601f83611b68565b915061193d82611fa8565b602082019050919050565b61195181611c17565b82525050565b61196081611c21565b82525050565b600060208201905061197b6000830184611793565b92915050565b60006040820190506119966000830185611793565b6119a36020830184611793565b9392505050565b60006020820190506119bf60008301846117a2565b92915050565b600060208201905081810360008301526119df81846117b1565b905092915050565b60006020820190508181036000830152611a00816117ea565b9050919050565b60006020820190508181036000830152611a208161180d565b9050919050565b60006020820190508181036000830152611a4081611830565b9050919050565b60006020820190508181036000830152611a6081611853565b9050919050565b60006020820190508181036000830152611a8081611876565b9050919050565b60006020820190508181036000830152611aa081611899565b9050919050565b60006020820190508181036000830152611ac0816118bc565b9050919050565b60006020820190508181036000830152611ae0816118df565b9050919050565b60006020820190508181036000830152611b0081611902565b9050919050565b60006020820190508181036000830152611b2081611925565b9050919050565b6000602082019050611b3c6000830184611948565b92915050565b6000602082019050611b576000830184611957565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611b8482611c17565b9150611b8f83611c17565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611bc457611bc3611c93565b5b828201905092915050565b6000611bda82611bf7565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611c4c578082015181840152602081019050611c31565b83811115611c5b576000848401525b50505050565b60006002820490506001821680611c7957607f821691505b60208210811415611c8d57611c8c611cc2565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b611fda81611bcf565b8114611fe557600080fd5b50565b611ff181611bed565b8114611ffc57600080fd5b50565b61200881611c17565b811461201357600080fd5b5056fea2646970667358221220bd1393fae79c8d0bb84c13332f8c58d8b5424cb9fb90b304c7162b49e7360c6f64736f6c63430008070033"; + "0x60806040523480156200001157600080fd5b5060405162002423380380620024238339818101604052810190620000379190620002c8565b6040518060400160405280600481526020017f5a657461000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f5a455441000000000000000000000000000000000000000000000000000000008152508160039080519060200190620000bb92919062000201565b508060049080519060200190620000d492919062000201565b505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806200013f5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b1562000177576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050620003c7565b8280546200020f9062000343565b90600052602060002090601f0160209004810192826200023357600085556200027f565b82601f106200024e57805160ff19168380011785556200027f565b828001600101855582156200027f579182015b828111156200027e57825182559160200191906001019062000261565b5b5090506200028e919062000292565b5090565b5b80821115620002ad57600081600090555060010162000293565b5090565b600081519050620002c281620003ad565b92915050565b60008060408385031215620002e257620002e1620003a8565b5b6000620002f285828601620002b1565b92505060206200030585828601620002b1565b9150509250929050565b60006200031c8262000323565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600060028204905060018216806200035c57607f821691505b6020821081141562000373576200037262000379565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b620003b8816200030f565b8114620003c457600080fd5b50565b61204c80620003d76000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806342966c68116100ad57806395d89b411161007157806395d89b41146102f6578063a457c2d714610314578063a9059cbb14610344578063bff9662a14610374578063dd62ed3e1461039257610121565b806342966c68146102665780635b1125911461028257806370a08231146102a0578063779e3b63146102d057806379cc6790146102da57610121565b80631e458bee116100f45780631e458bee146101ae57806323b872dd146101ca578063313ce567146101fa578063328a01d014610218578063395093511461023657610121565b806306fdde0314610126578063095ea7b31461014457806315d57fd41461017457806318160ddd14610190575b600080fd5b61012e6103c2565b60405161013b91906119c5565b60405180910390f35b61015e600480360381019061015991906116d3565b610454565b60405161016b91906119aa565b60405180910390f35b61018e60048036038101906101899190611640565b610477565b005b6101986106fb565b6040516101a59190611b27565b60405180910390f35b6101c860048036038101906101c39190611713565b610705565b005b6101e460048036038101906101df9190611680565b6107f5565b6040516101f191906119aa565b60405180910390f35b610202610824565b60405161020f9190611b42565b60405180910390f35b61022061082d565b60405161022d9190611966565b60405180910390f35b610250600480360381019061024b91906116d3565b610853565b60405161025d91906119aa565b60405180910390f35b610280600480360381019061027b9190611766565b61088a565b005b61028a61089e565b6040516102979190611966565b60405180910390f35b6102ba60048036038101906102b59190611613565b6108c4565b6040516102c79190611b27565b60405180910390f35b6102d861090c565b005b6102f460048036038101906102ef91906116d3565b610ae7565b005b6102fe610bd5565b60405161030b91906119c5565b60405180910390f35b61032e600480360381019061032991906116d3565b610c67565b60405161033b91906119aa565b60405180910390f35b61035e600480360381019061035991906116d3565b610cde565b60405161036b91906119aa565b60405180910390f35b61037c610d01565b6040516103899190611966565b60405180910390f35b6103ac60048036038101906103a79190611640565b610d27565b6040516103b99190611b27565b60405180910390f35b6060600380546103d190611c61565b80601f01602080910402602001604051908101604052809291908181526020018280546103fd90611c61565b801561044a5780601f1061041f5761010080835404028352916020019161044a565b820191906000526020600020905b81548152906001019060200180831161042d57829003601f168201915b5050505050905090565b60008061045f610dae565b905061046c818585610db6565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156105235750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b1561056557336040517fcdfcef9700000000000000000000000000000000000000000000000000000000815260040161055c9190611966565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806105cc5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15610603576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fe79965b5c67dcfb2cf5fe152715e4a7256cee62a3d5dd8484fd8a8539eb8beff33836040516106b6929190611981565b60405180910390a17f1b9352454524a57a51f24f67dc66d898f616922cd1f7a12d73570ece12b1975c33826040516106ef929190611981565b60405180910390a15050565b6000600254905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461079757336040517f3fe32fba00000000000000000000000000000000000000000000000000000000815260040161078e9190611966565b60405180910390fd5b6107a18383610f81565b808373ffffffffffffffffffffffffffffffffffffffff167fc263b302aec62d29105026245f19e16f8e0137066ccd4a8bd941f716bd4096bb846040516107e89190611b27565b60405180910390a3505050565b600080610800610dae565b905061080d8582856110d8565b610818858585611164565b60019150509392505050565b60006012905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061085e610dae565b905061087f8185856108708589610d27565b61087a9190611b79565b610db6565b600191505092915050565b61089b610895610dae565b826113dc565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461099e57336040517fe700765e0000000000000000000000000000000000000000000000000000000081526004016109959190611966565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610a27576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f5104c9abdc7d111c2aeb4ce890ac70274a4be2ee83f46a62551be5e6ebc82dd033600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610add929190611981565b60405180910390a1565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b7957336040517f3fe32fba000000000000000000000000000000000000000000000000000000008152600401610b709190611966565b60405180910390fd5b610b8382826115aa565b8173ffffffffffffffffffffffffffffffffffffffff167f919f7e2092ffcc9d09f599be18d8152860b0c054df788a33bc549cdd9d0f15b182604051610bc99190611b27565b60405180910390a25050565b606060048054610be490611c61565b80601f0160208091040260200160405190810160405280929190818152602001828054610c1090611c61565b8015610c5d5780601f10610c3257610100808354040283529160200191610c5d565b820191906000526020600020905b815481529060010190602001808311610c4057829003601f168201915b5050505050905090565b600080610c72610dae565b90506000610c808286610d27565b905083811015610cc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbc90611ae7565b60405180910390fd5b610cd28286868403610db6565b60019250505092915050565b600080610ce9610dae565b9050610cf6818585611164565b600191505092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1d90611ac7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8d90611a27565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f749190611b27565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ff1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe890611b07565b60405180910390fd5b610ffd600083836115ca565b806002600082825461100f9190611b79565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516110c09190611b27565b60405180910390a36110d4600083836115cf565b5050565b60006110e48484610d27565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461115e5781811015611150576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114790611a47565b60405180910390fd5b61115d8484848403610db6565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156111d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cb90611aa7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123b906119e7565b60405180910390fd5b61124f8383836115ca565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156112d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cc90611a67565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113c39190611b27565b60405180910390a36113d68484846115cf565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561144c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144390611a87565b60405180910390fd5b611458826000836115ca565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156114de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d590611a07565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115919190611b27565b60405180910390a36115a5836000846115cf565b505050565b6115bc826115b6610dae565b836110d8565b6115c682826113dc565b5050565b505050565b505050565b6000813590506115e381611fd1565b92915050565b6000813590506115f881611fe8565b92915050565b60008135905061160d81611fff565b92915050565b60006020828403121561162957611628611cf1565b5b6000611637848285016115d4565b91505092915050565b6000806040838503121561165757611656611cf1565b5b6000611665858286016115d4565b9250506020611676858286016115d4565b9150509250929050565b60008060006060848603121561169957611698611cf1565b5b60006116a7868287016115d4565b93505060206116b8868287016115d4565b92505060406116c9868287016115fe565b9150509250925092565b600080604083850312156116ea576116e9611cf1565b5b60006116f8858286016115d4565b9250506020611709858286016115fe565b9150509250929050565b60008060006060848603121561172c5761172b611cf1565b5b600061173a868287016115d4565b935050602061174b868287016115fe565b925050604061175c868287016115e9565b9150509250925092565b60006020828403121561177c5761177b611cf1565b5b600061178a848285016115fe565b91505092915050565b61179c81611bcf565b82525050565b6117ab81611be1565b82525050565b60006117bc82611b5d565b6117c68185611b68565b93506117d6818560208601611c2e565b6117df81611cf6565b840191505092915050565b60006117f7602383611b68565b915061180282611d07565b604082019050919050565b600061181a602283611b68565b915061182582611d56565b604082019050919050565b600061183d602283611b68565b915061184882611da5565b604082019050919050565b6000611860601d83611b68565b915061186b82611df4565b602082019050919050565b6000611883602683611b68565b915061188e82611e1d565b604082019050919050565b60006118a6602183611b68565b91506118b182611e6c565b604082019050919050565b60006118c9602583611b68565b91506118d482611ebb565b604082019050919050565b60006118ec602483611b68565b91506118f782611f0a565b604082019050919050565b600061190f602583611b68565b915061191a82611f59565b604082019050919050565b6000611932601f83611b68565b915061193d82611fa8565b602082019050919050565b61195181611c17565b82525050565b61196081611c21565b82525050565b600060208201905061197b6000830184611793565b92915050565b60006040820190506119966000830185611793565b6119a36020830184611793565b9392505050565b60006020820190506119bf60008301846117a2565b92915050565b600060208201905081810360008301526119df81846117b1565b905092915050565b60006020820190508181036000830152611a00816117ea565b9050919050565b60006020820190508181036000830152611a208161180d565b9050919050565b60006020820190508181036000830152611a4081611830565b9050919050565b60006020820190508181036000830152611a6081611853565b9050919050565b60006020820190508181036000830152611a8081611876565b9050919050565b60006020820190508181036000830152611aa081611899565b9050919050565b60006020820190508181036000830152611ac0816118bc565b9050919050565b60006020820190508181036000830152611ae0816118df565b9050919050565b60006020820190508181036000830152611b0081611902565b9050919050565b60006020820190508181036000830152611b2081611925565b9050919050565b6000602082019050611b3c6000830184611948565b92915050565b6000602082019050611b576000830184611957565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611b8482611c17565b9150611b8f83611c17565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611bc457611bc3611c93565b5b828201905092915050565b6000611bda82611bf7565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611c4c578082015181840152602081019050611c31565b83811115611c5b576000848401525b50505050565b60006002820490506001821680611c7957607f821691505b60208210811415611c8d57611c8c611cc2565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b611fda81611bcf565b8114611fe557600080fd5b50565b611ff181611bed565b8114611ffc57600080fd5b50565b61200881611c17565b811461201357600080fd5b5056fea26469706673582212206bc837ff0828037cc8d7dacf17706538b4deb5a80c03f8e056ef18bae1a6288064736f6c63430008070033"; type ZetaNonEthConstructorParams = | [signer?: Signer] diff --git a/typechain-types/factories/contracts/evm/Zeta.non-eth.sol/index.ts b/v1/typechain-types/factories/contracts/evm/Zeta.non-eth.sol/index.ts similarity index 100% rename from typechain-types/factories/contracts/evm/Zeta.non-eth.sol/index.ts rename to v1/typechain-types/factories/contracts/evm/Zeta.non-eth.sol/index.ts diff --git a/typechain-types/factories/contracts/evm/ZetaConnector.base.sol/ZetaConnectorBase__factory.ts b/v1/typechain-types/factories/contracts/evm/ZetaConnector.base.sol/ZetaConnectorBase__factory.ts similarity index 99% rename from typechain-types/factories/contracts/evm/ZetaConnector.base.sol/ZetaConnectorBase__factory.ts rename to v1/typechain-types/factories/contracts/evm/ZetaConnector.base.sol/ZetaConnectorBase__factory.ts index 19a3a48d..0c1e19ab 100644 --- a/typechain-types/factories/contracts/evm/ZetaConnector.base.sol/ZetaConnectorBase__factory.ts +++ b/v1/typechain-types/factories/contracts/evm/ZetaConnector.base.sol/ZetaConnectorBase__factory.ts @@ -572,7 +572,7 @@ const _abi = [ ] as const; const _bytecode = - "0x60a06040523480156200001157600080fd5b506040516200131e3803806200131e83398181016040528101906200003791906200027c565b60008060006101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480620000b95750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80620000f15750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80620001295750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b1562000161576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b8152505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505062000341565b600081519050620002768162000327565b92915050565b6000806000806080858703121562000299576200029862000322565b5b6000620002a98782880162000265565b9450506020620002bc8782880162000265565b9350506040620002cf8782880162000265565b9250506060620002e28782880162000265565b91505092959194509250565b6000620002fb8262000302565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6200033281620002ee565b81146200033e57600080fd5b50565b60805160601c610fbe6200036060003960006102160152610fbe6000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636128480f1161008c5780639122c344116100665780639122c344146101a2578063942a5e16146101be578063ec026901146101da578063f7fb869b146101f6576100cf565b80636128480f14610172578063779e3b631461018e5780638456cb5914610198576100cf565b806321e093b1146100d457806329dd214d146100f2578063328a01d01461010e5780633f4ba83a1461012c5780635b112591146101365780635c975abb14610154575b600080fd5b6100dc610214565b6040516100e99190610dd1565b60405180910390f35b61010c60048036038101906101079190610c55565b610238565b005b610116610242565b6040516101239190610dd1565b60405180910390f35b610134610268565b005b61013e610304565b60405161014b9190610dd1565b60405180910390f35b61015c61032a565b6040516101699190610e15565b60405180910390f35b61018c60048036038101906101879190610b46565b610340565b005b6101966104b6565b005b6101a0610691565b005b6101bc60048036038101906101b79190610b46565b61072d565b005b6101d860048036038101906101d39190610b73565b6108ff565b005b6101f460048036038101906101ef9190610d24565b61090a565b005b6101fe61090d565b60405161020b9190610dd1565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b5050505050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102fa57336040517f4677a0d30000000000000000000000000000000000000000000000000000000081526004016102f19190610dd1565b60405180910390fd5b610302610933565b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900460ff16905090565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103d257336040517f4677a0d30000000000000000000000000000000000000000000000000000000081526004016103c99190610dd1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610439576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd41d83655d484bdf299598751c371b2d92088667266fe3774b25a97bdd5d039733826040516104ab929190610dec565b60405180910390a150565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461054857336040517fe700765e00000000000000000000000000000000000000000000000000000000815260040161053f9190610dd1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156105d1576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f5104c9abdc7d111c2aeb4ce890ac70274a4be2ee83f46a62551be5e6ebc82dd033600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610687929190610dec565b60405180910390a1565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461072357336040517f4677a0d300000000000000000000000000000000000000000000000000000000815260040161071a9190610dd1565b60405180910390fd5b61072b610995565b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156107d95750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b1561081b57336040517fcdfcef970000000000000000000000000000000000000000000000000000000081526004016108129190610dd1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610882576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fe79965b5c67dcfb2cf5fe152715e4a7256cee62a3d5dd8484fd8a8539eb8beff33826040516108f4929190610dec565b60405180910390a150565b505050505050505050565b50565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61093b6109f7565b60008060006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61097e610a40565b60405161098b9190610dd1565b60405180910390a1565b61099d610a48565b60016000806101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586109e0610a40565b6040516109ed9190610dd1565b60405180910390a1565b6109ff61032a565b610a3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3590610e30565b60405180910390fd5b565b600033905090565b610a5061032a565b15610a90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8790610e50565b60405180910390fd5b565b600081359050610aa181610f43565b92915050565b600081359050610ab681610f5a565b92915050565b60008083601f840112610ad257610ad1610ed8565b5b8235905067ffffffffffffffff811115610aef57610aee610ed3565b5b602083019150836001820283011115610b0b57610b0a610ee2565b5b9250929050565b600060c08284031215610b2857610b27610edd565b5b81905092915050565b600081359050610b4081610f71565b92915050565b600060208284031215610b5c57610b5b610eec565b5b6000610b6a84828501610a92565b91505092915050565b600080600080600080600080600060e08a8c031215610b9557610b94610eec565b5b6000610ba38c828d01610a92565b9950506020610bb48c828d01610b31565b98505060408a013567ffffffffffffffff811115610bd557610bd4610ee7565b5b610be18c828d01610abc565b97509750506060610bf48c828d01610b31565b9550506080610c058c828d01610b31565b94505060a08a013567ffffffffffffffff811115610c2657610c25610ee7565b5b610c328c828d01610abc565b935093505060c0610c458c828d01610aa7565b9150509295985092959850929598565b60008060008060008060008060c0898b031215610c7557610c74610eec565b5b600089013567ffffffffffffffff811115610c9357610c92610ee7565b5b610c9f8b828c01610abc565b98509850506020610cb28b828c01610b31565b9650506040610cc38b828c01610a92565b9550506060610cd48b828c01610b31565b945050608089013567ffffffffffffffff811115610cf557610cf4610ee7565b5b610d018b828c01610abc565b935093505060a0610d148b828c01610aa7565b9150509295985092959890939650565b600060208284031215610d3a57610d39610eec565b5b600082013567ffffffffffffffff811115610d5857610d57610ee7565b5b610d6484828501610b12565b91505092915050565b610d7681610e81565b82525050565b610d8581610e93565b82525050565b6000610d98601483610e70565b9150610da382610ef1565b602082019050919050565b6000610dbb601083610e70565b9150610dc682610f1a565b602082019050919050565b6000602082019050610de66000830184610d6d565b92915050565b6000604082019050610e016000830185610d6d565b610e0e6020830184610d6d565b9392505050565b6000602082019050610e2a6000830184610d7c565b92915050565b60006020820190508181036000830152610e4981610d8b565b9050919050565b60006020820190508181036000830152610e6981610dae565b9050919050565b600082825260208201905092915050565b6000610e8c82610ea9565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b610f4c81610e81565b8114610f5757600080fd5b50565b610f6381610e9f565b8114610f6e57600080fd5b50565b610f7a81610ec9565b8114610f8557600080fd5b5056fea26469706673582212208fd8c8de0fa8c6d7ce42d081250a53e2ae3a7e5119c9670a0fb1d03e1c81c2c264736f6c63430008070033"; + "0x60a06040523480156200001157600080fd5b506040516200131e3803806200131e83398181016040528101906200003791906200027c565b60008060006101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480620000b95750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80620000f15750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80620001295750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b1562000161576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b8152505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505062000341565b600081519050620002768162000327565b92915050565b6000806000806080858703121562000299576200029862000322565b5b6000620002a98782880162000265565b9450506020620002bc8782880162000265565b9350506040620002cf8782880162000265565b9250506060620002e28782880162000265565b91505092959194509250565b6000620002fb8262000302565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6200033281620002ee565b81146200033e57600080fd5b50565b60805160601c610fbe6200036060003960006102160152610fbe6000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636128480f1161008c5780639122c344116100665780639122c344146101a2578063942a5e16146101be578063ec026901146101da578063f7fb869b146101f6576100cf565b80636128480f14610172578063779e3b631461018e5780638456cb5914610198576100cf565b806321e093b1146100d457806329dd214d146100f2578063328a01d01461010e5780633f4ba83a1461012c5780635b112591146101365780635c975abb14610154575b600080fd5b6100dc610214565b6040516100e99190610dd1565b60405180910390f35b61010c60048036038101906101079190610c55565b610238565b005b610116610242565b6040516101239190610dd1565b60405180910390f35b610134610268565b005b61013e610304565b60405161014b9190610dd1565b60405180910390f35b61015c61032a565b6040516101699190610e15565b60405180910390f35b61018c60048036038101906101879190610b46565b610340565b005b6101966104b6565b005b6101a0610691565b005b6101bc60048036038101906101b79190610b46565b61072d565b005b6101d860048036038101906101d39190610b73565b6108ff565b005b6101f460048036038101906101ef9190610d24565b61090a565b005b6101fe61090d565b60405161020b9190610dd1565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b5050505050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102fa57336040517f4677a0d30000000000000000000000000000000000000000000000000000000081526004016102f19190610dd1565b60405180910390fd5b610302610933565b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900460ff16905090565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103d257336040517f4677a0d30000000000000000000000000000000000000000000000000000000081526004016103c99190610dd1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610439576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd41d83655d484bdf299598751c371b2d92088667266fe3774b25a97bdd5d039733826040516104ab929190610dec565b60405180910390a150565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461054857336040517fe700765e00000000000000000000000000000000000000000000000000000000815260040161053f9190610dd1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156105d1576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f5104c9abdc7d111c2aeb4ce890ac70274a4be2ee83f46a62551be5e6ebc82dd033600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610687929190610dec565b60405180910390a1565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461072357336040517f4677a0d300000000000000000000000000000000000000000000000000000000815260040161071a9190610dd1565b60405180910390fd5b61072b610995565b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156107d95750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b1561081b57336040517fcdfcef970000000000000000000000000000000000000000000000000000000081526004016108129190610dd1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610882576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fe79965b5c67dcfb2cf5fe152715e4a7256cee62a3d5dd8484fd8a8539eb8beff33826040516108f4929190610dec565b60405180910390a150565b505050505050505050565b50565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61093b6109f7565b60008060006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61097e610a40565b60405161098b9190610dd1565b60405180910390a1565b61099d610a48565b60016000806101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586109e0610a40565b6040516109ed9190610dd1565b60405180910390a1565b6109ff61032a565b610a3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3590610e30565b60405180910390fd5b565b600033905090565b610a5061032a565b15610a90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8790610e50565b60405180910390fd5b565b600081359050610aa181610f43565b92915050565b600081359050610ab681610f5a565b92915050565b60008083601f840112610ad257610ad1610ed8565b5b8235905067ffffffffffffffff811115610aef57610aee610ed3565b5b602083019150836001820283011115610b0b57610b0a610ee2565b5b9250929050565b600060c08284031215610b2857610b27610edd565b5b81905092915050565b600081359050610b4081610f71565b92915050565b600060208284031215610b5c57610b5b610eec565b5b6000610b6a84828501610a92565b91505092915050565b600080600080600080600080600060e08a8c031215610b9557610b94610eec565b5b6000610ba38c828d01610a92565b9950506020610bb48c828d01610b31565b98505060408a013567ffffffffffffffff811115610bd557610bd4610ee7565b5b610be18c828d01610abc565b97509750506060610bf48c828d01610b31565b9550506080610c058c828d01610b31565b94505060a08a013567ffffffffffffffff811115610c2657610c25610ee7565b5b610c328c828d01610abc565b935093505060c0610c458c828d01610aa7565b9150509295985092959850929598565b60008060008060008060008060c0898b031215610c7557610c74610eec565b5b600089013567ffffffffffffffff811115610c9357610c92610ee7565b5b610c9f8b828c01610abc565b98509850506020610cb28b828c01610b31565b9650506040610cc38b828c01610a92565b9550506060610cd48b828c01610b31565b945050608089013567ffffffffffffffff811115610cf557610cf4610ee7565b5b610d018b828c01610abc565b935093505060a0610d148b828c01610aa7565b9150509295985092959890939650565b600060208284031215610d3a57610d39610eec565b5b600082013567ffffffffffffffff811115610d5857610d57610ee7565b5b610d6484828501610b12565b91505092915050565b610d7681610e81565b82525050565b610d8581610e93565b82525050565b6000610d98601483610e70565b9150610da382610ef1565b602082019050919050565b6000610dbb601083610e70565b9150610dc682610f1a565b602082019050919050565b6000602082019050610de66000830184610d6d565b92915050565b6000604082019050610e016000830185610d6d565b610e0e6020830184610d6d565b9392505050565b6000602082019050610e2a6000830184610d7c565b92915050565b60006020820190508181036000830152610e4981610d8b565b9050919050565b60006020820190508181036000830152610e6981610dae565b9050919050565b600082825260208201905092915050565b6000610e8c82610ea9565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b610f4c81610e81565b8114610f5757600080fd5b50565b610f6381610e9f565b8114610f6e57600080fd5b50565b610f7a81610ec9565b8114610f8557600080fd5b5056fea2646970667358221220581b268b8dbd8d9f5c8f5e7e4d7ee7235e116fc6882d1ce0eb037e226f63b48064736f6c63430008070033"; type ZetaConnectorBaseConstructorParams = | [signer?: Signer] diff --git a/typechain-types/factories/contracts/evm/ZetaConnector.base.sol/index.ts b/v1/typechain-types/factories/contracts/evm/ZetaConnector.base.sol/index.ts similarity index 100% rename from typechain-types/factories/contracts/evm/ZetaConnector.base.sol/index.ts rename to v1/typechain-types/factories/contracts/evm/ZetaConnector.base.sol/index.ts diff --git a/typechain-types/factories/contracts/evm/ZetaConnector.eth.sol/ZetaConnectorEth__factory.ts b/v1/typechain-types/factories/contracts/evm/ZetaConnector.eth.sol/ZetaConnectorEth__factory.ts similarity index 99% rename from typechain-types/factories/contracts/evm/ZetaConnector.eth.sol/ZetaConnectorEth__factory.ts rename to v1/typechain-types/factories/contracts/evm/ZetaConnector.eth.sol/ZetaConnectorEth__factory.ts index 2142fb42..e2292421 100644 --- a/typechain-types/factories/contracts/evm/ZetaConnector.eth.sol/ZetaConnectorEth__factory.ts +++ b/v1/typechain-types/factories/contracts/evm/ZetaConnector.eth.sol/ZetaConnectorEth__factory.ts @@ -585,7 +585,7 @@ const _abi = [ ] as const; const _bytecode = - "0x60a06040523480156200001157600080fd5b50604051620020e6380380620020e6833981810160405281019062000037919062000284565b8383838360008060006101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480620000bd5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80620000f55750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806200012d5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b1562000165576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b8152505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050505062000349565b6000815190506200027e816200032f565b92915050565b60008060008060808587031215620002a157620002a06200032a565b5b6000620002b1878288016200026d565b9450506020620002c4878288016200026d565b9350506040620002d7878288016200026d565b9250506060620002ea878288016200026d565b91505092959194509250565b600062000303826200030a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6200033a81620002f6565b81146200034657600080fd5b50565b60805160601c611d62620003846000396000818161024f01528181610275015281816103b701528181610d9501526110180152611d626000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80636128480f1161008c5780639122c344116100665780639122c344146101db578063942a5e16146101f7578063ec02690114610213578063f7fb869b1461022f576100ea565b80636128480f146101ab578063779e3b63146101c75780638456cb59146101d1576100ea565b8063328a01d0116100c8578063328a01d0146101475780633f4ba83a146101655780635b1125911461016f5780635c975abb1461018d576100ea565b806321e093b1146100ef578063252bc8861461010d57806329dd214d1461012b575b600080fd5b6100f761024d565b6040516101049190611883565b60405180910390f35b610115610271565b6040516101229190611af0565b60405180910390f35b6101456004803603810190610140919061153a565b610321565b005b61014f61063a565b60405161015c9190611883565b60405180910390f35b61016d610660565b005b6101776106fc565b6040516101849190611883565b60405180910390f35b610195610722565b6040516101a29190611a08565b60405180910390f35b6101c560048036038101906101c091906113fe565b610738565b005b6101cf6108ae565b005b6101d9610a89565b005b6101f560048036038101906101f091906113fe565b610b25565b005b610211600480360381019061020c919061142b565b610cf7565b005b61022d60048036038101906102289190611609565b61100c565b005b61023761119b565b6040516102449190611883565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016102cc9190611883565b60206040518083038186803b1580156102e457600080fd5b505afa1580156102f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031c9190611652565b905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103b357336040517fff70ace20000000000000000000000000000000000000000000000000000000081526004016103aa9190611883565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87876040518363ffffffff1660e01b815260040161041092919061197a565b602060405180830381600087803b15801561042a57600080fd5b505af115801561043e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610462919061150d565b90508061049b576040517f20878f6200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008484905011156105d7578573ffffffffffffffffffffffffffffffffffffffff16633749c51a6040518060a001604052808c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505081526020018a81526020018973ffffffffffffffffffffffffffffffffffffffff16815260200188815260200187878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508152506040518263ffffffff1660e01b81526004016105a49190611aac565b600060405180830381600087803b1580156105be57600080fd5b505af11580156105d2573d6000803e3d6000fd5b505050505b818673ffffffffffffffffffffffffffffffffffffffff16887ff1302855733b40d8acb467ee990b6d56c05c80e28ebcabfa6e6f3f57cb50d6988c8c8a8a8a604051610627959493929190611a23565b60405180910390a4505050505050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106f257336040517f4677a0d30000000000000000000000000000000000000000000000000000000081526004016106e99190611883565b60405180910390fd5b6106fa6111c1565b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900460ff16905090565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107ca57336040517f4677a0d30000000000000000000000000000000000000000000000000000000081526004016107c19190611883565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610831576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd41d83655d484bdf299598751c371b2d92088667266fe3774b25a97bdd5d039733826040516108a392919061189e565b60405180910390a150565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461094057336040517fe700765e0000000000000000000000000000000000000000000000000000000081526004016109379190611883565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156109c9576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f5104c9abdc7d111c2aeb4ce890ac70274a4be2ee83f46a62551be5e6ebc82dd033600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610a7f92919061189e565b60405180910390a1565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b1b57336040517f4677a0d3000000000000000000000000000000000000000000000000000000008152600401610b129190611883565b60405180910390fd5b610b23611223565b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610bd15750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15610c1357336040517fcdfcef97000000000000000000000000000000000000000000000000000000008152600401610c0a9190611883565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c7a576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fe79965b5c67dcfb2cf5fe152715e4a7256cee62a3d5dd8484fd8a8539eb8beff3382604051610cec92919061189e565b60405180910390a150565b610cff611285565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d9157336040517fff70ace2000000000000000000000000000000000000000000000000000000008152600401610d889190611883565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8b876040518363ffffffff1660e01b8152600401610dee92919061197a565b602060405180830381600087803b158015610e0857600080fd5b505af1158015610e1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e40919061150d565b905080610e79576040517f20878f6200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000848490501115610fbb578973ffffffffffffffffffffffffffffffffffffffff16633ff0693c6040518060c001604052808d73ffffffffffffffffffffffffffffffffffffffff1681526020018c81526020018b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050815260200189815260200188815260200187878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508152506040518263ffffffff1660e01b8152600401610f889190611ace565b600060405180830381600087803b158015610fa257600080fd5b505af1158015610fb6573d6000803e3d6000fd5b505050505b81867f521fb0b407c2eb9b1375530e9b9a569889992140a688bc076aa72c1712012c888c8c8c8c8b8b8b604051610ff897969594939291906119a3565b60405180910390a350505050505050505050565b611014611285565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd333085608001356040518463ffffffff1660e01b8152600401611077939291906118c7565b602060405180830381600087803b15801561109157600080fd5b505af11580156110a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c9919061150d565b905080611102576040517f20878f6200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600001353373ffffffffffffffffffffffffffffffffffffffff167f7ec1c94701e09b1652f3e1d307e60c4b9ebf99aff8c2079fd1d8c585e031c4e4328580602001906111509190611b0b565b8760800135886040013589806060019061116a9190611b0b565b8b8060a0019061117a9190611b0b565b60405161118f999897969594939291906118fe565b60405180910390a35050565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111c96112cf565b60008060006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61120c611318565b6040516112199190611883565b60405180910390a1565b61122b611285565b60016000806101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861126e611318565b60405161127b9190611883565b60405180910390a1565b61128d610722565b156112cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c490611a8c565b60405180910390fd5b565b6112d7610722565b611316576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130d90611a6c565b60405180910390fd5b565b600033905090565b60008135905061132f81611cd0565b92915050565b60008151905061134481611ce7565b92915050565b60008135905061135981611cfe565b92915050565b60008083601f84011261137557611374611c45565b5b8235905067ffffffffffffffff81111561139257611391611c40565b5b6020830191508360018202830111156113ae576113ad611c59565b5b9250929050565b600060c082840312156113cb576113ca611c4f565b5b81905092915050565b6000813590506113e381611d15565b92915050565b6000815190506113f881611d15565b92915050565b60006020828403121561141457611413611c68565b5b600061142284828501611320565b91505092915050565b600080600080600080600080600060e08a8c03121561144d5761144c611c68565b5b600061145b8c828d01611320565b995050602061146c8c828d016113d4565b98505060408a013567ffffffffffffffff81111561148d5761148c611c63565b5b6114998c828d0161135f565b975097505060606114ac8c828d016113d4565b95505060806114bd8c828d016113d4565b94505060a08a013567ffffffffffffffff8111156114de576114dd611c63565b5b6114ea8c828d0161135f565b935093505060c06114fd8c828d0161134a565b9150509295985092959850929598565b60006020828403121561152357611522611c68565b5b600061153184828501611335565b91505092915050565b60008060008060008060008060c0898b03121561155a57611559611c68565b5b600089013567ffffffffffffffff81111561157857611577611c63565b5b6115848b828c0161135f565b985098505060206115978b828c016113d4565b96505060406115a88b828c01611320565b95505060606115b98b828c016113d4565b945050608089013567ffffffffffffffff8111156115da576115d9611c63565b5b6115e68b828c0161135f565b935093505060a06115f98b828c0161134a565b9150509295985092959890939650565b60006020828403121561161f5761161e611c68565b5b600082013567ffffffffffffffff81111561163d5761163c611c63565b5b611649848285016113b5565b91505092915050565b60006020828403121561166857611667611c68565b5b6000611676848285016113e9565b91505092915050565b61168881611bac565b82525050565b61169781611bac565b82525050565b6116a681611bbe565b82525050565b60006116b88385611b8a565b93506116c5838584611bfe565b6116ce83611c6d565b840190509392505050565b60006116e482611b6e565b6116ee8185611b79565b93506116fe818560208601611c0d565b61170781611c6d565b840191505092915050565b600061171f601483611b9b565b915061172a82611c7e565b602082019050919050565b6000611742601083611b9b565b915061174d82611ca7565b602082019050919050565b600060a083016000830151848203600086015261177582826116d9565b915050602083015161178a6020860182611865565b50604083015161179d604086018261167f565b5060608301516117b06060860182611865565b50608083015184820360808601526117c882826116d9565b9150508091505092915050565b600060c0830160008301516117ed600086018261167f565b5060208301516118006020860182611865565b506040830151848203604086015261181882826116d9565b915050606083015161182d6060860182611865565b5060808301516118406080860182611865565b5060a083015184820360a086015261185882826116d9565b9150508091505092915050565b61186e81611bf4565b82525050565b61187d81611bf4565b82525050565b6000602082019050611898600083018461168e565b92915050565b60006040820190506118b3600083018561168e565b6118c0602083018461168e565b9392505050565b60006060820190506118dc600083018661168e565b6118e9602083018561168e565b6118f66040830184611874565b949350505050565b600060c082019050611913600083018c61168e565b8181036020830152611926818a8c6116ac565b90506119356040830189611874565b6119426060830188611874565b81810360808301526119558186886116ac565b905081810360a083015261196a8184866116ac565b90509a9950505050505050505050565b600060408201905061198f600083018561168e565b61199c6020830184611874565b9392505050565b600060a0820190506119b8600083018a61168e565b6119c56020830189611874565b81810360408301526119d88187896116ac565b90506119e76060830186611874565b81810360808301526119fa8184866116ac565b905098975050505050505050565b6000602082019050611a1d600083018461169d565b92915050565b60006060820190508181036000830152611a3e8187896116ac565b9050611a4d6020830186611874565b8181036040830152611a608184866116ac565b90509695505050505050565b60006020820190508181036000830152611a8581611712565b9050919050565b60006020820190508181036000830152611aa581611735565b9050919050565b60006020820190508181036000830152611ac68184611758565b905092915050565b60006020820190508181036000830152611ae881846117d5565b905092915050565b6000602082019050611b056000830184611874565b92915050565b60008083356001602003843603038112611b2857611b27611c54565b5b80840192508235915067ffffffffffffffff821115611b4a57611b49611c4a565b5b602083019250600182023603831315611b6657611b65611c5e565b5b509250929050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000611bb782611bd4565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015611c2b578082015181840152602081019050611c10565b83811115611c3a576000848401525b50505050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b611cd981611bac565b8114611ce457600080fd5b50565b611cf081611bbe565b8114611cfb57600080fd5b50565b611d0781611bca565b8114611d1257600080fd5b50565b611d1e81611bf4565b8114611d2957600080fd5b5056fea2646970667358221220c386ec06beb54bf2f1fa9d6ebdcbce1a2c994b9dc5c90038fe0d0a4b8174e1ea64736f6c63430008070033"; + "0x60a06040523480156200001157600080fd5b50604051620020e6380380620020e6833981810160405281019062000037919062000284565b8383838360008060006101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480620000bd5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80620000f55750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806200012d5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b1562000165576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b8152505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050505062000349565b6000815190506200027e816200032f565b92915050565b60008060008060808587031215620002a157620002a06200032a565b5b6000620002b1878288016200026d565b9450506020620002c4878288016200026d565b9350506040620002d7878288016200026d565b9250506060620002ea878288016200026d565b91505092959194509250565b600062000303826200030a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6200033a81620002f6565b81146200034657600080fd5b50565b60805160601c611d62620003846000396000818161024f01528181610275015281816103b701528181610d9501526110180152611d626000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80636128480f1161008c5780639122c344116100665780639122c344146101db578063942a5e16146101f7578063ec02690114610213578063f7fb869b1461022f576100ea565b80636128480f146101ab578063779e3b63146101c75780638456cb59146101d1576100ea565b8063328a01d0116100c8578063328a01d0146101475780633f4ba83a146101655780635b1125911461016f5780635c975abb1461018d576100ea565b806321e093b1146100ef578063252bc8861461010d57806329dd214d1461012b575b600080fd5b6100f761024d565b6040516101049190611883565b60405180910390f35b610115610271565b6040516101229190611af0565b60405180910390f35b6101456004803603810190610140919061153a565b610321565b005b61014f61063a565b60405161015c9190611883565b60405180910390f35b61016d610660565b005b6101776106fc565b6040516101849190611883565b60405180910390f35b610195610722565b6040516101a29190611a08565b60405180910390f35b6101c560048036038101906101c091906113fe565b610738565b005b6101cf6108ae565b005b6101d9610a89565b005b6101f560048036038101906101f091906113fe565b610b25565b005b610211600480360381019061020c919061142b565b610cf7565b005b61022d60048036038101906102289190611609565b61100c565b005b61023761119b565b6040516102449190611883565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016102cc9190611883565b60206040518083038186803b1580156102e457600080fd5b505afa1580156102f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031c9190611652565b905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103b357336040517fff70ace20000000000000000000000000000000000000000000000000000000081526004016103aa9190611883565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87876040518363ffffffff1660e01b815260040161041092919061197a565b602060405180830381600087803b15801561042a57600080fd5b505af115801561043e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610462919061150d565b90508061049b576040517f20878f6200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008484905011156105d7578573ffffffffffffffffffffffffffffffffffffffff16633749c51a6040518060a001604052808c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505081526020018a81526020018973ffffffffffffffffffffffffffffffffffffffff16815260200188815260200187878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508152506040518263ffffffff1660e01b81526004016105a49190611aac565b600060405180830381600087803b1580156105be57600080fd5b505af11580156105d2573d6000803e3d6000fd5b505050505b818673ffffffffffffffffffffffffffffffffffffffff16887ff1302855733b40d8acb467ee990b6d56c05c80e28ebcabfa6e6f3f57cb50d6988c8c8a8a8a604051610627959493929190611a23565b60405180910390a4505050505050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106f257336040517f4677a0d30000000000000000000000000000000000000000000000000000000081526004016106e99190611883565b60405180910390fd5b6106fa6111c1565b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900460ff16905090565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107ca57336040517f4677a0d30000000000000000000000000000000000000000000000000000000081526004016107c19190611883565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610831576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd41d83655d484bdf299598751c371b2d92088667266fe3774b25a97bdd5d039733826040516108a392919061189e565b60405180910390a150565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461094057336040517fe700765e0000000000000000000000000000000000000000000000000000000081526004016109379190611883565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156109c9576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f5104c9abdc7d111c2aeb4ce890ac70274a4be2ee83f46a62551be5e6ebc82dd033600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610a7f92919061189e565b60405180910390a1565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b1b57336040517f4677a0d3000000000000000000000000000000000000000000000000000000008152600401610b129190611883565b60405180910390fd5b610b23611223565b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610bd15750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15610c1357336040517fcdfcef97000000000000000000000000000000000000000000000000000000008152600401610c0a9190611883565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c7a576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fe79965b5c67dcfb2cf5fe152715e4a7256cee62a3d5dd8484fd8a8539eb8beff3382604051610cec92919061189e565b60405180910390a150565b610cff611285565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d9157336040517fff70ace2000000000000000000000000000000000000000000000000000000008152600401610d889190611883565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8b876040518363ffffffff1660e01b8152600401610dee92919061197a565b602060405180830381600087803b158015610e0857600080fd5b505af1158015610e1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e40919061150d565b905080610e79576040517f20878f6200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000848490501115610fbb578973ffffffffffffffffffffffffffffffffffffffff16633ff0693c6040518060c001604052808d73ffffffffffffffffffffffffffffffffffffffff1681526020018c81526020018b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050815260200189815260200188815260200187878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508152506040518263ffffffff1660e01b8152600401610f889190611ace565b600060405180830381600087803b158015610fa257600080fd5b505af1158015610fb6573d6000803e3d6000fd5b505050505b81867f521fb0b407c2eb9b1375530e9b9a569889992140a688bc076aa72c1712012c888c8c8c8c8b8b8b604051610ff897969594939291906119a3565b60405180910390a350505050505050505050565b611014611285565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd333085608001356040518463ffffffff1660e01b8152600401611077939291906118c7565b602060405180830381600087803b15801561109157600080fd5b505af11580156110a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c9919061150d565b905080611102576040517f20878f6200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600001353373ffffffffffffffffffffffffffffffffffffffff167f7ec1c94701e09b1652f3e1d307e60c4b9ebf99aff8c2079fd1d8c585e031c4e4328580602001906111509190611b0b565b8760800135886040013589806060019061116a9190611b0b565b8b8060a0019061117a9190611b0b565b60405161118f999897969594939291906118fe565b60405180910390a35050565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111c96112cf565b60008060006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61120c611318565b6040516112199190611883565b60405180910390a1565b61122b611285565b60016000806101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861126e611318565b60405161127b9190611883565b60405180910390a1565b61128d610722565b156112cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c490611a8c565b60405180910390fd5b565b6112d7610722565b611316576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130d90611a6c565b60405180910390fd5b565b600033905090565b60008135905061132f81611cd0565b92915050565b60008151905061134481611ce7565b92915050565b60008135905061135981611cfe565b92915050565b60008083601f84011261137557611374611c45565b5b8235905067ffffffffffffffff81111561139257611391611c40565b5b6020830191508360018202830111156113ae576113ad611c59565b5b9250929050565b600060c082840312156113cb576113ca611c4f565b5b81905092915050565b6000813590506113e381611d15565b92915050565b6000815190506113f881611d15565b92915050565b60006020828403121561141457611413611c68565b5b600061142284828501611320565b91505092915050565b600080600080600080600080600060e08a8c03121561144d5761144c611c68565b5b600061145b8c828d01611320565b995050602061146c8c828d016113d4565b98505060408a013567ffffffffffffffff81111561148d5761148c611c63565b5b6114998c828d0161135f565b975097505060606114ac8c828d016113d4565b95505060806114bd8c828d016113d4565b94505060a08a013567ffffffffffffffff8111156114de576114dd611c63565b5b6114ea8c828d0161135f565b935093505060c06114fd8c828d0161134a565b9150509295985092959850929598565b60006020828403121561152357611522611c68565b5b600061153184828501611335565b91505092915050565b60008060008060008060008060c0898b03121561155a57611559611c68565b5b600089013567ffffffffffffffff81111561157857611577611c63565b5b6115848b828c0161135f565b985098505060206115978b828c016113d4565b96505060406115a88b828c01611320565b95505060606115b98b828c016113d4565b945050608089013567ffffffffffffffff8111156115da576115d9611c63565b5b6115e68b828c0161135f565b935093505060a06115f98b828c0161134a565b9150509295985092959890939650565b60006020828403121561161f5761161e611c68565b5b600082013567ffffffffffffffff81111561163d5761163c611c63565b5b611649848285016113b5565b91505092915050565b60006020828403121561166857611667611c68565b5b6000611676848285016113e9565b91505092915050565b61168881611bac565b82525050565b61169781611bac565b82525050565b6116a681611bbe565b82525050565b60006116b88385611b8a565b93506116c5838584611bfe565b6116ce83611c6d565b840190509392505050565b60006116e482611b6e565b6116ee8185611b79565b93506116fe818560208601611c0d565b61170781611c6d565b840191505092915050565b600061171f601483611b9b565b915061172a82611c7e565b602082019050919050565b6000611742601083611b9b565b915061174d82611ca7565b602082019050919050565b600060a083016000830151848203600086015261177582826116d9565b915050602083015161178a6020860182611865565b50604083015161179d604086018261167f565b5060608301516117b06060860182611865565b50608083015184820360808601526117c882826116d9565b9150508091505092915050565b600060c0830160008301516117ed600086018261167f565b5060208301516118006020860182611865565b506040830151848203604086015261181882826116d9565b915050606083015161182d6060860182611865565b5060808301516118406080860182611865565b5060a083015184820360a086015261185882826116d9565b9150508091505092915050565b61186e81611bf4565b82525050565b61187d81611bf4565b82525050565b6000602082019050611898600083018461168e565b92915050565b60006040820190506118b3600083018561168e565b6118c0602083018461168e565b9392505050565b60006060820190506118dc600083018661168e565b6118e9602083018561168e565b6118f66040830184611874565b949350505050565b600060c082019050611913600083018c61168e565b8181036020830152611926818a8c6116ac565b90506119356040830189611874565b6119426060830188611874565b81810360808301526119558186886116ac565b905081810360a083015261196a8184866116ac565b90509a9950505050505050505050565b600060408201905061198f600083018561168e565b61199c6020830184611874565b9392505050565b600060a0820190506119b8600083018a61168e565b6119c56020830189611874565b81810360408301526119d88187896116ac565b90506119e76060830186611874565b81810360808301526119fa8184866116ac565b905098975050505050505050565b6000602082019050611a1d600083018461169d565b92915050565b60006060820190508181036000830152611a3e8187896116ac565b9050611a4d6020830186611874565b8181036040830152611a608184866116ac565b90509695505050505050565b60006020820190508181036000830152611a8581611712565b9050919050565b60006020820190508181036000830152611aa581611735565b9050919050565b60006020820190508181036000830152611ac68184611758565b905092915050565b60006020820190508181036000830152611ae881846117d5565b905092915050565b6000602082019050611b056000830184611874565b92915050565b60008083356001602003843603038112611b2857611b27611c54565b5b80840192508235915067ffffffffffffffff821115611b4a57611b49611c4a565b5b602083019250600182023603831315611b6657611b65611c5e565b5b509250929050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000611bb782611bd4565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015611c2b578082015181840152602081019050611c10565b83811115611c3a576000848401525b50505050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b611cd981611bac565b8114611ce457600080fd5b50565b611cf081611bbe565b8114611cfb57600080fd5b50565b611d0781611bca565b8114611d1257600080fd5b50565b611d1e81611bf4565b8114611d2957600080fd5b5056fea2646970667358221220aea116262018bae5c67a2e8d7df041d67768b80865d96b72392c003b54c708f264736f6c63430008070033"; type ZetaConnectorEthConstructorParams = | [signer?: Signer] diff --git a/typechain-types/factories/contracts/evm/ZetaConnector.eth.sol/index.ts b/v1/typechain-types/factories/contracts/evm/ZetaConnector.eth.sol/index.ts similarity index 100% rename from typechain-types/factories/contracts/evm/ZetaConnector.eth.sol/index.ts rename to v1/typechain-types/factories/contracts/evm/ZetaConnector.eth.sol/index.ts diff --git a/typechain-types/factories/contracts/evm/ZetaConnector.non-eth.sol/ZetaConnectorNonEth__factory.ts b/v1/typechain-types/factories/contracts/evm/ZetaConnector.non-eth.sol/ZetaConnectorNonEth__factory.ts similarity index 99% rename from typechain-types/factories/contracts/evm/ZetaConnector.non-eth.sol/ZetaConnectorNonEth__factory.ts rename to v1/typechain-types/factories/contracts/evm/ZetaConnector.non-eth.sol/ZetaConnectorNonEth__factory.ts index efb72cbd..1f1bee87 100644 --- a/typechain-types/factories/contracts/evm/ZetaConnector.non-eth.sol/ZetaConnectorNonEth__factory.ts +++ b/v1/typechain-types/factories/contracts/evm/ZetaConnector.non-eth.sol/ZetaConnectorNonEth__factory.ts @@ -630,7 +630,7 @@ const _abi = [ ] as const; const _bytecode = - "0x60a06040527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6003553480156200003557600080fd5b506040516200237b3803806200237b83398181016040528101906200005b9190620002a8565b8383838360008060006101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480620000e15750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80620001195750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80620001515750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b1562000189576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b8152505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050506200036d565b600081519050620002a28162000353565b92915050565b60008060008060808587031215620002c557620002c46200034e565b5b6000620002d58782880162000291565b9450506020620002e88782880162000291565b9350506040620002fb8782880162000291565b92505060606200030e8782880162000291565b91505092959194509250565b600062000327826200032e565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6200035e816200031a565b81146200036a57600080fd5b50565b60805160601c611fc5620003b66000396000818161029f015281816102c501528181610408015281816104f601528181610f5201528181611040015261126f0152611fc56000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80636f8b44b011610097578063942a5e1611610066578063942a5e1614610229578063d5abeb0114610245578063ec02690114610263578063f7fb869b1461027f57610100565b80636f8b44b0146101dd578063779e3b63146101f95780638456cb59146102035780639122c3441461020d57610100565b80633f4ba83a116100d35780633f4ba83a1461017b5780635b112591146101855780635c975abb146101a35780636128480f146101c157610100565b806321e093b114610105578063252bc8861461012357806329dd214d14610141578063328a01d01461015d575b600080fd5b61010d61029d565b60405161011a9190611a78565b60405180910390f35b61012b6102c1565b6040516101389190611ce5565b60405180910390f35b61015b600480360381019061015691906116f3565b610371565b005b610165610721565b6040516101729190611a78565b60405180910390f35b610183610747565b005b61018d6107e3565b60405161019a9190611a78565b60405180910390f35b6101ab610809565b6040516101b89190611bfd565b60405180910390f35b6101db60048036038101906101d691906115e4565b61081f565b005b6101f760048036038101906101f2919061180b565b610995565b005b610201610a6a565b005b61020b610c45565b005b610227600480360381019061022291906115e4565b610ce1565b005b610243600480360381019061023e9190611611565b610eb3565b005b61024d61125f565b60405161025a9190611ce5565b60405180910390f35b61027d600480360381019061027891906117c2565b611265565b005b610287611396565b6040516102949190611a78565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161031c9190611a78565b60206040518083038186803b15801561033457600080fd5b505afa158015610348573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036c9190611838565b905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461040357336040517fff70ace20000000000000000000000000000000000000000000000000000000081526004016103fa9190611a78565b60405180910390fd5b6003547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561046c57600080fd5b505afa158015610480573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104a49190611838565b856104af9190611da1565b11156104f4576003546040517f3d3dbc830000000000000000000000000000000000000000000000000000000081526004016104eb9190611ce5565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16631e458bee8686846040518463ffffffff1660e01b815260040161055193929190611b61565b600060405180830381600087803b15801561056b57600080fd5b505af115801561057f573d6000803e3d6000fd5b5050505060008383905011156106bf578473ffffffffffffffffffffffffffffffffffffffff16633749c51a6040518060a001604052808b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505081526020018981526020018873ffffffffffffffffffffffffffffffffffffffff16815260200187815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508152506040518263ffffffff1660e01b815260040161068c9190611ca1565b600060405180830381600087803b1580156106a657600080fd5b505af11580156106ba573d6000803e3d6000fd5b505050505b808573ffffffffffffffffffffffffffffffffffffffff16877ff1302855733b40d8acb467ee990b6d56c05c80e28ebcabfa6e6f3f57cb50d6988b8b89898960405161070f959493929190611c18565b60405180910390a45050505050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107d957336040517f4677a0d30000000000000000000000000000000000000000000000000000000081526004016107d09190611a78565b60405180910390fd5b6107e16113bc565b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900460ff16905090565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108b157336040517f4677a0d30000000000000000000000000000000000000000000000000000000081526004016108a89190611a78565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610918576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd41d83655d484bdf299598751c371b2d92088667266fe3774b25a97bdd5d0397338260405161098a929190611a93565b60405180910390a150565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a2757336040517fff70ace2000000000000000000000000000000000000000000000000000000008152600401610a1e9190611a78565b60405180910390fd5b806003819055507f26843c619c87f9021bcc4ec5143177198076d9da3c13ce1bb2e941644c69d42e3382604051610a5f929190611b38565b60405180910390a150565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610afc57336040517fe700765e000000000000000000000000000000000000000000000000000000008152600401610af39190611a78565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610b85576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f5104c9abdc7d111c2aeb4ce890ac70274a4be2ee83f46a62551be5e6ebc82dd033600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610c3b929190611a93565b60405180910390a1565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cd757336040517f4677a0d3000000000000000000000000000000000000000000000000000000008152600401610cce9190611a78565b60405180910390fd5b610cdf61141e565b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610d8d5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15610dcf57336040517fcdfcef97000000000000000000000000000000000000000000000000000000008152600401610dc69190611a78565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610e36576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fe79965b5c67dcfb2cf5fe152715e4a7256cee62a3d5dd8484fd8a8539eb8beff3382604051610ea8929190611a93565b60405180910390a150565b610ebb611480565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f4d57336040517fff70ace2000000000000000000000000000000000000000000000000000000008152600401610f449190611a78565b60405180910390fd5b6003547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610fb657600080fd5b505afa158015610fca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fee9190611838565b85610ff99190611da1565b111561103e576003546040517f3d3dbc830000000000000000000000000000000000000000000000000000000081526004016110359190611ce5565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16631e458bee8a86846040518463ffffffff1660e01b815260040161109b93929190611b61565b600060405180830381600087803b1580156110b557600080fd5b505af11580156110c9573d6000803e3d6000fd5b50505050600083839050111561120f578873ffffffffffffffffffffffffffffffffffffffff16633ff0693c6040518060c001604052808c73ffffffffffffffffffffffffffffffffffffffff1681526020018b81526020018a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050815260200188815260200187815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508152506040518263ffffffff1660e01b81526004016111dc9190611cc3565b600060405180830381600087803b1580156111f657600080fd5b505af115801561120a573d6000803e3d6000fd5b505050505b80857f521fb0b407c2eb9b1375530e9b9a569889992140a688bc076aa72c1712012c888b8b8b8b8a8a8a60405161124c9796959493929190611b98565b60405180910390a3505050505050505050565b60035481565b61126d611480565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166379cc67903383608001356040518363ffffffff1660e01b81526004016112cc929190611b38565b600060405180830381600087803b1580156112e657600080fd5b505af11580156112fa573d6000803e3d6000fd5b5050505080600001353373ffffffffffffffffffffffffffffffffffffffff167f7ec1c94701e09b1652f3e1d307e60c4b9ebf99aff8c2079fd1d8c585e031c4e43284806020019061134c9190611d00565b866080013587604001358880606001906113669190611d00565b8a8060a001906113769190611d00565b60405161138b99989796959493929190611abc565b60405180910390a350565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6113c46114ca565b60008060006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611407611513565b6040516114149190611a78565b60405180910390a1565b611426611480565b60016000806101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611469611513565b6040516114769190611a78565b60405180910390a1565b611488610809565b156114c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bf90611c81565b60405180910390fd5b565b6114d2610809565b611511576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150890611c61565b60405180910390fd5b565b600033905090565b60008135905061152a81611f4a565b92915050565b60008135905061153f81611f61565b92915050565b60008083601f84011261155b5761155a611ebf565b5b8235905067ffffffffffffffff81111561157857611577611eba565b5b60208301915083600182028301111561159457611593611ed3565b5b9250929050565b600060c082840312156115b1576115b0611ec9565b5b81905092915050565b6000813590506115c981611f78565b92915050565b6000815190506115de81611f78565b92915050565b6000602082840312156115fa576115f9611ee2565b5b60006116088482850161151b565b91505092915050565b600080600080600080600080600060e08a8c03121561163357611632611ee2565b5b60006116418c828d0161151b565b99505060206116528c828d016115ba565b98505060408a013567ffffffffffffffff81111561167357611672611edd565b5b61167f8c828d01611545565b975097505060606116928c828d016115ba565b95505060806116a38c828d016115ba565b94505060a08a013567ffffffffffffffff8111156116c4576116c3611edd565b5b6116d08c828d01611545565b935093505060c06116e38c828d01611530565b9150509295985092959850929598565b60008060008060008060008060c0898b03121561171357611712611ee2565b5b600089013567ffffffffffffffff81111561173157611730611edd565b5b61173d8b828c01611545565b985098505060206117508b828c016115ba565b96505060406117618b828c0161151b565b95505060606117728b828c016115ba565b945050608089013567ffffffffffffffff81111561179357611792611edd565b5b61179f8b828c01611545565b935093505060a06117b28b828c01611530565b9150509295985092959890939650565b6000602082840312156117d8576117d7611ee2565b5b600082013567ffffffffffffffff8111156117f6576117f5611edd565b5b6118028482850161159b565b91505092915050565b60006020828403121561182157611820611ee2565b5b600061182f848285016115ba565b91505092915050565b60006020828403121561184e5761184d611ee2565b5b600061185c848285016115cf565b91505092915050565b61186e81611df7565b82525050565b61187d81611df7565b82525050565b61188c81611e09565b82525050565b61189b81611e15565b82525050565b60006118ad8385611d7f565b93506118ba838584611e49565b6118c383611ee7565b840190509392505050565b60006118d982611d63565b6118e38185611d6e565b93506118f3818560208601611e58565b6118fc81611ee7565b840191505092915050565b6000611914601483611d90565b915061191f82611ef8565b602082019050919050565b6000611937601083611d90565b915061194282611f21565b602082019050919050565b600060a083016000830151848203600086015261196a82826118ce565b915050602083015161197f6020860182611a5a565b5060408301516119926040860182611865565b5060608301516119a56060860182611a5a565b50608083015184820360808601526119bd82826118ce565b9150508091505092915050565b600060c0830160008301516119e26000860182611865565b5060208301516119f56020860182611a5a565b5060408301518482036040860152611a0d82826118ce565b9150506060830151611a226060860182611a5a565b506080830151611a356080860182611a5a565b5060a083015184820360a0860152611a4d82826118ce565b9150508091505092915050565b611a6381611e3f565b82525050565b611a7281611e3f565b82525050565b6000602082019050611a8d6000830184611874565b92915050565b6000604082019050611aa86000830185611874565b611ab56020830184611874565b9392505050565b600060c082019050611ad1600083018c611874565b8181036020830152611ae4818a8c6118a1565b9050611af36040830189611a69565b611b006060830188611a69565b8181036080830152611b138186886118a1565b905081810360a0830152611b288184866118a1565b90509a9950505050505050505050565b6000604082019050611b4d6000830185611874565b611b5a6020830184611a69565b9392505050565b6000606082019050611b766000830186611874565b611b836020830185611a69565b611b906040830184611892565b949350505050565b600060a082019050611bad600083018a611874565b611bba6020830189611a69565b8181036040830152611bcd8187896118a1565b9050611bdc6060830186611a69565b8181036080830152611bef8184866118a1565b905098975050505050505050565b6000602082019050611c126000830184611883565b92915050565b60006060820190508181036000830152611c338187896118a1565b9050611c426020830186611a69565b8181036040830152611c558184866118a1565b90509695505050505050565b60006020820190508181036000830152611c7a81611907565b9050919050565b60006020820190508181036000830152611c9a8161192a565b9050919050565b60006020820190508181036000830152611cbb818461194d565b905092915050565b60006020820190508181036000830152611cdd81846119ca565b905092915050565b6000602082019050611cfa6000830184611a69565b92915050565b60008083356001602003843603038112611d1d57611d1c611ece565b5b80840192508235915067ffffffffffffffff821115611d3f57611d3e611ec4565b5b602083019250600182023603831315611d5b57611d5a611ed8565b5b509250929050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000611dac82611e3f565b9150611db783611e3f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611dec57611deb611e8b565b5b828201905092915050565b6000611e0282611e1f565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015611e76578082015181840152602081019050611e5b565b83811115611e85576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b611f5381611df7565b8114611f5e57600080fd5b50565b611f6a81611e15565b8114611f7557600080fd5b50565b611f8181611e3f565b8114611f8c57600080fd5b5056fea2646970667358221220af09dec3099b33c22fceeb145766f8056225d0604e40f061de22f5e64b79e8b564736f6c63430008070033"; + "0x60a06040527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6003553480156200003557600080fd5b506040516200237b3803806200237b83398181016040528101906200005b9190620002a8565b8383838360008060006101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480620000e15750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80620001195750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80620001515750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b1562000189576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b8152505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050506200036d565b600081519050620002a28162000353565b92915050565b60008060008060808587031215620002c557620002c46200034e565b5b6000620002d58782880162000291565b9450506020620002e88782880162000291565b9350506040620002fb8782880162000291565b92505060606200030e8782880162000291565b91505092959194509250565b600062000327826200032e565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6200035e816200031a565b81146200036a57600080fd5b50565b60805160601c611fc5620003b66000396000818161029f015281816102c501528181610408015281816104f601528181610f5201528181611040015261126f0152611fc56000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80636f8b44b011610097578063942a5e1611610066578063942a5e1614610229578063d5abeb0114610245578063ec02690114610263578063f7fb869b1461027f57610100565b80636f8b44b0146101dd578063779e3b63146101f95780638456cb59146102035780639122c3441461020d57610100565b80633f4ba83a116100d35780633f4ba83a1461017b5780635b112591146101855780635c975abb146101a35780636128480f146101c157610100565b806321e093b114610105578063252bc8861461012357806329dd214d14610141578063328a01d01461015d575b600080fd5b61010d61029d565b60405161011a9190611a78565b60405180910390f35b61012b6102c1565b6040516101389190611ce5565b60405180910390f35b61015b600480360381019061015691906116f3565b610371565b005b610165610721565b6040516101729190611a78565b60405180910390f35b610183610747565b005b61018d6107e3565b60405161019a9190611a78565b60405180910390f35b6101ab610809565b6040516101b89190611bfd565b60405180910390f35b6101db60048036038101906101d691906115e4565b61081f565b005b6101f760048036038101906101f2919061180b565b610995565b005b610201610a6a565b005b61020b610c45565b005b610227600480360381019061022291906115e4565b610ce1565b005b610243600480360381019061023e9190611611565b610eb3565b005b61024d61125f565b60405161025a9190611ce5565b60405180910390f35b61027d600480360381019061027891906117c2565b611265565b005b610287611396565b6040516102949190611a78565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161031c9190611a78565b60206040518083038186803b15801561033457600080fd5b505afa158015610348573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036c9190611838565b905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461040357336040517fff70ace20000000000000000000000000000000000000000000000000000000081526004016103fa9190611a78565b60405180910390fd5b6003547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561046c57600080fd5b505afa158015610480573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104a49190611838565b856104af9190611da1565b11156104f4576003546040517f3d3dbc830000000000000000000000000000000000000000000000000000000081526004016104eb9190611ce5565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16631e458bee8686846040518463ffffffff1660e01b815260040161055193929190611b61565b600060405180830381600087803b15801561056b57600080fd5b505af115801561057f573d6000803e3d6000fd5b5050505060008383905011156106bf578473ffffffffffffffffffffffffffffffffffffffff16633749c51a6040518060a001604052808b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505081526020018981526020018873ffffffffffffffffffffffffffffffffffffffff16815260200187815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508152506040518263ffffffff1660e01b815260040161068c9190611ca1565b600060405180830381600087803b1580156106a657600080fd5b505af11580156106ba573d6000803e3d6000fd5b505050505b808573ffffffffffffffffffffffffffffffffffffffff16877ff1302855733b40d8acb467ee990b6d56c05c80e28ebcabfa6e6f3f57cb50d6988b8b89898960405161070f959493929190611c18565b60405180910390a45050505050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107d957336040517f4677a0d30000000000000000000000000000000000000000000000000000000081526004016107d09190611a78565b60405180910390fd5b6107e16113bc565b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900460ff16905090565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108b157336040517f4677a0d30000000000000000000000000000000000000000000000000000000081526004016108a89190611a78565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610918576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd41d83655d484bdf299598751c371b2d92088667266fe3774b25a97bdd5d0397338260405161098a929190611a93565b60405180910390a150565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a2757336040517fff70ace2000000000000000000000000000000000000000000000000000000008152600401610a1e9190611a78565b60405180910390fd5b806003819055507f26843c619c87f9021bcc4ec5143177198076d9da3c13ce1bb2e941644c69d42e3382604051610a5f929190611b38565b60405180910390a150565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610afc57336040517fe700765e000000000000000000000000000000000000000000000000000000008152600401610af39190611a78565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610b85576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f5104c9abdc7d111c2aeb4ce890ac70274a4be2ee83f46a62551be5e6ebc82dd033600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610c3b929190611a93565b60405180910390a1565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cd757336040517f4677a0d3000000000000000000000000000000000000000000000000000000008152600401610cce9190611a78565b60405180910390fd5b610cdf61141e565b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610d8d5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15610dcf57336040517fcdfcef97000000000000000000000000000000000000000000000000000000008152600401610dc69190611a78565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610e36576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fe79965b5c67dcfb2cf5fe152715e4a7256cee62a3d5dd8484fd8a8539eb8beff3382604051610ea8929190611a93565b60405180910390a150565b610ebb611480565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f4d57336040517fff70ace2000000000000000000000000000000000000000000000000000000008152600401610f449190611a78565b60405180910390fd5b6003547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610fb657600080fd5b505afa158015610fca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fee9190611838565b85610ff99190611da1565b111561103e576003546040517f3d3dbc830000000000000000000000000000000000000000000000000000000081526004016110359190611ce5565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16631e458bee8a86846040518463ffffffff1660e01b815260040161109b93929190611b61565b600060405180830381600087803b1580156110b557600080fd5b505af11580156110c9573d6000803e3d6000fd5b50505050600083839050111561120f578873ffffffffffffffffffffffffffffffffffffffff16633ff0693c6040518060c001604052808c73ffffffffffffffffffffffffffffffffffffffff1681526020018b81526020018a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050815260200188815260200187815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508152506040518263ffffffff1660e01b81526004016111dc9190611cc3565b600060405180830381600087803b1580156111f657600080fd5b505af115801561120a573d6000803e3d6000fd5b505050505b80857f521fb0b407c2eb9b1375530e9b9a569889992140a688bc076aa72c1712012c888b8b8b8b8a8a8a60405161124c9796959493929190611b98565b60405180910390a3505050505050505050565b60035481565b61126d611480565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166379cc67903383608001356040518363ffffffff1660e01b81526004016112cc929190611b38565b600060405180830381600087803b1580156112e657600080fd5b505af11580156112fa573d6000803e3d6000fd5b5050505080600001353373ffffffffffffffffffffffffffffffffffffffff167f7ec1c94701e09b1652f3e1d307e60c4b9ebf99aff8c2079fd1d8c585e031c4e43284806020019061134c9190611d00565b866080013587604001358880606001906113669190611d00565b8a8060a001906113769190611d00565b60405161138b99989796959493929190611abc565b60405180910390a350565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6113c46114ca565b60008060006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611407611513565b6040516114149190611a78565b60405180910390a1565b611426611480565b60016000806101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611469611513565b6040516114769190611a78565b60405180910390a1565b611488610809565b156114c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bf90611c81565b60405180910390fd5b565b6114d2610809565b611511576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150890611c61565b60405180910390fd5b565b600033905090565b60008135905061152a81611f4a565b92915050565b60008135905061153f81611f61565b92915050565b60008083601f84011261155b5761155a611ebf565b5b8235905067ffffffffffffffff81111561157857611577611eba565b5b60208301915083600182028301111561159457611593611ed3565b5b9250929050565b600060c082840312156115b1576115b0611ec9565b5b81905092915050565b6000813590506115c981611f78565b92915050565b6000815190506115de81611f78565b92915050565b6000602082840312156115fa576115f9611ee2565b5b60006116088482850161151b565b91505092915050565b600080600080600080600080600060e08a8c03121561163357611632611ee2565b5b60006116418c828d0161151b565b99505060206116528c828d016115ba565b98505060408a013567ffffffffffffffff81111561167357611672611edd565b5b61167f8c828d01611545565b975097505060606116928c828d016115ba565b95505060806116a38c828d016115ba565b94505060a08a013567ffffffffffffffff8111156116c4576116c3611edd565b5b6116d08c828d01611545565b935093505060c06116e38c828d01611530565b9150509295985092959850929598565b60008060008060008060008060c0898b03121561171357611712611ee2565b5b600089013567ffffffffffffffff81111561173157611730611edd565b5b61173d8b828c01611545565b985098505060206117508b828c016115ba565b96505060406117618b828c0161151b565b95505060606117728b828c016115ba565b945050608089013567ffffffffffffffff81111561179357611792611edd565b5b61179f8b828c01611545565b935093505060a06117b28b828c01611530565b9150509295985092959890939650565b6000602082840312156117d8576117d7611ee2565b5b600082013567ffffffffffffffff8111156117f6576117f5611edd565b5b6118028482850161159b565b91505092915050565b60006020828403121561182157611820611ee2565b5b600061182f848285016115ba565b91505092915050565b60006020828403121561184e5761184d611ee2565b5b600061185c848285016115cf565b91505092915050565b61186e81611df7565b82525050565b61187d81611df7565b82525050565b61188c81611e09565b82525050565b61189b81611e15565b82525050565b60006118ad8385611d7f565b93506118ba838584611e49565b6118c383611ee7565b840190509392505050565b60006118d982611d63565b6118e38185611d6e565b93506118f3818560208601611e58565b6118fc81611ee7565b840191505092915050565b6000611914601483611d90565b915061191f82611ef8565b602082019050919050565b6000611937601083611d90565b915061194282611f21565b602082019050919050565b600060a083016000830151848203600086015261196a82826118ce565b915050602083015161197f6020860182611a5a565b5060408301516119926040860182611865565b5060608301516119a56060860182611a5a565b50608083015184820360808601526119bd82826118ce565b9150508091505092915050565b600060c0830160008301516119e26000860182611865565b5060208301516119f56020860182611a5a565b5060408301518482036040860152611a0d82826118ce565b9150506060830151611a226060860182611a5a565b506080830151611a356080860182611a5a565b5060a083015184820360a0860152611a4d82826118ce565b9150508091505092915050565b611a6381611e3f565b82525050565b611a7281611e3f565b82525050565b6000602082019050611a8d6000830184611874565b92915050565b6000604082019050611aa86000830185611874565b611ab56020830184611874565b9392505050565b600060c082019050611ad1600083018c611874565b8181036020830152611ae4818a8c6118a1565b9050611af36040830189611a69565b611b006060830188611a69565b8181036080830152611b138186886118a1565b905081810360a0830152611b288184866118a1565b90509a9950505050505050505050565b6000604082019050611b4d6000830185611874565b611b5a6020830184611a69565b9392505050565b6000606082019050611b766000830186611874565b611b836020830185611a69565b611b906040830184611892565b949350505050565b600060a082019050611bad600083018a611874565b611bba6020830189611a69565b8181036040830152611bcd8187896118a1565b9050611bdc6060830186611a69565b8181036080830152611bef8184866118a1565b905098975050505050505050565b6000602082019050611c126000830184611883565b92915050565b60006060820190508181036000830152611c338187896118a1565b9050611c426020830186611a69565b8181036040830152611c558184866118a1565b90509695505050505050565b60006020820190508181036000830152611c7a81611907565b9050919050565b60006020820190508181036000830152611c9a8161192a565b9050919050565b60006020820190508181036000830152611cbb818461194d565b905092915050565b60006020820190508181036000830152611cdd81846119ca565b905092915050565b6000602082019050611cfa6000830184611a69565b92915050565b60008083356001602003843603038112611d1d57611d1c611ece565b5b80840192508235915067ffffffffffffffff821115611d3f57611d3e611ec4565b5b602083019250600182023603831315611d5b57611d5a611ed8565b5b509250929050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000611dac82611e3f565b9150611db783611e3f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611dec57611deb611e8b565b5b828201905092915050565b6000611e0282611e1f565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015611e76578082015181840152602081019050611e5b565b83811115611e85576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b611f5381611df7565b8114611f5e57600080fd5b50565b611f6a81611e15565b8114611f7557600080fd5b50565b611f8181611e3f565b8114611f8c57600080fd5b5056fea2646970667358221220c031f80b5c9d397027c78f70c718cbb340af3281424b52faca5743d7e7b4560464736f6c63430008070033"; type ZetaConnectorNonEthConstructorParams = | [signer?: Signer] diff --git a/typechain-types/factories/contracts/evm/ZetaConnector.non-eth.sol/index.ts b/v1/typechain-types/factories/contracts/evm/ZetaConnector.non-eth.sol/index.ts similarity index 100% rename from typechain-types/factories/contracts/evm/ZetaConnector.non-eth.sol/index.ts rename to v1/typechain-types/factories/contracts/evm/ZetaConnector.non-eth.sol/index.ts diff --git a/typechain-types/factories/contracts/evm/index.ts b/v1/typechain-types/factories/contracts/evm/index.ts similarity index 100% rename from typechain-types/factories/contracts/evm/index.ts rename to v1/typechain-types/factories/contracts/evm/index.ts diff --git a/typechain-types/factories/contracts/evm/interfaces/ConnectorErrors__factory.ts b/v1/typechain-types/factories/contracts/evm/interfaces/ConnectorErrors__factory.ts similarity index 100% rename from typechain-types/factories/contracts/evm/interfaces/ConnectorErrors__factory.ts rename to v1/typechain-types/factories/contracts/evm/interfaces/ConnectorErrors__factory.ts diff --git a/typechain-types/factories/contracts/evm/interfaces/ZetaErrors__factory.ts b/v1/typechain-types/factories/contracts/evm/interfaces/ZetaErrors__factory.ts similarity index 100% rename from typechain-types/factories/contracts/evm/interfaces/ZetaErrors__factory.ts rename to v1/typechain-types/factories/contracts/evm/interfaces/ZetaErrors__factory.ts diff --git a/typechain-types/factories/contracts/evm/interfaces/ZetaInteractorErrors__factory.ts b/v1/typechain-types/factories/contracts/evm/interfaces/ZetaInteractorErrors__factory.ts similarity index 100% rename from typechain-types/factories/contracts/evm/interfaces/ZetaInteractorErrors__factory.ts rename to v1/typechain-types/factories/contracts/evm/interfaces/ZetaInteractorErrors__factory.ts diff --git a/typechain-types/factories/contracts/evm/interfaces/ZetaInterfaces.sol/ZetaCommonErrors__factory.ts b/v1/typechain-types/factories/contracts/evm/interfaces/ZetaInterfaces.sol/ZetaCommonErrors__factory.ts similarity index 100% rename from typechain-types/factories/contracts/evm/interfaces/ZetaInterfaces.sol/ZetaCommonErrors__factory.ts rename to v1/typechain-types/factories/contracts/evm/interfaces/ZetaInterfaces.sol/ZetaCommonErrors__factory.ts diff --git a/typechain-types/factories/contracts/evm/interfaces/ZetaInterfaces.sol/ZetaConnector__factory.ts b/v1/typechain-types/factories/contracts/evm/interfaces/ZetaInterfaces.sol/ZetaConnector__factory.ts similarity index 100% rename from typechain-types/factories/contracts/evm/interfaces/ZetaInterfaces.sol/ZetaConnector__factory.ts rename to v1/typechain-types/factories/contracts/evm/interfaces/ZetaInterfaces.sol/ZetaConnector__factory.ts diff --git a/typechain-types/factories/contracts/evm/interfaces/ZetaInterfaces.sol/ZetaReceiver__factory.ts b/v1/typechain-types/factories/contracts/evm/interfaces/ZetaInterfaces.sol/ZetaReceiver__factory.ts similarity index 100% rename from typechain-types/factories/contracts/evm/interfaces/ZetaInterfaces.sol/ZetaReceiver__factory.ts rename to v1/typechain-types/factories/contracts/evm/interfaces/ZetaInterfaces.sol/ZetaReceiver__factory.ts diff --git a/typechain-types/factories/contracts/evm/interfaces/ZetaInterfaces.sol/ZetaTokenConsumer__factory.ts b/v1/typechain-types/factories/contracts/evm/interfaces/ZetaInterfaces.sol/ZetaTokenConsumer__factory.ts similarity index 100% rename from typechain-types/factories/contracts/evm/interfaces/ZetaInterfaces.sol/ZetaTokenConsumer__factory.ts rename to v1/typechain-types/factories/contracts/evm/interfaces/ZetaInterfaces.sol/ZetaTokenConsumer__factory.ts diff --git a/typechain-types/factories/contracts/evm/interfaces/ZetaInterfaces.sol/index.ts b/v1/typechain-types/factories/contracts/evm/interfaces/ZetaInterfaces.sol/index.ts similarity index 100% rename from typechain-types/factories/contracts/evm/interfaces/ZetaInterfaces.sol/index.ts rename to v1/typechain-types/factories/contracts/evm/interfaces/ZetaInterfaces.sol/index.ts diff --git a/typechain-types/factories/contracts/evm/interfaces/ZetaNonEthInterface__factory.ts b/v1/typechain-types/factories/contracts/evm/interfaces/ZetaNonEthInterface__factory.ts similarity index 100% rename from typechain-types/factories/contracts/evm/interfaces/ZetaNonEthInterface__factory.ts rename to v1/typechain-types/factories/contracts/evm/interfaces/ZetaNonEthInterface__factory.ts diff --git a/typechain-types/factories/contracts/evm/interfaces/index.ts b/v1/typechain-types/factories/contracts/evm/interfaces/index.ts similarity index 100% rename from typechain-types/factories/contracts/evm/interfaces/index.ts rename to v1/typechain-types/factories/contracts/evm/interfaces/index.ts diff --git a/typechain-types/factories/contracts/evm/testing/AttackerContract.sol/AttackerContract__factory.ts b/v1/typechain-types/factories/contracts/evm/testing/AttackerContract.sol/AttackerContract__factory.ts similarity index 100% rename from typechain-types/factories/contracts/evm/testing/AttackerContract.sol/AttackerContract__factory.ts rename to v1/typechain-types/factories/contracts/evm/testing/AttackerContract.sol/AttackerContract__factory.ts diff --git a/typechain-types/factories/contracts/evm/testing/AttackerContract.sol/Victim__factory.ts b/v1/typechain-types/factories/contracts/evm/testing/AttackerContract.sol/Victim__factory.ts similarity index 100% rename from typechain-types/factories/contracts/evm/testing/AttackerContract.sol/Victim__factory.ts rename to v1/typechain-types/factories/contracts/evm/testing/AttackerContract.sol/Victim__factory.ts diff --git a/typechain-types/factories/contracts/evm/testing/AttackerContract.sol/index.ts b/v1/typechain-types/factories/contracts/evm/testing/AttackerContract.sol/index.ts similarity index 100% rename from typechain-types/factories/contracts/evm/testing/AttackerContract.sol/index.ts rename to v1/typechain-types/factories/contracts/evm/testing/AttackerContract.sol/index.ts diff --git a/typechain-types/factories/contracts/evm/testing/ERC20Mock__factory.ts b/v1/typechain-types/factories/contracts/evm/testing/ERC20Mock__factory.ts similarity index 100% rename from typechain-types/factories/contracts/evm/testing/ERC20Mock__factory.ts rename to v1/typechain-types/factories/contracts/evm/testing/ERC20Mock__factory.ts diff --git a/typechain-types/factories/contracts/evm/testing/TestUniswapV3Contracts.sol/INonfungiblePositionManager__factory.ts b/v1/typechain-types/factories/contracts/evm/testing/TestUniswapV3Contracts.sol/INonfungiblePositionManager__factory.ts similarity index 100% rename from typechain-types/factories/contracts/evm/testing/TestUniswapV3Contracts.sol/INonfungiblePositionManager__factory.ts rename to v1/typechain-types/factories/contracts/evm/testing/TestUniswapV3Contracts.sol/INonfungiblePositionManager__factory.ts diff --git a/typechain-types/factories/contracts/evm/testing/TestUniswapV3Contracts.sol/IPoolInitializer__factory.ts b/v1/typechain-types/factories/contracts/evm/testing/TestUniswapV3Contracts.sol/IPoolInitializer__factory.ts similarity index 100% rename from typechain-types/factories/contracts/evm/testing/TestUniswapV3Contracts.sol/IPoolInitializer__factory.ts rename to v1/typechain-types/factories/contracts/evm/testing/TestUniswapV3Contracts.sol/IPoolInitializer__factory.ts diff --git a/typechain-types/factories/contracts/evm/testing/TestUniswapV3Contracts.sol/index.ts b/v1/typechain-types/factories/contracts/evm/testing/TestUniswapV3Contracts.sol/index.ts similarity index 100% rename from typechain-types/factories/contracts/evm/testing/TestUniswapV3Contracts.sol/index.ts rename to v1/typechain-types/factories/contracts/evm/testing/TestUniswapV3Contracts.sol/index.ts diff --git a/typechain-types/factories/contracts/evm/testing/ZetaInteractorMock__factory.ts b/v1/typechain-types/factories/contracts/evm/testing/ZetaInteractorMock__factory.ts similarity index 99% rename from typechain-types/factories/contracts/evm/testing/ZetaInteractorMock__factory.ts rename to v1/typechain-types/factories/contracts/evm/testing/ZetaInteractorMock__factory.ts index 62972d9a..eda13b7f 100644 --- a/typechain-types/factories/contracts/evm/testing/ZetaInteractorMock__factory.ts +++ b/v1/typechain-types/factories/contracts/evm/testing/ZetaInteractorMock__factory.ts @@ -281,7 +281,7 @@ const _abi = [ ] as const; const _bytecode = - "0x60c06040523480156200001157600080fd5b50604051620011dc380380620011dc833981810160405281019062000037919062000228565b80620000586200004c6200010760201b60201c565b6200010f60201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620000c0576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b46608081815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b815250505050620002ad565b600033905090565b600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556200014a816200014d60201b620005601760201c565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050620002228162000293565b92915050565b6000602082840312156200024157620002406200028e565b5b6000620002518482850162000211565b91505092915050565b600062000267826200026e565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6200029e816200025a565b8114620002aa57600080fd5b50565b60805160a05160601c610f02620002da6000396000818161043e0152610626015260005050610f026000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806379ba50971161006657806379ba50971461013157806383f3084f1461013b5780638da5cb5b14610159578063e30c397814610177578063f2fde38b146101955761009e565b80632618143f146100a35780633749c51a146100d35780633ff0693c146100ef5780634fd3f7d71461010b578063715018a614610127575b600080fd5b6100bd60048036038101906100b8919061098d565b6101b1565b6040516100ca9190610ba6565b60405180910390f35b6100ed60048036038101906100e891906108fb565b610251565b005b61010960048036038101906101049190610944565b6102e7565b005b610125600480360381019061012091906109ba565b61036b565b005b61012f61039b565b005b6101396103af565b005b61014361043c565b6040516101509190610bc8565b60405180910390f35b610161610460565b60405161016e9190610b8b565b60405180910390f35b61017f610489565b60405161018c9190610b8b565b60405180910390f35b6101af60048036038101906101aa91906108ce565b6104b3565b005b600260205280600052604060002060009150905080546101d090610d87565b80601f01602080910402602001604051908101604052809291908181526020018280546101fc90610d87565b80156102495780601f1061021e57610100808354040283529160200191610249565b820191906000526020600020905b81548152906001019060200180831161022c57829003601f168201915b505050505081565b8061025a610624565b600260008260200135815260200190815260200160002060405161027e9190610b74565b60405180910390208180600001906102969190610c23565b6040516102a4929190610b5b565b6040518091039020146102e3576040517fb473eb0a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050565b806102f0610624565b3073ffffffffffffffffffffffffffffffffffffffff1681600001602081019061031a91906108ce565b73ffffffffffffffffffffffffffffffffffffffff1614610367576040517fc03e9c3f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050565b6103736106b6565b818160026000868152602001908152602001600020919061039592919061076d565b50505050565b6103a36106b6565b6103ad6000610734565b565b60006103b9610765565b90508073ffffffffffffffffffffffffffffffffffffffff166103da610489565b73ffffffffffffffffffffffffffffffffffffffff1614610430576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042790610be3565b60405180910390fd5b61043981610734565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6104bb6106b6565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1661051b610460565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106b457336040517fcbd9d2e00000000000000000000000000000000000000000000000000000000081526004016106ab9190610b8b565b60405180910390fd5b565b6106be610765565b73ffffffffffffffffffffffffffffffffffffffff166106dc610460565b73ffffffffffffffffffffffffffffffffffffffff1614610732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072990610c03565b60405180910390fd5b565b600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905561076281610560565b50565b600033905090565b82805461077990610d87565b90600052602060002090601f01602090048101928261079b57600085556107e2565b82601f106107b457803560ff19168380011785556107e2565b828001600101855582156107e2579182015b828111156107e15782358255916020019190600101906107c6565b5b5090506107ef91906107f3565b5090565b5b8082111561080c5760008160009055506001016107f4565b5090565b60008135905061081f81610e9e565b92915050565b60008083601f84011261083b5761083a610ded565b5b8235905067ffffffffffffffff81111561085857610857610de8565b5b60208301915083600182028301111561087457610873610e01565b5b9250929050565b600060a0828403121561089157610890610df7565b5b81905092915050565b600060c082840312156108b0576108af610df7565b5b81905092915050565b6000813590506108c881610eb5565b92915050565b6000602082840312156108e4576108e3610e10565b5b60006108f284828501610810565b91505092915050565b60006020828403121561091157610910610e10565b5b600082013567ffffffffffffffff81111561092f5761092e610e0b565b5b61093b8482850161087b565b91505092915050565b60006020828403121561095a57610959610e10565b5b600082013567ffffffffffffffff81111561097857610977610e0b565b5b6109848482850161089a565b91505092915050565b6000602082840312156109a3576109a2610e10565b5b60006109b1848285016108b9565b91505092915050565b6000806000604084860312156109d3576109d2610e10565b5b60006109e1868287016108b9565b935050602084013567ffffffffffffffff811115610a0257610a01610e0b565b5b610a0e86828701610825565b92509250509250925092565b610a2381610cd3565b82525050565b6000610a358385610cb7565b9350610a42838584610d45565b82840190509392505050565b6000610a5982610c9b565b610a638185610ca6565b9350610a73818560208601610d54565b610a7c81610e15565b840191505092915050565b60008154610a9481610d87565b610a9e8186610cb7565b94506001821660008114610ab95760018114610aca57610afd565b60ff19831686528186019350610afd565b610ad385610c86565b60005b83811015610af557815481890152600182019150602081019050610ad6565b838801955050505b50505092915050565b610b0f81610d0f565b82525050565b6000610b22602983610cc2565b9150610b2d82610e26565b604082019050919050565b6000610b45602083610cc2565b9150610b5082610e75565b602082019050919050565b6000610b68828486610a29565b91508190509392505050565b6000610b808284610a87565b915081905092915050565b6000602082019050610ba06000830184610a1a565b92915050565b60006020820190508181036000830152610bc08184610a4e565b905092915050565b6000602082019050610bdd6000830184610b06565b92915050565b60006020820190508181036000830152610bfc81610b15565b9050919050565b60006020820190508181036000830152610c1c81610b38565b9050919050565b60008083356001602003843603038112610c4057610c3f610dfc565b5b80840192508235915067ffffffffffffffff821115610c6257610c61610df2565b5b602083019250600182023603831315610c7e57610c7d610e06565b5b509250929050565b60008190508160005260206000209050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000610cde82610ce5565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610d1a82610d21565b9050919050565b6000610d2c82610d33565b9050919050565b6000610d3e82610ce5565b9050919050565b82818337600083830152505050565b60005b83811015610d72578082015181840152602081019050610d57565b83811115610d81576000848401525b50505050565b60006002820490506001821680610d9f57607f821691505b60208210811415610db357610db2610db9565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b610ea781610cd3565b8114610eb257600080fd5b50565b610ebe81610d05565b8114610ec957600080fd5b5056fea264697066735822122063babae00441a1f6e87dfa1b12f25265331734088794be43384b60938347fc3864736f6c63430008070033"; + "0x60c06040523480156200001157600080fd5b50604051620011dc380380620011dc833981810160405281019062000037919062000228565b80620000586200004c6200010760201b60201c565b6200010f60201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620000c0576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b46608081815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b815250505050620002ad565b600033905090565b600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556200014a816200014d60201b620005601760201c565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050620002228162000293565b92915050565b6000602082840312156200024157620002406200028e565b5b6000620002518482850162000211565b91505092915050565b600062000267826200026e565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6200029e816200025a565b8114620002aa57600080fd5b50565b60805160a05160601c610f02620002da6000396000818161043e0152610626015260005050610f026000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806379ba50971161006657806379ba50971461013157806383f3084f1461013b5780638da5cb5b14610159578063e30c397814610177578063f2fde38b146101955761009e565b80632618143f146100a35780633749c51a146100d35780633ff0693c146100ef5780634fd3f7d71461010b578063715018a614610127575b600080fd5b6100bd60048036038101906100b8919061098d565b6101b1565b6040516100ca9190610ba6565b60405180910390f35b6100ed60048036038101906100e891906108fb565b610251565b005b61010960048036038101906101049190610944565b6102e7565b005b610125600480360381019061012091906109ba565b61036b565b005b61012f61039b565b005b6101396103af565b005b61014361043c565b6040516101509190610bc8565b60405180910390f35b610161610460565b60405161016e9190610b8b565b60405180910390f35b61017f610489565b60405161018c9190610b8b565b60405180910390f35b6101af60048036038101906101aa91906108ce565b6104b3565b005b600260205280600052604060002060009150905080546101d090610d87565b80601f01602080910402602001604051908101604052809291908181526020018280546101fc90610d87565b80156102495780601f1061021e57610100808354040283529160200191610249565b820191906000526020600020905b81548152906001019060200180831161022c57829003601f168201915b505050505081565b8061025a610624565b600260008260200135815260200190815260200160002060405161027e9190610b74565b60405180910390208180600001906102969190610c23565b6040516102a4929190610b5b565b6040518091039020146102e3576040517fb473eb0a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050565b806102f0610624565b3073ffffffffffffffffffffffffffffffffffffffff1681600001602081019061031a91906108ce565b73ffffffffffffffffffffffffffffffffffffffff1614610367576040517fc03e9c3f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050565b6103736106b6565b818160026000868152602001908152602001600020919061039592919061076d565b50505050565b6103a36106b6565b6103ad6000610734565b565b60006103b9610765565b90508073ffffffffffffffffffffffffffffffffffffffff166103da610489565b73ffffffffffffffffffffffffffffffffffffffff1614610430576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042790610be3565b60405180910390fd5b61043981610734565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6104bb6106b6565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1661051b610460565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106b457336040517fcbd9d2e00000000000000000000000000000000000000000000000000000000081526004016106ab9190610b8b565b60405180910390fd5b565b6106be610765565b73ffffffffffffffffffffffffffffffffffffffff166106dc610460565b73ffffffffffffffffffffffffffffffffffffffff1614610732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072990610c03565b60405180910390fd5b565b600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905561076281610560565b50565b600033905090565b82805461077990610d87565b90600052602060002090601f01602090048101928261079b57600085556107e2565b82601f106107b457803560ff19168380011785556107e2565b828001600101855582156107e2579182015b828111156107e15782358255916020019190600101906107c6565b5b5090506107ef91906107f3565b5090565b5b8082111561080c5760008160009055506001016107f4565b5090565b60008135905061081f81610e9e565b92915050565b60008083601f84011261083b5761083a610ded565b5b8235905067ffffffffffffffff81111561085857610857610de8565b5b60208301915083600182028301111561087457610873610e01565b5b9250929050565b600060a0828403121561089157610890610df7565b5b81905092915050565b600060c082840312156108b0576108af610df7565b5b81905092915050565b6000813590506108c881610eb5565b92915050565b6000602082840312156108e4576108e3610e10565b5b60006108f284828501610810565b91505092915050565b60006020828403121561091157610910610e10565b5b600082013567ffffffffffffffff81111561092f5761092e610e0b565b5b61093b8482850161087b565b91505092915050565b60006020828403121561095a57610959610e10565b5b600082013567ffffffffffffffff81111561097857610977610e0b565b5b6109848482850161089a565b91505092915050565b6000602082840312156109a3576109a2610e10565b5b60006109b1848285016108b9565b91505092915050565b6000806000604084860312156109d3576109d2610e10565b5b60006109e1868287016108b9565b935050602084013567ffffffffffffffff811115610a0257610a01610e0b565b5b610a0e86828701610825565b92509250509250925092565b610a2381610cd3565b82525050565b6000610a358385610cb7565b9350610a42838584610d45565b82840190509392505050565b6000610a5982610c9b565b610a638185610ca6565b9350610a73818560208601610d54565b610a7c81610e15565b840191505092915050565b60008154610a9481610d87565b610a9e8186610cb7565b94506001821660008114610ab95760018114610aca57610afd565b60ff19831686528186019350610afd565b610ad385610c86565b60005b83811015610af557815481890152600182019150602081019050610ad6565b838801955050505b50505092915050565b610b0f81610d0f565b82525050565b6000610b22602983610cc2565b9150610b2d82610e26565b604082019050919050565b6000610b45602083610cc2565b9150610b5082610e75565b602082019050919050565b6000610b68828486610a29565b91508190509392505050565b6000610b808284610a87565b915081905092915050565b6000602082019050610ba06000830184610a1a565b92915050565b60006020820190508181036000830152610bc08184610a4e565b905092915050565b6000602082019050610bdd6000830184610b06565b92915050565b60006020820190508181036000830152610bfc81610b15565b9050919050565b60006020820190508181036000830152610c1c81610b38565b9050919050565b60008083356001602003843603038112610c4057610c3f610dfc565b5b80840192508235915067ffffffffffffffff821115610c6257610c61610df2565b5b602083019250600182023603831315610c7e57610c7d610e06565b5b509250929050565b60008190508160005260206000209050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000610cde82610ce5565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610d1a82610d21565b9050919050565b6000610d2c82610d33565b9050919050565b6000610d3e82610ce5565b9050919050565b82818337600083830152505050565b60005b83811015610d72578082015181840152602081019050610d57565b83811115610d81576000848401525b50505050565b60006002820490506001821680610d9f57607f821691505b60208210811415610db357610db2610db9565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b610ea781610cd3565b8114610eb257600080fd5b50565b610ebe81610d05565b8114610ec957600080fd5b5056fea2646970667358221220639370598d8dcad7cc48e15d248474209bfbec01023d8ed4d055453bab66415464736f6c63430008070033"; type ZetaInteractorMockConstructorParams = | [signer?: Signer] diff --git a/typechain-types/factories/contracts/evm/testing/ZetaReceiverMock__factory.ts b/v1/typechain-types/factories/contracts/evm/testing/ZetaReceiverMock__factory.ts similarity index 98% rename from typechain-types/factories/contracts/evm/testing/ZetaReceiverMock__factory.ts rename to v1/typechain-types/factories/contracts/evm/testing/ZetaReceiverMock__factory.ts index 2fa5bcf3..c2163810 100644 --- a/typechain-types/factories/contracts/evm/testing/ZetaReceiverMock__factory.ts +++ b/v1/typechain-types/factories/contracts/evm/testing/ZetaReceiverMock__factory.ts @@ -124,7 +124,7 @@ const _abi = [ ] as const; const _bytecode = - "0x608060405234801561001057600080fd5b506102d5806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80633749c51a1461003b5780633ff0693c14610057575b600080fd5b6100556004803603810190610050919061018b565b610073565b005b610071600480360381019061006c91906101d4565b6100bf565b005b7f72a301dee3abcbe15615f3e253229bf4b4f508460603d674991c9a777b833c6e8160400160208101906100a7919061015e565b6040516100b4919061022c565b60405180910390a150565b7f53bd04e26f94f13ff43da96839541821041c309c6f624712192cbe3a2d133cc48160000160208101906100f3919061015e565b604051610100919061022c565b60405180910390a150565b60008135905061011a81610288565b92915050565b600060a0828403121561013657610135610279565b5b81905092915050565b600060c0828403121561015557610154610279565b5b81905092915050565b60006020828403121561017457610173610283565b5b60006101828482850161010b565b91505092915050565b6000602082840312156101a1576101a0610283565b5b600082013567ffffffffffffffff8111156101bf576101be61027e565b5b6101cb84828501610120565b91505092915050565b6000602082840312156101ea576101e9610283565b5b600082013567ffffffffffffffff8111156102085761020761027e565b5b6102148482850161013f565b91505092915050565b61022681610247565b82525050565b6000602082019050610241600083018461021d565b92915050565b600061025282610259565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b600080fd5b600080fd5b61029181610247565b811461029c57600080fd5b5056fea264697066735822122008485e037d9a20d8e9f8d1e9456b89006367d84f7e0966e1d820fe73c0d706ea64736f6c63430008070033"; + "0x608060405234801561001057600080fd5b506102d5806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80633749c51a1461003b5780633ff0693c14610057575b600080fd5b6100556004803603810190610050919061018b565b610073565b005b610071600480360381019061006c91906101d4565b6100bf565b005b7f72a301dee3abcbe15615f3e253229bf4b4f508460603d674991c9a777b833c6e8160400160208101906100a7919061015e565b6040516100b4919061022c565b60405180910390a150565b7f53bd04e26f94f13ff43da96839541821041c309c6f624712192cbe3a2d133cc48160000160208101906100f3919061015e565b604051610100919061022c565b60405180910390a150565b60008135905061011a81610288565b92915050565b600060a0828403121561013657610135610279565b5b81905092915050565b600060c0828403121561015557610154610279565b5b81905092915050565b60006020828403121561017457610173610283565b5b60006101828482850161010b565b91505092915050565b6000602082840312156101a1576101a0610283565b5b600082013567ffffffffffffffff8111156101bf576101be61027e565b5b6101cb84828501610120565b91505092915050565b6000602082840312156101ea576101e9610283565b5b600082013567ffffffffffffffff8111156102085761020761027e565b5b6102148482850161013f565b91505092915050565b61022681610247565b82525050565b6000602082019050610241600083018461021d565b92915050565b600061025282610259565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b600080fd5b600080fd5b61029181610247565b811461029c57600080fd5b5056fea26469706673582212206d3535c1f777f93a6d105378513b52ef987ededd64b301e5cc1914be4e5ba14564736f6c63430008070033"; type ZetaReceiverMockConstructorParams = | [signer?: Signer] diff --git a/typechain-types/factories/contracts/evm/testing/index.ts b/v1/typechain-types/factories/contracts/evm/testing/index.ts similarity index 100% rename from typechain-types/factories/contracts/evm/testing/index.ts rename to v1/typechain-types/factories/contracts/evm/testing/index.ts diff --git a/typechain-types/factories/contracts/evm/tools/ImmutableCreate2Factory.sol/ImmutableCreate2Factory__factory.ts b/v1/typechain-types/factories/contracts/evm/tools/ImmutableCreate2Factory.sol/ImmutableCreate2Factory__factory.ts similarity index 100% rename from typechain-types/factories/contracts/evm/tools/ImmutableCreate2Factory.sol/ImmutableCreate2Factory__factory.ts rename to v1/typechain-types/factories/contracts/evm/tools/ImmutableCreate2Factory.sol/ImmutableCreate2Factory__factory.ts diff --git a/typechain-types/factories/contracts/evm/tools/ImmutableCreate2Factory.sol/Ownable__factory.ts b/v1/typechain-types/factories/contracts/evm/tools/ImmutableCreate2Factory.sol/Ownable__factory.ts similarity index 100% rename from typechain-types/factories/contracts/evm/tools/ImmutableCreate2Factory.sol/Ownable__factory.ts rename to v1/typechain-types/factories/contracts/evm/tools/ImmutableCreate2Factory.sol/Ownable__factory.ts diff --git a/typechain-types/factories/contracts/evm/tools/ImmutableCreate2Factory.sol/index.ts b/v1/typechain-types/factories/contracts/evm/tools/ImmutableCreate2Factory.sol/index.ts similarity index 100% rename from typechain-types/factories/contracts/evm/tools/ImmutableCreate2Factory.sol/index.ts rename to v1/typechain-types/factories/contracts/evm/tools/ImmutableCreate2Factory.sol/index.ts diff --git a/typechain-types/factories/contracts/evm/tools/ZetaInteractor__factory.ts b/v1/typechain-types/factories/contracts/evm/tools/ZetaInteractor__factory.ts similarity index 100% rename from typechain-types/factories/contracts/evm/tools/ZetaInteractor__factory.ts rename to v1/typechain-types/factories/contracts/evm/tools/ZetaInteractor__factory.ts diff --git a/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/ISwapRouterPancake__factory.ts b/v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/ISwapRouterPancake__factory.ts similarity index 100% rename from typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/ISwapRouterPancake__factory.ts rename to v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/ISwapRouterPancake__factory.ts diff --git a/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/WETH9__factory.ts b/v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/WETH9__factory.ts similarity index 100% rename from typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/WETH9__factory.ts rename to v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/WETH9__factory.ts diff --git a/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/ZetaTokenConsumerPancakeV3__factory.ts b/v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/ZetaTokenConsumerPancakeV3__factory.ts similarity index 99% rename from typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/ZetaTokenConsumerPancakeV3__factory.ts rename to v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/ZetaTokenConsumerPancakeV3__factory.ts index 7f1ba318..9e2e8ce7 100644 --- a/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/ZetaTokenConsumerPancakeV3__factory.ts +++ b/v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/ZetaTokenConsumerPancakeV3__factory.ts @@ -380,7 +380,7 @@ const _abi = [ ] as const; const _bytecode = - "0x6101406040523480156200001257600080fd5b506040516200288c3803806200288c83398181016040528101906200003891906200028a565b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161480620000a05750600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b80620000d85750600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80620001105750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1562000148576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508473ffffffffffffffffffffffffffffffffffffffff166101008173ffffffffffffffffffffffffffffffffffffffff1660601b815250508373ffffffffffffffffffffffffffffffffffffffff166101208173ffffffffffffffffffffffffffffffffffffffff1660601b815250508273ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508162ffffff1660808162ffffff1660e81b815250508062ffffff1660a08162ffffff1660e81b81525050505050505050620003a2565b6000815190506200026d816200036e565b92915050565b600081519050620002848162000388565b92915050565b60008060008060008060c08789031215620002aa57620002a962000369565b5b6000620002ba89828a016200025c565b9650506020620002cd89828a016200025c565b9550506040620002e089828a016200025c565b9450506060620002f389828a016200025c565b93505060806200030689828a0162000273565b92505060a06200031989828a0162000273565b9150509295509295509295565b600062000333826200033a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062ffffff82169050919050565b600080fd5b620003798162000326565b81146200038557600080fd5b50565b62000393816200035a565b81146200039f57600080fd5b50565b60805160e81c60a05160e81c60c05160601c60e05160601c6101005160601c6101205160601c6123b6620004d660003960008181610d340152610d7f01526000818161045c0152818161067c015281816107a8015281816109b401528181610b13015281816110f80152818161124401526113530152600081816103ae0152818161054e015281816107350152818161096a015281816109d601528181610a2901528181610ddc015281816110ae0152818161111a015261116d015260008181610372015281816106f301528181610a6501528181610bc001528181610dbb015281816111af01526113770152600081816106d201528181610d5801526111d00152600081816103ea015281816107140152818161089d01528181610aa101528181610dfd015261118e01526123b66000f3fe6080604052600436106100a05760003560e01c80635b549182116100645780635b549182146101ac5780635d9dfdde146101d757806380801f8414610202578063a53fb10b1461022d578063c27745dd1461026a578063c469cf1414610295576100a7565b8063013b2ff8146100ac57806321e093b1146100dc5780632405620a146101075780633cbd70051461014457806354c49a2a1461016f576100a7565b366100a757005b600080fd5b6100c660048036038101906100c191906118c0565b6102c0565b6040516100d39190612030565b60405180910390f35b3480156100e857600080fd5b506100f161054c565b6040516100fe9190611dd3565b60405180910390f35b34801561011357600080fd5b5061012e60048036038101906101299190611900565b610570565b60405161013b9190612030565b60405180910390f35b34801561015057600080fd5b5061015961089b565b6040516101669190612015565b60405180910390f35b34801561017b57600080fd5b5061019660048036038101906101919190611967565b6108bf565b6040516101a39190612030565b60405180910390f35b3480156101b857600080fd5b506101c1610d32565b6040516101ce9190611f1b565b60405180910390f35b3480156101e357600080fd5b506101ec610d56565b6040516101f99190612015565b60405180910390f35b34801561020e57600080fd5b50610217610d7a565b6040516102249190611ee5565b60405180910390f35b34801561023957600080fd5b50610254600480360381019061024f9190611900565b610f6b565b6040516102619190612030565b60405180910390f35b34801561027657600080fd5b5061027f611351565b60405161028c9190611f00565b60405180910390f35b3480156102a157600080fd5b506102aa611375565b6040516102b79190611dd3565b60405180910390f35b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610328576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000341415610363576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006040518060e001604052807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000062ffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001348152602001848152602001600073ffffffffffffffffffffffffffffffffffffffff16815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166304e45aaf34846040518363ffffffff1660e01b81526004016104b49190611ffa565b6020604051808303818588803b1580156104cd57600080fd5b505af11580156104e1573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906105069190611a14565b90507f87890b0a30955b1db16cc894fbe24779ae05d9f337bfe8b6dfc0809b5bf9da11348260405161053992919061204b565b60405180910390a1809250505092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806105d85750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561060f576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082141561064a576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106773330848673ffffffffffffffffffffffffffffffffffffffff16611399909392919063ffffffff16565b6106c27f0000000000000000000000000000000000000000000000000000000000000000838573ffffffffffffffffffffffffffffffffffffffff166114229092919063ffffffff16565b60006040518060800160405280857f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000604051602001610768959493929190611d48565b60405160208183030381529060405281526020018773ffffffffffffffffffffffffffffffffffffffff16815260200184815260200186815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b858183f836040518263ffffffff1660e01b81526004016107ff9190611fd8565b602060405180830381600087803b15801561081957600080fd5b505af115801561082d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108519190611a14565b90507f017190d3d99ee6d8dd0604ef1e71ff9802810c6485f57c9b2ed6169848dd119f85858360405161088693929190611eae565b60405180910390a18092505050949350505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610927576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000821415610962576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109af3330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16611399909392919063ffffffff16565b610a1a7f0000000000000000000000000000000000000000000000000000000000000000837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166114229092919063ffffffff16565b60006040518060e001604052807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000062ffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff168152602001848152602001858152602001600073ffffffffffffffffffffffffffffffffffffffff16815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166304e45aaf836040518263ffffffff1660e01b8152600401610b6a9190611ffa565b602060405180830381600087803b158015610b8457600080fd5b505af1158015610b98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bbc9190611a14565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b8152600401610c179190612030565b600060405180830381600087803b158015610c3157600080fd5b505af1158015610c45573d6000803e3d6000fd5b505050507f74e171117e91660f493740924d8bad0caf48dc4fbccb767fb05935397a2c17ae8482604051610c7a92919061204b565b60405180910390a160008673ffffffffffffffffffffffffffffffffffffffff1682604051610ca890611dbe565b60006040518083038185875af1925050503d8060008114610ce5576040519150601f19603f3d011682016040523d82523d6000602084013e610cea565b606091505b5050905080610d25576040517f3794aeaf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8193505050509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16631698ee827f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006040518463ffffffff1660e01b8152600401610e3a93929190611e17565b60206040518083038186803b158015610e5257600080fd5b505afa158015610e66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8a9190611893565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ecb576000915050610f68565b600081905060008173ffffffffffffffffffffffffffffffffffffffff16631a6865026040518163ffffffff1660e01b815260040160206040518083038186803b158015610f1857600080fd5b505afa158015610f2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5091906119e7565b6fffffffffffffffffffffffffffffffff1611925050505b90565b60008060009054906101000a900460ff1615610fb3576040517f29f745a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016000806101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806110345750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561106b576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008214156110a6576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110f33330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16611399909392919063ffffffff16565b61115e7f0000000000000000000000000000000000000000000000000000000000000000837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166114229092919063ffffffff16565b600060405180608001604052807f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000089604051602001611204959493929190611d48565b60405160208183030381529060405281526020018773ffffffffffffffffffffffffffffffffffffffff16815260200184815260200186815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b858183f836040518263ffffffff1660e01b815260040161129b9190611fd8565b602060405180830381600087803b1580156112b557600080fd5b505af11580156112c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ed9190611a14565b90507f0a7cb8f6e1d29e616c1209a3f418c17b3a9137005377f6dd072217b1ede2573b85858360405161132293929190611eae565b60405180910390a1809250505060008060006101000a81548160ff021916908315150217905550949350505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b61141c846323b872dd60e01b8585856040516024016113ba93929190611e4e565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611580565b50505050565b60008114806114bb575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b8152600401611469929190611dee565b60206040518083038186803b15801561148157600080fd5b505afa158015611495573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b99190611a14565b145b6114fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f190611fb8565b60405180910390fd5b61157b8363095ea7b360e01b8484604051602401611519929190611e85565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611580565b505050565b60006115e2826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166116479092919063ffffffff16565b9050600081511115611642578080602001905181019061160291906119ba565b611641576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163890611f98565b60405180910390fd5b5b505050565b6060611656848460008561165f565b90509392505050565b6060824710156116a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169b90611f58565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516116cd9190611da7565b60006040518083038185875af1925050503d806000811461170a576040519150601f19603f3d011682016040523d82523d6000602084013e61170f565b606091505b50915091506117208783838761172c565b92505050949350505050565b6060831561178f5760008351141561178757611747856117a2565b611786576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177d90611f78565b60405180910390fd5b5b82905061179a565b61179983836117c5565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156117d85781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180c9190611f36565b60405180910390fd5b60008135905061182481612324565b92915050565b60008151905061183981612324565b92915050565b60008151905061184e8161233b565b92915050565b60008151905061186381612352565b92915050565b60008135905061187881612369565b92915050565b60008151905061188d81612369565b92915050565b6000602082840312156118a9576118a86121db565b5b60006118b78482850161182a565b91505092915050565b600080604083850312156118d7576118d66121db565b5b60006118e585828601611815565b92505060206118f685828601611869565b9150509250929050565b6000806000806080858703121561191a576119196121db565b5b600061192887828801611815565b945050602061193987828801611869565b935050604061194a87828801611815565b925050606061195b87828801611869565b91505092959194509250565b6000806000606084860312156119805761197f6121db565b5b600061198e86828701611815565b935050602061199f86828701611869565b92505060406119b086828701611869565b9150509250925092565b6000602082840312156119d0576119cf6121db565b5b60006119de8482850161183f565b91505092915050565b6000602082840312156119fd576119fc6121db565b5b6000611a0b84828501611854565b91505092915050565b600060208284031215611a2a57611a296121db565b5b6000611a388482850161187e565b91505092915050565b611a4a816120b7565b82525050565b611a59816120b7565b82525050565b611a70611a6b826120b7565b6121a5565b82525050565b611a7f816120c9565b82525050565b6000611a9082612074565b611a9a818561208a565b9350611aaa818560208601612172565b611ab3816121e0565b840191505092915050565b6000611ac982612074565b611ad3818561209b565b9350611ae3818560208601612172565b80840191505092915050565b611af88161212a565b82525050565b611b078161213c565b82525050565b6000611b188261207f565b611b2281856120a6565b9350611b32818560208601612172565b611b3b816121e0565b840191505092915050565b6000611b536026836120a6565b9150611b5e8261220b565b604082019050919050565b6000611b7660008361209b565b9150611b818261225a565b600082019050919050565b6000611b99601d836120a6565b9150611ba48261225d565b602082019050919050565b6000611bbc602a836120a6565b9150611bc782612286565b604082019050919050565b6000611bdf6036836120a6565b9150611bea826122d5565b604082019050919050565b60006080830160008301518482036000860152611c128282611a85565b9150506020830151611c276020860182611a41565b506040830151611c3a6040860182611d2a565b506060830151611c4d6060860182611d2a565b508091505092915050565b60e082016000820151611c6e6000850182611a41565b506020820151611c816020850182611a41565b506040820151611c946040850182611cf5565b506060820151611ca76060850182611a41565b506080820151611cba6080850182611d2a565b5060a0820151611ccd60a0850182611d2a565b5060c0820151611ce060c0850182611ce6565b50505050565b611cef816120f1565b82525050565b611cfe81612111565b82525050565b611d0d81612111565b82525050565b611d24611d1f82612111565b6121c9565b82525050565b611d3381612120565b82525050565b611d4281612120565b82525050565b6000611d548288611a5f565b601482019150611d648287611d13565b600382019150611d748286611a5f565b601482019150611d848285611d13565b600382019150611d948284611a5f565b6014820191508190509695505050505050565b6000611db38284611abe565b915081905092915050565b6000611dc982611b69565b9150819050919050565b6000602082019050611de86000830184611a50565b92915050565b6000604082019050611e036000830185611a50565b611e106020830184611a50565b9392505050565b6000606082019050611e2c6000830186611a50565b611e396020830185611a50565b611e466040830184611d04565b949350505050565b6000606082019050611e636000830186611a50565b611e706020830185611a50565b611e7d6040830184611d39565b949350505050565b6000604082019050611e9a6000830185611a50565b611ea76020830184611d39565b9392505050565b6000606082019050611ec36000830186611a50565b611ed06020830185611d39565b611edd6040830184611d39565b949350505050565b6000602082019050611efa6000830184611a76565b92915050565b6000602082019050611f156000830184611aef565b92915050565b6000602082019050611f306000830184611afe565b92915050565b60006020820190508181036000830152611f508184611b0d565b905092915050565b60006020820190508181036000830152611f7181611b46565b9050919050565b60006020820190508181036000830152611f9181611b8c565b9050919050565b60006020820190508181036000830152611fb181611baf565b9050919050565b60006020820190508181036000830152611fd181611bd2565b9050919050565b60006020820190508181036000830152611ff28184611bf5565b905092915050565b600060e08201905061200f6000830184611c58565b92915050565b600060208201905061202a6000830184611d04565b92915050565b60006020820190506120456000830184611d39565b92915050565b60006040820190506120606000830185611d39565b61206d6020830184611d39565b9392505050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006120c2826120f1565b9050919050565b60008115159050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062ffffff82169050919050565b6000819050919050565b60006121358261214e565b9050919050565b60006121478261214e565b9050919050565b600061215982612160565b9050919050565b600061216b826120f1565b9050919050565b60005b83811015612190578082015181840152602081019050612175565b8381111561219f576000848401525b50505050565b60006121b0826121b7565b9050919050565b60006121c2826121fe565b9050919050565b60006121d4826121f1565b9050919050565b600080fd5b6000601f19601f8301169050919050565b60008160e81b9050919050565b60008160601b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b50565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b61232d816120b7565b811461233857600080fd5b50565b612344816120c9565b811461234f57600080fd5b50565b61235b816120d5565b811461236657600080fd5b50565b61237281612120565b811461237d57600080fd5b5056fea264697066735822122027f90d12abe6bc83d01268f9d1f2b1f06cb3a1291fe43afcacc978ec0c07420664736f6c63430008070033"; + "0x6101406040523480156200001257600080fd5b506040516200288c3803806200288c83398181016040528101906200003891906200028a565b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161480620000a05750600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b80620000d85750600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80620001105750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1562000148576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508473ffffffffffffffffffffffffffffffffffffffff166101008173ffffffffffffffffffffffffffffffffffffffff1660601b815250508373ffffffffffffffffffffffffffffffffffffffff166101208173ffffffffffffffffffffffffffffffffffffffff1660601b815250508273ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508162ffffff1660808162ffffff1660e81b815250508062ffffff1660a08162ffffff1660e81b81525050505050505050620003a2565b6000815190506200026d816200036e565b92915050565b600081519050620002848162000388565b92915050565b60008060008060008060c08789031215620002aa57620002a962000369565b5b6000620002ba89828a016200025c565b9650506020620002cd89828a016200025c565b9550506040620002e089828a016200025c565b9450506060620002f389828a016200025c565b93505060806200030689828a0162000273565b92505060a06200031989828a0162000273565b9150509295509295509295565b600062000333826200033a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062ffffff82169050919050565b600080fd5b620003798162000326565b81146200038557600080fd5b50565b62000393816200035a565b81146200039f57600080fd5b50565b60805160e81c60a05160e81c60c05160601c60e05160601c6101005160601c6101205160601c6123b6620004d660003960008181610d340152610d7f01526000818161045c0152818161067c015281816107a8015281816109b401528181610b13015281816110f80152818161124401526113530152600081816103ae0152818161054e015281816107350152818161096a015281816109d601528181610a2901528181610ddc015281816110ae0152818161111a015261116d015260008181610372015281816106f301528181610a6501528181610bc001528181610dbb015281816111af01526113770152600081816106d201528181610d5801526111d00152600081816103ea015281816107140152818161089d01528181610aa101528181610dfd015261118e01526123b66000f3fe6080604052600436106100a05760003560e01c80635b549182116100645780635b549182146101ac5780635d9dfdde146101d757806380801f8414610202578063a53fb10b1461022d578063c27745dd1461026a578063c469cf1414610295576100a7565b8063013b2ff8146100ac57806321e093b1146100dc5780632405620a146101075780633cbd70051461014457806354c49a2a1461016f576100a7565b366100a757005b600080fd5b6100c660048036038101906100c191906118c0565b6102c0565b6040516100d39190612030565b60405180910390f35b3480156100e857600080fd5b506100f161054c565b6040516100fe9190611dd3565b60405180910390f35b34801561011357600080fd5b5061012e60048036038101906101299190611900565b610570565b60405161013b9190612030565b60405180910390f35b34801561015057600080fd5b5061015961089b565b6040516101669190612015565b60405180910390f35b34801561017b57600080fd5b5061019660048036038101906101919190611967565b6108bf565b6040516101a39190612030565b60405180910390f35b3480156101b857600080fd5b506101c1610d32565b6040516101ce9190611f1b565b60405180910390f35b3480156101e357600080fd5b506101ec610d56565b6040516101f99190612015565b60405180910390f35b34801561020e57600080fd5b50610217610d7a565b6040516102249190611ee5565b60405180910390f35b34801561023957600080fd5b50610254600480360381019061024f9190611900565b610f6b565b6040516102619190612030565b60405180910390f35b34801561027657600080fd5b5061027f611351565b60405161028c9190611f00565b60405180910390f35b3480156102a157600080fd5b506102aa611375565b6040516102b79190611dd3565b60405180910390f35b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610328576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000341415610363576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006040518060e001604052807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000062ffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001348152602001848152602001600073ffffffffffffffffffffffffffffffffffffffff16815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166304e45aaf34846040518363ffffffff1660e01b81526004016104b49190611ffa565b6020604051808303818588803b1580156104cd57600080fd5b505af11580156104e1573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906105069190611a14565b90507f87890b0a30955b1db16cc894fbe24779ae05d9f337bfe8b6dfc0809b5bf9da11348260405161053992919061204b565b60405180910390a1809250505092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806105d85750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561060f576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082141561064a576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106773330848673ffffffffffffffffffffffffffffffffffffffff16611399909392919063ffffffff16565b6106c27f0000000000000000000000000000000000000000000000000000000000000000838573ffffffffffffffffffffffffffffffffffffffff166114229092919063ffffffff16565b60006040518060800160405280857f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000604051602001610768959493929190611d48565b60405160208183030381529060405281526020018773ffffffffffffffffffffffffffffffffffffffff16815260200184815260200186815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b858183f836040518263ffffffff1660e01b81526004016107ff9190611fd8565b602060405180830381600087803b15801561081957600080fd5b505af115801561082d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108519190611a14565b90507f017190d3d99ee6d8dd0604ef1e71ff9802810c6485f57c9b2ed6169848dd119f85858360405161088693929190611eae565b60405180910390a18092505050949350505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610927576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000821415610962576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109af3330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16611399909392919063ffffffff16565b610a1a7f0000000000000000000000000000000000000000000000000000000000000000837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166114229092919063ffffffff16565b60006040518060e001604052807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000062ffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff168152602001848152602001858152602001600073ffffffffffffffffffffffffffffffffffffffff16815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166304e45aaf836040518263ffffffff1660e01b8152600401610b6a9190611ffa565b602060405180830381600087803b158015610b8457600080fd5b505af1158015610b98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bbc9190611a14565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b8152600401610c179190612030565b600060405180830381600087803b158015610c3157600080fd5b505af1158015610c45573d6000803e3d6000fd5b505050507f74e171117e91660f493740924d8bad0caf48dc4fbccb767fb05935397a2c17ae8482604051610c7a92919061204b565b60405180910390a160008673ffffffffffffffffffffffffffffffffffffffff1682604051610ca890611dbe565b60006040518083038185875af1925050503d8060008114610ce5576040519150601f19603f3d011682016040523d82523d6000602084013e610cea565b606091505b5050905080610d25576040517f3794aeaf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8193505050509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16631698ee827f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006040518463ffffffff1660e01b8152600401610e3a93929190611e17565b60206040518083038186803b158015610e5257600080fd5b505afa158015610e66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8a9190611893565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ecb576000915050610f68565b600081905060008173ffffffffffffffffffffffffffffffffffffffff16631a6865026040518163ffffffff1660e01b815260040160206040518083038186803b158015610f1857600080fd5b505afa158015610f2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5091906119e7565b6fffffffffffffffffffffffffffffffff1611925050505b90565b60008060009054906101000a900460ff1615610fb3576040517f29f745a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016000806101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806110345750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561106b576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008214156110a6576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110f33330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16611399909392919063ffffffff16565b61115e7f0000000000000000000000000000000000000000000000000000000000000000837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166114229092919063ffffffff16565b600060405180608001604052807f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000089604051602001611204959493929190611d48565b60405160208183030381529060405281526020018773ffffffffffffffffffffffffffffffffffffffff16815260200184815260200186815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b858183f836040518263ffffffff1660e01b815260040161129b9190611fd8565b602060405180830381600087803b1580156112b557600080fd5b505af11580156112c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ed9190611a14565b90507f0a7cb8f6e1d29e616c1209a3f418c17b3a9137005377f6dd072217b1ede2573b85858360405161132293929190611eae565b60405180910390a1809250505060008060006101000a81548160ff021916908315150217905550949350505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b61141c846323b872dd60e01b8585856040516024016113ba93929190611e4e565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611580565b50505050565b60008114806114bb575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b8152600401611469929190611dee565b60206040518083038186803b15801561148157600080fd5b505afa158015611495573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b99190611a14565b145b6114fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f190611fb8565b60405180910390fd5b61157b8363095ea7b360e01b8484604051602401611519929190611e85565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611580565b505050565b60006115e2826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166116479092919063ffffffff16565b9050600081511115611642578080602001905181019061160291906119ba565b611641576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163890611f98565b60405180910390fd5b5b505050565b6060611656848460008561165f565b90509392505050565b6060824710156116a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169b90611f58565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516116cd9190611da7565b60006040518083038185875af1925050503d806000811461170a576040519150601f19603f3d011682016040523d82523d6000602084013e61170f565b606091505b50915091506117208783838761172c565b92505050949350505050565b6060831561178f5760008351141561178757611747856117a2565b611786576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177d90611f78565b60405180910390fd5b5b82905061179a565b61179983836117c5565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156117d85781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180c9190611f36565b60405180910390fd5b60008135905061182481612324565b92915050565b60008151905061183981612324565b92915050565b60008151905061184e8161233b565b92915050565b60008151905061186381612352565b92915050565b60008135905061187881612369565b92915050565b60008151905061188d81612369565b92915050565b6000602082840312156118a9576118a86121db565b5b60006118b78482850161182a565b91505092915050565b600080604083850312156118d7576118d66121db565b5b60006118e585828601611815565b92505060206118f685828601611869565b9150509250929050565b6000806000806080858703121561191a576119196121db565b5b600061192887828801611815565b945050602061193987828801611869565b935050604061194a87828801611815565b925050606061195b87828801611869565b91505092959194509250565b6000806000606084860312156119805761197f6121db565b5b600061198e86828701611815565b935050602061199f86828701611869565b92505060406119b086828701611869565b9150509250925092565b6000602082840312156119d0576119cf6121db565b5b60006119de8482850161183f565b91505092915050565b6000602082840312156119fd576119fc6121db565b5b6000611a0b84828501611854565b91505092915050565b600060208284031215611a2a57611a296121db565b5b6000611a388482850161187e565b91505092915050565b611a4a816120b7565b82525050565b611a59816120b7565b82525050565b611a70611a6b826120b7565b6121a5565b82525050565b611a7f816120c9565b82525050565b6000611a9082612074565b611a9a818561208a565b9350611aaa818560208601612172565b611ab3816121e0565b840191505092915050565b6000611ac982612074565b611ad3818561209b565b9350611ae3818560208601612172565b80840191505092915050565b611af88161212a565b82525050565b611b078161213c565b82525050565b6000611b188261207f565b611b2281856120a6565b9350611b32818560208601612172565b611b3b816121e0565b840191505092915050565b6000611b536026836120a6565b9150611b5e8261220b565b604082019050919050565b6000611b7660008361209b565b9150611b818261225a565b600082019050919050565b6000611b99601d836120a6565b9150611ba48261225d565b602082019050919050565b6000611bbc602a836120a6565b9150611bc782612286565b604082019050919050565b6000611bdf6036836120a6565b9150611bea826122d5565b604082019050919050565b60006080830160008301518482036000860152611c128282611a85565b9150506020830151611c276020860182611a41565b506040830151611c3a6040860182611d2a565b506060830151611c4d6060860182611d2a565b508091505092915050565b60e082016000820151611c6e6000850182611a41565b506020820151611c816020850182611a41565b506040820151611c946040850182611cf5565b506060820151611ca76060850182611a41565b506080820151611cba6080850182611d2a565b5060a0820151611ccd60a0850182611d2a565b5060c0820151611ce060c0850182611ce6565b50505050565b611cef816120f1565b82525050565b611cfe81612111565b82525050565b611d0d81612111565b82525050565b611d24611d1f82612111565b6121c9565b82525050565b611d3381612120565b82525050565b611d4281612120565b82525050565b6000611d548288611a5f565b601482019150611d648287611d13565b600382019150611d748286611a5f565b601482019150611d848285611d13565b600382019150611d948284611a5f565b6014820191508190509695505050505050565b6000611db38284611abe565b915081905092915050565b6000611dc982611b69565b9150819050919050565b6000602082019050611de86000830184611a50565b92915050565b6000604082019050611e036000830185611a50565b611e106020830184611a50565b9392505050565b6000606082019050611e2c6000830186611a50565b611e396020830185611a50565b611e466040830184611d04565b949350505050565b6000606082019050611e636000830186611a50565b611e706020830185611a50565b611e7d6040830184611d39565b949350505050565b6000604082019050611e9a6000830185611a50565b611ea76020830184611d39565b9392505050565b6000606082019050611ec36000830186611a50565b611ed06020830185611d39565b611edd6040830184611d39565b949350505050565b6000602082019050611efa6000830184611a76565b92915050565b6000602082019050611f156000830184611aef565b92915050565b6000602082019050611f306000830184611afe565b92915050565b60006020820190508181036000830152611f508184611b0d565b905092915050565b60006020820190508181036000830152611f7181611b46565b9050919050565b60006020820190508181036000830152611f9181611b8c565b9050919050565b60006020820190508181036000830152611fb181611baf565b9050919050565b60006020820190508181036000830152611fd181611bd2565b9050919050565b60006020820190508181036000830152611ff28184611bf5565b905092915050565b600060e08201905061200f6000830184611c58565b92915050565b600060208201905061202a6000830184611d04565b92915050565b60006020820190506120456000830184611d39565b92915050565b60006040820190506120606000830185611d39565b61206d6020830184611d39565b9392505050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006120c2826120f1565b9050919050565b60008115159050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062ffffff82169050919050565b6000819050919050565b60006121358261214e565b9050919050565b60006121478261214e565b9050919050565b600061215982612160565b9050919050565b600061216b826120f1565b9050919050565b60005b83811015612190578082015181840152602081019050612175565b8381111561219f576000848401525b50505050565b60006121b0826121b7565b9050919050565b60006121c2826121fe565b9050919050565b60006121d4826121f1565b9050919050565b600080fd5b6000601f19601f8301169050919050565b60008160e81b9050919050565b60008160601b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b50565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b61232d816120b7565b811461233857600080fd5b50565b612344816120c9565b811461234f57600080fd5b50565b61235b816120d5565b811461236657600080fd5b50565b61237281612120565b811461237d57600080fd5b5056fea26469706673582212208a18b8a2abc958aa0cad934a5005344d1b05623bd9c3bfa606e20b2e17df210364736f6c63430008070033"; type ZetaTokenConsumerPancakeV3ConstructorParams = | [signer?: Signer] diff --git a/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/ZetaTokenConsumerUniV3Errors__factory.ts b/v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/ZetaTokenConsumerUniV3Errors__factory.ts similarity index 100% rename from typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/ZetaTokenConsumerUniV3Errors__factory.ts rename to v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/ZetaTokenConsumerUniV3Errors__factory.ts diff --git a/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/index.ts b/v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/index.ts similarity index 100% rename from typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/index.ts rename to v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/index.ts diff --git a/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/WETH9__factory.ts b/v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/WETH9__factory.ts similarity index 100% rename from typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/WETH9__factory.ts rename to v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/WETH9__factory.ts diff --git a/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/ZetaTokenConsumerTridentErrors__factory.ts b/v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/ZetaTokenConsumerTridentErrors__factory.ts similarity index 100% rename from typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/ZetaTokenConsumerTridentErrors__factory.ts rename to v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/ZetaTokenConsumerTridentErrors__factory.ts diff --git a/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/ZetaTokenConsumerTrident__factory.ts b/v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/ZetaTokenConsumerTrident__factory.ts similarity index 99% rename from typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/ZetaTokenConsumerTrident__factory.ts rename to v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/ZetaTokenConsumerTrident__factory.ts index b9edd6ce..f12b55c0 100644 --- a/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/ZetaTokenConsumerTrident__factory.ts +++ b/v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/ZetaTokenConsumerTrident__factory.ts @@ -324,7 +324,7 @@ const _abi = [ ] as const; const _bytecode = - "0x6101006040523480156200001257600080fd5b5060405162002b5a38038062002b5a833981810160405281019062000038919062000245565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480620000a05750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80620000d85750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80620001105750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b1562000148576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508273ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508073ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b81525050505050506200030a565b6000815190506200023f81620002f0565b92915050565b60008060008060808587031215620002625762000261620002eb565b5b600062000272878288016200022e565b945050602062000285878288016200022e565b935050604062000298878288016200022e565b9250506060620002ab878288016200022e565b91505092959194509250565b6000620002c482620002cb565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b620002fb81620002b7565b81146200030757600080fd5b50565b60805160601c60a05160601c60c05160601c60e05160601c6127466200041460003960008181610316015281816107000152818161080c01528181610b4201528181610d14015281816111e301526112cf0152600081816104620152818161068501528181610a4801528181610c5901528181610e7f01528181610f7401528181611128015261152b0152600081816102ea01528181610557015281816107dc01528181610c0f01528181610c7b01528181610cc701528181610dd9015281816110de0152818161114a0152818161119601526114b60152600081816102c9015281816106d4015281816107bb01528181610ce8015281816111b7015261129e01526127466000f3fe60806040526004361061007f5760003560e01c806354c49a2a1161004e57806354c49a2a1461014e57806364b5528a1461018b57806380801f84146101b6578063a53fb10b146101e157610086565b8063013b2ff81461008b57806321e093b1146100bb5780632405620a146100e65780634219dc401461012357610086565b3661008657005b600080fd5b6100a560048036038101906100a09190611c10565b61021e565b6040516100b2919061231a565b60405180910390f35b3480156100c757600080fd5b506100d0610555565b6040516100dd91906120ca565b60405180910390f35b3480156100f257600080fd5b5061010d60048036038101906101089190611c50565b610579565b60405161011a919061231a565b60405180910390f35b34801561012f57600080fd5b50610138610b40565b6040516101459190612205565b60405180910390f35b34801561015a57600080fd5b5061017560048036038101906101709190611cb7565b610b64565b604051610182919061231a565b60405180910390f35b34801561019757600080fd5b506101a0610f72565b6040516101ad9190612220565b60405180910390f35b3480156101c257600080fd5b506101cb610f96565b6040516101d891906121ea565b60405180910390f35b3480156101ed57600080fd5b5061020860048036038101906102039190611c50565b610f9b565b604051610215919061231a565b60405180910390f35b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610286576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60003414156102c1576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008061030e7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061163d565b9150915060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166371a258128484600060016040518563ffffffff1660e01b8152600401610375949392919061210e565b60006040518083038186803b15801561038d57600080fd5b505afa1580156103a1573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906103ca9190611d0a565b905060006040518060c00160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020013481526020018781526020018360008151811061041657610415612532565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c07f5c3234846040518363ffffffff1660e01b81526004016104ba91906122ff565b6020604051808303818588803b1580156104d357600080fd5b505af11580156104e7573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061050c9190611d80565b90507f87890b0a30955b1db16cc894fbe24779ae05d9f337bfe8b6dfc0809b5bf9da11348260405161053f929190612335565b60405180910390a1809550505050505092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806105e15750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15610618576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000821415610653576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106803330848673ffffffffffffffffffffffffffffffffffffffff1661168d909392919063ffffffff16565b6106cb7f0000000000000000000000000000000000000000000000000000000000000000838573ffffffffffffffffffffffffffffffffffffffff166117169092919063ffffffff16565b6000806106f8857f000000000000000000000000000000000000000000000000000000000000000061163d565b9150915060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166371a258128484600060016040518563ffffffff1660e01b815260040161075f949392919061210e565b60006040518083038186803b15801561077757600080fd5b505afa15801561078b573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906107b49190611d0a565b90506108007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061163d565b809350819450505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166371a258128585600060016040518563ffffffff1660e01b815260040161086b949392919061210e565b60006040518083038186803b15801561088357600080fd5b505afa158015610897573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906108c09190611d0a565b90506000600267ffffffffffffffff8111156108df576108de612561565b5b60405190808252806020026020018201604052801561090d5781602001602082028036833780820191505090505b5090508260008151811061092457610923612532565b5b6020026020010151816000815181106109405761093f612532565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508160008151811061098e5761098d612532565b5b6020026020010151816001815181106109aa576109a9612532565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060006040518060c001604052808a73ffffffffffffffffffffffffffffffffffffffff1681526020018981526020018b81526020018381526020018c73ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663363a9dba836040518263ffffffff1660e01b8152600401610a9f91906122dd565b602060405180830381600087803b158015610ab957600080fd5b505af1158015610acd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af19190611d80565b90507f017190d3d99ee6d8dd0604ef1e71ff9802810c6485f57c9b2ed6169848dd119f8a8a83604051610b26939291906121b3565b60405180910390a180975050505050505050949350505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610bcc576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000821415610c07576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c543330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661168d909392919063ffffffff16565b610cbf7f0000000000000000000000000000000000000000000000000000000000000000837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166117169092919063ffffffff16565b600080610d0c7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061163d565b9150915060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166371a258128484600060016040518563ffffffff1660e01b8152600401610d73949392919061210e565b60006040518083038186803b158015610d8b57600080fd5b505afa158015610d9f573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610dc89190611d0a565b905060006040518060c001604052807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16815260200187815260200188815260200183600081518110610e3357610e32612532565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff16815260200160011515815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c07f5c32836040518263ffffffff1660e01b8152600401610ed691906122ff565b602060405180830381600087803b158015610ef057600080fd5b505af1158015610f04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f289190611d80565b90507f74e171117e91660f493740924d8bad0caf48dc4fbccb767fb05935397a2c17ae8782604051610f5b929190612335565b60405180910390a180955050505050509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600090565b60008060009054906101000a900460ff1615610fe3576040517f29f745a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016000806101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806110645750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561109b576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008214156110d6576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111233330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661168d909392919063ffffffff16565b61118e7f0000000000000000000000000000000000000000000000000000000000000000837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166117169092919063ffffffff16565b6000806111db7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061163d565b9150915060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166371a258128484600060016040518563ffffffff1660e01b8152600401611242949392919061210e565b60006040518083038186803b15801561125a57600080fd5b505afa15801561126e573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906112979190611d0a565b90506112c37f00000000000000000000000000000000000000000000000000000000000000008761163d565b809350819450505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166371a258128585600060016040518563ffffffff1660e01b815260040161132e949392919061210e565b60006040518083038186803b15801561134657600080fd5b505afa15801561135a573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906113839190611d0a565b90506000600267ffffffffffffffff8111156113a2576113a1612561565b5b6040519080825280602002602001820160405280156113d05781602001602082028036833780820191505090505b509050826000815181106113e7576113e6612532565b5b60200260200101518160008151811061140357611402612532565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508160008151811061145157611450612532565b5b60200260200101518160018151811061146d5761146c612532565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060006040518060c001604052807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020018981526020018b81526020018381526020018c73ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663363a9dba836040518263ffffffff1660e01b815260040161158291906122dd565b602060405180830381600087803b15801561159c57600080fd5b505af11580156115b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d49190611d80565b90507f0a7cb8f6e1d29e616c1209a3f418c17b3a9137005377f6dd072217b1ede2573b8a8a83604051611609939291906121b3565b60405180910390a18097505050505050505060008060006101000a81548160ff021916908315150217905550949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16101561167f57838391509150611686565b8284915091505b9250929050565b611710846323b872dd60e01b8585856040516024016116ae93929190612153565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611874565b50505050565b60008114806117af575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b815260040161175d9291906120e5565b60206040518083038186803b15801561177557600080fd5b505afa158015611789573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ad9190611d80565b145b6117ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e5906122bd565b60405180910390fd5b61186f8363095ea7b360e01b848460405160240161180d92919061218a565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611874565b505050565b60006118d6826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661193b9092919063ffffffff16565b905060008151111561193657808060200190518101906118f69190611d53565b611935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192c9061229d565b60405180910390fd5b5b505050565b606061194a8484600085611953565b90509392505050565b606082471015611998576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198f9061225d565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516119c191906120b3565b60006040518083038185875af1925050503d80600081146119fe576040519150601f19603f3d011682016040523d82523d6000602084013e611a03565b606091505b5091509150611a1487838387611a20565b92505050949350505050565b60608315611a8357600083511415611a7b57611a3b85611a96565b611a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a719061227d565b60405180910390fd5b5b829050611a8e565b611a8d8383611ab9565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600082511115611acc5781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b00919061223b565b60405180910390fd5b6000611b1c611b1784612383565b61235e565b90508083825260208201905082856020860282011115611b3f57611b3e612595565b5b60005b85811015611b6f5781611b558882611b8e565b845260208401935060208301925050600181019050611b42565b5050509392505050565b600081359050611b88816126cb565b92915050565b600081519050611b9d816126cb565b92915050565b600082601f830112611bb857611bb7612590565b5b8151611bc8848260208601611b09565b91505092915050565b600081519050611be0816126e2565b92915050565b600081359050611bf5816126f9565b92915050565b600081519050611c0a816126f9565b92915050565b60008060408385031215611c2757611c2661259f565b5b6000611c3585828601611b79565b9250506020611c4685828601611be6565b9150509250929050565b60008060008060808587031215611c6a57611c6961259f565b5b6000611c7887828801611b79565b9450506020611c8987828801611be6565b9350506040611c9a87828801611b79565b9250506060611cab87828801611be6565b91505092959194509250565b600080600060608486031215611cd057611ccf61259f565b5b6000611cde86828701611b79565b9350506020611cef86828701611be6565b9250506040611d0086828701611be6565b9150509250925092565b600060208284031215611d2057611d1f61259f565b5b600082015167ffffffffffffffff811115611d3e57611d3d61259a565b5b611d4a84828501611ba3565b91505092915050565b600060208284031215611d6957611d6861259f565b5b6000611d7784828501611bd1565b91505092915050565b600060208284031215611d9657611d9561259f565b5b6000611da484828501611bfb565b91505092915050565b6000611db98383611dc5565b60208301905092915050565b611dce8161241a565b82525050565b611ddd8161241a565b82525050565b6000611dee826123bf565b611df881856123ed565b9350611e03836123af565b8060005b83811015611e34578151611e1b8882611dad565b9750611e26836123e0565b925050600181019050611e07565b5085935050505092915050565b611e4a8161242c565b82525050565b611e598161242c565b82525050565b6000611e6a826123ca565b611e7481856123fe565b9350611e848185602086016124ce565b80840191505092915050565b611e9981612462565b82525050565b611ea881612474565b82525050565b611eb781612486565b82525050565b611ec681612498565b82525050565b6000611ed7826123d5565b611ee18185612409565b9350611ef18185602086016124ce565b611efa816125a4565b840191505092915050565b6000611f12602683612409565b9150611f1d826125b5565b604082019050919050565b6000611f35601d83612409565b9150611f4082612604565b602082019050919050565b6000611f58602a83612409565b9150611f638261262d565b604082019050919050565b6000611f7b603683612409565b9150611f868261267c565b604082019050919050565b600060c083016000830151611fa96000860182611dc5565b506020830151611fbc6020860182612095565b506040830151611fcf6040860182612095565b5060608301518482036060860152611fe78282611de3565b9150506080830151611ffc6080860182611dc5565b5060a083015161200f60a0860182611e41565b508091505092915050565b60c0820160008201516120306000850182611dc5565b5060208201516120436020850182612095565b5060408201516120566040850182612095565b5060608201516120696060850182611dc5565b50608082015161207c6080850182611dc5565b5060a082015161208f60a0850182611e41565b50505050565b61209e81612458565b82525050565b6120ad81612458565b82525050565b60006120bf8284611e5f565b915081905092915050565b60006020820190506120df6000830184611dd4565b92915050565b60006040820190506120fa6000830185611dd4565b6121076020830184611dd4565b9392505050565b60006080820190506121236000830187611dd4565b6121306020830186611dd4565b61213d6040830185611eae565b61214a6060830184611ebd565b95945050505050565b60006060820190506121686000830186611dd4565b6121756020830185611dd4565b61218260408301846120a4565b949350505050565b600060408201905061219f6000830185611dd4565b6121ac60208301846120a4565b9392505050565b60006060820190506121c86000830186611dd4565b6121d560208301856120a4565b6121e260408301846120a4565b949350505050565b60006020820190506121ff6000830184611e50565b92915050565b600060208201905061221a6000830184611e90565b92915050565b60006020820190506122356000830184611e9f565b92915050565b600060208201905081810360008301526122558184611ecc565b905092915050565b6000602082019050818103600083015261227681611f05565b9050919050565b6000602082019050818103600083015261229681611f28565b9050919050565b600060208201905081810360008301526122b681611f4b565b9050919050565b600060208201905081810360008301526122d681611f6e565b9050919050565b600060208201905081810360008301526122f78184611f91565b905092915050565b600060c082019050612314600083018461201a565b92915050565b600060208201905061232f60008301846120a4565b92915050565b600060408201905061234a60008301856120a4565b61235760208301846120a4565b9392505050565b6000612368612379565b90506123748282612501565b919050565b6000604051905090565b600067ffffffffffffffff82111561239e5761239d612561565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061242582612438565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061246d826124aa565b9050919050565b600061247f826124aa565b9050919050565b600061249182612458565b9050919050565b60006124a382612458565b9050919050565b60006124b5826124bc565b9050919050565b60006124c782612438565b9050919050565b60005b838110156124ec5780820151818401526020810190506124d1565b838111156124fb576000848401525b50505050565b61250a826125a4565b810181811067ffffffffffffffff8211171561252957612528612561565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b6126d48161241a565b81146126df57600080fd5b50565b6126eb8161242c565b81146126f657600080fd5b50565b61270281612458565b811461270d57600080fd5b5056fea26469706673582212207db2a1e3db417b41f7491218078aed9cfec4ce5d3704cc0cd4a870ca5e85a28864736f6c63430008070033"; + "0x6101006040523480156200001257600080fd5b5060405162002b5a38038062002b5a833981810160405281019062000038919062000245565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480620000a05750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80620000d85750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80620001105750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b1562000148576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508273ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508073ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b81525050505050506200030a565b6000815190506200023f81620002f0565b92915050565b60008060008060808587031215620002625762000261620002eb565b5b600062000272878288016200022e565b945050602062000285878288016200022e565b935050604062000298878288016200022e565b9250506060620002ab878288016200022e565b91505092959194509250565b6000620002c482620002cb565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b620002fb81620002b7565b81146200030757600080fd5b50565b60805160601c60a05160601c60c05160601c60e05160601c6127466200041460003960008181610316015281816107000152818161080c01528181610b4201528181610d14015281816111e301526112cf0152600081816104620152818161068501528181610a4801528181610c5901528181610e7f01528181610f7401528181611128015261152b0152600081816102ea01528181610557015281816107dc01528181610c0f01528181610c7b01528181610cc701528181610dd9015281816110de0152818161114a0152818161119601526114b60152600081816102c9015281816106d4015281816107bb01528181610ce8015281816111b7015261129e01526127466000f3fe60806040526004361061007f5760003560e01c806354c49a2a1161004e57806354c49a2a1461014e57806364b5528a1461018b57806380801f84146101b6578063a53fb10b146101e157610086565b8063013b2ff81461008b57806321e093b1146100bb5780632405620a146100e65780634219dc401461012357610086565b3661008657005b600080fd5b6100a560048036038101906100a09190611c10565b61021e565b6040516100b2919061231a565b60405180910390f35b3480156100c757600080fd5b506100d0610555565b6040516100dd91906120ca565b60405180910390f35b3480156100f257600080fd5b5061010d60048036038101906101089190611c50565b610579565b60405161011a919061231a565b60405180910390f35b34801561012f57600080fd5b50610138610b40565b6040516101459190612205565b60405180910390f35b34801561015a57600080fd5b5061017560048036038101906101709190611cb7565b610b64565b604051610182919061231a565b60405180910390f35b34801561019757600080fd5b506101a0610f72565b6040516101ad9190612220565b60405180910390f35b3480156101c257600080fd5b506101cb610f96565b6040516101d891906121ea565b60405180910390f35b3480156101ed57600080fd5b5061020860048036038101906102039190611c50565b610f9b565b604051610215919061231a565b60405180910390f35b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610286576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60003414156102c1576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008061030e7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061163d565b9150915060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166371a258128484600060016040518563ffffffff1660e01b8152600401610375949392919061210e565b60006040518083038186803b15801561038d57600080fd5b505afa1580156103a1573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906103ca9190611d0a565b905060006040518060c00160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020013481526020018781526020018360008151811061041657610415612532565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c07f5c3234846040518363ffffffff1660e01b81526004016104ba91906122ff565b6020604051808303818588803b1580156104d357600080fd5b505af11580156104e7573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061050c9190611d80565b90507f87890b0a30955b1db16cc894fbe24779ae05d9f337bfe8b6dfc0809b5bf9da11348260405161053f929190612335565b60405180910390a1809550505050505092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806105e15750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15610618576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000821415610653576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106803330848673ffffffffffffffffffffffffffffffffffffffff1661168d909392919063ffffffff16565b6106cb7f0000000000000000000000000000000000000000000000000000000000000000838573ffffffffffffffffffffffffffffffffffffffff166117169092919063ffffffff16565b6000806106f8857f000000000000000000000000000000000000000000000000000000000000000061163d565b9150915060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166371a258128484600060016040518563ffffffff1660e01b815260040161075f949392919061210e565b60006040518083038186803b15801561077757600080fd5b505afa15801561078b573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906107b49190611d0a565b90506108007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061163d565b809350819450505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166371a258128585600060016040518563ffffffff1660e01b815260040161086b949392919061210e565b60006040518083038186803b15801561088357600080fd5b505afa158015610897573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906108c09190611d0a565b90506000600267ffffffffffffffff8111156108df576108de612561565b5b60405190808252806020026020018201604052801561090d5781602001602082028036833780820191505090505b5090508260008151811061092457610923612532565b5b6020026020010151816000815181106109405761093f612532565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508160008151811061098e5761098d612532565b5b6020026020010151816001815181106109aa576109a9612532565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060006040518060c001604052808a73ffffffffffffffffffffffffffffffffffffffff1681526020018981526020018b81526020018381526020018c73ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663363a9dba836040518263ffffffff1660e01b8152600401610a9f91906122dd565b602060405180830381600087803b158015610ab957600080fd5b505af1158015610acd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af19190611d80565b90507f017190d3d99ee6d8dd0604ef1e71ff9802810c6485f57c9b2ed6169848dd119f8a8a83604051610b26939291906121b3565b60405180910390a180975050505050505050949350505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610bcc576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000821415610c07576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c543330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661168d909392919063ffffffff16565b610cbf7f0000000000000000000000000000000000000000000000000000000000000000837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166117169092919063ffffffff16565b600080610d0c7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061163d565b9150915060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166371a258128484600060016040518563ffffffff1660e01b8152600401610d73949392919061210e565b60006040518083038186803b158015610d8b57600080fd5b505afa158015610d9f573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610dc89190611d0a565b905060006040518060c001604052807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16815260200187815260200188815260200183600081518110610e3357610e32612532565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff16815260200160011515815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c07f5c32836040518263ffffffff1660e01b8152600401610ed691906122ff565b602060405180830381600087803b158015610ef057600080fd5b505af1158015610f04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f289190611d80565b90507f74e171117e91660f493740924d8bad0caf48dc4fbccb767fb05935397a2c17ae8782604051610f5b929190612335565b60405180910390a180955050505050509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600090565b60008060009054906101000a900460ff1615610fe3576040517f29f745a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016000806101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806110645750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561109b576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008214156110d6576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111233330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661168d909392919063ffffffff16565b61118e7f0000000000000000000000000000000000000000000000000000000000000000837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166117169092919063ffffffff16565b6000806111db7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061163d565b9150915060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166371a258128484600060016040518563ffffffff1660e01b8152600401611242949392919061210e565b60006040518083038186803b15801561125a57600080fd5b505afa15801561126e573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906112979190611d0a565b90506112c37f00000000000000000000000000000000000000000000000000000000000000008761163d565b809350819450505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166371a258128585600060016040518563ffffffff1660e01b815260040161132e949392919061210e565b60006040518083038186803b15801561134657600080fd5b505afa15801561135a573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906113839190611d0a565b90506000600267ffffffffffffffff8111156113a2576113a1612561565b5b6040519080825280602002602001820160405280156113d05781602001602082028036833780820191505090505b509050826000815181106113e7576113e6612532565b5b60200260200101518160008151811061140357611402612532565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508160008151811061145157611450612532565b5b60200260200101518160018151811061146d5761146c612532565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060006040518060c001604052807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020018981526020018b81526020018381526020018c73ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663363a9dba836040518263ffffffff1660e01b815260040161158291906122dd565b602060405180830381600087803b15801561159c57600080fd5b505af11580156115b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d49190611d80565b90507f0a7cb8f6e1d29e616c1209a3f418c17b3a9137005377f6dd072217b1ede2573b8a8a83604051611609939291906121b3565b60405180910390a18097505050505050505060008060006101000a81548160ff021916908315150217905550949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16101561167f57838391509150611686565b8284915091505b9250929050565b611710846323b872dd60e01b8585856040516024016116ae93929190612153565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611874565b50505050565b60008114806117af575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b815260040161175d9291906120e5565b60206040518083038186803b15801561177557600080fd5b505afa158015611789573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ad9190611d80565b145b6117ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e5906122bd565b60405180910390fd5b61186f8363095ea7b360e01b848460405160240161180d92919061218a565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611874565b505050565b60006118d6826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661193b9092919063ffffffff16565b905060008151111561193657808060200190518101906118f69190611d53565b611935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192c9061229d565b60405180910390fd5b5b505050565b606061194a8484600085611953565b90509392505050565b606082471015611998576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198f9061225d565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516119c191906120b3565b60006040518083038185875af1925050503d80600081146119fe576040519150601f19603f3d011682016040523d82523d6000602084013e611a03565b606091505b5091509150611a1487838387611a20565b92505050949350505050565b60608315611a8357600083511415611a7b57611a3b85611a96565b611a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a719061227d565b60405180910390fd5b5b829050611a8e565b611a8d8383611ab9565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600082511115611acc5781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b00919061223b565b60405180910390fd5b6000611b1c611b1784612383565b61235e565b90508083825260208201905082856020860282011115611b3f57611b3e612595565b5b60005b85811015611b6f5781611b558882611b8e565b845260208401935060208301925050600181019050611b42565b5050509392505050565b600081359050611b88816126cb565b92915050565b600081519050611b9d816126cb565b92915050565b600082601f830112611bb857611bb7612590565b5b8151611bc8848260208601611b09565b91505092915050565b600081519050611be0816126e2565b92915050565b600081359050611bf5816126f9565b92915050565b600081519050611c0a816126f9565b92915050565b60008060408385031215611c2757611c2661259f565b5b6000611c3585828601611b79565b9250506020611c4685828601611be6565b9150509250929050565b60008060008060808587031215611c6a57611c6961259f565b5b6000611c7887828801611b79565b9450506020611c8987828801611be6565b9350506040611c9a87828801611b79565b9250506060611cab87828801611be6565b91505092959194509250565b600080600060608486031215611cd057611ccf61259f565b5b6000611cde86828701611b79565b9350506020611cef86828701611be6565b9250506040611d0086828701611be6565b9150509250925092565b600060208284031215611d2057611d1f61259f565b5b600082015167ffffffffffffffff811115611d3e57611d3d61259a565b5b611d4a84828501611ba3565b91505092915050565b600060208284031215611d6957611d6861259f565b5b6000611d7784828501611bd1565b91505092915050565b600060208284031215611d9657611d9561259f565b5b6000611da484828501611bfb565b91505092915050565b6000611db98383611dc5565b60208301905092915050565b611dce8161241a565b82525050565b611ddd8161241a565b82525050565b6000611dee826123bf565b611df881856123ed565b9350611e03836123af565b8060005b83811015611e34578151611e1b8882611dad565b9750611e26836123e0565b925050600181019050611e07565b5085935050505092915050565b611e4a8161242c565b82525050565b611e598161242c565b82525050565b6000611e6a826123ca565b611e7481856123fe565b9350611e848185602086016124ce565b80840191505092915050565b611e9981612462565b82525050565b611ea881612474565b82525050565b611eb781612486565b82525050565b611ec681612498565b82525050565b6000611ed7826123d5565b611ee18185612409565b9350611ef18185602086016124ce565b611efa816125a4565b840191505092915050565b6000611f12602683612409565b9150611f1d826125b5565b604082019050919050565b6000611f35601d83612409565b9150611f4082612604565b602082019050919050565b6000611f58602a83612409565b9150611f638261262d565b604082019050919050565b6000611f7b603683612409565b9150611f868261267c565b604082019050919050565b600060c083016000830151611fa96000860182611dc5565b506020830151611fbc6020860182612095565b506040830151611fcf6040860182612095565b5060608301518482036060860152611fe78282611de3565b9150506080830151611ffc6080860182611dc5565b5060a083015161200f60a0860182611e41565b508091505092915050565b60c0820160008201516120306000850182611dc5565b5060208201516120436020850182612095565b5060408201516120566040850182612095565b5060608201516120696060850182611dc5565b50608082015161207c6080850182611dc5565b5060a082015161208f60a0850182611e41565b50505050565b61209e81612458565b82525050565b6120ad81612458565b82525050565b60006120bf8284611e5f565b915081905092915050565b60006020820190506120df6000830184611dd4565b92915050565b60006040820190506120fa6000830185611dd4565b6121076020830184611dd4565b9392505050565b60006080820190506121236000830187611dd4565b6121306020830186611dd4565b61213d6040830185611eae565b61214a6060830184611ebd565b95945050505050565b60006060820190506121686000830186611dd4565b6121756020830185611dd4565b61218260408301846120a4565b949350505050565b600060408201905061219f6000830185611dd4565b6121ac60208301846120a4565b9392505050565b60006060820190506121c86000830186611dd4565b6121d560208301856120a4565b6121e260408301846120a4565b949350505050565b60006020820190506121ff6000830184611e50565b92915050565b600060208201905061221a6000830184611e90565b92915050565b60006020820190506122356000830184611e9f565b92915050565b600060208201905081810360008301526122558184611ecc565b905092915050565b6000602082019050818103600083015261227681611f05565b9050919050565b6000602082019050818103600083015261229681611f28565b9050919050565b600060208201905081810360008301526122b681611f4b565b9050919050565b600060208201905081810360008301526122d681611f6e565b9050919050565b600060208201905081810360008301526122f78184611f91565b905092915050565b600060c082019050612314600083018461201a565b92915050565b600060208201905061232f60008301846120a4565b92915050565b600060408201905061234a60008301856120a4565b61235760208301846120a4565b9392505050565b6000612368612379565b90506123748282612501565b919050565b6000604051905090565b600067ffffffffffffffff82111561239e5761239d612561565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061242582612438565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061246d826124aa565b9050919050565b600061247f826124aa565b9050919050565b600061249182612458565b9050919050565b60006124a382612458565b9050919050565b60006124b5826124bc565b9050919050565b60006124c782612438565b9050919050565b60005b838110156124ec5780820151818401526020810190506124d1565b838111156124fb576000848401525b50505050565b61250a826125a4565b810181811067ffffffffffffffff8211171561252957612528612561565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b6126d48161241a565b81146126df57600080fd5b50565b6126eb8161242c565b81146126f657600080fd5b50565b61270281612458565b811461270d57600080fd5b5056fea264697066735822122052bfd21f617a098a8e9f7179f87b0511ff7b45f29043d147ad39b847dabfaf1364736f6c63430008070033"; type ZetaTokenConsumerTridentConstructorParams = | [signer?: Signer] diff --git a/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/index.ts b/v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/index.ts similarity index 100% rename from typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/index.ts rename to v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/index.ts diff --git a/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/ZetaTokenConsumerUniV2Errors__factory.ts b/v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/ZetaTokenConsumerUniV2Errors__factory.ts similarity index 100% rename from typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/ZetaTokenConsumerUniV2Errors__factory.ts rename to v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/ZetaTokenConsumerUniV2Errors__factory.ts diff --git a/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/ZetaTokenConsumerUniV2__factory.ts b/v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/ZetaTokenConsumerUniV2__factory.ts similarity index 99% rename from typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/ZetaTokenConsumerUniV2__factory.ts rename to v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/ZetaTokenConsumerUniV2__factory.ts index 6b02f8d5..a525f75c 100644 --- a/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/ZetaTokenConsumerUniV2__factory.ts +++ b/v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/ZetaTokenConsumerUniV2__factory.ts @@ -274,7 +274,7 @@ const _abi = [ ] as const; const _bytecode = - "0x60e06040523480156200001157600080fd5b50604051620029a0380380620029a083398181016040528101906200003791906200024e565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806200009f5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15620000d7576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508073ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200018c57600080fd5b505afa158015620001a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c791906200021c565b73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250505050620002e8565b6000815190506200021681620002ce565b92915050565b600060208284031215620002355762000234620002c9565b5b6000620002458482850162000205565b91505092915050565b60008060408385031215620002685762000267620002c9565b5b6000620002788582860162000205565b92505060206200028b8582860162000205565b9150509250929050565b6000620002a282620002a9565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b620002d98162000295565b8114620002e557600080fd5b50565b60805160601c60a05160601c60c05160601c6125c9620003d76000396000818161036a015281816105ce0152818161091701528181610b4501528181610cdb01528181610f400152818161115501526114be0152600081816102f9015281816104a001528181610727015281816108a501528181610afb01528181610b6701528181610bfb01528181610ed10152818161110b015281816111770152818161125f015261138e01526000818161028a01528181610618015281816106b80152818161083601528181610c6a01528181610e62015281816111bf015281816112ce01526113fd01526125c96000f3fe6080604052600436106100555760003560e01c8063013b2ff81461005a57806321e093b11461008a5780632405620a146100b557806354c49a2a146100f257806380801f841461012f578063a53fb10b1461015a575b600080fd5b610074600480360381019061006f9190611b65565b610197565b6040516100819190612098565b60405180910390f35b34801561009657600080fd5b5061009f61049e565b6040516100ac9190611ed0565b60405180910390f35b3480156100c157600080fd5b506100dc60048036038101906100d79190611ba5565b6104c2565b6040516100e99190612098565b60405180910390f35b3480156100fe57600080fd5b5061011960048036038101906101149190611c0c565b610a50565b6040516101269190612098565b60405180910390f35b34801561013b57600080fd5b50610144610e11565b6040516101519190611fab565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c9190611ba5565b611029565b60405161018e9190612098565b60405180910390f35b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156101ff576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600034141561023a576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600267ffffffffffffffff811115610257576102566123e4565b5b6040519080825280602002602001820160405280156102855781602001602082028036833780820191505090505b5090507f0000000000000000000000000000000000000000000000000000000000000000816000815181106102bd576102bc6123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061032c5761032b6123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637ff36ab53486858960c8426103b5919061223e565b6040518663ffffffff1660e01b81526004016103d494939291906120b3565b6000604051808303818588803b1580156103ed57600080fd5b505af1158015610401573d6000803e3d6000fd5b50505050506040513d6000823e3d601f19601f8201168201806040525081019061042b9190611c5f565b90506000816001845161043e9190612294565b8151811061044f5761044e6123b5565b5b602002602001015190507f87890b0a30955b1db16cc894fbe24779ae05d9f337bfe8b6dfc0809b5bf9da11348260405161048a9291906120ff565b60405180910390a180935050505092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061052a5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15610561576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082141561059c576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105c93330848673ffffffffffffffffffffffffffffffffffffffff166115f7909392919063ffffffff16565b6106147f0000000000000000000000000000000000000000000000000000000000000000838573ffffffffffffffffffffffffffffffffffffffff166116809092919063ffffffff16565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561079957600267ffffffffffffffff811115610685576106846123e4565b5b6040519080825280602002602001820160405280156106b35781602001602082028036833780820191505090505b5090507f0000000000000000000000000000000000000000000000000000000000000000816000815181106106eb576106ea6123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061075a576107596123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050610913565b600367ffffffffffffffff8111156107b4576107b36123e4565b5b6040519080825280602002602001820160405280156107e25781602001602082028036833780820191505090505b50905083816000815181106107fa576107f96123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610869576108686123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000000000000000000000000000000000000000000000816002815181106108d8576108d76123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166338ed17398588858b60c842610962919061223e565b6040518663ffffffff1660e01b8152600401610982959493929190612128565b600060405180830381600087803b15801561099c57600080fd5b505af11580156109b0573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906109d99190611c5f565b9050600081600184516109ec9190612294565b815181106109fd576109fc6123b5565b5b602002602001015190507f017190d3d99ee6d8dd0604ef1e71ff9802810c6485f57c9b2ed6169848dd119f868683604051610a3a93929190611f74565b60405180910390a1809350505050949350505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610ab8576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000821415610af3576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b403330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166115f7909392919063ffffffff16565b610bab7f0000000000000000000000000000000000000000000000000000000000000000837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166116809092919063ffffffff16565b6000600267ffffffffffffffff811115610bc857610bc76123e4565b5b604051908082528060200260200182016040528015610bf65781602001602082028036833780820191505090505b5090507f000000000000000000000000000000000000000000000000000000000000000081600081518110610c2e57610c2d6123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610c9d57610c9c6123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318cbafe58587858a60c842610d26919061223e565b6040518663ffffffff1660e01b8152600401610d46959493929190612128565b600060405180830381600087803b158015610d6057600080fd5b505af1158015610d74573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610d9d9190611c5f565b905060008160018451610db09190612294565b81518110610dc157610dc06123b5565b5b602002602001015190507f74e171117e91660f493740924d8bad0caf48dc4fbccb767fb05935397a2c17ae8582604051610dfc9291906120ff565b60405180910390a18093505050509392505050565b600080600267ffffffffffffffff811115610e2f57610e2e6123e4565b5b604051908082528060200260200182016040528015610e5d5781602001602082028036833780820191505090505b5090507f000000000000000000000000000000000000000000000000000000000000000081600081518110610e9557610e946123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610f0457610f036123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d06ca61f6001836040518363ffffffff1660e01b8152600401610f9a929190611fc6565b60006040518083038186803b158015610fb257600080fd5b505afa925050508015610fe857506040513d6000823e3d601f19601f82011682018060405250810190610fe59190611c5f565b60015b610ff6576000915050611026565b600081600184516110079190612294565b81518110611018576110176123b5565b5b602002602001015111925050505b90565b60008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806110915750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156110c8576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000821415611103576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111503330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166115f7909392919063ffffffff16565b6111bb7f0000000000000000000000000000000000000000000000000000000000000000837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166116809092919063ffffffff16565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561134057600267ffffffffffffffff81111561122c5761122b6123e4565b5b60405190808252806020026020018201604052801561125a5781602001602082028036833780820191505090505b5090507f000000000000000000000000000000000000000000000000000000000000000081600081518110611292576112916123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110611301576113006123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506114ba565b600367ffffffffffffffff81111561135b5761135a6123e4565b5b6040519080825280602002602001820160405280156113895781602001602082028036833780820191505090505b5090507f0000000000000000000000000000000000000000000000000000000000000000816000815181106113c1576113c06123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000000000000000000000000000000000000000000000816001815181106114305761142f6123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050838160028151811061147f5761147e6123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166338ed17398588858b60c842611509919061223e565b6040518663ffffffff1660e01b8152600401611529959493929190612128565b600060405180830381600087803b15801561154357600080fd5b505af1158015611557573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906115809190611c5f565b9050600081600184516115939190612294565b815181106115a4576115a36123b5565b5b602002602001015190507f0a7cb8f6e1d29e616c1209a3f418c17b3a9137005377f6dd072217b1ede2573b8686836040516115e193929190611f74565b60405180910390a1809350505050949350505050565b61167a846323b872dd60e01b85858560405160240161161893929190611f14565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506117de565b50505050565b6000811480611719575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b81526004016116c7929190611eeb565b60206040518083038186803b1580156116df57600080fd5b505afa1580156116f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117179190611cd5565b145b611758576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174f90612078565b60405180910390fd5b6117d98363095ea7b360e01b8484604051602401611777929190611f4b565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506117de565b505050565b6000611840826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166118a59092919063ffffffff16565b90506000815111156118a057808060200190518101906118609190611ca8565b61189f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189690612058565b60405180910390fd5b5b505050565b60606118b484846000856118bd565b90509392505050565b606082471015611902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f990612018565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161192b9190611eb9565b60006040518083038185875af1925050503d8060008114611968576040519150601f19603f3d011682016040523d82523d6000602084013e61196d565b606091505b509150915061197e8783838761198a565b92505050949350505050565b606083156119ed576000835114156119e5576119a585611a00565b6119e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119db90612038565b60405180910390fd5b5b8290506119f8565b6119f78383611a23565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600082511115611a365781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6a9190611ff6565b60405180910390fd5b6000611a86611a81846121a7565b612182565b90508083825260208201905082856020860282011115611aa957611aa8612418565b5b60005b85811015611ad95781611abf8882611b50565b845260208401935060208301925050600181019050611aac565b5050509392505050565b600081359050611af28161254e565b92915050565b600082601f830112611b0d57611b0c612413565b5b8151611b1d848260208601611a73565b91505092915050565b600081519050611b3581612565565b92915050565b600081359050611b4a8161257c565b92915050565b600081519050611b5f8161257c565b92915050565b60008060408385031215611b7c57611b7b612422565b5b6000611b8a85828601611ae3565b9250506020611b9b85828601611b3b565b9150509250929050565b60008060008060808587031215611bbf57611bbe612422565b5b6000611bcd87828801611ae3565b9450506020611bde87828801611b3b565b9350506040611bef87828801611ae3565b9250506060611c0087828801611b3b565b91505092959194509250565b600080600060608486031215611c2557611c24612422565b5b6000611c3386828701611ae3565b9350506020611c4486828701611b3b565b9250506040611c5586828701611b3b565b9150509250925092565b600060208284031215611c7557611c74612422565b5b600082015167ffffffffffffffff811115611c9357611c9261241d565b5b611c9f84828501611af8565b91505092915050565b600060208284031215611cbe57611cbd612422565b5b6000611ccc84828501611b26565b91505092915050565b600060208284031215611ceb57611cea612422565b5b6000611cf984828501611b50565b91505092915050565b6000611d0e8383611d1a565b60208301905092915050565b611d23816122c8565b82525050565b611d32816122c8565b82525050565b6000611d43826121e3565b611d4d8185612211565b9350611d58836121d3565b8060005b83811015611d89578151611d708882611d02565b9750611d7b83612204565b925050600181019050611d5c565b5085935050505092915050565b611d9f816122da565b82525050565b6000611db0826121ee565b611dba8185612222565b9350611dca818560208601612322565b80840191505092915050565b611ddf81612310565b82525050565b6000611df0826121f9565b611dfa818561222d565b9350611e0a818560208601612322565b611e1381612427565b840191505092915050565b6000611e2b60268361222d565b9150611e3682612438565b604082019050919050565b6000611e4e601d8361222d565b9150611e5982612487565b602082019050919050565b6000611e71602a8361222d565b9150611e7c826124b0565b604082019050919050565b6000611e9460368361222d565b9150611e9f826124ff565b604082019050919050565b611eb381612306565b82525050565b6000611ec58284611da5565b915081905092915050565b6000602082019050611ee56000830184611d29565b92915050565b6000604082019050611f006000830185611d29565b611f0d6020830184611d29565b9392505050565b6000606082019050611f296000830186611d29565b611f366020830185611d29565b611f436040830184611eaa565b949350505050565b6000604082019050611f606000830185611d29565b611f6d6020830184611eaa565b9392505050565b6000606082019050611f896000830186611d29565b611f966020830185611eaa565b611fa36040830184611eaa565b949350505050565b6000602082019050611fc06000830184611d96565b92915050565b6000604082019050611fdb6000830185611dd6565b8181036020830152611fed8184611d38565b90509392505050565b600060208201905081810360008301526120108184611de5565b905092915050565b6000602082019050818103600083015261203181611e1e565b9050919050565b6000602082019050818103600083015261205181611e41565b9050919050565b6000602082019050818103600083015261207181611e64565b9050919050565b6000602082019050818103600083015261209181611e87565b9050919050565b60006020820190506120ad6000830184611eaa565b92915050565b60006080820190506120c86000830187611eaa565b81810360208301526120da8186611d38565b90506120e96040830185611d29565b6120f66060830184611eaa565b95945050505050565b60006040820190506121146000830185611eaa565b6121216020830184611eaa565b9392505050565b600060a08201905061213d6000830188611eaa565b61214a6020830187611eaa565b818103604083015261215c8186611d38565b905061216b6060830185611d29565b6121786080830184611eaa565b9695505050505050565b600061218c61219d565b90506121988282612355565b919050565b6000604051905090565b600067ffffffffffffffff8211156121c2576121c16123e4565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061224982612306565b915061225483612306565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561228957612288612386565b5b828201905092915050565b600061229f82612306565b91506122aa83612306565b9250828210156122bd576122bc612386565b5b828203905092915050565b60006122d3826122e6565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061231b82612306565b9050919050565b60005b83811015612340578082015181840152602081019050612325565b8381111561234f576000848401525b50505050565b61235e82612427565b810181811067ffffffffffffffff8211171561237d5761237c6123e4565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b612557816122c8565b811461256257600080fd5b50565b61256e816122da565b811461257957600080fd5b50565b61258581612306565b811461259057600080fd5b5056fea26469706673582212203b367a485c1c8365253eb443a67a0af9e708d5f18be04ddce696d86f9d990a5364736f6c63430008070033"; + "0x60e06040523480156200001157600080fd5b50604051620029a0380380620029a083398181016040528101906200003791906200024e565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806200009f5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15620000d7576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508073ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200018c57600080fd5b505afa158015620001a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c791906200021c565b73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250505050620002e8565b6000815190506200021681620002ce565b92915050565b600060208284031215620002355762000234620002c9565b5b6000620002458482850162000205565b91505092915050565b60008060408385031215620002685762000267620002c9565b5b6000620002788582860162000205565b92505060206200028b8582860162000205565b9150509250929050565b6000620002a282620002a9565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b620002d98162000295565b8114620002e557600080fd5b50565b60805160601c60a05160601c60c05160601c6125c9620003d76000396000818161036a015281816105ce0152818161091701528181610b4501528181610cdb01528181610f400152818161115501526114be0152600081816102f9015281816104a001528181610727015281816108a501528181610afb01528181610b6701528181610bfb01528181610ed10152818161110b015281816111770152818161125f015261138e01526000818161028a01528181610618015281816106b80152818161083601528181610c6a01528181610e62015281816111bf015281816112ce01526113fd01526125c96000f3fe6080604052600436106100555760003560e01c8063013b2ff81461005a57806321e093b11461008a5780632405620a146100b557806354c49a2a146100f257806380801f841461012f578063a53fb10b1461015a575b600080fd5b610074600480360381019061006f9190611b65565b610197565b6040516100819190612098565b60405180910390f35b34801561009657600080fd5b5061009f61049e565b6040516100ac9190611ed0565b60405180910390f35b3480156100c157600080fd5b506100dc60048036038101906100d79190611ba5565b6104c2565b6040516100e99190612098565b60405180910390f35b3480156100fe57600080fd5b5061011960048036038101906101149190611c0c565b610a50565b6040516101269190612098565b60405180910390f35b34801561013b57600080fd5b50610144610e11565b6040516101519190611fab565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c9190611ba5565b611029565b60405161018e9190612098565b60405180910390f35b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156101ff576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600034141561023a576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600267ffffffffffffffff811115610257576102566123e4565b5b6040519080825280602002602001820160405280156102855781602001602082028036833780820191505090505b5090507f0000000000000000000000000000000000000000000000000000000000000000816000815181106102bd576102bc6123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061032c5761032b6123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637ff36ab53486858960c8426103b5919061223e565b6040518663ffffffff1660e01b81526004016103d494939291906120b3565b6000604051808303818588803b1580156103ed57600080fd5b505af1158015610401573d6000803e3d6000fd5b50505050506040513d6000823e3d601f19601f8201168201806040525081019061042b9190611c5f565b90506000816001845161043e9190612294565b8151811061044f5761044e6123b5565b5b602002602001015190507f87890b0a30955b1db16cc894fbe24779ae05d9f337bfe8b6dfc0809b5bf9da11348260405161048a9291906120ff565b60405180910390a180935050505092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061052a5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15610561576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082141561059c576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105c93330848673ffffffffffffffffffffffffffffffffffffffff166115f7909392919063ffffffff16565b6106147f0000000000000000000000000000000000000000000000000000000000000000838573ffffffffffffffffffffffffffffffffffffffff166116809092919063ffffffff16565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561079957600267ffffffffffffffff811115610685576106846123e4565b5b6040519080825280602002602001820160405280156106b35781602001602082028036833780820191505090505b5090507f0000000000000000000000000000000000000000000000000000000000000000816000815181106106eb576106ea6123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061075a576107596123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050610913565b600367ffffffffffffffff8111156107b4576107b36123e4565b5b6040519080825280602002602001820160405280156107e25781602001602082028036833780820191505090505b50905083816000815181106107fa576107f96123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610869576108686123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000000000000000000000000000000000000000000000816002815181106108d8576108d76123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166338ed17398588858b60c842610962919061223e565b6040518663ffffffff1660e01b8152600401610982959493929190612128565b600060405180830381600087803b15801561099c57600080fd5b505af11580156109b0573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906109d99190611c5f565b9050600081600184516109ec9190612294565b815181106109fd576109fc6123b5565b5b602002602001015190507f017190d3d99ee6d8dd0604ef1e71ff9802810c6485f57c9b2ed6169848dd119f868683604051610a3a93929190611f74565b60405180910390a1809350505050949350505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610ab8576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000821415610af3576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b403330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166115f7909392919063ffffffff16565b610bab7f0000000000000000000000000000000000000000000000000000000000000000837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166116809092919063ffffffff16565b6000600267ffffffffffffffff811115610bc857610bc76123e4565b5b604051908082528060200260200182016040528015610bf65781602001602082028036833780820191505090505b5090507f000000000000000000000000000000000000000000000000000000000000000081600081518110610c2e57610c2d6123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610c9d57610c9c6123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318cbafe58587858a60c842610d26919061223e565b6040518663ffffffff1660e01b8152600401610d46959493929190612128565b600060405180830381600087803b158015610d6057600080fd5b505af1158015610d74573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610d9d9190611c5f565b905060008160018451610db09190612294565b81518110610dc157610dc06123b5565b5b602002602001015190507f74e171117e91660f493740924d8bad0caf48dc4fbccb767fb05935397a2c17ae8582604051610dfc9291906120ff565b60405180910390a18093505050509392505050565b600080600267ffffffffffffffff811115610e2f57610e2e6123e4565b5b604051908082528060200260200182016040528015610e5d5781602001602082028036833780820191505090505b5090507f000000000000000000000000000000000000000000000000000000000000000081600081518110610e9557610e946123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610f0457610f036123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d06ca61f6001836040518363ffffffff1660e01b8152600401610f9a929190611fc6565b60006040518083038186803b158015610fb257600080fd5b505afa925050508015610fe857506040513d6000823e3d601f19601f82011682018060405250810190610fe59190611c5f565b60015b610ff6576000915050611026565b600081600184516110079190612294565b81518110611018576110176123b5565b5b602002602001015111925050505b90565b60008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806110915750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156110c8576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000821415611103576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111503330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166115f7909392919063ffffffff16565b6111bb7f0000000000000000000000000000000000000000000000000000000000000000837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166116809092919063ffffffff16565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561134057600267ffffffffffffffff81111561122c5761122b6123e4565b5b60405190808252806020026020018201604052801561125a5781602001602082028036833780820191505090505b5090507f000000000000000000000000000000000000000000000000000000000000000081600081518110611292576112916123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110611301576113006123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506114ba565b600367ffffffffffffffff81111561135b5761135a6123e4565b5b6040519080825280602002602001820160405280156113895781602001602082028036833780820191505090505b5090507f0000000000000000000000000000000000000000000000000000000000000000816000815181106113c1576113c06123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000000000000000000000000000000000000000000000816001815181106114305761142f6123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050838160028151811061147f5761147e6123b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166338ed17398588858b60c842611509919061223e565b6040518663ffffffff1660e01b8152600401611529959493929190612128565b600060405180830381600087803b15801561154357600080fd5b505af1158015611557573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906115809190611c5f565b9050600081600184516115939190612294565b815181106115a4576115a36123b5565b5b602002602001015190507f0a7cb8f6e1d29e616c1209a3f418c17b3a9137005377f6dd072217b1ede2573b8686836040516115e193929190611f74565b60405180910390a1809350505050949350505050565b61167a846323b872dd60e01b85858560405160240161161893929190611f14565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506117de565b50505050565b6000811480611719575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b81526004016116c7929190611eeb565b60206040518083038186803b1580156116df57600080fd5b505afa1580156116f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117179190611cd5565b145b611758576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174f90612078565b60405180910390fd5b6117d98363095ea7b360e01b8484604051602401611777929190611f4b565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506117de565b505050565b6000611840826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166118a59092919063ffffffff16565b90506000815111156118a057808060200190518101906118609190611ca8565b61189f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189690612058565b60405180910390fd5b5b505050565b60606118b484846000856118bd565b90509392505050565b606082471015611902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f990612018565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161192b9190611eb9565b60006040518083038185875af1925050503d8060008114611968576040519150601f19603f3d011682016040523d82523d6000602084013e61196d565b606091505b509150915061197e8783838761198a565b92505050949350505050565b606083156119ed576000835114156119e5576119a585611a00565b6119e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119db90612038565b60405180910390fd5b5b8290506119f8565b6119f78383611a23565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600082511115611a365781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6a9190611ff6565b60405180910390fd5b6000611a86611a81846121a7565b612182565b90508083825260208201905082856020860282011115611aa957611aa8612418565b5b60005b85811015611ad95781611abf8882611b50565b845260208401935060208301925050600181019050611aac565b5050509392505050565b600081359050611af28161254e565b92915050565b600082601f830112611b0d57611b0c612413565b5b8151611b1d848260208601611a73565b91505092915050565b600081519050611b3581612565565b92915050565b600081359050611b4a8161257c565b92915050565b600081519050611b5f8161257c565b92915050565b60008060408385031215611b7c57611b7b612422565b5b6000611b8a85828601611ae3565b9250506020611b9b85828601611b3b565b9150509250929050565b60008060008060808587031215611bbf57611bbe612422565b5b6000611bcd87828801611ae3565b9450506020611bde87828801611b3b565b9350506040611bef87828801611ae3565b9250506060611c0087828801611b3b565b91505092959194509250565b600080600060608486031215611c2557611c24612422565b5b6000611c3386828701611ae3565b9350506020611c4486828701611b3b565b9250506040611c5586828701611b3b565b9150509250925092565b600060208284031215611c7557611c74612422565b5b600082015167ffffffffffffffff811115611c9357611c9261241d565b5b611c9f84828501611af8565b91505092915050565b600060208284031215611cbe57611cbd612422565b5b6000611ccc84828501611b26565b91505092915050565b600060208284031215611ceb57611cea612422565b5b6000611cf984828501611b50565b91505092915050565b6000611d0e8383611d1a565b60208301905092915050565b611d23816122c8565b82525050565b611d32816122c8565b82525050565b6000611d43826121e3565b611d4d8185612211565b9350611d58836121d3565b8060005b83811015611d89578151611d708882611d02565b9750611d7b83612204565b925050600181019050611d5c565b5085935050505092915050565b611d9f816122da565b82525050565b6000611db0826121ee565b611dba8185612222565b9350611dca818560208601612322565b80840191505092915050565b611ddf81612310565b82525050565b6000611df0826121f9565b611dfa818561222d565b9350611e0a818560208601612322565b611e1381612427565b840191505092915050565b6000611e2b60268361222d565b9150611e3682612438565b604082019050919050565b6000611e4e601d8361222d565b9150611e5982612487565b602082019050919050565b6000611e71602a8361222d565b9150611e7c826124b0565b604082019050919050565b6000611e9460368361222d565b9150611e9f826124ff565b604082019050919050565b611eb381612306565b82525050565b6000611ec58284611da5565b915081905092915050565b6000602082019050611ee56000830184611d29565b92915050565b6000604082019050611f006000830185611d29565b611f0d6020830184611d29565b9392505050565b6000606082019050611f296000830186611d29565b611f366020830185611d29565b611f436040830184611eaa565b949350505050565b6000604082019050611f606000830185611d29565b611f6d6020830184611eaa565b9392505050565b6000606082019050611f896000830186611d29565b611f966020830185611eaa565b611fa36040830184611eaa565b949350505050565b6000602082019050611fc06000830184611d96565b92915050565b6000604082019050611fdb6000830185611dd6565b8181036020830152611fed8184611d38565b90509392505050565b600060208201905081810360008301526120108184611de5565b905092915050565b6000602082019050818103600083015261203181611e1e565b9050919050565b6000602082019050818103600083015261205181611e41565b9050919050565b6000602082019050818103600083015261207181611e64565b9050919050565b6000602082019050818103600083015261209181611e87565b9050919050565b60006020820190506120ad6000830184611eaa565b92915050565b60006080820190506120c86000830187611eaa565b81810360208301526120da8186611d38565b90506120e96040830185611d29565b6120f66060830184611eaa565b95945050505050565b60006040820190506121146000830185611eaa565b6121216020830184611eaa565b9392505050565b600060a08201905061213d6000830188611eaa565b61214a6020830187611eaa565b818103604083015261215c8186611d38565b905061216b6060830185611d29565b6121786080830184611eaa565b9695505050505050565b600061218c61219d565b90506121988282612355565b919050565b6000604051905090565b600067ffffffffffffffff8211156121c2576121c16123e4565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061224982612306565b915061225483612306565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561228957612288612386565b5b828201905092915050565b600061229f82612306565b91506122aa83612306565b9250828210156122bd576122bc612386565b5b828203905092915050565b60006122d3826122e6565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061231b82612306565b9050919050565b60005b83811015612340578082015181840152602081019050612325565b8381111561234f576000848401525b50505050565b61235e82612427565b810181811067ffffffffffffffff8211171561237d5761237c6123e4565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b612557816122c8565b811461256257600080fd5b50565b61256e816122da565b811461257957600080fd5b50565b61258581612306565b811461259057600080fd5b5056fea264697066735822122043c2ef06b0d58aa4604eef6078aa0a569cff03f21dd48c315ad501590326c57264736f6c63430008070033"; type ZetaTokenConsumerUniV2ConstructorParams = | [signer?: Signer] diff --git a/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/index.ts b/v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/index.ts similarity index 100% rename from typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/index.ts rename to v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/index.ts diff --git a/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/WETH9__factory.ts b/v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/WETH9__factory.ts similarity index 100% rename from typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/WETH9__factory.ts rename to v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/WETH9__factory.ts diff --git a/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/ZetaTokenConsumerUniV3Errors__factory.ts b/v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/ZetaTokenConsumerUniV3Errors__factory.ts similarity index 100% rename from typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/ZetaTokenConsumerUniV3Errors__factory.ts rename to v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/ZetaTokenConsumerUniV3Errors__factory.ts diff --git a/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/ZetaTokenConsumerUniV3__factory.ts b/v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/ZetaTokenConsumerUniV3__factory.ts similarity index 99% rename from typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/ZetaTokenConsumerUniV3__factory.ts rename to v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/ZetaTokenConsumerUniV3__factory.ts index 7d5147b1..7e147c2b 100644 --- a/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/ZetaTokenConsumerUniV3__factory.ts +++ b/v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/ZetaTokenConsumerUniV3__factory.ts @@ -380,7 +380,7 @@ const _abi = [ ] as const; const _bytecode = - "0x6101406040523480156200001257600080fd5b50604051620029833803806200298383398181016040528101906200003891906200028a565b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161480620000a05750600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b80620000d85750600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80620001105750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1562000148576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508473ffffffffffffffffffffffffffffffffffffffff166101008173ffffffffffffffffffffffffffffffffffffffff1660601b815250508373ffffffffffffffffffffffffffffffffffffffff166101208173ffffffffffffffffffffffffffffffffffffffff1660601b815250508273ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508162ffffff1660808162ffffff1660e81b815250508062ffffff1660a08162ffffff1660e81b81525050505050505050620003a2565b6000815190506200026d816200036e565b92915050565b600081519050620002848162000388565b92915050565b60008060008060008060c08789031215620002aa57620002a962000369565b5b6000620002ba89828a016200025c565b9650506020620002cd89828a016200025c565b9550506040620002e089828a016200025c565b9450506060620002f389828a016200025c565b93505060806200030689828a0162000273565b92505060a06200031989828a0162000273565b9150509295509295509295565b600062000333826200033a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062ffffff82169050919050565b600080fd5b620003798162000326565b81146200038557600080fd5b50565b62000393816200035a565b81146200039f57600080fd5b50565b60805160e81c60a05160e81c60c05160601c60e05160601c6101005160601c6101205160601c6124ad620004d660003960008181610d900152610ddb01526000818161046f0152818161068f015281816107cd015281816108c2015281816109fd01528181610b6f0152818161115401526112b20152600081816103af0152818161056101528181610748015281816109b301528181610a1f01528181610a7301528181610e380152818161110a0152818161117601526111c90152600081816103730152818161070601528181610aaf01528181610c1c01528181610e170152818161120b01526113c10152600081816106e501528181610db4015261122c0152600081816103eb01528181610727015281816108e601528181610aeb01528181610e5901526111ea01526124ad6000f3fe6080604052600436106100a05760003560e01c806354c49a2a1161006457806354c49a2a1461019a5780635b549182146101d75780635d9dfdde1461020257806380801f841461022d578063a53fb10b14610258578063c469cf1414610295576100a7565b8063013b2ff8146100ac57806321e093b1146100dc5780632405620a146101075780632c76d7a6146101445780633cbd70051461016f576100a7565b366100a757005b600080fd5b6100c660048036038101906100c1919061190a565b6102c0565b6040516100d391906120a2565b60405180910390f35b3480156100e857600080fd5b506100f161055f565b6040516100fe9190611e44565b60405180910390f35b34801561011357600080fd5b5061012e6004803603810190610129919061194a565b610583565b60405161013b91906120a2565b60405180910390f35b34801561015057600080fd5b506101596108c0565b6040516101669190611f71565b60405180910390f35b34801561017b57600080fd5b506101846108e4565b6040516101919190612087565b60405180910390f35b3480156101a657600080fd5b506101c160048036038101906101bc91906119b1565b610908565b6040516101ce91906120a2565b60405180910390f35b3480156101e357600080fd5b506101ec610d8e565b6040516101f99190611f8c565b60405180910390f35b34801561020e57600080fd5b50610217610db2565b6040516102249190612087565b60405180910390f35b34801561023957600080fd5b50610242610dd6565b60405161024f9190611f56565b60405180910390f35b34801561026457600080fd5b5061027f600480360381019061027a919061194a565b610fc7565b60405161028c91906120a2565b60405180910390f35b3480156102a157600080fd5b506102aa6113bf565b6040516102b79190611e44565b60405180910390f35b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610328576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000341415610363576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006040518061010001604052807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000062ffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200160c84261043d9190612129565b8152602001348152602001848152602001600073ffffffffffffffffffffffffffffffffffffffff16815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663414bf38934846040518363ffffffff1660e01b81526004016104c7919061206b565b6020604051808303818588803b1580156104e057600080fd5b505af11580156104f4573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906105199190611a5e565b90507f87890b0a30955b1db16cc894fbe24779ae05d9f337bfe8b6dfc0809b5bf9da11348260405161054c9291906120bd565b60405180910390a1809250505092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806105eb5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15610622576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082141561065d576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61068a3330848673ffffffffffffffffffffffffffffffffffffffff166113e3909392919063ffffffff16565b6106d57f0000000000000000000000000000000000000000000000000000000000000000838573ffffffffffffffffffffffffffffffffffffffff1661146c9092919063ffffffff16565b60006040518060a00160405280857f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060405160200161077b959493929190611db9565b60405160208183030381529060405281526020018773ffffffffffffffffffffffffffffffffffffffff16815260200160c8426107b89190612129565b815260200184815260200186815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c04b8d59836040518263ffffffff1660e01b81526004016108249190612049565b602060405180830381600087803b15801561083e57600080fd5b505af1158015610852573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108769190611a5e565b90507f017190d3d99ee6d8dd0604ef1e71ff9802810c6485f57c9b2ed6169848dd119f8585836040516108ab93929190611f1f565b60405180910390a18092505050949350505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610970576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008214156109ab576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109f83330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166113e3909392919063ffffffff16565b610a637f0000000000000000000000000000000000000000000000000000000000000000837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661146c9092919063ffffffff16565b60006040518061010001604052807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000062ffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff16815260200160c842610b3d9190612129565b8152602001848152602001858152602001600073ffffffffffffffffffffffffffffffffffffffff16815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663414bf389836040518263ffffffff1660e01b8152600401610bc6919061206b565b602060405180830381600087803b158015610be057600080fd5b505af1158015610bf4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c189190611a5e565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b8152600401610c7391906120a2565b600060405180830381600087803b158015610c8d57600080fd5b505af1158015610ca1573d6000803e3d6000fd5b505050507f74e171117e91660f493740924d8bad0caf48dc4fbccb767fb05935397a2c17ae8482604051610cd69291906120bd565b60405180910390a160008673ffffffffffffffffffffffffffffffffffffffff1682604051610d0490611e2f565b60006040518083038185875af1925050503d8060008114610d41576040519150601f19603f3d011682016040523d82523d6000602084013e610d46565b606091505b5050905080610d81576040517f3794aeaf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8193505050509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16631698ee827f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006040518463ffffffff1660e01b8152600401610e9693929190611e88565b60206040518083038186803b158015610eae57600080fd5b505afa158015610ec2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee691906118dd565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f27576000915050610fc4565b600081905060008173ffffffffffffffffffffffffffffffffffffffff16631a6865026040518163ffffffff1660e01b815260040160206040518083038186803b158015610f7457600080fd5b505afa158015610f88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fac9190611a31565b6fffffffffffffffffffffffffffffffff1611925050505b90565b60008060009054906101000a900460ff161561100f576040517f29f745a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016000806101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806110905750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156110c7576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000821415611102576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61114f3330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166113e3909392919063ffffffff16565b6111ba7f0000000000000000000000000000000000000000000000000000000000000000837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661146c9092919063ffffffff16565b60006040518060a001604052807f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000089604051602001611260959493929190611db9565b60405160208183030381529060405281526020018773ffffffffffffffffffffffffffffffffffffffff16815260200160c84261129d9190612129565b815260200184815260200186815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c04b8d59836040518263ffffffff1660e01b81526004016113099190612049565b602060405180830381600087803b15801561132357600080fd5b505af1158015611337573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135b9190611a5e565b90507f0a7cb8f6e1d29e616c1209a3f418c17b3a9137005377f6dd072217b1ede2573b85858360405161139093929190611f1f565b60405180910390a1809250505060008060006101000a81548160ff021916908315150217905550949350505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b611466846323b872dd60e01b85858560405160240161140493929190611ebf565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506115ca565b50505050565b6000811480611505575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b81526004016114b3929190611e5f565b60206040518083038186803b1580156114cb57600080fd5b505afa1580156114df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115039190611a5e565b145b611544576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153b90612029565b60405180910390fd5b6115c58363095ea7b360e01b8484604051602401611563929190611ef6565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506115ca565b505050565b600061162c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166116919092919063ffffffff16565b905060008151111561168c578080602001905181019061164c9190611a04565b61168b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168290612009565b60405180910390fd5b5b505050565b60606116a084846000856116a9565b90509392505050565b6060824710156116ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e590611fc9565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516117179190611e18565b60006040518083038185875af1925050503d8060008114611754576040519150601f19603f3d011682016040523d82523d6000602084013e611759565b606091505b509150915061176a87838387611776565b92505050949350505050565b606083156117d9576000835114156117d157611791856117ec565b6117d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c790611fe9565b60405180910390fd5b5b8290506117e4565b6117e3838361180f565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156118225781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118569190611fa7565b60405180910390fd5b60008135905061186e8161241b565b92915050565b6000815190506118838161241b565b92915050565b60008151905061189881612432565b92915050565b6000815190506118ad81612449565b92915050565b6000813590506118c281612460565b92915050565b6000815190506118d781612460565b92915050565b6000602082840312156118f3576118f26122d2565b5b600061190184828501611874565b91505092915050565b60008060408385031215611921576119206122d2565b5b600061192f8582860161185f565b9250506020611940858286016118b3565b9150509250929050565b60008060008060808587031215611964576119636122d2565b5b60006119728782880161185f565b9450506020611983878288016118b3565b93505060406119948782880161185f565b92505060606119a5878288016118b3565b91505092959194509250565b6000806000606084860312156119ca576119c96122d2565b5b60006119d88682870161185f565b93505060206119e9868287016118b3565b92505060406119fa868287016118b3565b9150509250925092565b600060208284031215611a1a57611a196122d2565b5b6000611a2884828501611889565b91505092915050565b600060208284031215611a4757611a466122d2565b5b6000611a558482850161189e565b91505092915050565b600060208284031215611a7457611a736122d2565b5b6000611a82848285016118c8565b91505092915050565b611a948161217f565b82525050565b611aa38161217f565b82525050565b611aba611ab58261217f565b61226d565b82525050565b611ac981612191565b82525050565b6000611ada826120e6565b611ae481856120fc565b9350611af481856020860161223a565b611afd816122d7565b840191505092915050565b6000611b13826120e6565b611b1d818561210d565b9350611b2d81856020860161223a565b80840191505092915050565b611b42816121f2565b82525050565b611b5181612204565b82525050565b6000611b62826120f1565b611b6c8185612118565b9350611b7c81856020860161223a565b611b85816122d7565b840191505092915050565b6000611b9d602683612118565b9150611ba882612302565b604082019050919050565b6000611bc060008361210d565b9150611bcb82612351565b600082019050919050565b6000611be3601d83612118565b9150611bee82612354565b602082019050919050565b6000611c06602a83612118565b9150611c118261237d565b604082019050919050565b6000611c29603683612118565b9150611c34826123cc565b604082019050919050565b600060a0830160008301518482036000860152611c5c8282611acf565b9150506020830151611c716020860182611a8b565b506040830151611c846040860182611d9b565b506060830151611c976060860182611d9b565b506080830151611caa6080860182611d9b565b508091505092915050565b61010082016000820151611ccc6000850182611a8b565b506020820151611cdf6020850182611a8b565b506040820151611cf26040850182611d66565b506060820151611d056060850182611a8b565b506080820151611d186080850182611d9b565b5060a0820151611d2b60a0850182611d9b565b5060c0820151611d3e60c0850182611d9b565b5060e0820151611d5160e0850182611d57565b50505050565b611d60816121b9565b82525050565b611d6f816121d9565b82525050565b611d7e816121d9565b82525050565b611d95611d90826121d9565b612291565b82525050565b611da4816121e8565b82525050565b611db3816121e8565b82525050565b6000611dc58288611aa9565b601482019150611dd58287611d84565b600382019150611de58286611aa9565b601482019150611df58285611d84565b600382019150611e058284611aa9565b6014820191508190509695505050505050565b6000611e248284611b08565b915081905092915050565b6000611e3a82611bb3565b9150819050919050565b6000602082019050611e596000830184611a9a565b92915050565b6000604082019050611e746000830185611a9a565b611e816020830184611a9a565b9392505050565b6000606082019050611e9d6000830186611a9a565b611eaa6020830185611a9a565b611eb76040830184611d75565b949350505050565b6000606082019050611ed46000830186611a9a565b611ee16020830185611a9a565b611eee6040830184611daa565b949350505050565b6000604082019050611f0b6000830185611a9a565b611f186020830184611daa565b9392505050565b6000606082019050611f346000830186611a9a565b611f416020830185611daa565b611f4e6040830184611daa565b949350505050565b6000602082019050611f6b6000830184611ac0565b92915050565b6000602082019050611f866000830184611b39565b92915050565b6000602082019050611fa16000830184611b48565b92915050565b60006020820190508181036000830152611fc18184611b57565b905092915050565b60006020820190508181036000830152611fe281611b90565b9050919050565b6000602082019050818103600083015261200281611bd6565b9050919050565b6000602082019050818103600083015261202281611bf9565b9050919050565b6000602082019050818103600083015261204281611c1c565b9050919050565b600060208201905081810360008301526120638184611c3f565b905092915050565b6000610100820190506120816000830184611cb5565b92915050565b600060208201905061209c6000830184611d75565b92915050565b60006020820190506120b76000830184611daa565b92915050565b60006040820190506120d26000830185611daa565b6120df6020830184611daa565b9392505050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000612134826121e8565b915061213f836121e8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612174576121736122a3565b5b828201905092915050565b600061218a826121b9565b9050919050565b60008115159050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062ffffff82169050919050565b6000819050919050565b60006121fd82612216565b9050919050565b600061220f82612216565b9050919050565b600061222182612228565b9050919050565b6000612233826121b9565b9050919050565b60005b8381101561225857808201518184015260208101905061223d565b83811115612267576000848401525b50505050565b60006122788261227f565b9050919050565b600061228a826122f5565b9050919050565b600061229c826122e8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160e81b9050919050565b60008160601b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b50565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b6124248161217f565b811461242f57600080fd5b50565b61243b81612191565b811461244657600080fd5b50565b6124528161219d565b811461245d57600080fd5b50565b612469816121e8565b811461247457600080fd5b5056fea26469706673582212205b01f0993d1aca09a588ccda9fc1b26d546e37338ba85cdc92932152534aeee064736f6c63430008070033"; + "0x6101406040523480156200001257600080fd5b50604051620029833803806200298383398181016040528101906200003891906200028a565b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161480620000a05750600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b80620000d85750600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80620001105750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1562000148576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508473ffffffffffffffffffffffffffffffffffffffff166101008173ffffffffffffffffffffffffffffffffffffffff1660601b815250508373ffffffffffffffffffffffffffffffffffffffff166101208173ffffffffffffffffffffffffffffffffffffffff1660601b815250508273ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508162ffffff1660808162ffffff1660e81b815250508062ffffff1660a08162ffffff1660e81b81525050505050505050620003a2565b6000815190506200026d816200036e565b92915050565b600081519050620002848162000388565b92915050565b60008060008060008060c08789031215620002aa57620002a962000369565b5b6000620002ba89828a016200025c565b9650506020620002cd89828a016200025c565b9550506040620002e089828a016200025c565b9450506060620002f389828a016200025c565b93505060806200030689828a0162000273565b92505060a06200031989828a0162000273565b9150509295509295509295565b600062000333826200033a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062ffffff82169050919050565b600080fd5b620003798162000326565b81146200038557600080fd5b50565b62000393816200035a565b81146200039f57600080fd5b50565b60805160e81c60a05160e81c60c05160601c60e05160601c6101005160601c6101205160601c6124ad620004d660003960008181610d900152610ddb01526000818161046f0152818161068f015281816107cd015281816108c2015281816109fd01528181610b6f0152818161115401526112b20152600081816103af0152818161056101528181610748015281816109b301528181610a1f01528181610a7301528181610e380152818161110a0152818161117601526111c90152600081816103730152818161070601528181610aaf01528181610c1c01528181610e170152818161120b01526113c10152600081816106e501528181610db4015261122c0152600081816103eb01528181610727015281816108e601528181610aeb01528181610e5901526111ea01526124ad6000f3fe6080604052600436106100a05760003560e01c806354c49a2a1161006457806354c49a2a1461019a5780635b549182146101d75780635d9dfdde1461020257806380801f841461022d578063a53fb10b14610258578063c469cf1414610295576100a7565b8063013b2ff8146100ac57806321e093b1146100dc5780632405620a146101075780632c76d7a6146101445780633cbd70051461016f576100a7565b366100a757005b600080fd5b6100c660048036038101906100c1919061190a565b6102c0565b6040516100d391906120a2565b60405180910390f35b3480156100e857600080fd5b506100f161055f565b6040516100fe9190611e44565b60405180910390f35b34801561011357600080fd5b5061012e6004803603810190610129919061194a565b610583565b60405161013b91906120a2565b60405180910390f35b34801561015057600080fd5b506101596108c0565b6040516101669190611f71565b60405180910390f35b34801561017b57600080fd5b506101846108e4565b6040516101919190612087565b60405180910390f35b3480156101a657600080fd5b506101c160048036038101906101bc91906119b1565b610908565b6040516101ce91906120a2565b60405180910390f35b3480156101e357600080fd5b506101ec610d8e565b6040516101f99190611f8c565b60405180910390f35b34801561020e57600080fd5b50610217610db2565b6040516102249190612087565b60405180910390f35b34801561023957600080fd5b50610242610dd6565b60405161024f9190611f56565b60405180910390f35b34801561026457600080fd5b5061027f600480360381019061027a919061194a565b610fc7565b60405161028c91906120a2565b60405180910390f35b3480156102a157600080fd5b506102aa6113bf565b6040516102b79190611e44565b60405180910390f35b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610328576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000341415610363576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006040518061010001604052807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000062ffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200160c84261043d9190612129565b8152602001348152602001848152602001600073ffffffffffffffffffffffffffffffffffffffff16815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663414bf38934846040518363ffffffff1660e01b81526004016104c7919061206b565b6020604051808303818588803b1580156104e057600080fd5b505af11580156104f4573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906105199190611a5e565b90507f87890b0a30955b1db16cc894fbe24779ae05d9f337bfe8b6dfc0809b5bf9da11348260405161054c9291906120bd565b60405180910390a1809250505092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806105eb5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15610622576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082141561065d576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61068a3330848673ffffffffffffffffffffffffffffffffffffffff166113e3909392919063ffffffff16565b6106d57f0000000000000000000000000000000000000000000000000000000000000000838573ffffffffffffffffffffffffffffffffffffffff1661146c9092919063ffffffff16565b60006040518060a00160405280857f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060405160200161077b959493929190611db9565b60405160208183030381529060405281526020018773ffffffffffffffffffffffffffffffffffffffff16815260200160c8426107b89190612129565b815260200184815260200186815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c04b8d59836040518263ffffffff1660e01b81526004016108249190612049565b602060405180830381600087803b15801561083e57600080fd5b505af1158015610852573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108769190611a5e565b90507f017190d3d99ee6d8dd0604ef1e71ff9802810c6485f57c9b2ed6169848dd119f8585836040516108ab93929190611f1f565b60405180910390a18092505050949350505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610970576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008214156109ab576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109f83330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166113e3909392919063ffffffff16565b610a637f0000000000000000000000000000000000000000000000000000000000000000837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661146c9092919063ffffffff16565b60006040518061010001604052807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000062ffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff16815260200160c842610b3d9190612129565b8152602001848152602001858152602001600073ffffffffffffffffffffffffffffffffffffffff16815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663414bf389836040518263ffffffff1660e01b8152600401610bc6919061206b565b602060405180830381600087803b158015610be057600080fd5b505af1158015610bf4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c189190611a5e565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b8152600401610c7391906120a2565b600060405180830381600087803b158015610c8d57600080fd5b505af1158015610ca1573d6000803e3d6000fd5b505050507f74e171117e91660f493740924d8bad0caf48dc4fbccb767fb05935397a2c17ae8482604051610cd69291906120bd565b60405180910390a160008673ffffffffffffffffffffffffffffffffffffffff1682604051610d0490611e2f565b60006040518083038185875af1925050503d8060008114610d41576040519150601f19603f3d011682016040523d82523d6000602084013e610d46565b606091505b5050905080610d81576040517f3794aeaf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8193505050509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16631698ee827f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006040518463ffffffff1660e01b8152600401610e9693929190611e88565b60206040518083038186803b158015610eae57600080fd5b505afa158015610ec2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee691906118dd565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f27576000915050610fc4565b600081905060008173ffffffffffffffffffffffffffffffffffffffff16631a6865026040518163ffffffff1660e01b815260040160206040518083038186803b158015610f7457600080fd5b505afa158015610f88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fac9190611a31565b6fffffffffffffffffffffffffffffffff1611925050505b90565b60008060009054906101000a900460ff161561100f576040517f29f745a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016000806101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806110905750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156110c7576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000821415611102576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61114f3330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166113e3909392919063ffffffff16565b6111ba7f0000000000000000000000000000000000000000000000000000000000000000837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661146c9092919063ffffffff16565b60006040518060a001604052807f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000089604051602001611260959493929190611db9565b60405160208183030381529060405281526020018773ffffffffffffffffffffffffffffffffffffffff16815260200160c84261129d9190612129565b815260200184815260200186815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c04b8d59836040518263ffffffff1660e01b81526004016113099190612049565b602060405180830381600087803b15801561132357600080fd5b505af1158015611337573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135b9190611a5e565b90507f0a7cb8f6e1d29e616c1209a3f418c17b3a9137005377f6dd072217b1ede2573b85858360405161139093929190611f1f565b60405180910390a1809250505060008060006101000a81548160ff021916908315150217905550949350505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b611466846323b872dd60e01b85858560405160240161140493929190611ebf565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506115ca565b50505050565b6000811480611505575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b81526004016114b3929190611e5f565b60206040518083038186803b1580156114cb57600080fd5b505afa1580156114df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115039190611a5e565b145b611544576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153b90612029565b60405180910390fd5b6115c58363095ea7b360e01b8484604051602401611563929190611ef6565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506115ca565b505050565b600061162c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166116919092919063ffffffff16565b905060008151111561168c578080602001905181019061164c9190611a04565b61168b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168290612009565b60405180910390fd5b5b505050565b60606116a084846000856116a9565b90509392505050565b6060824710156116ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e590611fc9565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516117179190611e18565b60006040518083038185875af1925050503d8060008114611754576040519150601f19603f3d011682016040523d82523d6000602084013e611759565b606091505b509150915061176a87838387611776565b92505050949350505050565b606083156117d9576000835114156117d157611791856117ec565b6117d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c790611fe9565b60405180910390fd5b5b8290506117e4565b6117e3838361180f565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156118225781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118569190611fa7565b60405180910390fd5b60008135905061186e8161241b565b92915050565b6000815190506118838161241b565b92915050565b60008151905061189881612432565b92915050565b6000815190506118ad81612449565b92915050565b6000813590506118c281612460565b92915050565b6000815190506118d781612460565b92915050565b6000602082840312156118f3576118f26122d2565b5b600061190184828501611874565b91505092915050565b60008060408385031215611921576119206122d2565b5b600061192f8582860161185f565b9250506020611940858286016118b3565b9150509250929050565b60008060008060808587031215611964576119636122d2565b5b60006119728782880161185f565b9450506020611983878288016118b3565b93505060406119948782880161185f565b92505060606119a5878288016118b3565b91505092959194509250565b6000806000606084860312156119ca576119c96122d2565b5b60006119d88682870161185f565b93505060206119e9868287016118b3565b92505060406119fa868287016118b3565b9150509250925092565b600060208284031215611a1a57611a196122d2565b5b6000611a2884828501611889565b91505092915050565b600060208284031215611a4757611a466122d2565b5b6000611a558482850161189e565b91505092915050565b600060208284031215611a7457611a736122d2565b5b6000611a82848285016118c8565b91505092915050565b611a948161217f565b82525050565b611aa38161217f565b82525050565b611aba611ab58261217f565b61226d565b82525050565b611ac981612191565b82525050565b6000611ada826120e6565b611ae481856120fc565b9350611af481856020860161223a565b611afd816122d7565b840191505092915050565b6000611b13826120e6565b611b1d818561210d565b9350611b2d81856020860161223a565b80840191505092915050565b611b42816121f2565b82525050565b611b5181612204565b82525050565b6000611b62826120f1565b611b6c8185612118565b9350611b7c81856020860161223a565b611b85816122d7565b840191505092915050565b6000611b9d602683612118565b9150611ba882612302565b604082019050919050565b6000611bc060008361210d565b9150611bcb82612351565b600082019050919050565b6000611be3601d83612118565b9150611bee82612354565b602082019050919050565b6000611c06602a83612118565b9150611c118261237d565b604082019050919050565b6000611c29603683612118565b9150611c34826123cc565b604082019050919050565b600060a0830160008301518482036000860152611c5c8282611acf565b9150506020830151611c716020860182611a8b565b506040830151611c846040860182611d9b565b506060830151611c976060860182611d9b565b506080830151611caa6080860182611d9b565b508091505092915050565b61010082016000820151611ccc6000850182611a8b565b506020820151611cdf6020850182611a8b565b506040820151611cf26040850182611d66565b506060820151611d056060850182611a8b565b506080820151611d186080850182611d9b565b5060a0820151611d2b60a0850182611d9b565b5060c0820151611d3e60c0850182611d9b565b5060e0820151611d5160e0850182611d57565b50505050565b611d60816121b9565b82525050565b611d6f816121d9565b82525050565b611d7e816121d9565b82525050565b611d95611d90826121d9565b612291565b82525050565b611da4816121e8565b82525050565b611db3816121e8565b82525050565b6000611dc58288611aa9565b601482019150611dd58287611d84565b600382019150611de58286611aa9565b601482019150611df58285611d84565b600382019150611e058284611aa9565b6014820191508190509695505050505050565b6000611e248284611b08565b915081905092915050565b6000611e3a82611bb3565b9150819050919050565b6000602082019050611e596000830184611a9a565b92915050565b6000604082019050611e746000830185611a9a565b611e816020830184611a9a565b9392505050565b6000606082019050611e9d6000830186611a9a565b611eaa6020830185611a9a565b611eb76040830184611d75565b949350505050565b6000606082019050611ed46000830186611a9a565b611ee16020830185611a9a565b611eee6040830184611daa565b949350505050565b6000604082019050611f0b6000830185611a9a565b611f186020830184611daa565b9392505050565b6000606082019050611f346000830186611a9a565b611f416020830185611daa565b611f4e6040830184611daa565b949350505050565b6000602082019050611f6b6000830184611ac0565b92915050565b6000602082019050611f866000830184611b39565b92915050565b6000602082019050611fa16000830184611b48565b92915050565b60006020820190508181036000830152611fc18184611b57565b905092915050565b60006020820190508181036000830152611fe281611b90565b9050919050565b6000602082019050818103600083015261200281611bd6565b9050919050565b6000602082019050818103600083015261202281611bf9565b9050919050565b6000602082019050818103600083015261204281611c1c565b9050919050565b600060208201905081810360008301526120638184611c3f565b905092915050565b6000610100820190506120816000830184611cb5565b92915050565b600060208201905061209c6000830184611d75565b92915050565b60006020820190506120b76000830184611daa565b92915050565b60006040820190506120d26000830185611daa565b6120df6020830184611daa565b9392505050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000612134826121e8565b915061213f836121e8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612174576121736122a3565b5b828201905092915050565b600061218a826121b9565b9050919050565b60008115159050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062ffffff82169050919050565b6000819050919050565b60006121fd82612216565b9050919050565b600061220f82612216565b9050919050565b600061222182612228565b9050919050565b6000612233826121b9565b9050919050565b60005b8381101561225857808201518184015260208101905061223d565b83811115612267576000848401525b50505050565b60006122788261227f565b9050919050565b600061228a826122f5565b9050919050565b600061229c826122e8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160e81b9050919050565b60008160601b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b50565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b6124248161217f565b811461242f57600080fd5b50565b61243b81612191565b811461244657600080fd5b50565b6124528161219d565b811461245d57600080fd5b50565b612469816121e8565b811461247457600080fd5b5056fea2646970667358221220c207c922259dc7e5a2e16505dd6095616db7c385800d654ff7d82add8972c36764736f6c63430008070033"; type ZetaTokenConsumerUniV3ConstructorParams = | [signer?: Signer] diff --git a/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/index.ts b/v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/index.ts similarity index 100% rename from typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/index.ts rename to v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/index.ts diff --git a/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/ZetaTokenConsumerZEVMErrors__factory.ts b/v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/ZetaTokenConsumerZEVMErrors__factory.ts similarity index 100% rename from typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/ZetaTokenConsumerZEVMErrors__factory.ts rename to v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/ZetaTokenConsumerZEVMErrors__factory.ts diff --git a/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/ZetaTokenConsumerZEVM__factory.ts b/v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/ZetaTokenConsumerZEVM__factory.ts similarity index 99% rename from typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/ZetaTokenConsumerZEVM__factory.ts rename to v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/ZetaTokenConsumerZEVM__factory.ts index 32773b4d..5d7cd70a 100644 --- a/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/ZetaTokenConsumerZEVM__factory.ts +++ b/v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/ZetaTokenConsumerZEVM__factory.ts @@ -313,7 +313,7 @@ const _abi = [ ] as const; const _bytecode = - "0x60c06040523480156200001157600080fd5b506040516200220938038062002209833981810160405281019062000037919062000164565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806200009f5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15620000d7576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b815250505050620001fe565b6000815190506200015e81620001e4565b92915050565b600080604083850312156200017e576200017d620001df565b5b60006200018e858286016200014d565b9250506020620001a1858286016200014d565b9150509250929050565b6000620001b882620001bf565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b620001ef81620001ab565b8114620001fb57600080fd5b50565b60805160601c60a05160601c611f7e6200028b600039600081816105a4015281816106fa01528181610cb50152610e2b0152600081816060015281816103060152818161038c015281816104ee01528181610689015281816109180152818161095f01528181610bdf01528181610c6b01528181610cd701528181610d6b0152610f660152611f7e6000f3fe6080604052600436106100595760003560e01c8063013b2ff8146100ea5780632405620a1461011a57806354c49a2a1461015757806380801f8414610194578063a53fb10b146101bf578063c469cf14146101fc576100e5565b366100e5577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146100e3576040517f290ee5a500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b005b600080fd5b61010460048036038101906100ff919061157c565b610227565b6040516101119190611aa8565b60405180910390f35b34801561012657600080fd5b50610141600480360381019061013c91906115bc565b610412565b60405161014e9190611aa8565b60405180910390f35b34801561016357600080fd5b5061017e60048036038101906101799190611623565b610833565b60405161018b9190611aa8565b60405180910390f35b3480156101a057600080fd5b506101a9610acf565b6040516101b691906119eb565b60405180910390f35b3480156101cb57600080fd5b506101e660048036038101906101e191906115bc565b610b03565b6040516101f39190611aa8565b60405180910390f35b34801561020857600080fd5b50610211610f64565b60405161021e9190611910565b60405180910390f35b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561028f576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60003414156102ca576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81341015610304576040517fe2f844a000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561036c57600080fd5b505af1158015610380573d6000803e3d6000fd5b50505050506103d083347f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610f889092919063ffffffff16565b7f87890b0a30955b1db16cc894fbe24779ae05d9f337bfe8b6dfc0809b5bf9da113434604051610401929190611ac3565b60405180910390a134905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061047a5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156104b1576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008214156104ec576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610572576040517f6edfe50500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61059f3330848673ffffffffffffffffffffffffffffffffffffffff1661100e909392919063ffffffff16565b6105ea7f0000000000000000000000000000000000000000000000000000000000000000838573ffffffffffffffffffffffffffffffffffffffff166110979092919063ffffffff16565b6000600267ffffffffffffffff81111561060757610606611d96565b5b6040519080825280602002602001820160405280156106355781602001602082028036833780820191505090505b509050838160008151811061064d5761064c611d67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000000000000000000000000000000000000000000000816001815181106106bc576106bb611d67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166338ed17398588858b60c8426107459190611c02565b6040518663ffffffff1660e01b8152600401610765959493929190611aec565b600060405180830381600087803b15801561077f57600080fd5b505af1158015610793573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906107bc9190611676565b9050600081600184516107cf9190611c58565b815181106107e0576107df611d67565b5b602002602001015190507f017190d3d99ee6d8dd0604ef1e71ff9802810c6485f57c9b2ed6169848dd119f86868360405161081d939291906119b4565b60405180910390a1809350505050949350505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561089b576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008214156108d6576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82821015610910576040517fe2f844a000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61095d3330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661100e909392919063ffffffff16565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b81526004016109b69190611aa8565b600060405180830381600087803b1580156109d057600080fd5b505af11580156109e4573d6000803e3d6000fd5b505050507f74e171117e91660f493740924d8bad0caf48dc4fbccb767fb05935397a2c17ae8283604051610a19929190611ac3565b60405180910390a160008473ffffffffffffffffffffffffffffffffffffffff1683604051610a47906118fb565b60006040518083038185875af1925050503d8060008114610a84576040519150601f19603f3d011682016040523d82523d6000602084013e610a89565b606091505b5050905080610ac4576040517f3794aeaf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b829150509392505050565b60006040517f0e6a82b100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610b6b5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15610ba2576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000821415610bdd576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c63576040517f8c51927900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610cb03330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661100e909392919063ffffffff16565b610d1b7f0000000000000000000000000000000000000000000000000000000000000000837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166110979092919063ffffffff16565b6000600267ffffffffffffffff811115610d3857610d37611d96565b5b604051908082528060200260200182016040528015610d665781602001602082028036833780820191505090505b5090507f000000000000000000000000000000000000000000000000000000000000000081600081518110610d9e57610d9d611d67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508381600181518110610ded57610dec611d67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166338ed17398588858b60c842610e769190611c02565b6040518663ffffffff1660e01b8152600401610e96959493929190611aec565b600060405180830381600087803b158015610eb057600080fd5b505af1158015610ec4573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610eed9190611676565b905060008160018451610f009190611c58565b81518110610f1157610f10611d67565b5b602002602001015190507f0a7cb8f6e1d29e616c1209a3f418c17b3a9137005377f6dd072217b1ede2573b868683604051610f4e939291906119b4565b60405180910390a1809350505050949350505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6110098363a9059cbb60e01b8484604051602401610fa792919061198b565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506111f5565b505050565b611091846323b872dd60e01b85858560405160240161102f93929190611954565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506111f5565b50505050565b6000811480611130575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b81526004016110de92919061192b565b60206040518083038186803b1580156110f657600080fd5b505afa15801561110a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112e91906116ec565b145b61116f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116690611a88565b60405180910390fd5b6111f08363095ea7b360e01b848460405160240161118e92919061198b565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506111f5565b505050565b6000611257826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166112bc9092919063ffffffff16565b90506000815111156112b7578080602001905181019061127791906116bf565b6112b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ad90611a68565b60405180910390fd5b5b505050565b60606112cb84846000856112d4565b90509392505050565b606082471015611319576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131090611a28565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161134291906118e4565b60006040518083038185875af1925050503d806000811461137f576040519150601f19603f3d011682016040523d82523d6000602084013e611384565b606091505b5091509150611395878383876113a1565b92505050949350505050565b60608315611404576000835114156113fc576113bc85611417565b6113fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f290611a48565b60405180910390fd5b5b82905061140f565b61140e838361143a565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60008251111561144d5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114819190611a06565b60405180910390fd5b600061149d61149884611b6b565b611b46565b905080838252602082019050828560208602820111156114c0576114bf611dca565b5b60005b858110156114f057816114d68882611567565b8452602084019350602083019250506001810190506114c3565b5050509392505050565b60008135905061150981611f03565b92915050565b600082601f83011261152457611523611dc5565b5b815161153484826020860161148a565b91505092915050565b60008151905061154c81611f1a565b92915050565b60008135905061156181611f31565b92915050565b60008151905061157681611f31565b92915050565b6000806040838503121561159357611592611dd4565b5b60006115a1858286016114fa565b92505060206115b285828601611552565b9150509250929050565b600080600080608085870312156115d6576115d5611dd4565b5b60006115e4878288016114fa565b94505060206115f587828801611552565b9350506040611606878288016114fa565b925050606061161787828801611552565b91505092959194509250565b60008060006060848603121561163c5761163b611dd4565b5b600061164a868287016114fa565b935050602061165b86828701611552565b925050604061166c86828701611552565b9150509250925092565b60006020828403121561168c5761168b611dd4565b5b600082015167ffffffffffffffff8111156116aa576116a9611dcf565b5b6116b68482850161150f565b91505092915050565b6000602082840312156116d5576116d4611dd4565b5b60006116e38482850161153d565b91505092915050565b60006020828403121561170257611701611dd4565b5b600061171084828501611567565b91505092915050565b60006117258383611731565b60208301905092915050565b61173a81611c8c565b82525050565b61174981611c8c565b82525050565b600061175a82611ba7565b6117648185611bd5565b935061176f83611b97565b8060005b838110156117a05781516117878882611719565b975061179283611bc8565b925050600181019050611773565b5085935050505092915050565b6117b681611c9e565b82525050565b60006117c782611bb2565b6117d18185611be6565b93506117e1818560208601611cd4565b80840191505092915050565b60006117f882611bbd565b6118028185611bf1565b9350611812818560208601611cd4565b61181b81611dd9565b840191505092915050565b6000611833602683611bf1565b915061183e82611dea565b604082019050919050565b6000611856600083611be6565b915061186182611e39565b600082019050919050565b6000611879601d83611bf1565b915061188482611e3c565b602082019050919050565b600061189c602a83611bf1565b91506118a782611e65565b604082019050919050565b60006118bf603683611bf1565b91506118ca82611eb4565b604082019050919050565b6118de81611cca565b82525050565b60006118f082846117bc565b915081905092915050565b600061190682611849565b9150819050919050565b60006020820190506119256000830184611740565b92915050565b60006040820190506119406000830185611740565b61194d6020830184611740565b9392505050565b60006060820190506119696000830186611740565b6119766020830185611740565b61198360408301846118d5565b949350505050565b60006040820190506119a06000830185611740565b6119ad60208301846118d5565b9392505050565b60006060820190506119c96000830186611740565b6119d660208301856118d5565b6119e360408301846118d5565b949350505050565b6000602082019050611a0060008301846117ad565b92915050565b60006020820190508181036000830152611a2081846117ed565b905092915050565b60006020820190508181036000830152611a4181611826565b9050919050565b60006020820190508181036000830152611a618161186c565b9050919050565b60006020820190508181036000830152611a818161188f565b9050919050565b60006020820190508181036000830152611aa1816118b2565b9050919050565b6000602082019050611abd60008301846118d5565b92915050565b6000604082019050611ad860008301856118d5565b611ae560208301846118d5565b9392505050565b600060a082019050611b0160008301886118d5565b611b0e60208301876118d5565b8181036040830152611b20818661174f565b9050611b2f6060830185611740565b611b3c60808301846118d5565b9695505050505050565b6000611b50611b61565b9050611b5c8282611d07565b919050565b6000604051905090565b600067ffffffffffffffff821115611b8657611b85611d96565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000611c0d82611cca565b9150611c1883611cca565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611c4d57611c4c611d38565b5b828201905092915050565b6000611c6382611cca565b9150611c6e83611cca565b925082821015611c8157611c80611d38565b5b828203905092915050565b6000611c9782611caa565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b83811015611cf2578082015181840152602081019050611cd7565b83811115611d01576000848401525b50505050565b611d1082611dd9565b810181811067ffffffffffffffff82111715611d2f57611d2e611d96565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b50565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b611f0c81611c8c565b8114611f1757600080fd5b50565b611f2381611c9e565b8114611f2e57600080fd5b50565b611f3a81611cca565b8114611f4557600080fd5b5056fea26469706673582212208d9034aea3c8399eb52d47a1eab88ad2e74879d4a2d03d208a0237686f63877a64736f6c63430008070033"; + "0x60c06040523480156200001157600080fd5b506040516200220938038062002209833981810160405281019062000037919062000164565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806200009f5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15620000d7576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b815250505050620001fe565b6000815190506200015e81620001e4565b92915050565b600080604083850312156200017e576200017d620001df565b5b60006200018e858286016200014d565b9250506020620001a1858286016200014d565b9150509250929050565b6000620001b882620001bf565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b620001ef81620001ab565b8114620001fb57600080fd5b50565b60805160601c60a05160601c611f7e6200028b600039600081816105a4015281816106fa01528181610cb50152610e2b0152600081816060015281816103060152818161038c015281816104ee01528181610689015281816109180152818161095f01528181610bdf01528181610c6b01528181610cd701528181610d6b0152610f660152611f7e6000f3fe6080604052600436106100595760003560e01c8063013b2ff8146100ea5780632405620a1461011a57806354c49a2a1461015757806380801f8414610194578063a53fb10b146101bf578063c469cf14146101fc576100e5565b366100e5577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146100e3576040517f290ee5a500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b005b600080fd5b61010460048036038101906100ff919061157c565b610227565b6040516101119190611aa8565b60405180910390f35b34801561012657600080fd5b50610141600480360381019061013c91906115bc565b610412565b60405161014e9190611aa8565b60405180910390f35b34801561016357600080fd5b5061017e60048036038101906101799190611623565b610833565b60405161018b9190611aa8565b60405180910390f35b3480156101a057600080fd5b506101a9610acf565b6040516101b691906119eb565b60405180910390f35b3480156101cb57600080fd5b506101e660048036038101906101e191906115bc565b610b03565b6040516101f39190611aa8565b60405180910390f35b34801561020857600080fd5b50610211610f64565b60405161021e9190611910565b60405180910390f35b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561028f576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60003414156102ca576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81341015610304576040517fe2f844a000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561036c57600080fd5b505af1158015610380573d6000803e3d6000fd5b50505050506103d083347f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610f889092919063ffffffff16565b7f87890b0a30955b1db16cc894fbe24779ae05d9f337bfe8b6dfc0809b5bf9da113434604051610401929190611ac3565b60405180910390a134905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061047a5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156104b1576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008214156104ec576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610572576040517f6edfe50500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61059f3330848673ffffffffffffffffffffffffffffffffffffffff1661100e909392919063ffffffff16565b6105ea7f0000000000000000000000000000000000000000000000000000000000000000838573ffffffffffffffffffffffffffffffffffffffff166110979092919063ffffffff16565b6000600267ffffffffffffffff81111561060757610606611d96565b5b6040519080825280602002602001820160405280156106355781602001602082028036833780820191505090505b509050838160008151811061064d5761064c611d67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000000000000000000000000000000000000000000000816001815181106106bc576106bb611d67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166338ed17398588858b60c8426107459190611c02565b6040518663ffffffff1660e01b8152600401610765959493929190611aec565b600060405180830381600087803b15801561077f57600080fd5b505af1158015610793573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906107bc9190611676565b9050600081600184516107cf9190611c58565b815181106107e0576107df611d67565b5b602002602001015190507f017190d3d99ee6d8dd0604ef1e71ff9802810c6485f57c9b2ed6169848dd119f86868360405161081d939291906119b4565b60405180910390a1809350505050949350505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561089b576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008214156108d6576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82821015610910576040517fe2f844a000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61095d3330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661100e909392919063ffffffff16565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b81526004016109b69190611aa8565b600060405180830381600087803b1580156109d057600080fd5b505af11580156109e4573d6000803e3d6000fd5b505050507f74e171117e91660f493740924d8bad0caf48dc4fbccb767fb05935397a2c17ae8283604051610a19929190611ac3565b60405180910390a160008473ffffffffffffffffffffffffffffffffffffffff1683604051610a47906118fb565b60006040518083038185875af1925050503d8060008114610a84576040519150601f19603f3d011682016040523d82523d6000602084013e610a89565b606091505b5050905080610ac4576040517f3794aeaf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b829150509392505050565b60006040517f0e6a82b100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610b6b5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15610ba2576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000821415610bdd576040517fb813f54900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c63576040517f8c51927900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610cb03330847f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661100e909392919063ffffffff16565b610d1b7f0000000000000000000000000000000000000000000000000000000000000000837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166110979092919063ffffffff16565b6000600267ffffffffffffffff811115610d3857610d37611d96565b5b604051908082528060200260200182016040528015610d665781602001602082028036833780820191505090505b5090507f000000000000000000000000000000000000000000000000000000000000000081600081518110610d9e57610d9d611d67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508381600181518110610ded57610dec611d67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166338ed17398588858b60c842610e769190611c02565b6040518663ffffffff1660e01b8152600401610e96959493929190611aec565b600060405180830381600087803b158015610eb057600080fd5b505af1158015610ec4573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610eed9190611676565b905060008160018451610f009190611c58565b81518110610f1157610f10611d67565b5b602002602001015190507f0a7cb8f6e1d29e616c1209a3f418c17b3a9137005377f6dd072217b1ede2573b868683604051610f4e939291906119b4565b60405180910390a1809350505050949350505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6110098363a9059cbb60e01b8484604051602401610fa792919061198b565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506111f5565b505050565b611091846323b872dd60e01b85858560405160240161102f93929190611954565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506111f5565b50505050565b6000811480611130575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b81526004016110de92919061192b565b60206040518083038186803b1580156110f657600080fd5b505afa15801561110a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112e91906116ec565b145b61116f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116690611a88565b60405180910390fd5b6111f08363095ea7b360e01b848460405160240161118e92919061198b565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506111f5565b505050565b6000611257826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166112bc9092919063ffffffff16565b90506000815111156112b7578080602001905181019061127791906116bf565b6112b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ad90611a68565b60405180910390fd5b5b505050565b60606112cb84846000856112d4565b90509392505050565b606082471015611319576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131090611a28565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161134291906118e4565b60006040518083038185875af1925050503d806000811461137f576040519150601f19603f3d011682016040523d82523d6000602084013e611384565b606091505b5091509150611395878383876113a1565b92505050949350505050565b60608315611404576000835114156113fc576113bc85611417565b6113fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f290611a48565b60405180910390fd5b5b82905061140f565b61140e838361143a565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60008251111561144d5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114819190611a06565b60405180910390fd5b600061149d61149884611b6b565b611b46565b905080838252602082019050828560208602820111156114c0576114bf611dca565b5b60005b858110156114f057816114d68882611567565b8452602084019350602083019250506001810190506114c3565b5050509392505050565b60008135905061150981611f03565b92915050565b600082601f83011261152457611523611dc5565b5b815161153484826020860161148a565b91505092915050565b60008151905061154c81611f1a565b92915050565b60008135905061156181611f31565b92915050565b60008151905061157681611f31565b92915050565b6000806040838503121561159357611592611dd4565b5b60006115a1858286016114fa565b92505060206115b285828601611552565b9150509250929050565b600080600080608085870312156115d6576115d5611dd4565b5b60006115e4878288016114fa565b94505060206115f587828801611552565b9350506040611606878288016114fa565b925050606061161787828801611552565b91505092959194509250565b60008060006060848603121561163c5761163b611dd4565b5b600061164a868287016114fa565b935050602061165b86828701611552565b925050604061166c86828701611552565b9150509250925092565b60006020828403121561168c5761168b611dd4565b5b600082015167ffffffffffffffff8111156116aa576116a9611dcf565b5b6116b68482850161150f565b91505092915050565b6000602082840312156116d5576116d4611dd4565b5b60006116e38482850161153d565b91505092915050565b60006020828403121561170257611701611dd4565b5b600061171084828501611567565b91505092915050565b60006117258383611731565b60208301905092915050565b61173a81611c8c565b82525050565b61174981611c8c565b82525050565b600061175a82611ba7565b6117648185611bd5565b935061176f83611b97565b8060005b838110156117a05781516117878882611719565b975061179283611bc8565b925050600181019050611773565b5085935050505092915050565b6117b681611c9e565b82525050565b60006117c782611bb2565b6117d18185611be6565b93506117e1818560208601611cd4565b80840191505092915050565b60006117f882611bbd565b6118028185611bf1565b9350611812818560208601611cd4565b61181b81611dd9565b840191505092915050565b6000611833602683611bf1565b915061183e82611dea565b604082019050919050565b6000611856600083611be6565b915061186182611e39565b600082019050919050565b6000611879601d83611bf1565b915061188482611e3c565b602082019050919050565b600061189c602a83611bf1565b91506118a782611e65565b604082019050919050565b60006118bf603683611bf1565b91506118ca82611eb4565b604082019050919050565b6118de81611cca565b82525050565b60006118f082846117bc565b915081905092915050565b600061190682611849565b9150819050919050565b60006020820190506119256000830184611740565b92915050565b60006040820190506119406000830185611740565b61194d6020830184611740565b9392505050565b60006060820190506119696000830186611740565b6119766020830185611740565b61198360408301846118d5565b949350505050565b60006040820190506119a06000830185611740565b6119ad60208301846118d5565b9392505050565b60006060820190506119c96000830186611740565b6119d660208301856118d5565b6119e360408301846118d5565b949350505050565b6000602082019050611a0060008301846117ad565b92915050565b60006020820190508181036000830152611a2081846117ed565b905092915050565b60006020820190508181036000830152611a4181611826565b9050919050565b60006020820190508181036000830152611a618161186c565b9050919050565b60006020820190508181036000830152611a818161188f565b9050919050565b60006020820190508181036000830152611aa1816118b2565b9050919050565b6000602082019050611abd60008301846118d5565b92915050565b6000604082019050611ad860008301856118d5565b611ae560208301846118d5565b9392505050565b600060a082019050611b0160008301886118d5565b611b0e60208301876118d5565b8181036040830152611b20818661174f565b9050611b2f6060830185611740565b611b3c60808301846118d5565b9695505050505050565b6000611b50611b61565b9050611b5c8282611d07565b919050565b6000604051905090565b600067ffffffffffffffff821115611b8657611b85611d96565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000611c0d82611cca565b9150611c1883611cca565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611c4d57611c4c611d38565b5b828201905092915050565b6000611c6382611cca565b9150611c6e83611cca565b925082821015611c8157611c80611d38565b5b828203905092915050565b6000611c9782611caa565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b83811015611cf2578082015181840152602081019050611cd7565b83811115611d01576000848401525b50505050565b611d1082611dd9565b810181811067ffffffffffffffff82111715611d2f57611d2e611d96565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b50565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b611f0c81611c8c565b8114611f1757600080fd5b50565b611f2381611c9e565b8114611f2e57600080fd5b50565b611f3a81611cca565b8114611f4557600080fd5b5056fea26469706673582212209d699fd174ff021ab8955aa2ab41ef5c683b288e3873f97ef4d0c4732ceebae264736f6c63430008070033"; type ZetaTokenConsumerZEVMConstructorParams = | [signer?: Signer] diff --git a/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/index.ts b/v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/index.ts similarity index 100% rename from typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/index.ts rename to v1/typechain-types/factories/contracts/evm/tools/ZetaTokenConsumerZEVM.strategy.sol/index.ts diff --git a/typechain-types/factories/contracts/evm/tools/index.ts b/v1/typechain-types/factories/contracts/evm/tools/index.ts similarity index 100% rename from typechain-types/factories/contracts/evm/tools/index.ts rename to v1/typechain-types/factories/contracts/evm/tools/index.ts diff --git a/typechain-types/factories/contracts/evm/tools/interfaces/TridentConcentratedLiquidityPoolFactory.sol/ConcentratedLiquidityPoolFactory__factory.ts b/v1/typechain-types/factories/contracts/evm/tools/interfaces/TridentConcentratedLiquidityPoolFactory.sol/ConcentratedLiquidityPoolFactory__factory.ts similarity index 100% rename from typechain-types/factories/contracts/evm/tools/interfaces/TridentConcentratedLiquidityPoolFactory.sol/ConcentratedLiquidityPoolFactory__factory.ts rename to v1/typechain-types/factories/contracts/evm/tools/interfaces/TridentConcentratedLiquidityPoolFactory.sol/ConcentratedLiquidityPoolFactory__factory.ts diff --git a/typechain-types/factories/contracts/evm/tools/interfaces/TridentConcentratedLiquidityPoolFactory.sol/index.ts b/v1/typechain-types/factories/contracts/evm/tools/interfaces/TridentConcentratedLiquidityPoolFactory.sol/index.ts similarity index 100% rename from typechain-types/factories/contracts/evm/tools/interfaces/TridentConcentratedLiquidityPoolFactory.sol/index.ts rename to v1/typechain-types/factories/contracts/evm/tools/interfaces/TridentConcentratedLiquidityPoolFactory.sol/index.ts diff --git a/typechain-types/factories/contracts/evm/tools/interfaces/TridentIPoolRouter.sol/IPoolRouter__factory.ts b/v1/typechain-types/factories/contracts/evm/tools/interfaces/TridentIPoolRouter.sol/IPoolRouter__factory.ts similarity index 100% rename from typechain-types/factories/contracts/evm/tools/interfaces/TridentIPoolRouter.sol/IPoolRouter__factory.ts rename to v1/typechain-types/factories/contracts/evm/tools/interfaces/TridentIPoolRouter.sol/IPoolRouter__factory.ts diff --git a/typechain-types/factories/contracts/evm/tools/interfaces/TridentIPoolRouter.sol/index.ts b/v1/typechain-types/factories/contracts/evm/tools/interfaces/TridentIPoolRouter.sol/index.ts similarity index 100% rename from typechain-types/factories/contracts/evm/tools/interfaces/TridentIPoolRouter.sol/index.ts rename to v1/typechain-types/factories/contracts/evm/tools/interfaces/TridentIPoolRouter.sol/index.ts diff --git a/typechain-types/factories/contracts/evm/tools/interfaces/index.ts b/v1/typechain-types/factories/contracts/evm/tools/interfaces/index.ts similarity index 100% rename from typechain-types/factories/contracts/evm/tools/interfaces/index.ts rename to v1/typechain-types/factories/contracts/evm/tools/interfaces/index.ts diff --git a/typechain-types/factories/contracts/prototypes/index.ts b/v1/typechain-types/factories/contracts/index.ts similarity index 100% rename from typechain-types/factories/contracts/prototypes/index.ts rename to v1/typechain-types/factories/contracts/index.ts diff --git a/typechain-types/factories/contracts/zevm/Interfaces.sol/ISystem__factory.ts b/v1/typechain-types/factories/contracts/zevm/Interfaces.sol/ISystem__factory.ts similarity index 100% rename from typechain-types/factories/contracts/zevm/Interfaces.sol/ISystem__factory.ts rename to v1/typechain-types/factories/contracts/zevm/Interfaces.sol/ISystem__factory.ts diff --git a/typechain-types/factories/contracts/zevm/Interfaces.sol/IZRC20Metadata__factory.ts b/v1/typechain-types/factories/contracts/zevm/Interfaces.sol/IZRC20Metadata__factory.ts similarity index 100% rename from typechain-types/factories/contracts/zevm/Interfaces.sol/IZRC20Metadata__factory.ts rename to v1/typechain-types/factories/contracts/zevm/Interfaces.sol/IZRC20Metadata__factory.ts diff --git a/typechain-types/factories/contracts/zevm/Interfaces.sol/IZRC20__factory.ts b/v1/typechain-types/factories/contracts/zevm/Interfaces.sol/IZRC20__factory.ts similarity index 100% rename from typechain-types/factories/contracts/zevm/Interfaces.sol/IZRC20__factory.ts rename to v1/typechain-types/factories/contracts/zevm/Interfaces.sol/IZRC20__factory.ts diff --git a/typechain-types/factories/contracts/zevm/Interfaces.sol/index.ts b/v1/typechain-types/factories/contracts/zevm/Interfaces.sol/index.ts similarity index 100% rename from typechain-types/factories/contracts/zevm/Interfaces.sol/index.ts rename to v1/typechain-types/factories/contracts/zevm/Interfaces.sol/index.ts diff --git a/typechain-types/factories/contracts/zevm/SystemContract.sol/SystemContractErrors__factory.ts b/v1/typechain-types/factories/contracts/zevm/SystemContract.sol/SystemContractErrors__factory.ts similarity index 100% rename from typechain-types/factories/contracts/zevm/SystemContract.sol/SystemContractErrors__factory.ts rename to v1/typechain-types/factories/contracts/zevm/SystemContract.sol/SystemContractErrors__factory.ts diff --git a/typechain-types/factories/contracts/zevm/SystemContract.sol/SystemContract__factory.ts b/v1/typechain-types/factories/contracts/zevm/SystemContract.sol/SystemContract__factory.ts similarity index 100% rename from typechain-types/factories/contracts/zevm/SystemContract.sol/SystemContract__factory.ts rename to v1/typechain-types/factories/contracts/zevm/SystemContract.sol/SystemContract__factory.ts diff --git a/typechain-types/factories/contracts/zevm/SystemContract.sol/index.ts b/v1/typechain-types/factories/contracts/zevm/SystemContract.sol/index.ts similarity index 100% rename from typechain-types/factories/contracts/zevm/SystemContract.sol/index.ts rename to v1/typechain-types/factories/contracts/zevm/SystemContract.sol/index.ts diff --git a/typechain-types/factories/contracts/zevm/WZETA.sol/WETH9__factory.ts b/v1/typechain-types/factories/contracts/zevm/WZETA.sol/WETH9__factory.ts similarity index 100% rename from typechain-types/factories/contracts/zevm/WZETA.sol/WETH9__factory.ts rename to v1/typechain-types/factories/contracts/zevm/WZETA.sol/WETH9__factory.ts diff --git a/typechain-types/factories/contracts/zevm/WZETA.sol/index.ts b/v1/typechain-types/factories/contracts/zevm/WZETA.sol/index.ts similarity index 100% rename from typechain-types/factories/contracts/zevm/WZETA.sol/index.ts rename to v1/typechain-types/factories/contracts/zevm/WZETA.sol/index.ts diff --git a/typechain-types/factories/contracts/zevm/ZRC20.sol/ZRC20Errors__factory.ts b/v1/typechain-types/factories/contracts/zevm/ZRC20.sol/ZRC20Errors__factory.ts similarity index 100% rename from typechain-types/factories/contracts/zevm/ZRC20.sol/ZRC20Errors__factory.ts rename to v1/typechain-types/factories/contracts/zevm/ZRC20.sol/ZRC20Errors__factory.ts diff --git a/typechain-types/factories/contracts/zevm/ZRC20.sol/ZRC20__factory.ts b/v1/typechain-types/factories/contracts/zevm/ZRC20.sol/ZRC20__factory.ts similarity index 100% rename from typechain-types/factories/contracts/zevm/ZRC20.sol/ZRC20__factory.ts rename to v1/typechain-types/factories/contracts/zevm/ZRC20.sol/ZRC20__factory.ts diff --git a/typechain-types/factories/contracts/zevm/ZRC20.sol/index.ts b/v1/typechain-types/factories/contracts/zevm/ZRC20.sol/index.ts similarity index 100% rename from typechain-types/factories/contracts/zevm/ZRC20.sol/index.ts rename to v1/typechain-types/factories/contracts/zevm/ZRC20.sol/index.ts diff --git a/typechain-types/factories/contracts/zevm/ZRC20New.sol/ZRC20Errors__factory.ts b/v1/typechain-types/factories/contracts/zevm/ZRC20New.sol/ZRC20Errors__factory.ts similarity index 100% rename from typechain-types/factories/contracts/zevm/ZRC20New.sol/ZRC20Errors__factory.ts rename to v1/typechain-types/factories/contracts/zevm/ZRC20New.sol/ZRC20Errors__factory.ts diff --git a/typechain-types/factories/contracts/zevm/ZRC20New.sol/ZRC20New__factory.ts b/v1/typechain-types/factories/contracts/zevm/ZRC20New.sol/ZRC20New__factory.ts similarity index 100% rename from typechain-types/factories/contracts/zevm/ZRC20New.sol/ZRC20New__factory.ts rename to v1/typechain-types/factories/contracts/zevm/ZRC20New.sol/ZRC20New__factory.ts diff --git a/typechain-types/factories/contracts/prototypes/zevm/ZRC20New.sol/index.ts b/v1/typechain-types/factories/contracts/zevm/ZRC20New.sol/index.ts similarity index 100% rename from typechain-types/factories/contracts/prototypes/zevm/ZRC20New.sol/index.ts rename to v1/typechain-types/factories/contracts/zevm/ZRC20New.sol/index.ts diff --git a/typechain-types/factories/contracts/zevm/ZetaConnectorZEVM.sol/WZETA__factory.ts b/v1/typechain-types/factories/contracts/zevm/ZetaConnectorZEVM.sol/WZETA__factory.ts similarity index 100% rename from typechain-types/factories/contracts/zevm/ZetaConnectorZEVM.sol/WZETA__factory.ts rename to v1/typechain-types/factories/contracts/zevm/ZetaConnectorZEVM.sol/WZETA__factory.ts diff --git a/typechain-types/factories/contracts/zevm/ZetaConnectorZEVM.sol/ZetaConnectorZEVM__factory.ts b/v1/typechain-types/factories/contracts/zevm/ZetaConnectorZEVM.sol/ZetaConnectorZEVM__factory.ts similarity index 100% rename from typechain-types/factories/contracts/zevm/ZetaConnectorZEVM.sol/ZetaConnectorZEVM__factory.ts rename to v1/typechain-types/factories/contracts/zevm/ZetaConnectorZEVM.sol/ZetaConnectorZEVM__factory.ts diff --git a/typechain-types/factories/contracts/zevm/ZetaConnectorZEVM.sol/ZetaReceiver__factory.ts b/v1/typechain-types/factories/contracts/zevm/ZetaConnectorZEVM.sol/ZetaReceiver__factory.ts similarity index 100% rename from typechain-types/factories/contracts/zevm/ZetaConnectorZEVM.sol/ZetaReceiver__factory.ts rename to v1/typechain-types/factories/contracts/zevm/ZetaConnectorZEVM.sol/ZetaReceiver__factory.ts diff --git a/typechain-types/factories/contracts/zevm/ZetaConnectorZEVM.sol/index.ts b/v1/typechain-types/factories/contracts/zevm/ZetaConnectorZEVM.sol/index.ts similarity index 100% rename from typechain-types/factories/contracts/zevm/ZetaConnectorZEVM.sol/index.ts rename to v1/typechain-types/factories/contracts/zevm/ZetaConnectorZEVM.sol/index.ts diff --git a/typechain-types/factories/contracts/zevm/ZetaConnectorZEVM__factory.ts b/v1/typechain-types/factories/contracts/zevm/ZetaConnectorZEVM__factory.ts similarity index 100% rename from typechain-types/factories/contracts/zevm/ZetaConnectorZEVM__factory.ts rename to v1/typechain-types/factories/contracts/zevm/ZetaConnectorZEVM__factory.ts diff --git a/typechain-types/factories/contracts/zevm/index.ts b/v1/typechain-types/factories/contracts/zevm/index.ts similarity index 88% rename from typechain-types/factories/contracts/zevm/index.ts rename to v1/typechain-types/factories/contracts/zevm/index.ts index 0d3bcbac..89dc4157 100644 --- a/typechain-types/factories/contracts/zevm/index.ts +++ b/v1/typechain-types/factories/contracts/zevm/index.ts @@ -4,7 +4,6 @@ export * as systemContractSol from "./SystemContract.sol"; export * as wzetaSol from "./WZETA.sol"; export * as zrc20Sol from "./ZRC20.sol"; -export * as zrc20NewSol from "./ZRC20New.sol"; export * as zetaConnectorZevmSol from "./ZetaConnectorZEVM.sol"; export * as interfaces from "./interfaces"; export * as testing from "./testing"; diff --git a/typechain-types/factories/contracts/zevm/interfaces/ISystem__factory.ts b/v1/typechain-types/factories/contracts/zevm/interfaces/ISystem__factory.ts similarity index 100% rename from typechain-types/factories/contracts/zevm/interfaces/ISystem__factory.ts rename to v1/typechain-types/factories/contracts/zevm/interfaces/ISystem__factory.ts diff --git a/typechain-types/factories/contracts/zevm/interfaces/IUniswapV2Router01__factory.ts b/v1/typechain-types/factories/contracts/zevm/interfaces/IUniswapV2Router01__factory.ts similarity index 100% rename from typechain-types/factories/contracts/zevm/interfaces/IUniswapV2Router01__factory.ts rename to v1/typechain-types/factories/contracts/zevm/interfaces/IUniswapV2Router01__factory.ts diff --git a/typechain-types/factories/contracts/zevm/interfaces/IUniswapV2Router02__factory.ts b/v1/typechain-types/factories/contracts/zevm/interfaces/IUniswapV2Router02__factory.ts similarity index 100% rename from typechain-types/factories/contracts/zevm/interfaces/IUniswapV2Router02__factory.ts rename to v1/typechain-types/factories/contracts/zevm/interfaces/IUniswapV2Router02__factory.ts diff --git a/typechain-types/factories/contracts/zevm/interfaces/IWZETA.sol/IWETH9__factory.ts b/v1/typechain-types/factories/contracts/zevm/interfaces/IWZETA.sol/IWETH9__factory.ts similarity index 100% rename from typechain-types/factories/contracts/zevm/interfaces/IWZETA.sol/IWETH9__factory.ts rename to v1/typechain-types/factories/contracts/zevm/interfaces/IWZETA.sol/IWETH9__factory.ts diff --git a/typechain-types/factories/contracts/zevm/interfaces/IWZETA.sol/index.ts b/v1/typechain-types/factories/contracts/zevm/interfaces/IWZETA.sol/index.ts similarity index 100% rename from typechain-types/factories/contracts/zevm/interfaces/IWZETA.sol/index.ts rename to v1/typechain-types/factories/contracts/zevm/interfaces/IWZETA.sol/index.ts diff --git a/typechain-types/factories/contracts/zevm/interfaces/IZRC20.sol/ISystem__factory.ts b/v1/typechain-types/factories/contracts/zevm/interfaces/IZRC20.sol/ISystem__factory.ts similarity index 100% rename from typechain-types/factories/contracts/zevm/interfaces/IZRC20.sol/ISystem__factory.ts rename to v1/typechain-types/factories/contracts/zevm/interfaces/IZRC20.sol/ISystem__factory.ts diff --git a/typechain-types/factories/contracts/zevm/interfaces/IZRC20.sol/IZRC20Metadata__factory.ts b/v1/typechain-types/factories/contracts/zevm/interfaces/IZRC20.sol/IZRC20Metadata__factory.ts similarity index 100% rename from typechain-types/factories/contracts/zevm/interfaces/IZRC20.sol/IZRC20Metadata__factory.ts rename to v1/typechain-types/factories/contracts/zevm/interfaces/IZRC20.sol/IZRC20Metadata__factory.ts diff --git a/typechain-types/factories/contracts/zevm/interfaces/IZRC20.sol/IZRC20__factory.ts b/v1/typechain-types/factories/contracts/zevm/interfaces/IZRC20.sol/IZRC20__factory.ts similarity index 100% rename from typechain-types/factories/contracts/zevm/interfaces/IZRC20.sol/IZRC20__factory.ts rename to v1/typechain-types/factories/contracts/zevm/interfaces/IZRC20.sol/IZRC20__factory.ts diff --git a/typechain-types/factories/contracts/zevm/interfaces/IZRC20.sol/ZRC20Events__factory.ts b/v1/typechain-types/factories/contracts/zevm/interfaces/IZRC20.sol/ZRC20Events__factory.ts similarity index 100% rename from typechain-types/factories/contracts/zevm/interfaces/IZRC20.sol/ZRC20Events__factory.ts rename to v1/typechain-types/factories/contracts/zevm/interfaces/IZRC20.sol/ZRC20Events__factory.ts diff --git a/typechain-types/factories/contracts/zevm/interfaces/IZRC20.sol/index.ts b/v1/typechain-types/factories/contracts/zevm/interfaces/IZRC20.sol/index.ts similarity index 100% rename from typechain-types/factories/contracts/zevm/interfaces/IZRC20.sol/index.ts rename to v1/typechain-types/factories/contracts/zevm/interfaces/IZRC20.sol/index.ts diff --git a/typechain-types/factories/contracts/zevm/interfaces/IZRC20__factory.ts b/v1/typechain-types/factories/contracts/zevm/interfaces/IZRC20__factory.ts similarity index 100% rename from typechain-types/factories/contracts/zevm/interfaces/IZRC20__factory.ts rename to v1/typechain-types/factories/contracts/zevm/interfaces/IZRC20__factory.ts diff --git a/typechain-types/factories/contracts/zevm/interfaces/ZContract__factory.ts b/v1/typechain-types/factories/contracts/zevm/interfaces/ZContract__factory.ts similarity index 100% rename from typechain-types/factories/contracts/zevm/interfaces/ZContract__factory.ts rename to v1/typechain-types/factories/contracts/zevm/interfaces/ZContract__factory.ts diff --git a/typechain-types/factories/contracts/zevm/interfaces/index.ts b/v1/typechain-types/factories/contracts/zevm/interfaces/index.ts similarity index 100% rename from typechain-types/factories/contracts/zevm/interfaces/index.ts rename to v1/typechain-types/factories/contracts/zevm/interfaces/index.ts diff --git a/typechain-types/factories/contracts/zevm/interfaces/zContract.sol/UniversalContract__factory.ts b/v1/typechain-types/factories/contracts/zevm/interfaces/zContract.sol/UniversalContract__factory.ts similarity index 100% rename from typechain-types/factories/contracts/zevm/interfaces/zContract.sol/UniversalContract__factory.ts rename to v1/typechain-types/factories/contracts/zevm/interfaces/zContract.sol/UniversalContract__factory.ts diff --git a/typechain-types/factories/contracts/zevm/interfaces/zContract.sol/ZContract__factory.ts b/v1/typechain-types/factories/contracts/zevm/interfaces/zContract.sol/ZContract__factory.ts similarity index 100% rename from typechain-types/factories/contracts/zevm/interfaces/zContract.sol/ZContract__factory.ts rename to v1/typechain-types/factories/contracts/zevm/interfaces/zContract.sol/ZContract__factory.ts diff --git a/typechain-types/factories/contracts/zevm/interfaces/zContract.sol/index.ts b/v1/typechain-types/factories/contracts/zevm/interfaces/zContract.sol/index.ts similarity index 100% rename from typechain-types/factories/contracts/zevm/interfaces/zContract.sol/index.ts rename to v1/typechain-types/factories/contracts/zevm/interfaces/zContract.sol/index.ts diff --git a/typechain-types/factories/contracts/zevm/testing/SystemContractMock.sol/SystemContractErrors__factory.ts b/v1/typechain-types/factories/contracts/zevm/testing/SystemContractMock.sol/SystemContractErrors__factory.ts similarity index 100% rename from typechain-types/factories/contracts/zevm/testing/SystemContractMock.sol/SystemContractErrors__factory.ts rename to v1/typechain-types/factories/contracts/zevm/testing/SystemContractMock.sol/SystemContractErrors__factory.ts diff --git a/typechain-types/factories/contracts/zevm/testing/SystemContractMock.sol/SystemContractMock__factory.ts b/v1/typechain-types/factories/contracts/zevm/testing/SystemContractMock.sol/SystemContractMock__factory.ts similarity index 100% rename from typechain-types/factories/contracts/zevm/testing/SystemContractMock.sol/SystemContractMock__factory.ts rename to v1/typechain-types/factories/contracts/zevm/testing/SystemContractMock.sol/SystemContractMock__factory.ts diff --git a/typechain-types/factories/contracts/zevm/testing/SystemContractMock.sol/index.ts b/v1/typechain-types/factories/contracts/zevm/testing/SystemContractMock.sol/index.ts similarity index 100% rename from typechain-types/factories/contracts/zevm/testing/SystemContractMock.sol/index.ts rename to v1/typechain-types/factories/contracts/zevm/testing/SystemContractMock.sol/index.ts diff --git a/typechain-types/factories/contracts/zevm/testing/index.ts b/v1/typechain-types/factories/contracts/zevm/testing/index.ts similarity index 100% rename from typechain-types/factories/contracts/zevm/testing/index.ts rename to v1/typechain-types/factories/contracts/zevm/testing/index.ts diff --git a/typechain-types/factories/index.ts b/v1/typechain-types/factories/index.ts similarity index 100% rename from typechain-types/factories/index.ts rename to v1/typechain-types/factories/index.ts diff --git a/typechain-types/hardhat.d.ts b/v1/typechain-types/hardhat.d.ts similarity index 72% rename from typechain-types/hardhat.d.ts rename to v1/typechain-types/hardhat.d.ts index 582ce7ab..0ade9469 100644 --- a/typechain-types/hardhat.d.ts +++ b/v1/typechain-types/hardhat.d.ts @@ -12,42 +12,6 @@ import * as Contracts from "."; declare module "hardhat/types/runtime" { interface HardhatEthersHelpers extends HardhatEthersHelpersBase { - getContractFactory( - name: "OwnableUpgradeable", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IERC1822ProxiableUpgradeable", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IERC1967Upgradeable", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IBeaconUpgradeable", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "ERC1967UpgradeUpgradeable", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "Initializable", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "UUPSUpgradeable", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "ReentrancyGuardUpgradeable", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "ContextUpgradeable", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; getContractFactory( name: "Ownable", signerOrOptions?: ethers.Signer | FactoryOptions @@ -336,98 +300,6 @@ declare module "hardhat/types/runtime" { name: "ZetaConnectorNonEth", signerOrOptions?: ethers.Signer | FactoryOptions ): Promise; - getContractFactory( - name: "ERC20CustodyNew", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "GatewayEVM", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "GatewayEVMUpgradeTest", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IERC20CustodyNewErrors", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IERC20CustodyNewEvents", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IGatewayEVM", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IGatewayEVMErrors", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IGatewayEVMEvents", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "Revertable", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IReceiverEVMEvents", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IZetaConnectorEvents", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IZetaNonEthNew", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "ReceiverEVM", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "TestERC20", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "ZetaConnectorNative", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "ZetaConnectorNewBase", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "ZetaConnectorNonNative", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "GatewayZEVM", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IGatewayZEVM", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IGatewayZEVMErrors", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IGatewayZEVMEvents", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "SenderZEVM", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "TestZContract", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; getContractFactory( name: "ISystem", signerOrOptions?: ethers.Signer | FactoryOptions @@ -500,60 +372,7 @@ declare module "hardhat/types/runtime" { name: "ZRC20Errors", signerOrOptions?: ethers.Signer | FactoryOptions ): Promise; - getContractFactory( - name: "ZRC20Errors", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "ZRC20New", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractAt( - name: "OwnableUpgradeable", - address: string, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IERC1822ProxiableUpgradeable", - address: string, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IERC1967Upgradeable", - address: string, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IBeaconUpgradeable", - address: string, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "ERC1967UpgradeUpgradeable", - address: string, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "Initializable", - address: string, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "UUPSUpgradeable", - address: string, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "ReentrancyGuardUpgradeable", - address: string, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "ContextUpgradeable", - address: string, - signer?: ethers.Signer - ): Promise; getContractAt( name: "Ownable", address: string, @@ -914,121 +733,6 @@ declare module "hardhat/types/runtime" { address: string, signer?: ethers.Signer ): Promise; - getContractAt( - name: "ERC20CustodyNew", - address: string, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "GatewayEVM", - address: string, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "GatewayEVMUpgradeTest", - address: string, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IERC20CustodyNewErrors", - address: string, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IERC20CustodyNewEvents", - address: string, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IGatewayEVM", - address: string, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IGatewayEVMErrors", - address: string, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IGatewayEVMEvents", - address: string, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "Revertable", - address: string, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IReceiverEVMEvents", - address: string, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IZetaConnectorEvents", - address: string, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IZetaNonEthNew", - address: string, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "ReceiverEVM", - address: string, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "TestERC20", - address: string, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "ZetaConnectorNative", - address: string, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "ZetaConnectorNewBase", - address: string, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "ZetaConnectorNonNative", - address: string, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "GatewayZEVM", - address: string, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IGatewayZEVM", - address: string, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IGatewayZEVMErrors", - address: string, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IGatewayZEVMEvents", - address: string, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "SenderZEVM", - address: string, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "TestZContract", - address: string, - signer?: ethers.Signer - ): Promise; getContractAt( name: "ISystem", address: string, @@ -1119,16 +823,6 @@ declare module "hardhat/types/runtime" { address: string, signer?: ethers.Signer ): Promise; - getContractAt( - name: "ZRC20Errors", - address: string, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "ZRC20New", - address: string, - signer?: ethers.Signer - ): Promise; // default types getContractFactory( diff --git a/typechain-types/index.ts b/v1/typechain-types/index.ts similarity index 71% rename from typechain-types/index.ts rename to v1/typechain-types/index.ts index 52b3f590..de4aab45 100644 --- a/typechain-types/index.ts +++ b/v1/typechain-types/index.ts @@ -8,24 +8,6 @@ export type { uniswap }; import type * as contracts from "./contracts"; export type { contracts }; export * as factories from "./factories"; -export type { OwnableUpgradeable } from "./@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable"; -export { OwnableUpgradeable__factory } from "./factories/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable__factory"; -export type { IERC1822ProxiableUpgradeable } from "./@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol/IERC1822ProxiableUpgradeable"; -export { IERC1822ProxiableUpgradeable__factory } from "./factories/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol/IERC1822ProxiableUpgradeable__factory"; -export type { IERC1967Upgradeable } from "./@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable"; -export { IERC1967Upgradeable__factory } from "./factories/@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable__factory"; -export type { IBeaconUpgradeable } from "./@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable"; -export { IBeaconUpgradeable__factory } from "./factories/@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable__factory"; -export type { ERC1967UpgradeUpgradeable } from "./@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable"; -export { ERC1967UpgradeUpgradeable__factory } from "./factories/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable__factory"; -export type { Initializable } from "./@openzeppelin/contracts-upgradeable/proxy/utils/Initializable"; -export { Initializable__factory } from "./factories/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable__factory"; -export type { UUPSUpgradeable } from "./@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable"; -export { UUPSUpgradeable__factory } from "./factories/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable__factory"; -export type { ReentrancyGuardUpgradeable } from "./@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable"; -export { ReentrancyGuardUpgradeable__factory } from "./factories/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable__factory"; -export type { ContextUpgradeable } from "./@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable"; -export { ContextUpgradeable__factory } from "./factories/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable__factory"; export type { Ownable } from "./@openzeppelin/contracts/access/Ownable"; export { Ownable__factory } from "./factories/@openzeppelin/contracts/access/Ownable__factory"; export type { Ownable2Step } from "./@openzeppelin/contracts/access/Ownable2Step"; @@ -158,52 +140,6 @@ export type { ZetaConnectorEth } from "./contracts/evm/ZetaConnector.eth.sol/Zet export { ZetaConnectorEth__factory } from "./factories/contracts/evm/ZetaConnector.eth.sol/ZetaConnectorEth__factory"; export type { ZetaConnectorNonEth } from "./contracts/evm/ZetaConnector.non-eth.sol/ZetaConnectorNonEth"; export { ZetaConnectorNonEth__factory } from "./factories/contracts/evm/ZetaConnector.non-eth.sol/ZetaConnectorNonEth__factory"; -export type { ERC20CustodyNew } from "./contracts/prototypes/evm/ERC20CustodyNew"; -export { ERC20CustodyNew__factory } from "./factories/contracts/prototypes/evm/ERC20CustodyNew__factory"; -export type { GatewayEVM } from "./contracts/prototypes/evm/GatewayEVM"; -export { GatewayEVM__factory } from "./factories/contracts/prototypes/evm/GatewayEVM__factory"; -export type { GatewayEVMUpgradeTest } from "./contracts/prototypes/evm/GatewayEVMUpgradeTest"; -export { GatewayEVMUpgradeTest__factory } from "./factories/contracts/prototypes/evm/GatewayEVMUpgradeTest__factory"; -export type { IERC20CustodyNewErrors } from "./contracts/prototypes/evm/IERC20CustodyNew.sol/IERC20CustodyNewErrors"; -export { IERC20CustodyNewErrors__factory } from "./factories/contracts/prototypes/evm/IERC20CustodyNew.sol/IERC20CustodyNewErrors__factory"; -export type { IERC20CustodyNewEvents } from "./contracts/prototypes/evm/IERC20CustodyNew.sol/IERC20CustodyNewEvents"; -export { IERC20CustodyNewEvents__factory } from "./factories/contracts/prototypes/evm/IERC20CustodyNew.sol/IERC20CustodyNewEvents__factory"; -export type { IGatewayEVM } from "./contracts/prototypes/evm/IGatewayEVM.sol/IGatewayEVM"; -export { IGatewayEVM__factory } from "./factories/contracts/prototypes/evm/IGatewayEVM.sol/IGatewayEVM__factory"; -export type { IGatewayEVMErrors } from "./contracts/prototypes/evm/IGatewayEVM.sol/IGatewayEVMErrors"; -export { IGatewayEVMErrors__factory } from "./factories/contracts/prototypes/evm/IGatewayEVM.sol/IGatewayEVMErrors__factory"; -export type { IGatewayEVMEvents } from "./contracts/prototypes/evm/IGatewayEVM.sol/IGatewayEVMEvents"; -export { IGatewayEVMEvents__factory } from "./factories/contracts/prototypes/evm/IGatewayEVM.sol/IGatewayEVMEvents__factory"; -export type { Revertable } from "./contracts/prototypes/evm/IGatewayEVM.sol/Revertable"; -export { Revertable__factory } from "./factories/contracts/prototypes/evm/IGatewayEVM.sol/Revertable__factory"; -export type { IReceiverEVMEvents } from "./contracts/prototypes/evm/IReceiverEVM.sol/IReceiverEVMEvents"; -export { IReceiverEVMEvents__factory } from "./factories/contracts/prototypes/evm/IReceiverEVM.sol/IReceiverEVMEvents__factory"; -export type { IZetaConnectorEvents } from "./contracts/prototypes/evm/IZetaConnector.sol/IZetaConnectorEvents"; -export { IZetaConnectorEvents__factory } from "./factories/contracts/prototypes/evm/IZetaConnector.sol/IZetaConnectorEvents__factory"; -export type { IZetaNonEthNew } from "./contracts/prototypes/evm/IZetaNonEthNew"; -export { IZetaNonEthNew__factory } from "./factories/contracts/prototypes/evm/IZetaNonEthNew__factory"; -export type { ReceiverEVM } from "./contracts/prototypes/evm/ReceiverEVM"; -export { ReceiverEVM__factory } from "./factories/contracts/prototypes/evm/ReceiverEVM__factory"; -export type { TestERC20 } from "./contracts/prototypes/evm/TestERC20"; -export { TestERC20__factory } from "./factories/contracts/prototypes/evm/TestERC20__factory"; -export type { ZetaConnectorNative } from "./contracts/prototypes/evm/ZetaConnectorNative"; -export { ZetaConnectorNative__factory } from "./factories/contracts/prototypes/evm/ZetaConnectorNative__factory"; -export type { ZetaConnectorNewBase } from "./contracts/prototypes/evm/ZetaConnectorNewBase"; -export { ZetaConnectorNewBase__factory } from "./factories/contracts/prototypes/evm/ZetaConnectorNewBase__factory"; -export type { ZetaConnectorNonNative } from "./contracts/prototypes/evm/ZetaConnectorNonNative"; -export { ZetaConnectorNonNative__factory } from "./factories/contracts/prototypes/evm/ZetaConnectorNonNative__factory"; -export type { GatewayZEVM } from "./contracts/prototypes/zevm/GatewayZEVM"; -export { GatewayZEVM__factory } from "./factories/contracts/prototypes/zevm/GatewayZEVM__factory"; -export type { IGatewayZEVM } from "./contracts/prototypes/zevm/IGatewayZEVM.sol/IGatewayZEVM"; -export { IGatewayZEVM__factory } from "./factories/contracts/prototypes/zevm/IGatewayZEVM.sol/IGatewayZEVM__factory"; -export type { IGatewayZEVMErrors } from "./contracts/prototypes/zevm/IGatewayZEVM.sol/IGatewayZEVMErrors"; -export { IGatewayZEVMErrors__factory } from "./factories/contracts/prototypes/zevm/IGatewayZEVM.sol/IGatewayZEVMErrors__factory"; -export type { IGatewayZEVMEvents } from "./contracts/prototypes/zevm/IGatewayZEVM.sol/IGatewayZEVMEvents"; -export { IGatewayZEVMEvents__factory } from "./factories/contracts/prototypes/zevm/IGatewayZEVM.sol/IGatewayZEVMEvents__factory"; -export type { SenderZEVM } from "./contracts/prototypes/zevm/SenderZEVM"; -export { SenderZEVM__factory } from "./factories/contracts/prototypes/zevm/SenderZEVM__factory"; -export type { TestZContract } from "./contracts/prototypes/zevm/TestZContract"; -export { TestZContract__factory } from "./factories/contracts/prototypes/zevm/TestZContract__factory"; export type { ISystem } from "./contracts/zevm/interfaces/ISystem"; export { ISystem__factory } from "./factories/contracts/zevm/interfaces/ISystem__factory"; export type { IWETH9 } from "./contracts/zevm/interfaces/IWZETA.sol/IWETH9"; @@ -230,5 +166,3 @@ export type { ZRC20 } from "./contracts/zevm/ZRC20.sol/ZRC20"; export { ZRC20__factory } from "./factories/contracts/zevm/ZRC20.sol/ZRC20__factory"; export type { ZRC20Errors } from "./contracts/zevm/ZRC20.sol/ZRC20Errors"; export { ZRC20Errors__factory } from "./factories/contracts/zevm/ZRC20.sol/ZRC20Errors__factory"; -export type { ZRC20New } from "./contracts/zevm/ZRC20New.sol/ZRC20New"; -export { ZRC20New__factory } from "./factories/contracts/zevm/ZRC20New.sol/ZRC20New__factory"; diff --git a/yarn.lock b/v1/yarn.lock similarity index 99% rename from yarn.lock rename to v1/yarn.lock index c4ed4e16..2777ab0d 100644 --- a/yarn.lock +++ b/v1/yarn.lock @@ -1359,13 +1359,6 @@ deep-eql "^4.0.1" ordinal "^1.0.3" -"@nomicfoundation/hardhat-foundry@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@nomicfoundation/hardhat-foundry/-/hardhat-foundry-1.1.2.tgz#4f5aaa1803b8f5d974dcbc361beb72d49c815562" - integrity sha512-f5Vhj3m2qvKGpr6NAINYwNgILDsai8dVCsFb1rAVLkJxOmD2pAtfCmOH5SBVr9yUI5B1z9rbTwPBJVrqnb+PXQ== - dependencies: - chalk "^2.4.2" - "@nomicfoundation/hardhat-network-helpers@^1.0.0": version "1.0.8" resolved "https://registry.npmjs.org/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.8.tgz" diff --git a/v2/.eslintignore b/v2/.eslintignore new file mode 100644 index 00000000..6b6a98dd --- /dev/null +++ b/v2/.eslintignore @@ -0,0 +1,9 @@ +.yarn +artifacts +cache +dist +node_modules +typechain-types +docs +crytic-export +lib \ No newline at end of file diff --git a/v2/README.md b/v2/README.md new file mode 100644 index 00000000..d5f72b3d --- /dev/null +++ b/v2/README.md @@ -0,0 +1,55 @@ +### ⚠️ Important Notice: V2 in Development + +We are currently developing Version 2 (V2) of our smart contract architecture. This new version will significantly enhance the developer experience for building Universal Apps. + +Developers can already begin testing the new interface by referring to [the V2 Localnet guide](./scripts/localnet//v2_localnet.md). + +### Build + +```shell +$ forge build +``` + +### Test + +```shell +$ forge test +``` + +### Format + +```shell +$ forge fmt +``` + +### Gas Snapshots + +```shell +$ forge snapshot +``` + +### Anvil + +```shell +$ anvil +``` + +### Deploy using script + +```shell +$ forge script script/.s.sol: --rpc-url --private-key +``` + +### Cast + +```shell +$ cast +``` + +### Help + +```shell +$ forge --help +$ anvil --help +$ cast --help +``` diff --git a/echidna.yaml b/v2/echidna.yaml similarity index 100% rename from echidna.yaml rename to v2/echidna.yaml diff --git a/v2/eslint.config.mjs b/v2/eslint.config.mjs new file mode 100644 index 00000000..f5cd5fb0 --- /dev/null +++ b/v2/eslint.config.mjs @@ -0,0 +1,10 @@ +// @ts-check + +import eslint from '@eslint/js'; +import tseslint from 'typescript-eslint'; + +export default tseslint.config( + eslint.configs.recommended, + ...tseslint.configs.recommended, + +); \ No newline at end of file diff --git a/v2/foundry.toml b/v2/foundry.toml new file mode 100644 index 00000000..8596db3d --- /dev/null +++ b/v2/foundry.toml @@ -0,0 +1,36 @@ +[profile.default] +src = "src" +out = "out" +libs = ["lib"] + +remappings = [ + "ds-test/=node_modules/ds-test/src", + "src/=src", + "test/=test", + "forge-std/=lib/forge-std/src/", + "@openzeppelin/contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/", + "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/" +] + +no-match-contract = '.*EchidnaTest$' +optimizer = true +optimizer_runs = 10_000 + +fs_permissions = [{ access = "read", path = "out"}] + +ffi = true +ast = true +build_info = true +extra_output = ["storageLayout"] +evm_version = "london" + +[fmt] +bracket_spacing = true +int_types = "long" +line_length = 120 +multiline_func_header = "all" +number_underscore = "thousands" +quote_style = "double" +tab_width = 4 +wrap_comments = true +sort_imports=true diff --git a/v2/lib/forge-std b/v2/lib/forge-std new file mode 160000 index 00000000..c28115db --- /dev/null +++ b/v2/lib/forge-std @@ -0,0 +1 @@ +Subproject commit c28115db8d90ebffb41953cf83aac63130f4bd40 diff --git a/v2/lib/openzeppelin-contracts-upgradeable b/v2/lib/openzeppelin-contracts-upgradeable new file mode 160000 index 00000000..723f8cab --- /dev/null +++ b/v2/lib/openzeppelin-contracts-upgradeable @@ -0,0 +1 @@ +Subproject commit 723f8cab09cdae1aca9ec9cc1cfa040c2d4b06c1 diff --git a/lib/openzeppelin-foundry-upgrades b/v2/lib/openzeppelin-foundry-upgrades similarity index 100% rename from lib/openzeppelin-foundry-upgrades rename to v2/lib/openzeppelin-foundry-upgrades diff --git a/v2/package.json b/v2/package.json new file mode 100644 index 00000000..4dd997d6 --- /dev/null +++ b/v2/package.json @@ -0,0 +1,34 @@ +{ + "name": "v2", + "version": "1.0.0", + "author": "zetachain", + "directories": { + "lib": "lib", + "test": "test" + }, + "scripts": { + "lint": "npx eslint . --ignore-pattern coverage/ --ignore-pattern coverage.json --ignore-pattern lib/ --ignore-pattern out --ignore-pattern cache_forge/", + "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 -vvv", + "coverage": "forge clean && forge coverage --report lcov", + "typechain": "npx typechain --target ethers-v6 \"out/**/!(*.t|test).sol/!(*.abi).json\" --out-dir typechain-types", + "generate": "forge clean && forge build && forge fmt && ./scripts/generate_go.sh || true && yarn lint:fix && 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" + }, + "license": "MIT", + "dependencies": { + "ethers": "^6.13.1" + } +} diff --git a/v2/pkg/accesscontrol.sol/accesscontrol.go b/v2/pkg/accesscontrol.sol/accesscontrol.go new file mode 100644 index 00000000..9e7c48d6 --- /dev/null +++ b/v2/pkg/accesscontrol.sol/accesscontrol.go @@ -0,0 +1,854 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package accesscontrol + +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 +) + +// AccessControlMetaData contains all meta data concerning the AccessControl contract. +var AccessControlMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"DEFAULT_ADMIN_ROLE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRoleAdmin\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"grantRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"hasRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"callerConfirmation\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"revokeRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"supportsInterface\",\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\",\"internalType\":\"bytes4\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"RoleAdminChanged\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"previousAdminRole\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"newAdminRole\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RoleGranted\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RoleRevoked\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"AccessControlBadConfirmation\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"AccessControlUnauthorizedAccount\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"neededRole\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]}]", +} + +// AccessControlABI is the input ABI used to generate the binding from. +// Deprecated: Use AccessControlMetaData.ABI instead. +var AccessControlABI = AccessControlMetaData.ABI + +// AccessControl is an auto generated Go binding around an Ethereum contract. +type AccessControl struct { + AccessControlCaller // Read-only binding to the contract + AccessControlTransactor // Write-only binding to the contract + AccessControlFilterer // Log filterer for contract events +} + +// AccessControlCaller is an auto generated read-only Go binding around an Ethereum contract. +type AccessControlCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// AccessControlTransactor is an auto generated write-only Go binding around an Ethereum contract. +type AccessControlTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// AccessControlFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type AccessControlFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// AccessControlSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type AccessControlSession struct { + Contract *AccessControl // 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 +} + +// AccessControlCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type AccessControlCallerSession struct { + Contract *AccessControlCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// AccessControlTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type AccessControlTransactorSession struct { + Contract *AccessControlTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// AccessControlRaw is an auto generated low-level Go binding around an Ethereum contract. +type AccessControlRaw struct { + Contract *AccessControl // Generic contract binding to access the raw methods on +} + +// AccessControlCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type AccessControlCallerRaw struct { + Contract *AccessControlCaller // Generic read-only contract binding to access the raw methods on +} + +// AccessControlTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type AccessControlTransactorRaw struct { + Contract *AccessControlTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewAccessControl creates a new instance of AccessControl, bound to a specific deployed contract. +func NewAccessControl(address common.Address, backend bind.ContractBackend) (*AccessControl, error) { + contract, err := bindAccessControl(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &AccessControl{AccessControlCaller: AccessControlCaller{contract: contract}, AccessControlTransactor: AccessControlTransactor{contract: contract}, AccessControlFilterer: AccessControlFilterer{contract: contract}}, nil +} + +// NewAccessControlCaller creates a new read-only instance of AccessControl, bound to a specific deployed contract. +func NewAccessControlCaller(address common.Address, caller bind.ContractCaller) (*AccessControlCaller, error) { + contract, err := bindAccessControl(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &AccessControlCaller{contract: contract}, nil +} + +// NewAccessControlTransactor creates a new write-only instance of AccessControl, bound to a specific deployed contract. +func NewAccessControlTransactor(address common.Address, transactor bind.ContractTransactor) (*AccessControlTransactor, error) { + contract, err := bindAccessControl(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &AccessControlTransactor{contract: contract}, nil +} + +// NewAccessControlFilterer creates a new log filterer instance of AccessControl, bound to a specific deployed contract. +func NewAccessControlFilterer(address common.Address, filterer bind.ContractFilterer) (*AccessControlFilterer, error) { + contract, err := bindAccessControl(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &AccessControlFilterer{contract: contract}, nil +} + +// bindAccessControl binds a generic wrapper to an already deployed contract. +func bindAccessControl(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := AccessControlMetaData.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 (_AccessControl *AccessControlRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _AccessControl.Contract.AccessControlCaller.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 (_AccessControl *AccessControlRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _AccessControl.Contract.AccessControlTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_AccessControl *AccessControlRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _AccessControl.Contract.AccessControlTransactor.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 (_AccessControl *AccessControlCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _AccessControl.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 (_AccessControl *AccessControlTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _AccessControl.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_AccessControl *AccessControlTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _AccessControl.Contract.contract.Transact(opts, method, params...) +} + +// DEFAULTADMINROLE is a free data retrieval call binding the contract method 0xa217fddf. +// +// Solidity: function DEFAULT_ADMIN_ROLE() view returns(bytes32) +func (_AccessControl *AccessControlCaller) DEFAULTADMINROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _AccessControl.contract.Call(opts, &out, "DEFAULT_ADMIN_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// DEFAULTADMINROLE is a free data retrieval call binding the contract method 0xa217fddf. +// +// Solidity: function DEFAULT_ADMIN_ROLE() view returns(bytes32) +func (_AccessControl *AccessControlSession) DEFAULTADMINROLE() ([32]byte, error) { + return _AccessControl.Contract.DEFAULTADMINROLE(&_AccessControl.CallOpts) +} + +// DEFAULTADMINROLE is a free data retrieval call binding the contract method 0xa217fddf. +// +// Solidity: function DEFAULT_ADMIN_ROLE() view returns(bytes32) +func (_AccessControl *AccessControlCallerSession) DEFAULTADMINROLE() ([32]byte, error) { + return _AccessControl.Contract.DEFAULTADMINROLE(&_AccessControl.CallOpts) +} + +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. +// +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_AccessControl *AccessControlCaller) GetRoleAdmin(opts *bind.CallOpts, role [32]byte) ([32]byte, error) { + var out []interface{} + err := _AccessControl.contract.Call(opts, &out, "getRoleAdmin", role) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. +// +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_AccessControl *AccessControlSession) GetRoleAdmin(role [32]byte) ([32]byte, error) { + return _AccessControl.Contract.GetRoleAdmin(&_AccessControl.CallOpts, role) +} + +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. +// +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_AccessControl *AccessControlCallerSession) GetRoleAdmin(role [32]byte) ([32]byte, error) { + return _AccessControl.Contract.GetRoleAdmin(&_AccessControl.CallOpts, role) +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_AccessControl *AccessControlCaller) HasRole(opts *bind.CallOpts, role [32]byte, account common.Address) (bool, error) { + var out []interface{} + err := _AccessControl.contract.Call(opts, &out, "hasRole", role, account) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_AccessControl *AccessControlSession) HasRole(role [32]byte, account common.Address) (bool, error) { + return _AccessControl.Contract.HasRole(&_AccessControl.CallOpts, role, account) +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_AccessControl *AccessControlCallerSession) HasRole(role [32]byte, account common.Address) (bool, error) { + return _AccessControl.Contract.HasRole(&_AccessControl.CallOpts, role, account) +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) +func (_AccessControl *AccessControlCaller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) { + var out []interface{} + err := _AccessControl.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 (_AccessControl *AccessControlSession) SupportsInterface(interfaceId [4]byte) (bool, error) { + return _AccessControl.Contract.SupportsInterface(&_AccessControl.CallOpts, interfaceId) +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) +func (_AccessControl *AccessControlCallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) { + return _AccessControl.Contract.SupportsInterface(&_AccessControl.CallOpts, interfaceId) +} + +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_AccessControl *AccessControlTransactor) GrantRole(opts *bind.TransactOpts, role [32]byte, account common.Address) (*types.Transaction, error) { + return _AccessControl.contract.Transact(opts, "grantRole", role, account) +} + +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_AccessControl *AccessControlSession) GrantRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _AccessControl.Contract.GrantRole(&_AccessControl.TransactOpts, role, account) +} + +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_AccessControl *AccessControlTransactorSession) GrantRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _AccessControl.Contract.GrantRole(&_AccessControl.TransactOpts, role, account) +} + +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. +// +// Solidity: function renounceRole(bytes32 role, address callerConfirmation) returns() +func (_AccessControl *AccessControlTransactor) RenounceRole(opts *bind.TransactOpts, role [32]byte, callerConfirmation common.Address) (*types.Transaction, error) { + return _AccessControl.contract.Transact(opts, "renounceRole", role, callerConfirmation) +} + +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. +// +// Solidity: function renounceRole(bytes32 role, address callerConfirmation) returns() +func (_AccessControl *AccessControlSession) RenounceRole(role [32]byte, callerConfirmation common.Address) (*types.Transaction, error) { + return _AccessControl.Contract.RenounceRole(&_AccessControl.TransactOpts, role, callerConfirmation) +} + +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. +// +// Solidity: function renounceRole(bytes32 role, address callerConfirmation) returns() +func (_AccessControl *AccessControlTransactorSession) RenounceRole(role [32]byte, callerConfirmation common.Address) (*types.Transaction, error) { + return _AccessControl.Contract.RenounceRole(&_AccessControl.TransactOpts, role, callerConfirmation) +} + +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_AccessControl *AccessControlTransactor) RevokeRole(opts *bind.TransactOpts, role [32]byte, account common.Address) (*types.Transaction, error) { + return _AccessControl.contract.Transact(opts, "revokeRole", role, account) +} + +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_AccessControl *AccessControlSession) RevokeRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _AccessControl.Contract.RevokeRole(&_AccessControl.TransactOpts, role, account) +} + +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_AccessControl *AccessControlTransactorSession) RevokeRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _AccessControl.Contract.RevokeRole(&_AccessControl.TransactOpts, role, account) +} + +// AccessControlRoleAdminChangedIterator is returned from FilterRoleAdminChanged and is used to iterate over the raw logs and unpacked data for RoleAdminChanged events raised by the AccessControl contract. +type AccessControlRoleAdminChangedIterator struct { + Event *AccessControlRoleAdminChanged // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *AccessControlRoleAdminChangedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(AccessControlRoleAdminChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(AccessControlRoleAdminChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *AccessControlRoleAdminChangedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *AccessControlRoleAdminChangedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// AccessControlRoleAdminChanged represents a RoleAdminChanged event raised by the AccessControl contract. +type AccessControlRoleAdminChanged struct { + Role [32]byte + PreviousAdminRole [32]byte + NewAdminRole [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRoleAdminChanged is a free log retrieval operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. +// +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_AccessControl *AccessControlFilterer) FilterRoleAdminChanged(opts *bind.FilterOpts, role [][32]byte, previousAdminRole [][32]byte, newAdminRole [][32]byte) (*AccessControlRoleAdminChangedIterator, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var previousAdminRoleRule []interface{} + for _, previousAdminRoleItem := range previousAdminRole { + previousAdminRoleRule = append(previousAdminRoleRule, previousAdminRoleItem) + } + var newAdminRoleRule []interface{} + for _, newAdminRoleItem := range newAdminRole { + newAdminRoleRule = append(newAdminRoleRule, newAdminRoleItem) + } + + logs, sub, err := _AccessControl.contract.FilterLogs(opts, "RoleAdminChanged", roleRule, previousAdminRoleRule, newAdminRoleRule) + if err != nil { + return nil, err + } + return &AccessControlRoleAdminChangedIterator{contract: _AccessControl.contract, event: "RoleAdminChanged", logs: logs, sub: sub}, nil +} + +// WatchRoleAdminChanged is a free log subscription operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. +// +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_AccessControl *AccessControlFilterer) WatchRoleAdminChanged(opts *bind.WatchOpts, sink chan<- *AccessControlRoleAdminChanged, role [][32]byte, previousAdminRole [][32]byte, newAdminRole [][32]byte) (event.Subscription, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var previousAdminRoleRule []interface{} + for _, previousAdminRoleItem := range previousAdminRole { + previousAdminRoleRule = append(previousAdminRoleRule, previousAdminRoleItem) + } + var newAdminRoleRule []interface{} + for _, newAdminRoleItem := range newAdminRole { + newAdminRoleRule = append(newAdminRoleRule, newAdminRoleItem) + } + + logs, sub, err := _AccessControl.contract.WatchLogs(opts, "RoleAdminChanged", roleRule, previousAdminRoleRule, newAdminRoleRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(AccessControlRoleAdminChanged) + if err := _AccessControl.contract.UnpackLog(event, "RoleAdminChanged", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRoleAdminChanged is a log parse operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. +// +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_AccessControl *AccessControlFilterer) ParseRoleAdminChanged(log types.Log) (*AccessControlRoleAdminChanged, error) { + event := new(AccessControlRoleAdminChanged) + if err := _AccessControl.contract.UnpackLog(event, "RoleAdminChanged", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// AccessControlRoleGrantedIterator is returned from FilterRoleGranted and is used to iterate over the raw logs and unpacked data for RoleGranted events raised by the AccessControl contract. +type AccessControlRoleGrantedIterator struct { + Event *AccessControlRoleGranted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *AccessControlRoleGrantedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(AccessControlRoleGranted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(AccessControlRoleGranted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *AccessControlRoleGrantedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *AccessControlRoleGrantedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// AccessControlRoleGranted represents a RoleGranted event raised by the AccessControl contract. +type AccessControlRoleGranted struct { + Role [32]byte + Account common.Address + Sender common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRoleGranted is a free log retrieval operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. +// +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_AccessControl *AccessControlFilterer) FilterRoleGranted(opts *bind.FilterOpts, role [][32]byte, account []common.Address, sender []common.Address) (*AccessControlRoleGrantedIterator, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _AccessControl.contract.FilterLogs(opts, "RoleGranted", roleRule, accountRule, senderRule) + if err != nil { + return nil, err + } + return &AccessControlRoleGrantedIterator{contract: _AccessControl.contract, event: "RoleGranted", logs: logs, sub: sub}, nil +} + +// WatchRoleGranted is a free log subscription operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. +// +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_AccessControl *AccessControlFilterer) WatchRoleGranted(opts *bind.WatchOpts, sink chan<- *AccessControlRoleGranted, role [][32]byte, account []common.Address, sender []common.Address) (event.Subscription, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _AccessControl.contract.WatchLogs(opts, "RoleGranted", roleRule, accountRule, 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(AccessControlRoleGranted) + if err := _AccessControl.contract.UnpackLog(event, "RoleGranted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRoleGranted is a log parse operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. +// +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_AccessControl *AccessControlFilterer) ParseRoleGranted(log types.Log) (*AccessControlRoleGranted, error) { + event := new(AccessControlRoleGranted) + if err := _AccessControl.contract.UnpackLog(event, "RoleGranted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// AccessControlRoleRevokedIterator is returned from FilterRoleRevoked and is used to iterate over the raw logs and unpacked data for RoleRevoked events raised by the AccessControl contract. +type AccessControlRoleRevokedIterator struct { + Event *AccessControlRoleRevoked // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *AccessControlRoleRevokedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(AccessControlRoleRevoked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(AccessControlRoleRevoked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *AccessControlRoleRevokedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *AccessControlRoleRevokedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// AccessControlRoleRevoked represents a RoleRevoked event raised by the AccessControl contract. +type AccessControlRoleRevoked struct { + Role [32]byte + Account common.Address + Sender common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRoleRevoked is a free log retrieval operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. +// +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_AccessControl *AccessControlFilterer) FilterRoleRevoked(opts *bind.FilterOpts, role [][32]byte, account []common.Address, sender []common.Address) (*AccessControlRoleRevokedIterator, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _AccessControl.contract.FilterLogs(opts, "RoleRevoked", roleRule, accountRule, senderRule) + if err != nil { + return nil, err + } + return &AccessControlRoleRevokedIterator{contract: _AccessControl.contract, event: "RoleRevoked", logs: logs, sub: sub}, nil +} + +// WatchRoleRevoked is a free log subscription operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. +// +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_AccessControl *AccessControlFilterer) WatchRoleRevoked(opts *bind.WatchOpts, sink chan<- *AccessControlRoleRevoked, role [][32]byte, account []common.Address, sender []common.Address) (event.Subscription, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _AccessControl.contract.WatchLogs(opts, "RoleRevoked", roleRule, accountRule, 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(AccessControlRoleRevoked) + if err := _AccessControl.contract.UnpackLog(event, "RoleRevoked", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRoleRevoked is a log parse operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. +// +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_AccessControl *AccessControlFilterer) ParseRoleRevoked(log types.Log) (*AccessControlRoleRevoked, error) { + event := new(AccessControlRoleRevoked) + if err := _AccessControl.contract.UnpackLog(event, "RoleRevoked", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/accesscontrolupgradeable.sol/accesscontrolupgradeable.go b/v2/pkg/accesscontrolupgradeable.sol/accesscontrolupgradeable.go new file mode 100644 index 00000000..5f0434b6 --- /dev/null +++ b/v2/pkg/accesscontrolupgradeable.sol/accesscontrolupgradeable.go @@ -0,0 +1,988 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package accesscontrolupgradeable + +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 +) + +// AccessControlUpgradeableMetaData contains all meta data concerning the AccessControlUpgradeable contract. +var AccessControlUpgradeableMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"DEFAULT_ADMIN_ROLE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRoleAdmin\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"grantRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"hasRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"callerConfirmation\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"revokeRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"supportsInterface\",\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\",\"internalType\":\"bytes4\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RoleAdminChanged\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"previousAdminRole\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"newAdminRole\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RoleGranted\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RoleRevoked\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"AccessControlBadConfirmation\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"AccessControlUnauthorizedAccount\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"neededRole\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"type\":\"error\",\"name\":\"InvalidInitialization\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotInitializing\",\"inputs\":[]}]", +} + +// AccessControlUpgradeableABI is the input ABI used to generate the binding from. +// Deprecated: Use AccessControlUpgradeableMetaData.ABI instead. +var AccessControlUpgradeableABI = AccessControlUpgradeableMetaData.ABI + +// AccessControlUpgradeable is an auto generated Go binding around an Ethereum contract. +type AccessControlUpgradeable struct { + AccessControlUpgradeableCaller // Read-only binding to the contract + AccessControlUpgradeableTransactor // Write-only binding to the contract + AccessControlUpgradeableFilterer // Log filterer for contract events +} + +// AccessControlUpgradeableCaller is an auto generated read-only Go binding around an Ethereum contract. +type AccessControlUpgradeableCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// AccessControlUpgradeableTransactor is an auto generated write-only Go binding around an Ethereum contract. +type AccessControlUpgradeableTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// AccessControlUpgradeableFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type AccessControlUpgradeableFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// AccessControlUpgradeableSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type AccessControlUpgradeableSession struct { + Contract *AccessControlUpgradeable // 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 +} + +// AccessControlUpgradeableCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type AccessControlUpgradeableCallerSession struct { + Contract *AccessControlUpgradeableCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// AccessControlUpgradeableTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type AccessControlUpgradeableTransactorSession struct { + Contract *AccessControlUpgradeableTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// AccessControlUpgradeableRaw is an auto generated low-level Go binding around an Ethereum contract. +type AccessControlUpgradeableRaw struct { + Contract *AccessControlUpgradeable // Generic contract binding to access the raw methods on +} + +// AccessControlUpgradeableCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type AccessControlUpgradeableCallerRaw struct { + Contract *AccessControlUpgradeableCaller // Generic read-only contract binding to access the raw methods on +} + +// AccessControlUpgradeableTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type AccessControlUpgradeableTransactorRaw struct { + Contract *AccessControlUpgradeableTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewAccessControlUpgradeable creates a new instance of AccessControlUpgradeable, bound to a specific deployed contract. +func NewAccessControlUpgradeable(address common.Address, backend bind.ContractBackend) (*AccessControlUpgradeable, error) { + contract, err := bindAccessControlUpgradeable(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &AccessControlUpgradeable{AccessControlUpgradeableCaller: AccessControlUpgradeableCaller{contract: contract}, AccessControlUpgradeableTransactor: AccessControlUpgradeableTransactor{contract: contract}, AccessControlUpgradeableFilterer: AccessControlUpgradeableFilterer{contract: contract}}, nil +} + +// NewAccessControlUpgradeableCaller creates a new read-only instance of AccessControlUpgradeable, bound to a specific deployed contract. +func NewAccessControlUpgradeableCaller(address common.Address, caller bind.ContractCaller) (*AccessControlUpgradeableCaller, error) { + contract, err := bindAccessControlUpgradeable(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &AccessControlUpgradeableCaller{contract: contract}, nil +} + +// NewAccessControlUpgradeableTransactor creates a new write-only instance of AccessControlUpgradeable, bound to a specific deployed contract. +func NewAccessControlUpgradeableTransactor(address common.Address, transactor bind.ContractTransactor) (*AccessControlUpgradeableTransactor, error) { + contract, err := bindAccessControlUpgradeable(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &AccessControlUpgradeableTransactor{contract: contract}, nil +} + +// NewAccessControlUpgradeableFilterer creates a new log filterer instance of AccessControlUpgradeable, bound to a specific deployed contract. +func NewAccessControlUpgradeableFilterer(address common.Address, filterer bind.ContractFilterer) (*AccessControlUpgradeableFilterer, error) { + contract, err := bindAccessControlUpgradeable(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &AccessControlUpgradeableFilterer{contract: contract}, nil +} + +// bindAccessControlUpgradeable binds a generic wrapper to an already deployed contract. +func bindAccessControlUpgradeable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := AccessControlUpgradeableMetaData.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 (_AccessControlUpgradeable *AccessControlUpgradeableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _AccessControlUpgradeable.Contract.AccessControlUpgradeableCaller.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 (_AccessControlUpgradeable *AccessControlUpgradeableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _AccessControlUpgradeable.Contract.AccessControlUpgradeableTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_AccessControlUpgradeable *AccessControlUpgradeableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _AccessControlUpgradeable.Contract.AccessControlUpgradeableTransactor.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 (_AccessControlUpgradeable *AccessControlUpgradeableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _AccessControlUpgradeable.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 (_AccessControlUpgradeable *AccessControlUpgradeableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _AccessControlUpgradeable.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_AccessControlUpgradeable *AccessControlUpgradeableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _AccessControlUpgradeable.Contract.contract.Transact(opts, method, params...) +} + +// DEFAULTADMINROLE is a free data retrieval call binding the contract method 0xa217fddf. +// +// Solidity: function DEFAULT_ADMIN_ROLE() view returns(bytes32) +func (_AccessControlUpgradeable *AccessControlUpgradeableCaller) DEFAULTADMINROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _AccessControlUpgradeable.contract.Call(opts, &out, "DEFAULT_ADMIN_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// DEFAULTADMINROLE is a free data retrieval call binding the contract method 0xa217fddf. +// +// Solidity: function DEFAULT_ADMIN_ROLE() view returns(bytes32) +func (_AccessControlUpgradeable *AccessControlUpgradeableSession) DEFAULTADMINROLE() ([32]byte, error) { + return _AccessControlUpgradeable.Contract.DEFAULTADMINROLE(&_AccessControlUpgradeable.CallOpts) +} + +// DEFAULTADMINROLE is a free data retrieval call binding the contract method 0xa217fddf. +// +// Solidity: function DEFAULT_ADMIN_ROLE() view returns(bytes32) +func (_AccessControlUpgradeable *AccessControlUpgradeableCallerSession) DEFAULTADMINROLE() ([32]byte, error) { + return _AccessControlUpgradeable.Contract.DEFAULTADMINROLE(&_AccessControlUpgradeable.CallOpts) +} + +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. +// +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_AccessControlUpgradeable *AccessControlUpgradeableCaller) GetRoleAdmin(opts *bind.CallOpts, role [32]byte) ([32]byte, error) { + var out []interface{} + err := _AccessControlUpgradeable.contract.Call(opts, &out, "getRoleAdmin", role) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. +// +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_AccessControlUpgradeable *AccessControlUpgradeableSession) GetRoleAdmin(role [32]byte) ([32]byte, error) { + return _AccessControlUpgradeable.Contract.GetRoleAdmin(&_AccessControlUpgradeable.CallOpts, role) +} + +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. +// +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_AccessControlUpgradeable *AccessControlUpgradeableCallerSession) GetRoleAdmin(role [32]byte) ([32]byte, error) { + return _AccessControlUpgradeable.Contract.GetRoleAdmin(&_AccessControlUpgradeable.CallOpts, role) +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_AccessControlUpgradeable *AccessControlUpgradeableCaller) HasRole(opts *bind.CallOpts, role [32]byte, account common.Address) (bool, error) { + var out []interface{} + err := _AccessControlUpgradeable.contract.Call(opts, &out, "hasRole", role, account) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_AccessControlUpgradeable *AccessControlUpgradeableSession) HasRole(role [32]byte, account common.Address) (bool, error) { + return _AccessControlUpgradeable.Contract.HasRole(&_AccessControlUpgradeable.CallOpts, role, account) +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_AccessControlUpgradeable *AccessControlUpgradeableCallerSession) HasRole(role [32]byte, account common.Address) (bool, error) { + return _AccessControlUpgradeable.Contract.HasRole(&_AccessControlUpgradeable.CallOpts, role, account) +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) +func (_AccessControlUpgradeable *AccessControlUpgradeableCaller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) { + var out []interface{} + err := _AccessControlUpgradeable.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 (_AccessControlUpgradeable *AccessControlUpgradeableSession) SupportsInterface(interfaceId [4]byte) (bool, error) { + return _AccessControlUpgradeable.Contract.SupportsInterface(&_AccessControlUpgradeable.CallOpts, interfaceId) +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) +func (_AccessControlUpgradeable *AccessControlUpgradeableCallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) { + return _AccessControlUpgradeable.Contract.SupportsInterface(&_AccessControlUpgradeable.CallOpts, interfaceId) +} + +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_AccessControlUpgradeable *AccessControlUpgradeableTransactor) GrantRole(opts *bind.TransactOpts, role [32]byte, account common.Address) (*types.Transaction, error) { + return _AccessControlUpgradeable.contract.Transact(opts, "grantRole", role, account) +} + +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_AccessControlUpgradeable *AccessControlUpgradeableSession) GrantRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _AccessControlUpgradeable.Contract.GrantRole(&_AccessControlUpgradeable.TransactOpts, role, account) +} + +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_AccessControlUpgradeable *AccessControlUpgradeableTransactorSession) GrantRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _AccessControlUpgradeable.Contract.GrantRole(&_AccessControlUpgradeable.TransactOpts, role, account) +} + +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. +// +// Solidity: function renounceRole(bytes32 role, address callerConfirmation) returns() +func (_AccessControlUpgradeable *AccessControlUpgradeableTransactor) RenounceRole(opts *bind.TransactOpts, role [32]byte, callerConfirmation common.Address) (*types.Transaction, error) { + return _AccessControlUpgradeable.contract.Transact(opts, "renounceRole", role, callerConfirmation) +} + +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. +// +// Solidity: function renounceRole(bytes32 role, address callerConfirmation) returns() +func (_AccessControlUpgradeable *AccessControlUpgradeableSession) RenounceRole(role [32]byte, callerConfirmation common.Address) (*types.Transaction, error) { + return _AccessControlUpgradeable.Contract.RenounceRole(&_AccessControlUpgradeable.TransactOpts, role, callerConfirmation) +} + +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. +// +// Solidity: function renounceRole(bytes32 role, address callerConfirmation) returns() +func (_AccessControlUpgradeable *AccessControlUpgradeableTransactorSession) RenounceRole(role [32]byte, callerConfirmation common.Address) (*types.Transaction, error) { + return _AccessControlUpgradeable.Contract.RenounceRole(&_AccessControlUpgradeable.TransactOpts, role, callerConfirmation) +} + +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_AccessControlUpgradeable *AccessControlUpgradeableTransactor) RevokeRole(opts *bind.TransactOpts, role [32]byte, account common.Address) (*types.Transaction, error) { + return _AccessControlUpgradeable.contract.Transact(opts, "revokeRole", role, account) +} + +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_AccessControlUpgradeable *AccessControlUpgradeableSession) RevokeRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _AccessControlUpgradeable.Contract.RevokeRole(&_AccessControlUpgradeable.TransactOpts, role, account) +} + +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_AccessControlUpgradeable *AccessControlUpgradeableTransactorSession) RevokeRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _AccessControlUpgradeable.Contract.RevokeRole(&_AccessControlUpgradeable.TransactOpts, role, account) +} + +// AccessControlUpgradeableInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the AccessControlUpgradeable contract. +type AccessControlUpgradeableInitializedIterator struct { + Event *AccessControlUpgradeableInitialized // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *AccessControlUpgradeableInitializedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(AccessControlUpgradeableInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(AccessControlUpgradeableInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *AccessControlUpgradeableInitializedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *AccessControlUpgradeableInitializedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// AccessControlUpgradeableInitialized represents a Initialized event raised by the AccessControlUpgradeable contract. +type AccessControlUpgradeableInitialized 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 (_AccessControlUpgradeable *AccessControlUpgradeableFilterer) FilterInitialized(opts *bind.FilterOpts) (*AccessControlUpgradeableInitializedIterator, error) { + + logs, sub, err := _AccessControlUpgradeable.contract.FilterLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return &AccessControlUpgradeableInitializedIterator{contract: _AccessControlUpgradeable.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 (_AccessControlUpgradeable *AccessControlUpgradeableFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *AccessControlUpgradeableInitialized) (event.Subscription, error) { + + logs, sub, err := _AccessControlUpgradeable.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(AccessControlUpgradeableInitialized) + if err := _AccessControlUpgradeable.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 (_AccessControlUpgradeable *AccessControlUpgradeableFilterer) ParseInitialized(log types.Log) (*AccessControlUpgradeableInitialized, error) { + event := new(AccessControlUpgradeableInitialized) + if err := _AccessControlUpgradeable.contract.UnpackLog(event, "Initialized", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// AccessControlUpgradeableRoleAdminChangedIterator is returned from FilterRoleAdminChanged and is used to iterate over the raw logs and unpacked data for RoleAdminChanged events raised by the AccessControlUpgradeable contract. +type AccessControlUpgradeableRoleAdminChangedIterator struct { + Event *AccessControlUpgradeableRoleAdminChanged // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *AccessControlUpgradeableRoleAdminChangedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(AccessControlUpgradeableRoleAdminChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(AccessControlUpgradeableRoleAdminChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *AccessControlUpgradeableRoleAdminChangedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *AccessControlUpgradeableRoleAdminChangedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// AccessControlUpgradeableRoleAdminChanged represents a RoleAdminChanged event raised by the AccessControlUpgradeable contract. +type AccessControlUpgradeableRoleAdminChanged struct { + Role [32]byte + PreviousAdminRole [32]byte + NewAdminRole [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRoleAdminChanged is a free log retrieval operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. +// +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_AccessControlUpgradeable *AccessControlUpgradeableFilterer) FilterRoleAdminChanged(opts *bind.FilterOpts, role [][32]byte, previousAdminRole [][32]byte, newAdminRole [][32]byte) (*AccessControlUpgradeableRoleAdminChangedIterator, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var previousAdminRoleRule []interface{} + for _, previousAdminRoleItem := range previousAdminRole { + previousAdminRoleRule = append(previousAdminRoleRule, previousAdminRoleItem) + } + var newAdminRoleRule []interface{} + for _, newAdminRoleItem := range newAdminRole { + newAdminRoleRule = append(newAdminRoleRule, newAdminRoleItem) + } + + logs, sub, err := _AccessControlUpgradeable.contract.FilterLogs(opts, "RoleAdminChanged", roleRule, previousAdminRoleRule, newAdminRoleRule) + if err != nil { + return nil, err + } + return &AccessControlUpgradeableRoleAdminChangedIterator{contract: _AccessControlUpgradeable.contract, event: "RoleAdminChanged", logs: logs, sub: sub}, nil +} + +// WatchRoleAdminChanged is a free log subscription operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. +// +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_AccessControlUpgradeable *AccessControlUpgradeableFilterer) WatchRoleAdminChanged(opts *bind.WatchOpts, sink chan<- *AccessControlUpgradeableRoleAdminChanged, role [][32]byte, previousAdminRole [][32]byte, newAdminRole [][32]byte) (event.Subscription, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var previousAdminRoleRule []interface{} + for _, previousAdminRoleItem := range previousAdminRole { + previousAdminRoleRule = append(previousAdminRoleRule, previousAdminRoleItem) + } + var newAdminRoleRule []interface{} + for _, newAdminRoleItem := range newAdminRole { + newAdminRoleRule = append(newAdminRoleRule, newAdminRoleItem) + } + + logs, sub, err := _AccessControlUpgradeable.contract.WatchLogs(opts, "RoleAdminChanged", roleRule, previousAdminRoleRule, newAdminRoleRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(AccessControlUpgradeableRoleAdminChanged) + if err := _AccessControlUpgradeable.contract.UnpackLog(event, "RoleAdminChanged", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRoleAdminChanged is a log parse operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. +// +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_AccessControlUpgradeable *AccessControlUpgradeableFilterer) ParseRoleAdminChanged(log types.Log) (*AccessControlUpgradeableRoleAdminChanged, error) { + event := new(AccessControlUpgradeableRoleAdminChanged) + if err := _AccessControlUpgradeable.contract.UnpackLog(event, "RoleAdminChanged", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// AccessControlUpgradeableRoleGrantedIterator is returned from FilterRoleGranted and is used to iterate over the raw logs and unpacked data for RoleGranted events raised by the AccessControlUpgradeable contract. +type AccessControlUpgradeableRoleGrantedIterator struct { + Event *AccessControlUpgradeableRoleGranted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *AccessControlUpgradeableRoleGrantedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(AccessControlUpgradeableRoleGranted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(AccessControlUpgradeableRoleGranted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *AccessControlUpgradeableRoleGrantedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *AccessControlUpgradeableRoleGrantedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// AccessControlUpgradeableRoleGranted represents a RoleGranted event raised by the AccessControlUpgradeable contract. +type AccessControlUpgradeableRoleGranted struct { + Role [32]byte + Account common.Address + Sender common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRoleGranted is a free log retrieval operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. +// +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_AccessControlUpgradeable *AccessControlUpgradeableFilterer) FilterRoleGranted(opts *bind.FilterOpts, role [][32]byte, account []common.Address, sender []common.Address) (*AccessControlUpgradeableRoleGrantedIterator, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _AccessControlUpgradeable.contract.FilterLogs(opts, "RoleGranted", roleRule, accountRule, senderRule) + if err != nil { + return nil, err + } + return &AccessControlUpgradeableRoleGrantedIterator{contract: _AccessControlUpgradeable.contract, event: "RoleGranted", logs: logs, sub: sub}, nil +} + +// WatchRoleGranted is a free log subscription operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. +// +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_AccessControlUpgradeable *AccessControlUpgradeableFilterer) WatchRoleGranted(opts *bind.WatchOpts, sink chan<- *AccessControlUpgradeableRoleGranted, role [][32]byte, account []common.Address, sender []common.Address) (event.Subscription, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _AccessControlUpgradeable.contract.WatchLogs(opts, "RoleGranted", roleRule, accountRule, 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(AccessControlUpgradeableRoleGranted) + if err := _AccessControlUpgradeable.contract.UnpackLog(event, "RoleGranted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRoleGranted is a log parse operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. +// +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_AccessControlUpgradeable *AccessControlUpgradeableFilterer) ParseRoleGranted(log types.Log) (*AccessControlUpgradeableRoleGranted, error) { + event := new(AccessControlUpgradeableRoleGranted) + if err := _AccessControlUpgradeable.contract.UnpackLog(event, "RoleGranted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// AccessControlUpgradeableRoleRevokedIterator is returned from FilterRoleRevoked and is used to iterate over the raw logs and unpacked data for RoleRevoked events raised by the AccessControlUpgradeable contract. +type AccessControlUpgradeableRoleRevokedIterator struct { + Event *AccessControlUpgradeableRoleRevoked // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *AccessControlUpgradeableRoleRevokedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(AccessControlUpgradeableRoleRevoked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(AccessControlUpgradeableRoleRevoked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *AccessControlUpgradeableRoleRevokedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *AccessControlUpgradeableRoleRevokedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// AccessControlUpgradeableRoleRevoked represents a RoleRevoked event raised by the AccessControlUpgradeable contract. +type AccessControlUpgradeableRoleRevoked struct { + Role [32]byte + Account common.Address + Sender common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRoleRevoked is a free log retrieval operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. +// +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_AccessControlUpgradeable *AccessControlUpgradeableFilterer) FilterRoleRevoked(opts *bind.FilterOpts, role [][32]byte, account []common.Address, sender []common.Address) (*AccessControlUpgradeableRoleRevokedIterator, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _AccessControlUpgradeable.contract.FilterLogs(opts, "RoleRevoked", roleRule, accountRule, senderRule) + if err != nil { + return nil, err + } + return &AccessControlUpgradeableRoleRevokedIterator{contract: _AccessControlUpgradeable.contract, event: "RoleRevoked", logs: logs, sub: sub}, nil +} + +// WatchRoleRevoked is a free log subscription operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. +// +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_AccessControlUpgradeable *AccessControlUpgradeableFilterer) WatchRoleRevoked(opts *bind.WatchOpts, sink chan<- *AccessControlUpgradeableRoleRevoked, role [][32]byte, account []common.Address, sender []common.Address) (event.Subscription, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _AccessControlUpgradeable.contract.WatchLogs(opts, "RoleRevoked", roleRule, accountRule, 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(AccessControlUpgradeableRoleRevoked) + if err := _AccessControlUpgradeable.contract.UnpackLog(event, "RoleRevoked", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRoleRevoked is a log parse operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. +// +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_AccessControlUpgradeable *AccessControlUpgradeableFilterer) ParseRoleRevoked(log types.Log) (*AccessControlUpgradeableRoleRevoked, error) { + event := new(AccessControlUpgradeableRoleRevoked) + if err := _AccessControlUpgradeable.contract.UnpackLog(event, "RoleRevoked", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} 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/pkg/openzeppelin/contracts-upgradeable/utils/contextupgradeable.sol/contextupgradeable.go b/v2/pkg/contextupgradeable.sol/contextupgradeable.go similarity index 94% rename from pkg/openzeppelin/contracts-upgradeable/utils/contextupgradeable.sol/contextupgradeable.go rename to v2/pkg/contextupgradeable.sol/contextupgradeable.go index bcd2aa90..1e54b32e 100644 --- a/pkg/openzeppelin/contracts-upgradeable/utils/contextupgradeable.sol/contextupgradeable.go +++ b/v2/pkg/contextupgradeable.sol/contextupgradeable.go @@ -31,7 +31,7 @@ var ( // ContextUpgradeableMetaData contains all meta data concerning the ContextUpgradeable contract. var ContextUpgradeableMetaData = &bind.MetaData{ - ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}]", + 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. @@ -249,13 +249,13 @@ func (it *ContextUpgradeableInitializedIterator) Close() error { // ContextUpgradeableInitialized represents a Initialized event raised by the ContextUpgradeable contract. type ContextUpgradeableInitialized struct { - Version uint8 + Version uint64 Raw types.Log // Blockchain specific contextual infos } -// FilterInitialized is a free log retrieval operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. +// FilterInitialized is a free log retrieval operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. // -// Solidity: event Initialized(uint8 version) +// Solidity: event Initialized(uint64 version) func (_ContextUpgradeable *ContextUpgradeableFilterer) FilterInitialized(opts *bind.FilterOpts) (*ContextUpgradeableInitializedIterator, error) { logs, sub, err := _ContextUpgradeable.contract.FilterLogs(opts, "Initialized") @@ -265,9 +265,9 @@ func (_ContextUpgradeable *ContextUpgradeableFilterer) FilterInitialized(opts *b return &ContextUpgradeableInitializedIterator{contract: _ContextUpgradeable.contract, event: "Initialized", logs: logs, sub: sub}, nil } -// WatchInitialized is a free log subscription operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. +// WatchInitialized is a free log subscription operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. // -// Solidity: event Initialized(uint8 version) +// 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") @@ -302,9 +302,9 @@ func (_ContextUpgradeable *ContextUpgradeableFilterer) WatchInitialized(opts *bi }), nil } -// ParseInitialized is a log parse operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. +// ParseInitialized is a log parse operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. // -// Solidity: event Initialized(uint8 version) +// 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 { 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/erc165.sol/erc165.go b/v2/pkg/erc165.sol/erc165.go new file mode 100644 index 00000000..425bf6e0 --- /dev/null +++ b/v2/pkg/erc165.sol/erc165.go @@ -0,0 +1,212 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package erc165 + +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 +) + +// ERC165MetaData contains all meta data concerning the ERC165 contract. +var ERC165MetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"supportsInterface\",\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\",\"internalType\":\"bytes4\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"}]", +} + +// ERC165ABI is the input ABI used to generate the binding from. +// Deprecated: Use ERC165MetaData.ABI instead. +var ERC165ABI = ERC165MetaData.ABI + +// ERC165 is an auto generated Go binding around an Ethereum contract. +type ERC165 struct { + ERC165Caller // Read-only binding to the contract + ERC165Transactor // Write-only binding to the contract + ERC165Filterer // Log filterer for contract events +} + +// ERC165Caller is an auto generated read-only Go binding around an Ethereum contract. +type ERC165Caller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ERC165Transactor is an auto generated write-only Go binding around an Ethereum contract. +type ERC165Transactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ERC165Filterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ERC165Filterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ERC165Session is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ERC165Session struct { + Contract *ERC165 // 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 +} + +// ERC165CallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ERC165CallerSession struct { + Contract *ERC165Caller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ERC165TransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ERC165TransactorSession struct { + Contract *ERC165Transactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ERC165Raw is an auto generated low-level Go binding around an Ethereum contract. +type ERC165Raw struct { + Contract *ERC165 // Generic contract binding to access the raw methods on +} + +// ERC165CallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ERC165CallerRaw struct { + Contract *ERC165Caller // Generic read-only contract binding to access the raw methods on +} + +// ERC165TransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ERC165TransactorRaw struct { + Contract *ERC165Transactor // Generic write-only contract binding to access the raw methods on +} + +// NewERC165 creates a new instance of ERC165, bound to a specific deployed contract. +func NewERC165(address common.Address, backend bind.ContractBackend) (*ERC165, error) { + contract, err := bindERC165(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ERC165{ERC165Caller: ERC165Caller{contract: contract}, ERC165Transactor: ERC165Transactor{contract: contract}, ERC165Filterer: ERC165Filterer{contract: contract}}, nil +} + +// NewERC165Caller creates a new read-only instance of ERC165, bound to a specific deployed contract. +func NewERC165Caller(address common.Address, caller bind.ContractCaller) (*ERC165Caller, error) { + contract, err := bindERC165(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ERC165Caller{contract: contract}, nil +} + +// NewERC165Transactor creates a new write-only instance of ERC165, bound to a specific deployed contract. +func NewERC165Transactor(address common.Address, transactor bind.ContractTransactor) (*ERC165Transactor, error) { + contract, err := bindERC165(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ERC165Transactor{contract: contract}, nil +} + +// NewERC165Filterer creates a new log filterer instance of ERC165, bound to a specific deployed contract. +func NewERC165Filterer(address common.Address, filterer bind.ContractFilterer) (*ERC165Filterer, error) { + contract, err := bindERC165(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ERC165Filterer{contract: contract}, nil +} + +// bindERC165 binds a generic wrapper to an already deployed contract. +func bindERC165(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := ERC165MetaData.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 (_ERC165 *ERC165Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ERC165.Contract.ERC165Caller.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 (_ERC165 *ERC165Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ERC165.Contract.ERC165Transactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ERC165 *ERC165Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ERC165.Contract.ERC165Transactor.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 (_ERC165 *ERC165CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ERC165.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 (_ERC165 *ERC165TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ERC165.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ERC165 *ERC165TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ERC165.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 (_ERC165 *ERC165Caller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) { + var out []interface{} + err := _ERC165.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 (_ERC165 *ERC165Session) SupportsInterface(interfaceId [4]byte) (bool, error) { + return _ERC165.Contract.SupportsInterface(&_ERC165.CallOpts, interfaceId) +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) +func (_ERC165 *ERC165CallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) { + return _ERC165.Contract.SupportsInterface(&_ERC165.CallOpts, interfaceId) +} diff --git a/v2/pkg/erc165upgradeable.sol/erc165upgradeable.go b/v2/pkg/erc165upgradeable.sol/erc165upgradeable.go new file mode 100644 index 00000000..6a205039 --- /dev/null +++ b/v2/pkg/erc165upgradeable.sol/erc165upgradeable.go @@ -0,0 +1,346 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package erc165upgradeable + +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 +) + +// ERC165UpgradeableMetaData contains all meta data concerning the ERC165Upgradeable contract. +var ERC165UpgradeableMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"supportsInterface\",\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\",\"internalType\":\"bytes4\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"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\":[]}]", +} + +// ERC165UpgradeableABI is the input ABI used to generate the binding from. +// Deprecated: Use ERC165UpgradeableMetaData.ABI instead. +var ERC165UpgradeableABI = ERC165UpgradeableMetaData.ABI + +// ERC165Upgradeable is an auto generated Go binding around an Ethereum contract. +type ERC165Upgradeable struct { + ERC165UpgradeableCaller // Read-only binding to the contract + ERC165UpgradeableTransactor // Write-only binding to the contract + ERC165UpgradeableFilterer // Log filterer for contract events +} + +// ERC165UpgradeableCaller is an auto generated read-only Go binding around an Ethereum contract. +type ERC165UpgradeableCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ERC165UpgradeableTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ERC165UpgradeableTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ERC165UpgradeableFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ERC165UpgradeableFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ERC165UpgradeableSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ERC165UpgradeableSession struct { + Contract *ERC165Upgradeable // 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 +} + +// ERC165UpgradeableCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ERC165UpgradeableCallerSession struct { + Contract *ERC165UpgradeableCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ERC165UpgradeableTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ERC165UpgradeableTransactorSession struct { + Contract *ERC165UpgradeableTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ERC165UpgradeableRaw is an auto generated low-level Go binding around an Ethereum contract. +type ERC165UpgradeableRaw struct { + Contract *ERC165Upgradeable // Generic contract binding to access the raw methods on +} + +// ERC165UpgradeableCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ERC165UpgradeableCallerRaw struct { + Contract *ERC165UpgradeableCaller // Generic read-only contract binding to access the raw methods on +} + +// ERC165UpgradeableTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ERC165UpgradeableTransactorRaw struct { + Contract *ERC165UpgradeableTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewERC165Upgradeable creates a new instance of ERC165Upgradeable, bound to a specific deployed contract. +func NewERC165Upgradeable(address common.Address, backend bind.ContractBackend) (*ERC165Upgradeable, error) { + contract, err := bindERC165Upgradeable(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ERC165Upgradeable{ERC165UpgradeableCaller: ERC165UpgradeableCaller{contract: contract}, ERC165UpgradeableTransactor: ERC165UpgradeableTransactor{contract: contract}, ERC165UpgradeableFilterer: ERC165UpgradeableFilterer{contract: contract}}, nil +} + +// NewERC165UpgradeableCaller creates a new read-only instance of ERC165Upgradeable, bound to a specific deployed contract. +func NewERC165UpgradeableCaller(address common.Address, caller bind.ContractCaller) (*ERC165UpgradeableCaller, error) { + contract, err := bindERC165Upgradeable(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ERC165UpgradeableCaller{contract: contract}, nil +} + +// NewERC165UpgradeableTransactor creates a new write-only instance of ERC165Upgradeable, bound to a specific deployed contract. +func NewERC165UpgradeableTransactor(address common.Address, transactor bind.ContractTransactor) (*ERC165UpgradeableTransactor, error) { + contract, err := bindERC165Upgradeable(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ERC165UpgradeableTransactor{contract: contract}, nil +} + +// NewERC165UpgradeableFilterer creates a new log filterer instance of ERC165Upgradeable, bound to a specific deployed contract. +func NewERC165UpgradeableFilterer(address common.Address, filterer bind.ContractFilterer) (*ERC165UpgradeableFilterer, error) { + contract, err := bindERC165Upgradeable(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ERC165UpgradeableFilterer{contract: contract}, nil +} + +// bindERC165Upgradeable binds a generic wrapper to an already deployed contract. +func bindERC165Upgradeable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := ERC165UpgradeableMetaData.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 (_ERC165Upgradeable *ERC165UpgradeableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ERC165Upgradeable.Contract.ERC165UpgradeableCaller.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 (_ERC165Upgradeable *ERC165UpgradeableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ERC165Upgradeable.Contract.ERC165UpgradeableTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ERC165Upgradeable *ERC165UpgradeableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ERC165Upgradeable.Contract.ERC165UpgradeableTransactor.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 (_ERC165Upgradeable *ERC165UpgradeableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ERC165Upgradeable.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 (_ERC165Upgradeable *ERC165UpgradeableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ERC165Upgradeable.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ERC165Upgradeable *ERC165UpgradeableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ERC165Upgradeable.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 (_ERC165Upgradeable *ERC165UpgradeableCaller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) { + var out []interface{} + err := _ERC165Upgradeable.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 (_ERC165Upgradeable *ERC165UpgradeableSession) SupportsInterface(interfaceId [4]byte) (bool, error) { + return _ERC165Upgradeable.Contract.SupportsInterface(&_ERC165Upgradeable.CallOpts, interfaceId) +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) +func (_ERC165Upgradeable *ERC165UpgradeableCallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) { + return _ERC165Upgradeable.Contract.SupportsInterface(&_ERC165Upgradeable.CallOpts, interfaceId) +} + +// ERC165UpgradeableInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the ERC165Upgradeable contract. +type ERC165UpgradeableInitializedIterator struct { + Event *ERC165UpgradeableInitialized // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ERC165UpgradeableInitializedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ERC165UpgradeableInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ERC165UpgradeableInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ERC165UpgradeableInitializedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC165UpgradeableInitializedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC165UpgradeableInitialized represents a Initialized event raised by the ERC165Upgradeable contract. +type ERC165UpgradeableInitialized 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 (_ERC165Upgradeable *ERC165UpgradeableFilterer) FilterInitialized(opts *bind.FilterOpts) (*ERC165UpgradeableInitializedIterator, error) { + + logs, sub, err := _ERC165Upgradeable.contract.FilterLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return &ERC165UpgradeableInitializedIterator{contract: _ERC165Upgradeable.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 (_ERC165Upgradeable *ERC165UpgradeableFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *ERC165UpgradeableInitialized) (event.Subscription, error) { + + logs, sub, err := _ERC165Upgradeable.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(ERC165UpgradeableInitialized) + if err := _ERC165Upgradeable.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 (_ERC165Upgradeable *ERC165UpgradeableFilterer) ParseInitialized(log types.Log) (*ERC165UpgradeableInitialized, error) { + event := new(ERC165UpgradeableInitialized) + if err := _ERC165Upgradeable.contract.UnpackLog(event, "Initialized", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} 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/erc20custody.sol/erc20custody.go b/v2/pkg/erc20custody.sol/erc20custody.go new file mode 100644 index 00000000..16bd9024 --- /dev/null +++ b/v2/pkg/erc20custody.sol/erc20custody.go @@ -0,0 +1,1868 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package erc20custody + +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 +) + +// ERC20CustodyMetaData contains all meta data concerning the ERC20Custody contract. +var ERC20CustodyMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_gateway\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_tssAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_admin\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"DEFAULT_ADMIN_ROLE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"PAUSER_ROLE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"WITHDRAWER_ROLE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"gateway\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIGatewayEVM\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRoleAdmin\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"grantRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"hasRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"callerConfirmation\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"revokeRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"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\":\"tssAddress\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"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\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RoleAdminChanged\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"previousAdminRole\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"newAdminRole\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RoleGranted\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RoleRevoked\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"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\":\"error\",\"name\":\"AccessControlBadConfirmation\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"AccessControlUnauthorizedAccount\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"neededRole\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"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\":\"EnforcedPause\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExpectedPause\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"FailedInnerCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ReentrancyGuardReentrantCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SafeERC20FailedOperation\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ZeroAddress\",\"inputs\":[]}]", + Bin: "0x608060405234801561001057600080fd5b506040516113e23803806113e283398101604081905261002f916101d3565b60016000556002805460ff191690556001600160a01b038316158061005b57506001600160a01b038216155b156100795760405163d92e233d60e01b815260040160405180910390fd5b60028054610100600160a81b0319166101006001600160a01b038681169190910291909117909155600380546001600160a01b0319169184169190911790556100c3600082610122565b506100ee7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a82610122565b506101197f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e483610122565b50505050610216565b60008281526001602090815260408083206001600160a01b038516845290915281205460ff166101ad5760008381526001602081815260408084206001600160a01b0387168086529252808420805460ff19169093179092559051339286917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45060016101b1565b5060005b92915050565b80516001600160a01b03811681146101ce57600080fd5b919050565b6000806000606084860312156101e857600080fd5b6101f1846101b7565b92506101ff602085016101b7565b915061020d604085016101b7565b90509250925092565b6111bd806102256000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c80635c975abb116100b2578063a217fddf11610081578063d547741f11610066578063d547741f146102c2578063d9caed12146102d5578063e63ab1e9146102e857600080fd5b8063a217fddf146102a7578063c8a02362146102af57600080fd5b80635c975abb146102275780638456cb591461023257806385f438c11461023a57806391d148541461026157600080fd5b80632f2ff15d116100ee5780632f2ff15d146101d957806336568abe146101ec5780633f4ba83a146101ff5780635b1125911461020757600080fd5b806301ffc9a714610120578063116191b61461014857806321fc65f214610192578063248a9ca3146101a7575b600080fd5b61013361012e366004610ee3565b61030f565b60405190151581526020015b60405180910390f35b60025461016d90610100900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161013f565b6101a56101a0366004610f4e565b6103a8565b005b6101cb6101b5366004610feb565b6000908152600160208190526040909120015490565b60405190815260200161013f565b6101a56101e7366004611004565b61051d565b6101a56101fa366004611004565b610549565b6101a56105a7565b60035461016d9073ffffffffffffffffffffffffffffffffffffffff1681565b60025460ff16610133565b6101a56105dc565b6101cb7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e481565b61013361026f366004611004565b600091825260016020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b6101cb600081565b6101a56102bd366004610f4e565b61060e565b6101a56102d0366004611004565b610769565b6101a56102e3366004611030565b61078f565b6101cb7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806103a257507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6103b061085c565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e46103da8161089f565b6103e26108a9565b60025461040e9073ffffffffffffffffffffffffffffffffffffffff88811691610100900416866108e8565b6002546040517f5131ab5900000000000000000000000000000000000000000000000000000000815261010090910473ffffffffffffffffffffffffffffffffffffffff1690635131ab599061047090899089908990899089906004016110b6565b600060405180830381600087803b15801561048a57600080fd5b505af115801561049e573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e86868660405161050393929190611113565b60405180910390a3506105166001600055565b5050505050565b600082815260016020819052604090912001546105398161089f565b6105438383610975565b50505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610598576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105a28282610a40565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6105d18161089f565b6105d9610aff565b50565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6106068161089f565b6105d9610b7c565b61061661085c565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e46106408161089f565b6106486108a9565b6002546106749073ffffffffffffffffffffffffffffffffffffffff88811691610100900416866108e8565b6002546040517fb8969bd400000000000000000000000000000000000000000000000000000000815261010090910473ffffffffffffffffffffffffffffffffffffffff169063b8969bd4906106d690899089908990899089906004016110b6565b600060405180830381600087803b1580156106f057600080fd5b505af1158015610704573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c886868660405161050393929190611113565b600082815260016020819052604090912001546107858161089f565b6105438383610a40565b61079761085c565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e46107c18161089f565b6107c96108a9565b6107ea73ffffffffffffffffffffffffffffffffffffffff851684846108e8565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb8460405161084991815260200190565b60405180910390a3506105a26001600055565b600260005403610898576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b6105d98133610bd7565b60025460ff16156108e6576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526105a2908490610c68565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff16610a3857600083815260016020818152604080842073ffffffffffffffffffffffffffffffffffffffff8716808652925280842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169093179092559051339286917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45060016103a2565b5060006103a2565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff1615610a3857600083815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016103a2565b610b07610cfe565b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b610b846108a9565b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610b523390565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610c64576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602481018390526044015b60405180910390fd5b5050565b6000610c8a73ffffffffffffffffffffffffffffffffffffffff841683610d3a565b90508051600014158015610caf575080806020019051810190610cad9190611136565b155b156105a2576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602401610c5b565b60025460ff166108e6576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060610d4883836000610d4f565b9392505050565b606081471015610d8d576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610c5b565b6000808573ffffffffffffffffffffffffffffffffffffffff168486604051610db69190611158565b60006040518083038185875af1925050503d8060008114610df3576040519150601f19603f3d011682016040523d82523d6000602084013e610df8565b606091505b5091509150610e08868383610e12565b9695505050505050565b606082610e2757610e2282610ea1565b610d48565b8151158015610e4b575073ffffffffffffffffffffffffffffffffffffffff84163b155b15610e9a576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610c5b565b5080610d48565b805115610eb15780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060208284031215610ef557600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610d4857600080fd5b803573ffffffffffffffffffffffffffffffffffffffff81168114610f4957600080fd5b919050565b600080600080600060808688031215610f6657600080fd5b610f6f86610f25565b9450610f7d60208701610f25565b935060408601359250606086013567ffffffffffffffff811115610fa057600080fd5b8601601f81018813610fb157600080fd5b803567ffffffffffffffff811115610fc857600080fd5b886020828401011115610fda57600080fd5b959894975092955050506020019190565b600060208284031215610ffd57600080fd5b5035919050565b6000806040838503121561101757600080fd5b8235915061102760208401610f25565b90509250929050565b60008060006060848603121561104557600080fd5b61104e84610f25565b925061105c60208501610f25565b929592945050506040919091013590565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff8516602082015283604082015260806060820152600061110860808301848661106d565b979650505050505050565b83815260406020820152600061112d60408301848661106d565b95945050505050565b60006020828403121561114857600080fd5b81518015158114610d4857600080fd5b6000825160005b81811015611179576020818601810151858301520161115f565b50600092019182525091905056fea2646970667358221220f228501fb7798406cf58c84b1f7af446926eecd69943c0a6760dfd0c5550e2ff64736f6c634300081a0033", +} + +// ERC20CustodyABI is the input ABI used to generate the binding from. +// Deprecated: Use ERC20CustodyMetaData.ABI instead. +var ERC20CustodyABI = ERC20CustodyMetaData.ABI + +// ERC20CustodyBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use ERC20CustodyMetaData.Bin instead. +var ERC20CustodyBin = ERC20CustodyMetaData.Bin + +// DeployERC20Custody deploys a new Ethereum contract, binding an instance of ERC20Custody to it. +func DeployERC20Custody(auth *bind.TransactOpts, backend bind.ContractBackend, _gateway common.Address, _tssAddress common.Address, _admin common.Address) (common.Address, *types.Transaction, *ERC20Custody, error) { + parsed, err := ERC20CustodyMetaData.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(ERC20CustodyBin), backend, _gateway, _tssAddress, _admin) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &ERC20Custody{ERC20CustodyCaller: ERC20CustodyCaller{contract: contract}, ERC20CustodyTransactor: ERC20CustodyTransactor{contract: contract}, ERC20CustodyFilterer: ERC20CustodyFilterer{contract: contract}}, nil +} + +// ERC20Custody is an auto generated Go binding around an Ethereum contract. +type ERC20Custody struct { + ERC20CustodyCaller // Read-only binding to the contract + ERC20CustodyTransactor // Write-only binding to the contract + ERC20CustodyFilterer // Log filterer for contract events +} + +// ERC20CustodyCaller is an auto generated read-only Go binding around an Ethereum contract. +type ERC20CustodyCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ERC20CustodyTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ERC20CustodyTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ERC20CustodyFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ERC20CustodyFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ERC20CustodySession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ERC20CustodySession struct { + Contract *ERC20Custody // 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 +} + +// ERC20CustodyCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ERC20CustodyCallerSession struct { + Contract *ERC20CustodyCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ERC20CustodyTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ERC20CustodyTransactorSession struct { + Contract *ERC20CustodyTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ERC20CustodyRaw is an auto generated low-level Go binding around an Ethereum contract. +type ERC20CustodyRaw struct { + Contract *ERC20Custody // Generic contract binding to access the raw methods on +} + +// ERC20CustodyCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ERC20CustodyCallerRaw struct { + Contract *ERC20CustodyCaller // Generic read-only contract binding to access the raw methods on +} + +// ERC20CustodyTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ERC20CustodyTransactorRaw struct { + Contract *ERC20CustodyTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewERC20Custody creates a new instance of ERC20Custody, bound to a specific deployed contract. +func NewERC20Custody(address common.Address, backend bind.ContractBackend) (*ERC20Custody, error) { + contract, err := bindERC20Custody(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ERC20Custody{ERC20CustodyCaller: ERC20CustodyCaller{contract: contract}, ERC20CustodyTransactor: ERC20CustodyTransactor{contract: contract}, ERC20CustodyFilterer: ERC20CustodyFilterer{contract: contract}}, nil +} + +// NewERC20CustodyCaller creates a new read-only instance of ERC20Custody, bound to a specific deployed contract. +func NewERC20CustodyCaller(address common.Address, caller bind.ContractCaller) (*ERC20CustodyCaller, error) { + contract, err := bindERC20Custody(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ERC20CustodyCaller{contract: contract}, nil +} + +// NewERC20CustodyTransactor creates a new write-only instance of ERC20Custody, bound to a specific deployed contract. +func NewERC20CustodyTransactor(address common.Address, transactor bind.ContractTransactor) (*ERC20CustodyTransactor, error) { + contract, err := bindERC20Custody(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ERC20CustodyTransactor{contract: contract}, nil +} + +// NewERC20CustodyFilterer creates a new log filterer instance of ERC20Custody, bound to a specific deployed contract. +func NewERC20CustodyFilterer(address common.Address, filterer bind.ContractFilterer) (*ERC20CustodyFilterer, error) { + contract, err := bindERC20Custody(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ERC20CustodyFilterer{contract: contract}, nil +} + +// bindERC20Custody binds a generic wrapper to an already deployed contract. +func bindERC20Custody(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := ERC20CustodyMetaData.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 (_ERC20Custody *ERC20CustodyRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ERC20Custody.Contract.ERC20CustodyCaller.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 (_ERC20Custody *ERC20CustodyRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ERC20Custody.Contract.ERC20CustodyTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ERC20Custody *ERC20CustodyRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ERC20Custody.Contract.ERC20CustodyTransactor.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 (_ERC20Custody *ERC20CustodyCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ERC20Custody.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 (_ERC20Custody *ERC20CustodyTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ERC20Custody.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ERC20Custody *ERC20CustodyTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ERC20Custody.Contract.contract.Transact(opts, method, params...) +} + +// DEFAULTADMINROLE is a free data retrieval call binding the contract method 0xa217fddf. +// +// Solidity: function DEFAULT_ADMIN_ROLE() view returns(bytes32) +func (_ERC20Custody *ERC20CustodyCaller) DEFAULTADMINROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _ERC20Custody.contract.Call(opts, &out, "DEFAULT_ADMIN_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// DEFAULTADMINROLE is a free data retrieval call binding the contract method 0xa217fddf. +// +// Solidity: function DEFAULT_ADMIN_ROLE() view returns(bytes32) +func (_ERC20Custody *ERC20CustodySession) DEFAULTADMINROLE() ([32]byte, error) { + return _ERC20Custody.Contract.DEFAULTADMINROLE(&_ERC20Custody.CallOpts) +} + +// DEFAULTADMINROLE is a free data retrieval call binding the contract method 0xa217fddf. +// +// Solidity: function DEFAULT_ADMIN_ROLE() view returns(bytes32) +func (_ERC20Custody *ERC20CustodyCallerSession) DEFAULTADMINROLE() ([32]byte, error) { + return _ERC20Custody.Contract.DEFAULTADMINROLE(&_ERC20Custody.CallOpts) +} + +// PAUSERROLE is a free data retrieval call binding the contract method 0xe63ab1e9. +// +// Solidity: function PAUSER_ROLE() view returns(bytes32) +func (_ERC20Custody *ERC20CustodyCaller) PAUSERROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _ERC20Custody.contract.Call(opts, &out, "PAUSER_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// PAUSERROLE is a free data retrieval call binding the contract method 0xe63ab1e9. +// +// Solidity: function PAUSER_ROLE() view returns(bytes32) +func (_ERC20Custody *ERC20CustodySession) PAUSERROLE() ([32]byte, error) { + return _ERC20Custody.Contract.PAUSERROLE(&_ERC20Custody.CallOpts) +} + +// PAUSERROLE is a free data retrieval call binding the contract method 0xe63ab1e9. +// +// Solidity: function PAUSER_ROLE() view returns(bytes32) +func (_ERC20Custody *ERC20CustodyCallerSession) PAUSERROLE() ([32]byte, error) { + return _ERC20Custody.Contract.PAUSERROLE(&_ERC20Custody.CallOpts) +} + +// WITHDRAWERROLE is a free data retrieval call binding the contract method 0x85f438c1. +// +// Solidity: function WITHDRAWER_ROLE() view returns(bytes32) +func (_ERC20Custody *ERC20CustodyCaller) WITHDRAWERROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _ERC20Custody.contract.Call(opts, &out, "WITHDRAWER_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// WITHDRAWERROLE is a free data retrieval call binding the contract method 0x85f438c1. +// +// Solidity: function WITHDRAWER_ROLE() view returns(bytes32) +func (_ERC20Custody *ERC20CustodySession) WITHDRAWERROLE() ([32]byte, error) { + return _ERC20Custody.Contract.WITHDRAWERROLE(&_ERC20Custody.CallOpts) +} + +// WITHDRAWERROLE is a free data retrieval call binding the contract method 0x85f438c1. +// +// Solidity: function WITHDRAWER_ROLE() view returns(bytes32) +func (_ERC20Custody *ERC20CustodyCallerSession) WITHDRAWERROLE() ([32]byte, error) { + return _ERC20Custody.Contract.WITHDRAWERROLE(&_ERC20Custody.CallOpts) +} + +// Gateway is a free data retrieval call binding the contract method 0x116191b6. +// +// Solidity: function gateway() view returns(address) +func (_ERC20Custody *ERC20CustodyCaller) Gateway(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ERC20Custody.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 (_ERC20Custody *ERC20CustodySession) Gateway() (common.Address, error) { + return _ERC20Custody.Contract.Gateway(&_ERC20Custody.CallOpts) +} + +// Gateway is a free data retrieval call binding the contract method 0x116191b6. +// +// Solidity: function gateway() view returns(address) +func (_ERC20Custody *ERC20CustodyCallerSession) Gateway() (common.Address, error) { + return _ERC20Custody.Contract.Gateway(&_ERC20Custody.CallOpts) +} + +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. +// +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_ERC20Custody *ERC20CustodyCaller) GetRoleAdmin(opts *bind.CallOpts, role [32]byte) ([32]byte, error) { + var out []interface{} + err := _ERC20Custody.contract.Call(opts, &out, "getRoleAdmin", role) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. +// +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_ERC20Custody *ERC20CustodySession) GetRoleAdmin(role [32]byte) ([32]byte, error) { + return _ERC20Custody.Contract.GetRoleAdmin(&_ERC20Custody.CallOpts, role) +} + +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. +// +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_ERC20Custody *ERC20CustodyCallerSession) GetRoleAdmin(role [32]byte) ([32]byte, error) { + return _ERC20Custody.Contract.GetRoleAdmin(&_ERC20Custody.CallOpts, role) +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_ERC20Custody *ERC20CustodyCaller) HasRole(opts *bind.CallOpts, role [32]byte, account common.Address) (bool, error) { + var out []interface{} + err := _ERC20Custody.contract.Call(opts, &out, "hasRole", role, account) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_ERC20Custody *ERC20CustodySession) HasRole(role [32]byte, account common.Address) (bool, error) { + return _ERC20Custody.Contract.HasRole(&_ERC20Custody.CallOpts, role, account) +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_ERC20Custody *ERC20CustodyCallerSession) HasRole(role [32]byte, account common.Address) (bool, error) { + return _ERC20Custody.Contract.HasRole(&_ERC20Custody.CallOpts, role, account) +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_ERC20Custody *ERC20CustodyCaller) Paused(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _ERC20Custody.contract.Call(opts, &out, "paused") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_ERC20Custody *ERC20CustodySession) Paused() (bool, error) { + return _ERC20Custody.Contract.Paused(&_ERC20Custody.CallOpts) +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_ERC20Custody *ERC20CustodyCallerSession) Paused() (bool, error) { + return _ERC20Custody.Contract.Paused(&_ERC20Custody.CallOpts) +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) +func (_ERC20Custody *ERC20CustodyCaller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) { + var out []interface{} + err := _ERC20Custody.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 (_ERC20Custody *ERC20CustodySession) SupportsInterface(interfaceId [4]byte) (bool, error) { + return _ERC20Custody.Contract.SupportsInterface(&_ERC20Custody.CallOpts, interfaceId) +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) +func (_ERC20Custody *ERC20CustodyCallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) { + return _ERC20Custody.Contract.SupportsInterface(&_ERC20Custody.CallOpts, interfaceId) +} + +// TssAddress is a free data retrieval call binding the contract method 0x5b112591. +// +// Solidity: function tssAddress() view returns(address) +func (_ERC20Custody *ERC20CustodyCaller) TssAddress(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ERC20Custody.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 (_ERC20Custody *ERC20CustodySession) TssAddress() (common.Address, error) { + return _ERC20Custody.Contract.TssAddress(&_ERC20Custody.CallOpts) +} + +// TssAddress is a free data retrieval call binding the contract method 0x5b112591. +// +// Solidity: function tssAddress() view returns(address) +func (_ERC20Custody *ERC20CustodyCallerSession) TssAddress() (common.Address, error) { + return _ERC20Custody.Contract.TssAddress(&_ERC20Custody.CallOpts) +} + +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_ERC20Custody *ERC20CustodyTransactor) GrantRole(opts *bind.TransactOpts, role [32]byte, account common.Address) (*types.Transaction, error) { + return _ERC20Custody.contract.Transact(opts, "grantRole", role, account) +} + +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_ERC20Custody *ERC20CustodySession) GrantRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _ERC20Custody.Contract.GrantRole(&_ERC20Custody.TransactOpts, role, account) +} + +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_ERC20Custody *ERC20CustodyTransactorSession) GrantRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _ERC20Custody.Contract.GrantRole(&_ERC20Custody.TransactOpts, role, account) +} + +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. +// +// Solidity: function pause() returns() +func (_ERC20Custody *ERC20CustodyTransactor) Pause(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ERC20Custody.contract.Transact(opts, "pause") +} + +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. +// +// Solidity: function pause() returns() +func (_ERC20Custody *ERC20CustodySession) Pause() (*types.Transaction, error) { + return _ERC20Custody.Contract.Pause(&_ERC20Custody.TransactOpts) +} + +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. +// +// Solidity: function pause() returns() +func (_ERC20Custody *ERC20CustodyTransactorSession) Pause() (*types.Transaction, error) { + return _ERC20Custody.Contract.Pause(&_ERC20Custody.TransactOpts) +} + +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. +// +// Solidity: function renounceRole(bytes32 role, address callerConfirmation) returns() +func (_ERC20Custody *ERC20CustodyTransactor) RenounceRole(opts *bind.TransactOpts, role [32]byte, callerConfirmation common.Address) (*types.Transaction, error) { + return _ERC20Custody.contract.Transact(opts, "renounceRole", role, callerConfirmation) +} + +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. +// +// Solidity: function renounceRole(bytes32 role, address callerConfirmation) returns() +func (_ERC20Custody *ERC20CustodySession) RenounceRole(role [32]byte, callerConfirmation common.Address) (*types.Transaction, error) { + return _ERC20Custody.Contract.RenounceRole(&_ERC20Custody.TransactOpts, role, callerConfirmation) +} + +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. +// +// Solidity: function renounceRole(bytes32 role, address callerConfirmation) returns() +func (_ERC20Custody *ERC20CustodyTransactorSession) RenounceRole(role [32]byte, callerConfirmation common.Address) (*types.Transaction, error) { + return _ERC20Custody.Contract.RenounceRole(&_ERC20Custody.TransactOpts, role, callerConfirmation) +} + +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_ERC20Custody *ERC20CustodyTransactor) RevokeRole(opts *bind.TransactOpts, role [32]byte, account common.Address) (*types.Transaction, error) { + return _ERC20Custody.contract.Transact(opts, "revokeRole", role, account) +} + +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_ERC20Custody *ERC20CustodySession) RevokeRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _ERC20Custody.Contract.RevokeRole(&_ERC20Custody.TransactOpts, role, account) +} + +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_ERC20Custody *ERC20CustodyTransactorSession) RevokeRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _ERC20Custody.Contract.RevokeRole(&_ERC20Custody.TransactOpts, role, account) +} + +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. +// +// Solidity: function unpause() returns() +func (_ERC20Custody *ERC20CustodyTransactor) Unpause(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ERC20Custody.contract.Transact(opts, "unpause") +} + +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. +// +// Solidity: function unpause() returns() +func (_ERC20Custody *ERC20CustodySession) Unpause() (*types.Transaction, error) { + return _ERC20Custody.Contract.Unpause(&_ERC20Custody.TransactOpts) +} + +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. +// +// Solidity: function unpause() returns() +func (_ERC20Custody *ERC20CustodyTransactorSession) Unpause() (*types.Transaction, error) { + return _ERC20Custody.Contract.Unpause(&_ERC20Custody.TransactOpts) +} + +// Withdraw is a paid mutator transaction binding the contract method 0xd9caed12. +// +// Solidity: function withdraw(address token, address to, uint256 amount) returns() +func (_ERC20Custody *ERC20CustodyTransactor) Withdraw(opts *bind.TransactOpts, token common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _ERC20Custody.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 (_ERC20Custody *ERC20CustodySession) Withdraw(token common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _ERC20Custody.Contract.Withdraw(&_ERC20Custody.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 (_ERC20Custody *ERC20CustodyTransactorSession) Withdraw(token common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _ERC20Custody.Contract.Withdraw(&_ERC20Custody.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 (_ERC20Custody *ERC20CustodyTransactor) WithdrawAndCall(opts *bind.TransactOpts, token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _ERC20Custody.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 (_ERC20Custody *ERC20CustodySession) WithdrawAndCall(token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _ERC20Custody.Contract.WithdrawAndCall(&_ERC20Custody.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 (_ERC20Custody *ERC20CustodyTransactorSession) WithdrawAndCall(token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _ERC20Custody.Contract.WithdrawAndCall(&_ERC20Custody.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 (_ERC20Custody *ERC20CustodyTransactor) WithdrawAndRevert(opts *bind.TransactOpts, token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _ERC20Custody.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 (_ERC20Custody *ERC20CustodySession) WithdrawAndRevert(token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _ERC20Custody.Contract.WithdrawAndRevert(&_ERC20Custody.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 (_ERC20Custody *ERC20CustodyTransactorSession) WithdrawAndRevert(token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _ERC20Custody.Contract.WithdrawAndRevert(&_ERC20Custody.TransactOpts, token, to, amount, data) +} + +// ERC20CustodyPausedIterator is returned from FilterPaused and is used to iterate over the raw logs and unpacked data for Paused events raised by the ERC20Custody contract. +type ERC20CustodyPausedIterator struct { + Event *ERC20CustodyPaused // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ERC20CustodyPausedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyPaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyPaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ERC20CustodyPausedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC20CustodyPausedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC20CustodyPaused represents a Paused event raised by the ERC20Custody contract. +type ERC20CustodyPaused struct { + Account common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterPaused is a free log retrieval operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. +// +// Solidity: event Paused(address account) +func (_ERC20Custody *ERC20CustodyFilterer) FilterPaused(opts *bind.FilterOpts) (*ERC20CustodyPausedIterator, error) { + + logs, sub, err := _ERC20Custody.contract.FilterLogs(opts, "Paused") + if err != nil { + return nil, err + } + return &ERC20CustodyPausedIterator{contract: _ERC20Custody.contract, event: "Paused", logs: logs, sub: sub}, nil +} + +// WatchPaused is a free log subscription operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. +// +// Solidity: event Paused(address account) +func (_ERC20Custody *ERC20CustodyFilterer) WatchPaused(opts *bind.WatchOpts, sink chan<- *ERC20CustodyPaused) (event.Subscription, error) { + + logs, sub, err := _ERC20Custody.contract.WatchLogs(opts, "Paused") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ERC20CustodyPaused) + if err := _ERC20Custody.contract.UnpackLog(event, "Paused", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParsePaused is a log parse operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. +// +// Solidity: event Paused(address account) +func (_ERC20Custody *ERC20CustodyFilterer) ParsePaused(log types.Log) (*ERC20CustodyPaused, error) { + event := new(ERC20CustodyPaused) + if err := _ERC20Custody.contract.UnpackLog(event, "Paused", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ERC20CustodyRoleAdminChangedIterator is returned from FilterRoleAdminChanged and is used to iterate over the raw logs and unpacked data for RoleAdminChanged events raised by the ERC20Custody contract. +type ERC20CustodyRoleAdminChangedIterator struct { + Event *ERC20CustodyRoleAdminChanged // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ERC20CustodyRoleAdminChangedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyRoleAdminChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyRoleAdminChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ERC20CustodyRoleAdminChangedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC20CustodyRoleAdminChangedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC20CustodyRoleAdminChanged represents a RoleAdminChanged event raised by the ERC20Custody contract. +type ERC20CustodyRoleAdminChanged struct { + Role [32]byte + PreviousAdminRole [32]byte + NewAdminRole [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRoleAdminChanged is a free log retrieval operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. +// +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_ERC20Custody *ERC20CustodyFilterer) FilterRoleAdminChanged(opts *bind.FilterOpts, role [][32]byte, previousAdminRole [][32]byte, newAdminRole [][32]byte) (*ERC20CustodyRoleAdminChangedIterator, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var previousAdminRoleRule []interface{} + for _, previousAdminRoleItem := range previousAdminRole { + previousAdminRoleRule = append(previousAdminRoleRule, previousAdminRoleItem) + } + var newAdminRoleRule []interface{} + for _, newAdminRoleItem := range newAdminRole { + newAdminRoleRule = append(newAdminRoleRule, newAdminRoleItem) + } + + logs, sub, err := _ERC20Custody.contract.FilterLogs(opts, "RoleAdminChanged", roleRule, previousAdminRoleRule, newAdminRoleRule) + if err != nil { + return nil, err + } + return &ERC20CustodyRoleAdminChangedIterator{contract: _ERC20Custody.contract, event: "RoleAdminChanged", logs: logs, sub: sub}, nil +} + +// WatchRoleAdminChanged is a free log subscription operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. +// +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_ERC20Custody *ERC20CustodyFilterer) WatchRoleAdminChanged(opts *bind.WatchOpts, sink chan<- *ERC20CustodyRoleAdminChanged, role [][32]byte, previousAdminRole [][32]byte, newAdminRole [][32]byte) (event.Subscription, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var previousAdminRoleRule []interface{} + for _, previousAdminRoleItem := range previousAdminRole { + previousAdminRoleRule = append(previousAdminRoleRule, previousAdminRoleItem) + } + var newAdminRoleRule []interface{} + for _, newAdminRoleItem := range newAdminRole { + newAdminRoleRule = append(newAdminRoleRule, newAdminRoleItem) + } + + logs, sub, err := _ERC20Custody.contract.WatchLogs(opts, "RoleAdminChanged", roleRule, previousAdminRoleRule, newAdminRoleRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ERC20CustodyRoleAdminChanged) + if err := _ERC20Custody.contract.UnpackLog(event, "RoleAdminChanged", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRoleAdminChanged is a log parse operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. +// +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_ERC20Custody *ERC20CustodyFilterer) ParseRoleAdminChanged(log types.Log) (*ERC20CustodyRoleAdminChanged, error) { + event := new(ERC20CustodyRoleAdminChanged) + if err := _ERC20Custody.contract.UnpackLog(event, "RoleAdminChanged", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ERC20CustodyRoleGrantedIterator is returned from FilterRoleGranted and is used to iterate over the raw logs and unpacked data for RoleGranted events raised by the ERC20Custody contract. +type ERC20CustodyRoleGrantedIterator struct { + Event *ERC20CustodyRoleGranted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ERC20CustodyRoleGrantedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyRoleGranted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyRoleGranted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ERC20CustodyRoleGrantedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC20CustodyRoleGrantedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC20CustodyRoleGranted represents a RoleGranted event raised by the ERC20Custody contract. +type ERC20CustodyRoleGranted struct { + Role [32]byte + Account common.Address + Sender common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRoleGranted is a free log retrieval operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. +// +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_ERC20Custody *ERC20CustodyFilterer) FilterRoleGranted(opts *bind.FilterOpts, role [][32]byte, account []common.Address, sender []common.Address) (*ERC20CustodyRoleGrantedIterator, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _ERC20Custody.contract.FilterLogs(opts, "RoleGranted", roleRule, accountRule, senderRule) + if err != nil { + return nil, err + } + return &ERC20CustodyRoleGrantedIterator{contract: _ERC20Custody.contract, event: "RoleGranted", logs: logs, sub: sub}, nil +} + +// WatchRoleGranted is a free log subscription operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. +// +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_ERC20Custody *ERC20CustodyFilterer) WatchRoleGranted(opts *bind.WatchOpts, sink chan<- *ERC20CustodyRoleGranted, role [][32]byte, account []common.Address, sender []common.Address) (event.Subscription, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _ERC20Custody.contract.WatchLogs(opts, "RoleGranted", roleRule, accountRule, 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(ERC20CustodyRoleGranted) + if err := _ERC20Custody.contract.UnpackLog(event, "RoleGranted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRoleGranted is a log parse operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. +// +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_ERC20Custody *ERC20CustodyFilterer) ParseRoleGranted(log types.Log) (*ERC20CustodyRoleGranted, error) { + event := new(ERC20CustodyRoleGranted) + if err := _ERC20Custody.contract.UnpackLog(event, "RoleGranted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ERC20CustodyRoleRevokedIterator is returned from FilterRoleRevoked and is used to iterate over the raw logs and unpacked data for RoleRevoked events raised by the ERC20Custody contract. +type ERC20CustodyRoleRevokedIterator struct { + Event *ERC20CustodyRoleRevoked // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ERC20CustodyRoleRevokedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyRoleRevoked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyRoleRevoked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ERC20CustodyRoleRevokedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC20CustodyRoleRevokedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC20CustodyRoleRevoked represents a RoleRevoked event raised by the ERC20Custody contract. +type ERC20CustodyRoleRevoked struct { + Role [32]byte + Account common.Address + Sender common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRoleRevoked is a free log retrieval operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. +// +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_ERC20Custody *ERC20CustodyFilterer) FilterRoleRevoked(opts *bind.FilterOpts, role [][32]byte, account []common.Address, sender []common.Address) (*ERC20CustodyRoleRevokedIterator, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _ERC20Custody.contract.FilterLogs(opts, "RoleRevoked", roleRule, accountRule, senderRule) + if err != nil { + return nil, err + } + return &ERC20CustodyRoleRevokedIterator{contract: _ERC20Custody.contract, event: "RoleRevoked", logs: logs, sub: sub}, nil +} + +// WatchRoleRevoked is a free log subscription operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. +// +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_ERC20Custody *ERC20CustodyFilterer) WatchRoleRevoked(opts *bind.WatchOpts, sink chan<- *ERC20CustodyRoleRevoked, role [][32]byte, account []common.Address, sender []common.Address) (event.Subscription, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _ERC20Custody.contract.WatchLogs(opts, "RoleRevoked", roleRule, accountRule, 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(ERC20CustodyRoleRevoked) + if err := _ERC20Custody.contract.UnpackLog(event, "RoleRevoked", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRoleRevoked is a log parse operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. +// +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_ERC20Custody *ERC20CustodyFilterer) ParseRoleRevoked(log types.Log) (*ERC20CustodyRoleRevoked, error) { + event := new(ERC20CustodyRoleRevoked) + if err := _ERC20Custody.contract.UnpackLog(event, "RoleRevoked", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ERC20CustodyUnpausedIterator is returned from FilterUnpaused and is used to iterate over the raw logs and unpacked data for Unpaused events raised by the ERC20Custody contract. +type ERC20CustodyUnpausedIterator struct { + Event *ERC20CustodyUnpaused // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ERC20CustodyUnpausedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyUnpaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyUnpaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ERC20CustodyUnpausedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC20CustodyUnpausedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC20CustodyUnpaused represents a Unpaused event raised by the ERC20Custody contract. +type ERC20CustodyUnpaused struct { + Account common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUnpaused is a free log retrieval operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. +// +// Solidity: event Unpaused(address account) +func (_ERC20Custody *ERC20CustodyFilterer) FilterUnpaused(opts *bind.FilterOpts) (*ERC20CustodyUnpausedIterator, error) { + + logs, sub, err := _ERC20Custody.contract.FilterLogs(opts, "Unpaused") + if err != nil { + return nil, err + } + return &ERC20CustodyUnpausedIterator{contract: _ERC20Custody.contract, event: "Unpaused", logs: logs, sub: sub}, nil +} + +// WatchUnpaused is a free log subscription operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. +// +// Solidity: event Unpaused(address account) +func (_ERC20Custody *ERC20CustodyFilterer) WatchUnpaused(opts *bind.WatchOpts, sink chan<- *ERC20CustodyUnpaused) (event.Subscription, error) { + + logs, sub, err := _ERC20Custody.contract.WatchLogs(opts, "Unpaused") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ERC20CustodyUnpaused) + if err := _ERC20Custody.contract.UnpackLog(event, "Unpaused", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseUnpaused is a log parse operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. +// +// Solidity: event Unpaused(address account) +func (_ERC20Custody *ERC20CustodyFilterer) ParseUnpaused(log types.Log) (*ERC20CustodyUnpaused, error) { + event := new(ERC20CustodyUnpaused) + if err := _ERC20Custody.contract.UnpackLog(event, "Unpaused", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ERC20CustodyWithdrawIterator is returned from FilterWithdraw and is used to iterate over the raw logs and unpacked data for Withdraw events raised by the ERC20Custody contract. +type ERC20CustodyWithdrawIterator struct { + Event *ERC20CustodyWithdraw // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ERC20CustodyWithdrawIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyWithdraw) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyWithdraw) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ERC20CustodyWithdrawIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC20CustodyWithdrawIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC20CustodyWithdraw represents a Withdraw event raised by the ERC20Custody contract. +type ERC20CustodyWithdraw 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 (_ERC20Custody *ERC20CustodyFilterer) FilterWithdraw(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*ERC20CustodyWithdrawIterator, 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 := _ERC20Custody.contract.FilterLogs(opts, "Withdraw", tokenRule, toRule) + if err != nil { + return nil, err + } + return &ERC20CustodyWithdrawIterator{contract: _ERC20Custody.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 (_ERC20Custody *ERC20CustodyFilterer) WatchWithdraw(opts *bind.WatchOpts, sink chan<- *ERC20CustodyWithdraw, 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 := _ERC20Custody.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(ERC20CustodyWithdraw) + if err := _ERC20Custody.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 (_ERC20Custody *ERC20CustodyFilterer) ParseWithdraw(log types.Log) (*ERC20CustodyWithdraw, error) { + event := new(ERC20CustodyWithdraw) + if err := _ERC20Custody.contract.UnpackLog(event, "Withdraw", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ERC20CustodyWithdrawAndCallIterator is returned from FilterWithdrawAndCall and is used to iterate over the raw logs and unpacked data for WithdrawAndCall events raised by the ERC20Custody contract. +type ERC20CustodyWithdrawAndCallIterator struct { + Event *ERC20CustodyWithdrawAndCall // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ERC20CustodyWithdrawAndCallIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyWithdrawAndCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyWithdrawAndCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ERC20CustodyWithdrawAndCallIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC20CustodyWithdrawAndCallIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC20CustodyWithdrawAndCall represents a WithdrawAndCall event raised by the ERC20Custody contract. +type ERC20CustodyWithdrawAndCall 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 (_ERC20Custody *ERC20CustodyFilterer) FilterWithdrawAndCall(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*ERC20CustodyWithdrawAndCallIterator, 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 := _ERC20Custody.contract.FilterLogs(opts, "WithdrawAndCall", tokenRule, toRule) + if err != nil { + return nil, err + } + return &ERC20CustodyWithdrawAndCallIterator{contract: _ERC20Custody.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 (_ERC20Custody *ERC20CustodyFilterer) WatchWithdrawAndCall(opts *bind.WatchOpts, sink chan<- *ERC20CustodyWithdrawAndCall, 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 := _ERC20Custody.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(ERC20CustodyWithdrawAndCall) + if err := _ERC20Custody.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 (_ERC20Custody *ERC20CustodyFilterer) ParseWithdrawAndCall(log types.Log) (*ERC20CustodyWithdrawAndCall, error) { + event := new(ERC20CustodyWithdrawAndCall) + if err := _ERC20Custody.contract.UnpackLog(event, "WithdrawAndCall", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ERC20CustodyWithdrawAndRevertIterator is returned from FilterWithdrawAndRevert and is used to iterate over the raw logs and unpacked data for WithdrawAndRevert events raised by the ERC20Custody contract. +type ERC20CustodyWithdrawAndRevertIterator struct { + Event *ERC20CustodyWithdrawAndRevert // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ERC20CustodyWithdrawAndRevertIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyWithdrawAndRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyWithdrawAndRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ERC20CustodyWithdrawAndRevertIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC20CustodyWithdrawAndRevertIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC20CustodyWithdrawAndRevert represents a WithdrawAndRevert event raised by the ERC20Custody contract. +type ERC20CustodyWithdrawAndRevert 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 (_ERC20Custody *ERC20CustodyFilterer) FilterWithdrawAndRevert(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*ERC20CustodyWithdrawAndRevertIterator, 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 := _ERC20Custody.contract.FilterLogs(opts, "WithdrawAndRevert", tokenRule, toRule) + if err != nil { + return nil, err + } + return &ERC20CustodyWithdrawAndRevertIterator{contract: _ERC20Custody.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 (_ERC20Custody *ERC20CustodyFilterer) WatchWithdrawAndRevert(opts *bind.WatchOpts, sink chan<- *ERC20CustodyWithdrawAndRevert, 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 := _ERC20Custody.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(ERC20CustodyWithdrawAndRevert) + if err := _ERC20Custody.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 (_ERC20Custody *ERC20CustodyFilterer) ParseWithdrawAndRevert(log types.Log) (*ERC20CustodyWithdrawAndRevert, error) { + event := new(ERC20CustodyWithdrawAndRevert) + if err := _ERC20Custody.contract.UnpackLog(event, "WithdrawAndRevert", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/erc20custodyechidnatest.sol/erc20custodyechidnatest.go b/v2/pkg/erc20custodyechidnatest.sol/erc20custodyechidnatest.go new file mode 100644 index 00000000..4e6fce27 --- /dev/null +++ b/v2/pkg/erc20custodyechidnatest.sol/erc20custodyechidnatest.go @@ -0,0 +1,1951 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package erc20custodyechidnatest + +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 +) + +// ERC20CustodyEchidnaTestMetaData contains all meta data concerning the ERC20CustodyEchidnaTest contract. +var ERC20CustodyEchidnaTestMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"constructor\",\"inputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"DEFAULT_ADMIN_ROLE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"PAUSER_ROLE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"WITHDRAWER_ROLE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"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\":\"getRoleAdmin\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"grantRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"hasRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"callerConfirmation\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"revokeRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"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\":\"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\":\"unpause\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"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\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RoleAdminChanged\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"previousAdminRole\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"newAdminRole\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RoleGranted\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RoleRevoked\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"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\":\"error\",\"name\":\"AccessControlBadConfirmation\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"AccessControlUnauthorizedAccount\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"neededRole\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"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\":\"EnforcedPause\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExpectedPause\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"FailedInnerCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ReentrancyGuardReentrantCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SafeERC20FailedOperation\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ZeroAddress\",\"inputs\":[]}]", + Bin: "0x600580546001600160a01b03191633908117909155600e60809081526d11d85d195dd85e5155934b9cdbdb60921b60a05260e49190915261012361010481905261012452606460c090815261014460405260e080516001600160e01b0390811663c0c53b8b60e01b1790915261007792919061027f16565b600680546001600160a01b03929092166001600160a01b03199283168117909155600780549092161790553480156100ae57600080fd5b5060075460055460016000556002805460ff191690556001600160a01b039182169116808215806100e657506001600160a01b038216155b156101045760405163d92e233d60e01b815260040160405180910390fd5b60028054610100600160a81b0319166101006001600160a01b038681169190910291909117909155600380546001600160a01b03191691841691909117905561014e60008261029e565b506101797f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8261029e565b506101a47f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e48361029e565b505050506040516101b49061382a565b60408082526004908201819052631d195cdd60e21b606083015260806020830181905282015263151154d560e21b60a082015260c001604051809103906000f080158015610206573d6000803e3d6000fd5b50600480546001600160a01b0319166001600160a01b0392831617815560075460405163ae7a3a6f60e01b815230928101929092529091169063ae7a3a6f90602401600060405180830381600087803b15801561026257600080fd5b505af1158015610276573d6000803e3d6000fd5b505050506148ab565b6000610289613837565b610294848483610331565b9150505b92915050565b60008281526001602090815260408083206001600160a01b038516845290915281205460ff166103295760008381526001602081815260408084206001600160a01b0387168086529252808420805460ff19169093179092559051339286917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a4506001610298565b506000610298565b60008061033e85846103ad565b90506103a26040518060400160405280601d81526020017f4552433139363750726f78792e736f6c3a4552433139363750726f7879000000815250828660405160200161038c929190613940565b60408051601f19818403018152919052856103b9565b9150505b9392505050565b60006103a683836103ed565b60c081015151600090156103e3576103dc84848460c0015161040e60201b60201c565b90506103a6565b6103dc8484610587565b60006103f98383610654565b6103a6838360200151846103b960201b60201c565b600080610419610664565b9050600061042786836106fe565b905060006104448260600151836020015185610b2160201b60201c565b9050600061045483838989610cd6565b9050600061046182611952565b602081015181519192509060030b156104ba5789826040015160405160200161048b929190613964565b60408051601f198184030181529082905262461bcd60e51b82526104b1916004016139ca565b60405180910390fd5b60006105036040518060400160405280601581526020017f4465706c6f79656420746f20616464726573733a200000000000000000000000815250836001611ae960201b60201c565b60405163c6ce059d60e01b8152909150600080516020616ad08339815191529063c6ce059d906105379084906004016139ca565b602060405180830381865afa158015610554573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057891906139dd565b9b9a5050505050505050505050565b604051638d1cc92560e01b81526000908190600080516020616ad083398151915290638d1cc925906105bd9087906004016139ca565b600060405180830381865afa1580156105da573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106029190810190613ad2565b90506000610631828560405160200161061c929190613b06565b60408051601f19818403018152919052611c89565b90506001600160a01b03811661029457848460405160200161048b929190613b35565b61066082826000611c9c565b5050565b60408051808201825260038152621bdd5d60ea1b602082015290516334515cdb60e21b8152606091600080516020616ad083398151915291829063d145736c906106b2908490600401613bc4565b600060405180830381865afa1580156106cf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106f79190810190613bf9565b9250505090565b6107306040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b6000600080516020616ad083398151915290506107756040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b61077e85611d76565b6020820152600061078e86611fcb565b90506000836001600160a01b031663d930a0e66040518163ffffffff1660e01b8152600401600060405180830381865afa1580156107d0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107f89190810190613bf9565b868385602001516040516020016108129493929190613c41565b60408051601f19818403018152908290526360f9bb1160e01b825291506000906001600160a01b038616906360f9bb11906108519085906004016139ca565b600060405180830381865afa15801561086e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108969190810190613bf9565b604051636da11afb60e11b81529091506001600160a01b0386169063db4235f6906108c5908490600401613cd9565b602060405180830381865afa1580156108e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109069190613d12565b61091b578160405160200161048b9190613d34565b6040516309389f5960e31b81526001600160a01b038616906349c4fac890610947908490600401613dab565b600060405180830381865afa158015610964573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261098c9190810190613bf9565b8452604051636da11afb60e11b81526001600160a01b0386169063db4235f6906109ba908490600401613df1565b602060405180830381865afa1580156109d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fb9190613d12565b15610a77576040516309389f5960e31b81526001600160a01b038616906349c4fac890610a2c908490600401613df1565b600060405180830381865afa158015610a49573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a719190810190613bf9565b60408501525b846001600160a01b03166349c4fac8828660000151604051602001610a9c9190613e32565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401610ac8929190613e8d565b600060405180830381865afa158015610ae5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b0d9190810190613bf9565b606085015250608083015250949350505050565b60408051600480825260a0820190925260609160009190816020015b6060815260200190600190039081610b3d579050509050604051806040016040528060048152602001630677265760e41b81525081600081518110610b8457610b84613eb2565b6020026020010181905250604051806040016040528060038152602001620b5c9b60ea1b81525081600181518110610bbe57610bbe613eb2565b602002602001018190525084604051602001610bda9190613ec8565b60405160208183030381529060405281600281518110610bfc57610bfc613eb2565b602002602001018190525082604051602001610c189190613efd565b60405160208183030381529060405281600381518110610c3a57610c3a613eb2565b60209081029190910101526000610c5082611952565b9050600081602001519050610cb7610c8a60405180604001604052806005815260200164173539b7b760d91b81525061214e60201b60201c565b6040805180820182526000808252602091820152815180830190925284518252808501908201529061217b565b610ccc578560405160200161048b9190613f2c565b9695505050505050565b60a0810151604080518082018252600080825260209182015281518083019092528251808352928101910152606090600080516020616ad08339815191529015610d20565b511590565b610e3c57826020015115610db05760405162461bcd60e51b81526020600482015260586024820152600080516020616af083398151915260448201527f62652075736564207768656e207468652060736b6970566572696679536f757260648201527f6365436f646560206f7074696f6e206973206074727565600000000000000000608482015260a4016104b1565b8260c0015115610e3c5760405162461bcd60e51b81526020600482015260536024820152600080516020616af083398151915260448201527f62652075736564207768656e207468652060736b69704c6963656e736554797060648201527f6560206f7074696f6e2069732060747275656000000000000000000000000000608482015260a4016104b1565b6040805160ff8082526120008201909252600091816020015b6060815260200190600190039081610e555790505090506000604051806040016040528060038152602001620dce0f60eb1b815250828280610e9690613fc1565b935060ff1681518110610eab57610eab613eb2565b60200260200101819052506040518060400160405280600d81526020016c302e302e312d616c7068612e3760981b815250604051602001610eec9190613fe0565b604051602081830303815290604052828280610f0790613fc1565b935060ff1681518110610f1c57610f1c613eb2565b6020026020010181905250604051806040016040528060068152602001656465706c6f7960d01b815250828280610f5290613fc1565b935060ff1681518110610f6757610f67613eb2565b60200260200101819052506040518060400160405280600e81526020016d2d2d636f6e74726163744e616d6560901b815250828280610fa590613fc1565b935060ff1681518110610fba57610fba613eb2565b60200260200101819052508760200151828280610fd690613fc1565b935060ff1681518110610feb57610feb613eb2565b60200260200101819052506040518060400160405280600e81526020016d05a5ac6dedce8e4c2c6e8a0c2e8d60931b81525082828061102990613fc1565b935060ff168151811061103e5761103e613eb2565b60209081029190910101528751828261105681613fc1565b935060ff168151811061106b5761106b613eb2565b6020026020010181905250604051806040016040528060098152602001680b4b58da185a5b925960ba1b8152508282806110a490613fc1565b935060ff16815181106110b9576110b9613eb2565b60209081029190910101526110cd466121dc565b82826110d881613fc1565b935060ff16815181106110ed576110ed613eb2565b60200260200101819052506040518060400160405280600f81526020016e2d2d6275696c64496e666f46696c6560881b81525082828061112c90613fc1565b935060ff168151811061114157611141613eb2565b60200260200101819052508682828061115990613fc1565b935060ff168151811061116e5761116e613eb2565b602090810291909101015285511561127c5760408051808201909152601581527f2d2d636f6e7374727563746f7242797465636f64650000000000000000000000602082015282826111bf81613fc1565b935060ff16815181106111d4576111d4613eb2565b60209081029190910101526040516371aad10d60e01b81526001600160a01b038416906371aad10d9061120b9089906004016139ca565b600060405180830381865afa158015611228573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112509190810190613bf9565b828261125b81613fc1565b935060ff168151811061127057611270613eb2565b60200260200101819052505b846020015115611329576040805180820190915260128152712d2d766572696679536f75726365436f646560701b602082015282826112ba81613fc1565b935060ff16815181106112cf576112cf613eb2565b60200260200101819052506040518060400160405280600581526020016466616c736560d81b81525082828061130490613fc1565b935060ff168151811061131957611319613eb2565b6020026020010181905250611490565b61133f610d1b8660a0015161214e60201b60201c565b6113c25760408051808201909152600d81526c2d2d6c6963656e73655479706560981b6020820152828261137281613fc1565b935060ff168151811061138757611387613eb2565b60200260200101819052508460a001516040516020016113a79190613ec8565b60405160208183030381529060405282828061130490613fc1565b8460c001511580156113e757506113e5610d1b896040015161214e60201b60201c565b155b156114905760408051808201909152600d81526c2d2d6c6963656e73655479706560981b6020820152828261141b81613fc1565b935060ff168151811061143057611430613eb2565b60209081029190910101526114448861226e565b6040516020016114549190613ec8565b60405160208183030381529060405282828061146f90613fc1565b935060ff168151811061148457611484613eb2565b60200260200101819052505b6114a6610d1b866040015161214e60201b60201c565b6115295760408051808201909152600b81526a0b4b5c995b185e595c925960aa1b602082015282826114d781613fc1565b935060ff16815181106114ec576114ec613eb2565b6020026020010181905250846040015182828061150890613fc1565b935060ff168151811061151d5761151d613eb2565b60200260200101819052505b60608501511561161a576040805180820190915260068152650b4b5cd85b1d60d21b6020820152828261155b81613fc1565b935060ff168151811061157057611570613eb2565b60209081029190910101526060850151604051631623433d60e31b815260048101919091526001600160a01b0384169063b11a19e890602401600060405180830381865afa1580156115c6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115ee9190810190613bf9565b82826115f981613fc1565b935060ff168151811061160e5761160e613eb2565b60200260200101819052505b60e085015151156116ac5760408051808201909152600a8152690b4b59d85cd31a5b5a5d60b21b6020820152828261165181613fc1565b935060ff168151811061166657611666613eb2565b602090810291909101015260e085015151611680906121dc565b828261168b81613fc1565b935060ff16815181106116a0576116a0613eb2565b60200260200101819052505b60e085015160200151156117495760408051808201909152600a8152692d2d676173507269636560b01b602082015282826116e681613fc1565b935060ff16815181106116fb576116fb613eb2565b602002602001018190525061171d8560e00151602001516121dc60201b60201c565b828261172881613fc1565b935060ff168151811061173d5761173d613eb2565b60200260200101819052505b60e085015160400151156117ea5760408051808201909152600e81526d2d2d6d617846656550657247617360901b6020820152828261178781613fc1565b935060ff168151811061179c5761179c613eb2565b60200260200101819052506117be8560e00151604001516121dc60201b60201c565b82826117c981613fc1565b935060ff16815181106117de576117de613eb2565b60200260200101819052505b60e0850151606001511561189a5760408051808201909152601681527f2d2d6d61785072696f72697479466565506572476173000000000000000000006020820152828261183781613fc1565b935060ff168151811061184c5761184c613eb2565b602002602001018190525061186e8560e00151606001516121dc60201b60201c565b828261187981613fc1565b935060ff168151811061188e5761188e613eb2565b60200260200101819052505b60008160ff166001600160401b038111156118b7576118b7613a06565b6040519080825280602002602001820160405280156118ea57816020015b60608152602001906001900390816118d55790505b50905060005b8260ff168160ff16101561194357838160ff168151811061191357611913613eb2565b6020026020010151828260ff168151811061193057611930613eb2565b60209081029190910101526001016118f0565b5093505050505b949350505050565b6119796040518060600160405280600060030b815260200160608152602001606081525090565b6040805180820182526004808252630c4c2e6d60e31b602083015291516334515cdb60e21b8152600080516020616ad083398151915292600091849163d145736c916119c791869101614037565b600060405180830381865afa1580156119e4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a0c9190810190613bf9565b90506000611a1a8683612924565b90506000846001600160a01b031663f45c1ce7836040518263ffffffff1660e01b8152600401611a4a919061407e565b6000604051808303816000875af1158015611a69573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a9191908101906140e3565b805190915060030b15801590611aaa5750602081015151155b8015611ab95750604081015151155b15610ccc5781600081518110611ad157611ad1613eb2565b602002602001015160405160200161048b9190614196565b60606000611b1e8560408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600080825260209182015281518083019092528651825280870190820152909150611b559082905b90612a5e565b15611c52576000611bd282611bcc81611bc6611b988a60408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b6040805180820182526000808252602091820152815180830190925282518252918201519181019190915290565b90612a85565b90612ae2565b9050611c06611bff604051806040016040528060018152602001600560f91b81525061214e60201b60201c565b8290612a5e565b15611c4057611c3d611c36604051806040016040528060018152602001600560f91b81525061214e60201b60201c565b8290612b67565b90505b611c4981612b8d565b925050506103a6565b8215611c6b57848460405160200161048b929190614366565b50506040805160208101909152600081526103a6565b509392505050565b6000808251602084016000f09392505050565b8160a0015115611cab57505050565b6000611cb8848484612bf2565b90506000611cc582611952565b602081015181519192509060030b158015611d385750611d38611d0c604051806040016040528060078152602001665355434345535360c81b81525061214e60201b60201c565b604080518082018252600080825260209182015281518083019092528451825280850190820152611b4f565b15611d4557505050505050565b60408201515115611d6557816040015160405160200161048b91906143e1565b8060405160200161048b919061442b565b60606000611dab8360408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b9050611de2611ddb604051806040016040528060048152602001630b9cdbdb60e21b81525061214e60201b60201c565b829061217b565b15611e24576103a6611e1f611e18604051806040016040528060048152602001630b9cdbdb60e21b81525061214e60201b60201c565b8390613105565b612b8d565b611e56611e4f604051806040016040528060018152602001601d60f91b81525061214e60201b60201c565b829061318f565b600103611ebe57611e88611c36604051806040016040528060018152602001601d60f91b81525061214e60201b60201c565b506103a6611e1f611eb7604051806040016040528060018152602001601d60f91b81525061214e60201b60201c565b8390612b67565b611eed611ddb60405180604001604052806005815260200164173539b7b760d91b81525061214e60201b60201c565b15611fba576000611f2582611f20604051806040016040528060018152602001602f60f81b81525061214e60201b60201c565b613224565b905060008160018351611f38919061447b565b81518110611f4857611f48613eb2565b60200260200101519050611fb1611e1f611f8460405180604001604052806005815260200164173539b7b760d91b81525061214e60201b60201c565b60408051808201825260008082526020918201528151808301909252855182528086019082015290613105565b95945050505050565b8260405160200161048b919061448e565b606060006120008360408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b9050612030611ddb604051806040016040528060048152602001630b9cdbdb60e21b81525061214e60201b60201c565b1561203e576103a681612b8d565b612069611e4f604051806040016040528060018152602001601d60f91b81525061214e60201b60201c565b60010361209e576103a6611e1f611eb7604051806040016040528060018152602001601d60f91b81525061214e60201b60201c565b6120cd611ddb60405180604001604052806005815260200164173539b7b760d91b81525061214e60201b60201c565b15611fba57600061210082611f20604051806040016040528060018152602001602f60f81b81525061214e60201b60201c565b905060018151111561213c57806002825161211b919061447b565b8151811061212b5761212b613eb2565b602002602001015192505050919050565b508260405160200161048b919061448e565b60408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b80518251600091111561219057506000610298565b815183516020850151600092916121a691614548565b6121b0919061447b565b9050826020015181036121c7576001915050610298565b82516020840151819020912014905092915050565b606060006121e9836132c8565b60010190506000816001600160401b0381111561220857612208613a06565b6040519080825280601f01601f191660200182016040528015612232576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461223c57509392505050565b60606000612285836040015161214e60201b60201c565b90506122c26122bb6040518060400160405280600a8152602001691553931250d15394d15160b21b81525061214e60201b60201c565b82906133aa565b156122e95750506040805180820190915260048152634e6f6e6560e01b6020820152919050565b61231c6122bb60405180604001604052806009815260200168556e6c6963656e736560b81b81525061214e60201b60201c565b15612348575050604080518082019091526009815268556e6c6963656e736560b81b6020820152919050565b6123756122bb6040518060400160405280600381526020016213525560ea1b81525061214e60201b60201c565b1561239b57505060408051808201909152600381526213525560ea1b6020820152919050565b6123d16122bb6040518060400160405280600c81526020016b47504c2d322e302d6f6e6c7960a01b81525061214e60201b60201c565b8061241157506124116122bb6040518060400160405280601081526020016f23a8261699171816b7b916b630ba32b960811b81525061214e60201b60201c565b1561243d57505060408051808201909152600981526823a72a9023a8263b1960b91b6020820152919050565b6124736122bb6040518060400160405280600c81526020016b47504c2d332e302d6f6e6c7960a01b81525061214e60201b60201c565b806124b357506124b36122bb6040518060400160405280601081526020016f23a8261699971816b7b916b630ba32b960811b81525061214e60201b60201c565b156124df575050604080518082019091526009815268474e552047504c763360b81b6020820152919050565b6125166122bb6040518060400160405280600d81526020016c4c47504c2d322e312d6f6e6c7960981b81525061214e60201b60201c565b8061255757506125576122bb604051806040016040528060118152602001702623a8261699171896b7b916b630ba32b960791b81525061214e60201b60201c565b1561258657505060408051808201909152600c81526b474e55204c47504c76322e3160a01b6020820152919050565b6125bd6122bb6040518060400160405280600d81526020016c4c47504c2d332e302d6f6e6c7960981b81525061214e60201b60201c565b806125fe57506125fe6122bb604051806040016040528060118152602001702623a8261699971816b7b916b630ba32b960791b81525061214e60201b60201c565b1561262b57505060408051808201909152600a815269474e55204c47504c763360b01b6020820152919050565b6126616122bb6040518060400160405280600c81526020016b4253442d322d436c6175736560a01b81525061214e60201b60201c565b1561269057505060408051808201909152600c81526b4253442d322d436c6175736560a01b6020820152919050565b6126c66122bb6040518060400160405280600c81526020016b4253442d332d436c6175736560a01b81525061214e60201b60201c565b156126f557505060408051808201909152600c81526b4253442d332d436c6175736560a01b6020820152919050565b6127266122bb6040518060400160405280600781526020016604d504c2d322e360cc1b81525061214e60201b60201c565b1561275057505060408051808201909152600781526604d504c2d322e360cc1b6020820152919050565b6127816122bb6040518060400160405280600781526020016604f534c2d332e360cc1b81525061214e60201b60201c565b156127ab57505060408051808201909152600781526604f534c2d332e360cc1b6020820152919050565b6127df6122bb6040518060400160405280600a81526020016904170616368652d322e360b41b81525061214e60201b60201c565b1561280c57505060408051808201909152600a81526904170616368652d322e360b41b6020820152919050565b6128436122bb6040518060400160405280600d81526020016c4147504c2d332e302d6f6e6c7960981b81525061214e60201b60201c565b8061288457506128846122bb6040518060400160405280601181526020017020a3a8261699971816b7b916b630ba32b960791b81525061214e60201b60201c565b156128b157505060408051808201909152600a815269474e55204147504c763360b01b6020820152919050565b6128e36122bb604051806040016040528060088152602001674255534c2d312e3160c01b81525061214e60201b60201c565b1561290d57505060408051808201909152600781526642534c20312e3160c81b6020820152919050565b6040808401518451915161048b929060200161455b565b60608060005b84518110156129af578185828151811061294657612946613eb2565b602002602001015160405160200161295f929190613b06565b60405160208183030381529060405291506001855161297e919061447b565b81146129a7578160405160200161299591906146ab565b60405160208183030381529060405291505b60010161292a565b5060408051600380825260808201909252600091816020015b60608152602001906001900390816129c857905050905083816000815181106129f3576129f3613eb2565b6020026020010181905250604051806040016040528060028152602001612d6360f01b81525081600181518110612a2c57612a2c613eb2565b60200260200101819052508181600281518110612a4b57612a4b613eb2565b6020908102919091010152949350505050565b6020808301518351835192840151600093612a7c92918491906133be565b14159392505050565b6040805180820190915260008082526020808301829052845185820151855192860151612ab293906134cf565b9050836020015181612ac4919061447b565b84518590612ad390839061447b565b90525060208401525090919050565b6040805180820190915260008082526020820152815183511015612b07575081610298565b6020808301519084015160019114612b2e5750815160208481015190840151829020919020145b8015612b5f57825184518590612b4590839061447b565b9052508251602085018051612b5b908390614548565b9052505b509192915050565b6040805180820190915260008082526020820152612b868383836135ef565b5092915050565b6060600082600001516001600160401b03811115612bad57612bad613a06565b6040519080825280601f01601f191660200182016040528015612bd7576020820181803683370190505b50602084810151855192935090830191612b86918391613695565b60606000612bfe610664565b6040805160ff808252612000820190925291925060009190816020015b6060815260200190600190039081612c1b5790505090506000604051806040016040528060038152602001620dce0f60eb1b815250828280612c5c90613fc1565b935060ff1681518110612c7157612c71613eb2565b6020026020010181905250604051806040016040528060078152602001665e312e33322e3360c81b815250604051602001612cac91906146d0565b604051602081830303815290604052828280612cc790613fc1565b935060ff1681518110612cdc57612cdc613eb2565b60200260200101819052506040518060400160405280600881526020016776616c696461746560c01b815250828280612d1490613fc1565b935060ff1681518110612d2957612d29613eb2565b602002602001018190525082604051602001612d459190613efd565b604051602081830303815290604052828280612d6090613fc1565b935060ff1681518110612d7557612d75613eb2565b60200260200101819052506040518060400160405280600a8152602001690b4b58dbdb9d1c9858dd60b21b815250828280612daf90613fc1565b935060ff1681518110612dc457612dc4613eb2565b6020908102919091010152612dd9878461370f565b8282612de481613fc1565b935060ff1681518110612df957612df9613eb2565b602090810291909101015285515115612e915760408051808201909152600b81526a2d2d7265666572656e636560a81b60208201528282612e3981613fc1565b935060ff1681518110612e4e57612e4e613eb2565b60209081029190910101528551612e65908461370f565b8282612e7081613fc1565b935060ff1681518110612e8557612e85613eb2565b60200260200101819052505b856080015115612eff5760408051808201909152601881527f2d2d756e73616665536b697053746f72616765436865636b000000000000000060208201528282612eda81613fc1565b935060ff1681518110612eef57612eef613eb2565b6020026020010181905250612f5a565b8415612f5a576040805180820190915260128152712d2d726571756972655265666572656e636560701b60208201528282612f3981613fc1565b935060ff1681518110612f4e57612f4e613eb2565b60200260200101819052505b60408601515115612fe65760408051808201909152600d81526c2d2d756e73616665416c6c6f7760981b60208201528282612f9481613fc1565b935060ff1681518110612fa957612fa9613eb2565b60200260200101819052508560400151828280612fc590613fc1565b935060ff1681518110612fda57612fda613eb2565b60200260200101819052505b8560600151156130505760408051808201909152601481527f2d2d756e73616665416c6c6f7752656e616d65730000000000000000000000006020820152828261302f81613fc1565b935060ff168151811061304457613044613eb2565b60200260200101819052505b60008160ff166001600160401b0381111561306d5761306d613a06565b6040519080825280602002602001820160405280156130a057816020015b606081526020019060019003908161308b5790505b50905060005b8260ff168160ff1610156130f957838160ff16815181106130c9576130c9613eb2565b6020026020010151828260ff16815181106130e6576130e6613eb2565b60209081029190910101526001016130a6565b50979650505050505050565b604080518082019091526000808252602082015281518351101561312a575081610298565b8151835160208501516000929161314091614548565b61314a919061447b565b6020840151909150600190821461316b575082516020840151819020908220145b80156131865783518551869061318290839061447b565b9052505b50929392505050565b8051825160208085015190840151600093849390926131af9284906134cf565b6131b99190614548565b90505b835160208501516131cd9190614548565b8111612b8657816131dd81614715565b92505082600001516132138560200151836131f8919061447b565b8651613204919061447b565b855160208701518591906134cf565b61321d9190614548565b90506131bc565b60606000613232848461318f565b61323d906001614548565b6001600160401b0381111561325457613254613a06565b60405190808252806020026020018201604052801561328757816020015b60608152602001906001900390816132725790505b50905060005b8151811015611c81576132a3611e1f8686612b67565b8282815181106132b5576132b5613eb2565b602090810291909101015260010161328d565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310613311577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef8100000000831061333d576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061335b57662386f26fc10000830492506010015b6305f5e1008310613373576305f5e100830492506008015b612710831061338757612710830492506004015b60648310613399576064830492506002015b600a83106102985760010192915050565b60006133b6838361374f565b159392505050565b6000808584116134c5576020841161347157600084156134095760016133e586602061447b565b6133f090600861472e565b6133fb90600261482c565b613405919061447b565b1990505b83518116856134188989614548565b613422919061447b565b805190935082165b81811461345c57878411613444578794505050505061194a565b8361344e81614838565b94505082845116905061342a565b6134668785614548565b94505050505061194a565b83832061347e858861447b565b6134889087614548565b91505b8582106134c3578482208082036134b0576134a68684614548565b935050505061194a565b6134bb60018461447b565b92505061348b565b505b5092949350505050565b600083818685116135da5760208511613589576000851561351b5760016134f787602061447b565b61350290600861472e565b61350d90600261482c565b613517919061447b565b1990505b8451811660008761352c8b8b614548565b613536919061447b565b855190915083165b82811461357b57818610613563576135568b8b614548565b965050505050505061194a565b8561356d81614715565b96505083865116905061353e565b85965050505050505061194a565b508383206000905b61359b868961447b565b82116135d8578583208082036135b7578394505050505061194a565b6135c2600185614548565b93505081806135d090614715565b925050613591565b505b6135e48787614548565b979650505050505050565b604080518082019091526000808252602080830182905285518682015186519287015161361c93906134cf565b602080870180519186019190915251909150613638908261447b565b83528451602086015161364b9190614548565b810361365a576000855261368c565b835183516136689190614548565b8551869061367790839061447b565b90525083516136869082614548565b60208601525b50909392505050565b602081106136cd57815183526136ac602084614548565b92506136b9602083614548565b91506136c660208261447b565b9050613695565b60001981156136fc5760016136e383602061447b565b6136ef9061010061482c565b6136f9919061447b565b90505b9151835183169219169190911790915250565b6060600061371d84846106fe565b80516020808301516040519394506137379390910161484f565b60405160208183030381529060405291505092915050565b8151815160009190811115613762575081515b6020808501519084015160005b8381101561381b57825182518082146137eb5760001960208710156137ca5760018461379c89602061447b565b6137a69190614548565b6137b190600861472e565b6137bc90600261482c565b6137c6919061447b565b1990505b81811683821681810391146137e85797506102989650505050505050565b50505b6137f6602086614548565b9450613803602085614548565b935050506020816138149190614548565b905061376f565b5084518651610ccc919061488b565b610c9f80615e3183390190565b6040518060e0016040528060608152602001606081526020016060815260200160001515815260200160001515815260200160001515815260200161387a61387f565b905290565b6040518061010001604052806000151581526020016000151581526020016060815260200160008019168152602001606081526020016060815260200160001515815260200161387a6040518060800160405280600081526020016000815260200160008152602001600081525090565b60005b8381101561390b5781810151838201526020016138f3565b50506000910152565b6000815180845261392c8160208601602086016138f0565b601f01601f19169290920160200192915050565b6001600160a01b038316815260406020820181905260009061194a90830184613914565b7f4661696c656420746f206465706c6f7920636f6e74726163742000000000000081526000835161399c81601a8501602088016138f0565b6101d160f51b601a9184019182015283516139be81601c8401602088016138f0565b01601c01949350505050565b6020815260006103a66020830184613914565b6000602082840312156139ef57600080fd5b81516001600160a01b03811681146103a657600080fd5b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715613a3e57613a3e613a06565b60405290565b6000806001600160401b03841115613a5e57613a5e613a06565b50604051601f19601f85018116603f011681018181106001600160401b0382111715613a8c57613a8c613a06565b604052838152905080828401851015613aa457600080fd5b611c818460208301856138f0565b600082601f830112613ac357600080fd5b6103a683835160208501613a44565b600060208284031215613ae457600080fd5b81516001600160401b03811115613afa57600080fd5b61029484828501613ab2565b60008351613b188184602088016138f0565b835190830190613b2c8183602088016138f0565b01949350505050565b7f4661696c656420746f206465706c6f7920636f6e747261637420000000000000815260008351613b6d81601a8501602088016138f0565b7f207573696e6720636f6e7374727563746f722064617461202200000000000000601a918401918201528351613baa8160338401602088016138f0565b601160f91b60339290910191820152603401949350505050565b60408152600b60408201526a1193d55391149657d3d55560aa1b60608201526080602082015260006103a66080830184613914565b600060208284031215613c0b57600080fd5b81516001600160401b03811115613c2157600080fd5b8201601f81018413613c3257600080fd5b61029484825160208401613a44565b60008551613c53818460208a016138f0565b602f60f81b9083019081528551613c71816001840160208a016138f0565b602f60f81b600192909101918201528451613c938160028401602089016138f0565b600181830101915050602f60f81b60018201528351613cb98160028401602088016138f0565b64173539b7b760d91b600292909101918201526007019695505050505050565b604081526000613cec6040830184613914565b828103602084015260048152630b985cdd60e21b60208201526040810191505092915050565b600060208284031215613d2457600080fd5b815180151581146103a657600080fd5b7f436f756c64206e6f742066696e642041535420696e2061727469666163742000815260008251613d6c81601f8501602087016138f0565b7f2e205365742060617374203d20747275656020696e20666f756e6472792e746f601f939091019283015250611b5b60f21b603f820152604101919050565b604081526000613dbe6040830184613914565b8281036020840152601181527005cc2e6e85cc2c4e6ded8eae8caa0c2e8d607b1b60208201526040810191505092915050565b604081526000613e046040830184613914565b8281036020840152600c81526b2e6173742e6c6963656e736560a01b60208201526040810191505092915050565b7f2e6d657461646174612e736f75726365732e5b27000000000000000000000000815260008251613e6a8160148501602087016138f0565b6b13ae9735b2b1b1b0b5991a9b60a11b6014939091019283015250602001919050565b604081526000613ea06040830185613914565b82810360208401526103a28185613914565b634e487b7160e01b600052603260045260246000fd5b601160f91b81528151600090613ee58160018501602087016138f0565b601160f91b6001939091019283015250600201919050565b60008251613f0f8184602087016138f0565b6a2f6275696c642d696e666f60a81b920191825250600b01919050565b7f436f756c64206e6f742066696e64206275696c642d696e666f2066696c65207781527f697468206d61746368696e6720736f7572636520636f6465206861736820666f60208201526a0391031b7b73a3930b1ba160ad1b604082015260008251613f9e81604b8501602087016138f0565b91909101604b0192915050565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff8103613fd757613fd7613fab565b60010192915050565b7f406f70656e7a657070656c696e2f646566656e6465722d6465706c6f792d636c81526801a595b9d0b58db1a560be1b60208201526000825161402a8160298501602087016138f0565b9190910160290192915050565b60408152601660408201527f4f50454e5a455050454c494e5f424153485f504154480000000000000000000060608201526080602082015260006103a66080830184613914565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b828110156140d757603f198786030184526140c2858351613914565b945060209384019391909101906001016140a6565b50929695505050505050565b6000602082840312156140f557600080fd5b81516001600160401b0381111561410b57600080fd5b82016060818503121561411d57600080fd5b614125613a1c565b81518060030b811461413657600080fd5b815260208201516001600160401b0381111561415157600080fd5b61415d86828501613ab2565b60208301525060408201516001600160401b0381111561417c57600080fd5b61418886828501613ab2565b604083015250949350505050565b7f4661696c656420746f2072756e206261736820636f6d6d616e642077697468208152601160f91b6020820152600082516141d88160218501602087016138f0565b7f222e20496620796f7520617265207573696e672057696e646f77732c2073657460219390910192830152507f20746865204f50454e5a455050454c494e5f424153485f5041544820656e766960418201527f726f6e6d656e74207661726961626c6520746f207468652066756c6c7920717560618201527f616c69666965642070617468206f66207468652062617368206578656375746160818201527f626c652e20466f72206578616d706c652c20696620796f75206172652075736960a18201527f6e672047697420666f722057696e646f77732c206164642074686520666f6c6c60c18201527f6f77696e67206c696e6520696e20746865202e656e762066696c65206f66207960e18201527f6f75722070726f6a65637420287573696e6720666f727761726420736c6173686101018201527f6573293a0a4f50454e5a455050454c494e5f424153485f504154483d22433a2f6101218201527f50726f6772616d2046696c65732f4769742f62696e2f6261736822000000000061014182015261015c01919050565b7f4661696c656420746f2066696e64206c696e65207769746820707265666978208152602760f81b6020820152600083516143a88160218501602088016138f0565b6c0139034b71037baba383aba1d1609d1b60219184019182015283516143d581602e8401602088016138f0565b01602e01949350505050565b7f4661696c656420746f2072756e2075706772616465207361666574792076616c815268034b230ba34b7b71d160bd1b60208201526000825161402a8160298501602087016138f0565b7f55706772616465207361666574792076616c69646174696f6e206661696c65648152611d0560f11b60208201526000825161446e8160228501602087016138f0565b9190910160220192915050565b8181038181111561029857610298613fab565b6d021b7b73a3930b1ba103730b6b2960951b8152600082516144b781600e8501602087016138f0565b7f206d75737420626520696e2074686520666f726d6174204d79436f6e74726163600e9390910192830152507f742e736f6c3a4d79436f6e7472616374206f72204d79436f6e74726163742e73602e8201527f6f6c206f72206f75742f4d79436f6e74726163742e736f6c2f4d79436f6e7472604e8201526730b1ba173539b7b760c11b606e820152607601919050565b8082018082111561029857610298613fab565b7f53504458206c6963656e7365206964656e7469666965722000000000000000008152600083516145938160188501602088016138f0565b6301034b7160e51b60189184019182015283516145b781601c8401602088016138f0565b7f20646f6573206e6f74206c6f6f6b206c696b65206120737570706f7274656420601c92909101918201527f6c6963656e736520666f7220626c6f636b206578706c6f726572207665726966603c8201527f69636174696f6e2e205573652074686520606c6963656e73655479706560206f605c8201527f7074696f6e20746f20737065636966792061206c6963656e736520747970652c607c8201527f206f7220736574207468652060736b69704c6963656e73655479706560206f70609c8201527f74696f6e20746f2060747275656020746f20736b69702e00000000000000000060bc82015260d301949350505050565b600082516146bd8184602087016138f0565b600160fd1b920191825250600101919050565b7f406f70656e7a657070656c696e2f75706772616465732d636f7265400000000081526000825161470881601c8501602087016138f0565b91909101601c0192915050565b60006001820161472757614727613fab565b5060010190565b808202811582820484141761029857610298613fab565b6001815b60018411156147805780850481111561476457614764613fab565b600184161561477257908102905b60019390931c928002614749565b935093915050565b60008261479757506001610298565b816147a457506000610298565b81600181146147ba57600281146147c4576147e0565b6001915050610298565b60ff8411156147d5576147d5613fab565b50506001821b610298565b5060208310610133831016604e8410600b8410161715614803575081810a610298565b6148106000198484614745565b806000190482111561482457614824613fab565b029392505050565b60006103a68383614788565b60008161484757614847613fab565b506000190190565b600083516148618184602088016138f0565b601d60f91b908301908152835161487f8160018401602088016138f0565b01600101949350505050565b8181036000831280158383131683831282161715612b8657612b86613fab565b611577806148ba6000396000f3fe608060405234801561001057600080fd5b506004361061016c5760003560e01c80636133b4bb116100cd578063a217fddf11610081578063d547741f11610066578063d547741f14610366578063d9caed1214610379578063e63ab1e91461038c57600080fd5b8063a217fddf1461034b578063c8a023621461035357600080fd5b80638456cb59116100b25780638456cb59146102d657806385f438c1146102de57806391d148541461030557600080fd5b80636133b4bb146102a357806381100bf0146102b657600080fd5b806336568abe116101245780633f4ba83a116101095780633f4ba83a146102705780635b112591146102785780635c975abb1461029857600080fd5b806336568abe1461023d5780633c2f05a81461025057600080fd5b806321fc65f21161015557806321fc65f2146101e3578063248a9ca3146101f85780632f2ff15d1461022a57600080fd5b806301ffc9a714610171578063116191b614610199575b600080fd5b61018461017f3660046111a6565b6103b3565b60405190151581526020015b60405180910390f35b6002546101be90610100900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610190565b6101f66101f136600461125a565b61044c565b005b61021c6102063660046112c9565b6000908152600160208190526040909120015490565b604051908152602001610190565b6101f66102383660046112e2565b6105c1565b6101f661024b3660046112e2565b6105ed565b6004546101be9073ffffffffffffffffffffffffffffffffffffffff1681565b6101f661064b565b6003546101be9073ffffffffffffffffffffffffffffffffffffffff1681565b60025460ff16610184565b6101f66102b136600461130e565b610680565b6005546101be9073ffffffffffffffffffffffffffffffffffffffff1681565b6101f661089f565b61021c7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e481565b6101846103133660046112e2565b600091825260016020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b61021c600081565b6101f661036136600461125a565b6108d1565b6101f66103743660046112e2565b610a2c565b6101f6610387366004611368565b610a52565b61021c7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061044657507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b610454610b1f565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e461047e81610b62565b610486610b6c565b6002546104b29073ffffffffffffffffffffffffffffffffffffffff8881169161010090041686610bab565b6002546040517f5131ab5900000000000000000000000000000000000000000000000000000000815261010090910473ffffffffffffffffffffffffffffffffffffffff1690635131ab599061051490899089908990899089906004016113ee565b600060405180830381600087803b15801561052e57600080fd5b505af1158015610542573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e8686866040516105a79392919061144b565b60405180910390a3506105ba6001600055565b5050505050565b600082815260016020819052604090912001546105dd81610b62565b6105e78383610c38565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8116331461063c576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106468282610d03565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61067581610b62565b61067d610dc2565b50565b60045473ffffffffffffffffffffffffffffffffffffffff166340c10f19306106aa86600561146e565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff90921660048301526024820152604401600060405180830381600087803b15801561071557600080fd5b505af1158015610729573d6000803e3d6000fd5b5050600480546007546040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216938101939093526005602484015216925063a9059cbb91506044016020604051808303816000875af11580156107aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ce91906114a8565b506004546107f59073ffffffffffffffffffffffffffffffffffffffff168585858561044c565b600480546002546040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff61010090920482169381019390935216906370a0823190602401602060405180830381865afa15801561086e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089291906114ca565b156105e7576105e76114e3565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6108c981610b62565b61067d610e3f565b6108d9610b1f565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e461090381610b62565b61090b610b6c565b6002546109379073ffffffffffffffffffffffffffffffffffffffff8881169161010090041686610bab565b6002546040517fb8969bd400000000000000000000000000000000000000000000000000000000815261010090910473ffffffffffffffffffffffffffffffffffffffff169063b8969bd49061099990899089908990899089906004016113ee565b600060405180830381600087803b1580156109b357600080fd5b505af11580156109c7573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c88686866040516105a79392919061144b565b60008281526001602081905260409091200154610a4881610b62565b6105e78383610d03565b610a5a610b1f565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e4610a8481610b62565b610a8c610b6c565b610aad73ffffffffffffffffffffffffffffffffffffffff85168484610bab565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb84604051610b0c91815260200190565b60405180910390a3506106466001600055565b600260005403610b5b576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b61067d8133610e9a565b60025460ff1615610ba9576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610646908490610f2b565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff16610cfb57600083815260016020818152604080842073ffffffffffffffffffffffffffffffffffffffff8716808652925280842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169093179092559051339286917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a4506001610446565b506000610446565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff1615610cfb57600083815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610446565b610dca610fc1565b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b610e47610b6c565b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610e153390565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610f27576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602481018390526044015b60405180910390fd5b5050565b6000610f4d73ffffffffffffffffffffffffffffffffffffffff841683610ffd565b90508051600014158015610f72575080806020019051810190610f7091906114a8565b155b15610646576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602401610f1e565b60025460ff16610ba9576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606061100b83836000611012565b9392505050565b606081471015611050576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610f1e565b6000808573ffffffffffffffffffffffffffffffffffffffff1684866040516110799190611512565b60006040518083038185875af1925050503d80600081146110b6576040519150601f19603f3d011682016040523d82523d6000602084013e6110bb565b606091505b50915091506110cb8683836110d5565b9695505050505050565b6060826110ea576110e582611164565b61100b565b815115801561110e575073ffffffffffffffffffffffffffffffffffffffff84163b155b1561115d576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610f1e565b508061100b565b8051156111745780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000602082840312156111b857600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461100b57600080fd5b803573ffffffffffffffffffffffffffffffffffffffff8116811461120c57600080fd5b919050565b60008083601f84011261122357600080fd5b50813567ffffffffffffffff81111561123b57600080fd5b60208301915083602082850101111561125357600080fd5b9250929050565b60008060008060006080868803121561127257600080fd5b61127b866111e8565b9450611289602087016111e8565b935060408601359250606086013567ffffffffffffffff8111156112ac57600080fd5b6112b888828901611211565b969995985093965092949392505050565b6000602082840312156112db57600080fd5b5035919050565b600080604083850312156112f557600080fd5b82359150611305602084016111e8565b90509250929050565b6000806000806060858703121561132457600080fd5b61132d856111e8565b935060208501359250604085013567ffffffffffffffff81111561135057600080fd5b61135c87828801611211565b95989497509550505050565b60008060006060848603121561137d57600080fd5b611386846111e8565b9250611394602085016111e8565b929592945050506040919091013590565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff851660208201528360408201526080606082015260006114406080830184866113a5565b979650505050505050565b8381526040602082015260006114656040830184866113a5565b95945050505050565b80820180821115610446577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000602082840312156114ba57600080fd5b8151801515811461100b57600080fd5b6000602082840312156114dc57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b6000825160005b818110156115335760208186018101518583015201611519565b50600092019182525091905056fea2646970667358221220e3eceeff6045b5584ad5b26814ad7e9728c8428c7219e4a4930ed3899cab596964736f6c634300081a0033608060405234801561001057600080fd5b50604051610c9f380380610c9f83398101604081905261002f9161010d565b8181600361003d83826101ff565b50600461004a82826101ff565b50505050506102bd565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261007b57600080fd5b81516001600160401b0381111561009457610094610054565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100c2576100c2610054565b6040528181528382016020018510156100da57600080fd5b60005b828110156100f9576020818601810151838301820152016100dd565b506000918101602001919091529392505050565b6000806040838503121561012057600080fd5b82516001600160401b0381111561013657600080fd5b6101428582860161006a565b602085015190935090506001600160401b0381111561016057600080fd5b61016c8582860161006a565b9150509250929050565b600181811c9082168061018a57607f821691505b6020821081036101aa57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156101fa57806000526020600020601f840160051c810160208510156101d75750805b601f840160051c820191505b818110156101f757600081556001016101e3565b50505b505050565b81516001600160401b0381111561021857610218610054565b61022c816102268454610176565b846101b0565b6020601f82116001811461026057600083156102485750848201515b600019600385901b1c1916600184901b1784556101f7565b600084815260208120601f198516915b828110156102905787850151825560209485019460019092019101610270565b50848210156102ae5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b6109d3806102cc6000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c806340c10f191161007657806395d89b411161005b57806395d89b4114610183578063a9059cbb1461018b578063dd62ed3e1461019e57600080fd5b806340c10f191461013857806370a082311461014d57600080fd5b806318160ddd116100a757806318160ddd1461010457806323b872dd14610116578063313ce5671461012957600080fd5b806306fdde03146100c3578063095ea7b3146100e1575b600080fd5b6100cb6101e4565b6040516100d891906107bf565b60405180910390f35b6100f46100ef366004610854565b610276565b60405190151581526020016100d8565b6002545b6040519081526020016100d8565b6100f461012436600461087e565b610290565b604051601281526020016100d8565b61014b610146366004610854565b6102b4565b005b61010861015b3660046108bb565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6100cb6102c2565b6100f4610199366004610854565b6102d1565b6101086101ac3660046108dd565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101f390610910565b80601f016020809104026020016040519081016040528092919081815260200182805461021f90610910565b801561026c5780601f106102415761010080835404028352916020019161026c565b820191906000526020600020905b81548152906001019060200180831161024f57829003601f168201915b5050505050905090565b6000336102848185856102df565b60019150505b92915050565b60003361029e8582856102f1565b6102a98585856103c5565b506001949350505050565b6102be8282610470565b5050565b6060600480546101f390610910565b6000336102848185856103c5565b6102ec83838360016104cc565b505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146103bf57818110156103b0576040517ffb8f41b200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101829052604481018390526064015b60405180910390fd5b6103bf848484840360006104cc565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610415576040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff8216610465576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b6102ec838383610614565b73ffffffffffffffffffffffffffffffffffffffff82166104c0576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b6102be60008383610614565b73ffffffffffffffffffffffffffffffffffffffff841661051c576040517fe602df05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff831661056c576040517f94280d62000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020908152604080832093871683529290522082905580156103bf578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161060691815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff831661064c5780600260008282546106419190610963565b909155506106fe9050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902054818110156106d2576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260248101829052604481018390526064016103a7565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090209082900390555b73ffffffffffffffffffffffffffffffffffffffff821661072757600280548290039055610753565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090208054820190555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107b291815260200190565b60405180910390a3505050565b602081526000825180602084015260005b818110156107ed57602081860181015160408684010152016107d0565b5060006040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461084f57600080fd5b919050565b6000806040838503121561086757600080fd5b6108708361082b565b946020939093013593505050565b60008060006060848603121561089357600080fd5b61089c8461082b565b92506108aa6020850161082b565b929592945050506040919091013590565b6000602082840312156108cd57600080fd5b6108d68261082b565b9392505050565b600080604083850312156108f057600080fd5b6108f98361082b565b91506109076020840161082b565b90509250929050565b600181811c9082168061092457607f821691505b60208210810361095d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b8082018082111561028a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea26469706673582212207e804ca539d49155d2b6bc19268ce22f9f857027c75247d69fb0d56a089c93d464736f6c634300081a00330000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12d54686520606c6963656e73655479706560206f7074696f6e2063616e6e6f7420", +} + +// ERC20CustodyEchidnaTestABI is the input ABI used to generate the binding from. +// Deprecated: Use ERC20CustodyEchidnaTestMetaData.ABI instead. +var ERC20CustodyEchidnaTestABI = ERC20CustodyEchidnaTestMetaData.ABI + +// ERC20CustodyEchidnaTestBin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use ERC20CustodyEchidnaTestMetaData.Bin instead. +var ERC20CustodyEchidnaTestBin = ERC20CustodyEchidnaTestMetaData.Bin + +// DeployERC20CustodyEchidnaTest deploys a new Ethereum contract, binding an instance of ERC20CustodyEchidnaTest to it. +func DeployERC20CustodyEchidnaTest(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *ERC20CustodyEchidnaTest, error) { + parsed, err := ERC20CustodyEchidnaTestMetaData.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(ERC20CustodyEchidnaTestBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &ERC20CustodyEchidnaTest{ERC20CustodyEchidnaTestCaller: ERC20CustodyEchidnaTestCaller{contract: contract}, ERC20CustodyEchidnaTestTransactor: ERC20CustodyEchidnaTestTransactor{contract: contract}, ERC20CustodyEchidnaTestFilterer: ERC20CustodyEchidnaTestFilterer{contract: contract}}, nil +} + +// ERC20CustodyEchidnaTest is an auto generated Go binding around an Ethereum contract. +type ERC20CustodyEchidnaTest struct { + ERC20CustodyEchidnaTestCaller // Read-only binding to the contract + ERC20CustodyEchidnaTestTransactor // Write-only binding to the contract + ERC20CustodyEchidnaTestFilterer // Log filterer for contract events +} + +// ERC20CustodyEchidnaTestCaller is an auto generated read-only Go binding around an Ethereum contract. +type ERC20CustodyEchidnaTestCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ERC20CustodyEchidnaTestTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ERC20CustodyEchidnaTestTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ERC20CustodyEchidnaTestFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ERC20CustodyEchidnaTestFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ERC20CustodyEchidnaTestSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ERC20CustodyEchidnaTestSession struct { + Contract *ERC20CustodyEchidnaTest // 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 +} + +// ERC20CustodyEchidnaTestCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ERC20CustodyEchidnaTestCallerSession struct { + Contract *ERC20CustodyEchidnaTestCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ERC20CustodyEchidnaTestTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ERC20CustodyEchidnaTestTransactorSession struct { + Contract *ERC20CustodyEchidnaTestTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ERC20CustodyEchidnaTestRaw is an auto generated low-level Go binding around an Ethereum contract. +type ERC20CustodyEchidnaTestRaw struct { + Contract *ERC20CustodyEchidnaTest // Generic contract binding to access the raw methods on +} + +// ERC20CustodyEchidnaTestCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ERC20CustodyEchidnaTestCallerRaw struct { + Contract *ERC20CustodyEchidnaTestCaller // Generic read-only contract binding to access the raw methods on +} + +// ERC20CustodyEchidnaTestTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ERC20CustodyEchidnaTestTransactorRaw struct { + Contract *ERC20CustodyEchidnaTestTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewERC20CustodyEchidnaTest creates a new instance of ERC20CustodyEchidnaTest, bound to a specific deployed contract. +func NewERC20CustodyEchidnaTest(address common.Address, backend bind.ContractBackend) (*ERC20CustodyEchidnaTest, error) { + contract, err := bindERC20CustodyEchidnaTest(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ERC20CustodyEchidnaTest{ERC20CustodyEchidnaTestCaller: ERC20CustodyEchidnaTestCaller{contract: contract}, ERC20CustodyEchidnaTestTransactor: ERC20CustodyEchidnaTestTransactor{contract: contract}, ERC20CustodyEchidnaTestFilterer: ERC20CustodyEchidnaTestFilterer{contract: contract}}, nil +} + +// NewERC20CustodyEchidnaTestCaller creates a new read-only instance of ERC20CustodyEchidnaTest, bound to a specific deployed contract. +func NewERC20CustodyEchidnaTestCaller(address common.Address, caller bind.ContractCaller) (*ERC20CustodyEchidnaTestCaller, error) { + contract, err := bindERC20CustodyEchidnaTest(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ERC20CustodyEchidnaTestCaller{contract: contract}, nil +} + +// NewERC20CustodyEchidnaTestTransactor creates a new write-only instance of ERC20CustodyEchidnaTest, bound to a specific deployed contract. +func NewERC20CustodyEchidnaTestTransactor(address common.Address, transactor bind.ContractTransactor) (*ERC20CustodyEchidnaTestTransactor, error) { + contract, err := bindERC20CustodyEchidnaTest(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ERC20CustodyEchidnaTestTransactor{contract: contract}, nil +} + +// NewERC20CustodyEchidnaTestFilterer creates a new log filterer instance of ERC20CustodyEchidnaTest, bound to a specific deployed contract. +func NewERC20CustodyEchidnaTestFilterer(address common.Address, filterer bind.ContractFilterer) (*ERC20CustodyEchidnaTestFilterer, error) { + contract, err := bindERC20CustodyEchidnaTest(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ERC20CustodyEchidnaTestFilterer{contract: contract}, nil +} + +// bindERC20CustodyEchidnaTest binds a generic wrapper to an already deployed contract. +func bindERC20CustodyEchidnaTest(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := ERC20CustodyEchidnaTestMetaData.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 (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ERC20CustodyEchidnaTest.Contract.ERC20CustodyEchidnaTestCaller.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 (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ERC20CustodyEchidnaTest.Contract.ERC20CustodyEchidnaTestTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ERC20CustodyEchidnaTest.Contract.ERC20CustodyEchidnaTestTransactor.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 (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ERC20CustodyEchidnaTest.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 (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ERC20CustodyEchidnaTest.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ERC20CustodyEchidnaTest.Contract.contract.Transact(opts, method, params...) +} + +// DEFAULTADMINROLE is a free data retrieval call binding the contract method 0xa217fddf. +// +// Solidity: function DEFAULT_ADMIN_ROLE() view returns(bytes32) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestCaller) DEFAULTADMINROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _ERC20CustodyEchidnaTest.contract.Call(opts, &out, "DEFAULT_ADMIN_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// DEFAULTADMINROLE is a free data retrieval call binding the contract method 0xa217fddf. +// +// Solidity: function DEFAULT_ADMIN_ROLE() view returns(bytes32) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestSession) DEFAULTADMINROLE() ([32]byte, error) { + return _ERC20CustodyEchidnaTest.Contract.DEFAULTADMINROLE(&_ERC20CustodyEchidnaTest.CallOpts) +} + +// DEFAULTADMINROLE is a free data retrieval call binding the contract method 0xa217fddf. +// +// Solidity: function DEFAULT_ADMIN_ROLE() view returns(bytes32) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestCallerSession) DEFAULTADMINROLE() ([32]byte, error) { + return _ERC20CustodyEchidnaTest.Contract.DEFAULTADMINROLE(&_ERC20CustodyEchidnaTest.CallOpts) +} + +// PAUSERROLE is a free data retrieval call binding the contract method 0xe63ab1e9. +// +// Solidity: function PAUSER_ROLE() view returns(bytes32) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestCaller) PAUSERROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _ERC20CustodyEchidnaTest.contract.Call(opts, &out, "PAUSER_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// PAUSERROLE is a free data retrieval call binding the contract method 0xe63ab1e9. +// +// Solidity: function PAUSER_ROLE() view returns(bytes32) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestSession) PAUSERROLE() ([32]byte, error) { + return _ERC20CustodyEchidnaTest.Contract.PAUSERROLE(&_ERC20CustodyEchidnaTest.CallOpts) +} + +// PAUSERROLE is a free data retrieval call binding the contract method 0xe63ab1e9. +// +// Solidity: function PAUSER_ROLE() view returns(bytes32) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestCallerSession) PAUSERROLE() ([32]byte, error) { + return _ERC20CustodyEchidnaTest.Contract.PAUSERROLE(&_ERC20CustodyEchidnaTest.CallOpts) +} + +// WITHDRAWERROLE is a free data retrieval call binding the contract method 0x85f438c1. +// +// Solidity: function WITHDRAWER_ROLE() view returns(bytes32) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestCaller) WITHDRAWERROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _ERC20CustodyEchidnaTest.contract.Call(opts, &out, "WITHDRAWER_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// WITHDRAWERROLE is a free data retrieval call binding the contract method 0x85f438c1. +// +// Solidity: function WITHDRAWER_ROLE() view returns(bytes32) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestSession) WITHDRAWERROLE() ([32]byte, error) { + return _ERC20CustodyEchidnaTest.Contract.WITHDRAWERROLE(&_ERC20CustodyEchidnaTest.CallOpts) +} + +// WITHDRAWERROLE is a free data retrieval call binding the contract method 0x85f438c1. +// +// Solidity: function WITHDRAWER_ROLE() view returns(bytes32) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestCallerSession) WITHDRAWERROLE() ([32]byte, error) { + return _ERC20CustodyEchidnaTest.Contract.WITHDRAWERROLE(&_ERC20CustodyEchidnaTest.CallOpts) +} + +// EchidnaCaller is a free data retrieval call binding the contract method 0x81100bf0. +// +// Solidity: function echidnaCaller() view returns(address) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestCaller) EchidnaCaller(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ERC20CustodyEchidnaTest.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 (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestSession) EchidnaCaller() (common.Address, error) { + return _ERC20CustodyEchidnaTest.Contract.EchidnaCaller(&_ERC20CustodyEchidnaTest.CallOpts) +} + +// EchidnaCaller is a free data retrieval call binding the contract method 0x81100bf0. +// +// Solidity: function echidnaCaller() view returns(address) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestCallerSession) EchidnaCaller() (common.Address, error) { + return _ERC20CustodyEchidnaTest.Contract.EchidnaCaller(&_ERC20CustodyEchidnaTest.CallOpts) +} + +// Gateway is a free data retrieval call binding the contract method 0x116191b6. +// +// Solidity: function gateway() view returns(address) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestCaller) Gateway(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ERC20CustodyEchidnaTest.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 (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestSession) Gateway() (common.Address, error) { + return _ERC20CustodyEchidnaTest.Contract.Gateway(&_ERC20CustodyEchidnaTest.CallOpts) +} + +// Gateway is a free data retrieval call binding the contract method 0x116191b6. +// +// Solidity: function gateway() view returns(address) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestCallerSession) Gateway() (common.Address, error) { + return _ERC20CustodyEchidnaTest.Contract.Gateway(&_ERC20CustodyEchidnaTest.CallOpts) +} + +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. +// +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestCaller) GetRoleAdmin(opts *bind.CallOpts, role [32]byte) ([32]byte, error) { + var out []interface{} + err := _ERC20CustodyEchidnaTest.contract.Call(opts, &out, "getRoleAdmin", role) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. +// +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestSession) GetRoleAdmin(role [32]byte) ([32]byte, error) { + return _ERC20CustodyEchidnaTest.Contract.GetRoleAdmin(&_ERC20CustodyEchidnaTest.CallOpts, role) +} + +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. +// +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestCallerSession) GetRoleAdmin(role [32]byte) ([32]byte, error) { + return _ERC20CustodyEchidnaTest.Contract.GetRoleAdmin(&_ERC20CustodyEchidnaTest.CallOpts, role) +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestCaller) HasRole(opts *bind.CallOpts, role [32]byte, account common.Address) (bool, error) { + var out []interface{} + err := _ERC20CustodyEchidnaTest.contract.Call(opts, &out, "hasRole", role, account) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestSession) HasRole(role [32]byte, account common.Address) (bool, error) { + return _ERC20CustodyEchidnaTest.Contract.HasRole(&_ERC20CustodyEchidnaTest.CallOpts, role, account) +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestCallerSession) HasRole(role [32]byte, account common.Address) (bool, error) { + return _ERC20CustodyEchidnaTest.Contract.HasRole(&_ERC20CustodyEchidnaTest.CallOpts, role, account) +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestCaller) Paused(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _ERC20CustodyEchidnaTest.contract.Call(opts, &out, "paused") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestSession) Paused() (bool, error) { + return _ERC20CustodyEchidnaTest.Contract.Paused(&_ERC20CustodyEchidnaTest.CallOpts) +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestCallerSession) Paused() (bool, error) { + return _ERC20CustodyEchidnaTest.Contract.Paused(&_ERC20CustodyEchidnaTest.CallOpts) +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestCaller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) { + var out []interface{} + err := _ERC20CustodyEchidnaTest.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 (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestSession) SupportsInterface(interfaceId [4]byte) (bool, error) { + return _ERC20CustodyEchidnaTest.Contract.SupportsInterface(&_ERC20CustodyEchidnaTest.CallOpts, interfaceId) +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestCallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) { + return _ERC20CustodyEchidnaTest.Contract.SupportsInterface(&_ERC20CustodyEchidnaTest.CallOpts, interfaceId) +} + +// TestERC20 is a free data retrieval call binding the contract method 0x3c2f05a8. +// +// Solidity: function testERC20() view returns(address) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestCaller) TestERC20(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ERC20CustodyEchidnaTest.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 (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestSession) TestERC20() (common.Address, error) { + return _ERC20CustodyEchidnaTest.Contract.TestERC20(&_ERC20CustodyEchidnaTest.CallOpts) +} + +// TestERC20 is a free data retrieval call binding the contract method 0x3c2f05a8. +// +// Solidity: function testERC20() view returns(address) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestCallerSession) TestERC20() (common.Address, error) { + return _ERC20CustodyEchidnaTest.Contract.TestERC20(&_ERC20CustodyEchidnaTest.CallOpts) +} + +// TssAddress is a free data retrieval call binding the contract method 0x5b112591. +// +// Solidity: function tssAddress() view returns(address) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestCaller) TssAddress(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ERC20CustodyEchidnaTest.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 (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestSession) TssAddress() (common.Address, error) { + return _ERC20CustodyEchidnaTest.Contract.TssAddress(&_ERC20CustodyEchidnaTest.CallOpts) +} + +// TssAddress is a free data retrieval call binding the contract method 0x5b112591. +// +// Solidity: function tssAddress() view returns(address) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestCallerSession) TssAddress() (common.Address, error) { + return _ERC20CustodyEchidnaTest.Contract.TssAddress(&_ERC20CustodyEchidnaTest.CallOpts) +} + +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestTransactor) GrantRole(opts *bind.TransactOpts, role [32]byte, account common.Address) (*types.Transaction, error) { + return _ERC20CustodyEchidnaTest.contract.Transact(opts, "grantRole", role, account) +} + +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestSession) GrantRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _ERC20CustodyEchidnaTest.Contract.GrantRole(&_ERC20CustodyEchidnaTest.TransactOpts, role, account) +} + +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestTransactorSession) GrantRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _ERC20CustodyEchidnaTest.Contract.GrantRole(&_ERC20CustodyEchidnaTest.TransactOpts, role, account) +} + +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. +// +// Solidity: function pause() returns() +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestTransactor) Pause(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ERC20CustodyEchidnaTest.contract.Transact(opts, "pause") +} + +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. +// +// Solidity: function pause() returns() +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestSession) Pause() (*types.Transaction, error) { + return _ERC20CustodyEchidnaTest.Contract.Pause(&_ERC20CustodyEchidnaTest.TransactOpts) +} + +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. +// +// Solidity: function pause() returns() +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestTransactorSession) Pause() (*types.Transaction, error) { + return _ERC20CustodyEchidnaTest.Contract.Pause(&_ERC20CustodyEchidnaTest.TransactOpts) +} + +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. +// +// Solidity: function renounceRole(bytes32 role, address callerConfirmation) returns() +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestTransactor) RenounceRole(opts *bind.TransactOpts, role [32]byte, callerConfirmation common.Address) (*types.Transaction, error) { + return _ERC20CustodyEchidnaTest.contract.Transact(opts, "renounceRole", role, callerConfirmation) +} + +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. +// +// Solidity: function renounceRole(bytes32 role, address callerConfirmation) returns() +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestSession) RenounceRole(role [32]byte, callerConfirmation common.Address) (*types.Transaction, error) { + return _ERC20CustodyEchidnaTest.Contract.RenounceRole(&_ERC20CustodyEchidnaTest.TransactOpts, role, callerConfirmation) +} + +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. +// +// Solidity: function renounceRole(bytes32 role, address callerConfirmation) returns() +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestTransactorSession) RenounceRole(role [32]byte, callerConfirmation common.Address) (*types.Transaction, error) { + return _ERC20CustodyEchidnaTest.Contract.RenounceRole(&_ERC20CustodyEchidnaTest.TransactOpts, role, callerConfirmation) +} + +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestTransactor) RevokeRole(opts *bind.TransactOpts, role [32]byte, account common.Address) (*types.Transaction, error) { + return _ERC20CustodyEchidnaTest.contract.Transact(opts, "revokeRole", role, account) +} + +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestSession) RevokeRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _ERC20CustodyEchidnaTest.Contract.RevokeRole(&_ERC20CustodyEchidnaTest.TransactOpts, role, account) +} + +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestTransactorSession) RevokeRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _ERC20CustodyEchidnaTest.Contract.RevokeRole(&_ERC20CustodyEchidnaTest.TransactOpts, role, account) +} + +// TestWithdrawAndCall is a paid mutator transaction binding the contract method 0x6133b4bb. +// +// Solidity: function testWithdrawAndCall(address to, uint256 amount, bytes data) returns() +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestTransactor) TestWithdrawAndCall(opts *bind.TransactOpts, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _ERC20CustodyEchidnaTest.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 (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestSession) TestWithdrawAndCall(to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _ERC20CustodyEchidnaTest.Contract.TestWithdrawAndCall(&_ERC20CustodyEchidnaTest.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 (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestTransactorSession) TestWithdrawAndCall(to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _ERC20CustodyEchidnaTest.Contract.TestWithdrawAndCall(&_ERC20CustodyEchidnaTest.TransactOpts, to, amount, data) +} + +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. +// +// Solidity: function unpause() returns() +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestTransactor) Unpause(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ERC20CustodyEchidnaTest.contract.Transact(opts, "unpause") +} + +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. +// +// Solidity: function unpause() returns() +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestSession) Unpause() (*types.Transaction, error) { + return _ERC20CustodyEchidnaTest.Contract.Unpause(&_ERC20CustodyEchidnaTest.TransactOpts) +} + +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. +// +// Solidity: function unpause() returns() +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestTransactorSession) Unpause() (*types.Transaction, error) { + return _ERC20CustodyEchidnaTest.Contract.Unpause(&_ERC20CustodyEchidnaTest.TransactOpts) +} + +// Withdraw is a paid mutator transaction binding the contract method 0xd9caed12. +// +// Solidity: function withdraw(address token, address to, uint256 amount) returns() +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestTransactor) Withdraw(opts *bind.TransactOpts, token common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _ERC20CustodyEchidnaTest.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 (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestSession) Withdraw(token common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _ERC20CustodyEchidnaTest.Contract.Withdraw(&_ERC20CustodyEchidnaTest.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 (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestTransactorSession) Withdraw(token common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _ERC20CustodyEchidnaTest.Contract.Withdraw(&_ERC20CustodyEchidnaTest.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 (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestTransactor) WithdrawAndCall(opts *bind.TransactOpts, token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _ERC20CustodyEchidnaTest.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 (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestSession) WithdrawAndCall(token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _ERC20CustodyEchidnaTest.Contract.WithdrawAndCall(&_ERC20CustodyEchidnaTest.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 (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestTransactorSession) WithdrawAndCall(token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _ERC20CustodyEchidnaTest.Contract.WithdrawAndCall(&_ERC20CustodyEchidnaTest.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 (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestTransactor) WithdrawAndRevert(opts *bind.TransactOpts, token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _ERC20CustodyEchidnaTest.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 (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestSession) WithdrawAndRevert(token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _ERC20CustodyEchidnaTest.Contract.WithdrawAndRevert(&_ERC20CustodyEchidnaTest.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 (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestTransactorSession) WithdrawAndRevert(token common.Address, to common.Address, amount *big.Int, data []byte) (*types.Transaction, error) { + return _ERC20CustodyEchidnaTest.Contract.WithdrawAndRevert(&_ERC20CustodyEchidnaTest.TransactOpts, token, to, amount, data) +} + +// ERC20CustodyEchidnaTestPausedIterator is returned from FilterPaused and is used to iterate over the raw logs and unpacked data for Paused events raised by the ERC20CustodyEchidnaTest contract. +type ERC20CustodyEchidnaTestPausedIterator struct { + Event *ERC20CustodyEchidnaTestPaused // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ERC20CustodyEchidnaTestPausedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyEchidnaTestPaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyEchidnaTestPaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ERC20CustodyEchidnaTestPausedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC20CustodyEchidnaTestPausedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC20CustodyEchidnaTestPaused represents a Paused event raised by the ERC20CustodyEchidnaTest contract. +type ERC20CustodyEchidnaTestPaused struct { + Account common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterPaused is a free log retrieval operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. +// +// Solidity: event Paused(address account) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestFilterer) FilterPaused(opts *bind.FilterOpts) (*ERC20CustodyEchidnaTestPausedIterator, error) { + + logs, sub, err := _ERC20CustodyEchidnaTest.contract.FilterLogs(opts, "Paused") + if err != nil { + return nil, err + } + return &ERC20CustodyEchidnaTestPausedIterator{contract: _ERC20CustodyEchidnaTest.contract, event: "Paused", logs: logs, sub: sub}, nil +} + +// WatchPaused is a free log subscription operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. +// +// Solidity: event Paused(address account) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestFilterer) WatchPaused(opts *bind.WatchOpts, sink chan<- *ERC20CustodyEchidnaTestPaused) (event.Subscription, error) { + + logs, sub, err := _ERC20CustodyEchidnaTest.contract.WatchLogs(opts, "Paused") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ERC20CustodyEchidnaTestPaused) + if err := _ERC20CustodyEchidnaTest.contract.UnpackLog(event, "Paused", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParsePaused is a log parse operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. +// +// Solidity: event Paused(address account) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestFilterer) ParsePaused(log types.Log) (*ERC20CustodyEchidnaTestPaused, error) { + event := new(ERC20CustodyEchidnaTestPaused) + if err := _ERC20CustodyEchidnaTest.contract.UnpackLog(event, "Paused", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ERC20CustodyEchidnaTestRoleAdminChangedIterator is returned from FilterRoleAdminChanged and is used to iterate over the raw logs and unpacked data for RoleAdminChanged events raised by the ERC20CustodyEchidnaTest contract. +type ERC20CustodyEchidnaTestRoleAdminChangedIterator struct { + Event *ERC20CustodyEchidnaTestRoleAdminChanged // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ERC20CustodyEchidnaTestRoleAdminChangedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyEchidnaTestRoleAdminChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyEchidnaTestRoleAdminChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ERC20CustodyEchidnaTestRoleAdminChangedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC20CustodyEchidnaTestRoleAdminChangedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC20CustodyEchidnaTestRoleAdminChanged represents a RoleAdminChanged event raised by the ERC20CustodyEchidnaTest contract. +type ERC20CustodyEchidnaTestRoleAdminChanged struct { + Role [32]byte + PreviousAdminRole [32]byte + NewAdminRole [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRoleAdminChanged is a free log retrieval operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. +// +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestFilterer) FilterRoleAdminChanged(opts *bind.FilterOpts, role [][32]byte, previousAdminRole [][32]byte, newAdminRole [][32]byte) (*ERC20CustodyEchidnaTestRoleAdminChangedIterator, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var previousAdminRoleRule []interface{} + for _, previousAdminRoleItem := range previousAdminRole { + previousAdminRoleRule = append(previousAdminRoleRule, previousAdminRoleItem) + } + var newAdminRoleRule []interface{} + for _, newAdminRoleItem := range newAdminRole { + newAdminRoleRule = append(newAdminRoleRule, newAdminRoleItem) + } + + logs, sub, err := _ERC20CustodyEchidnaTest.contract.FilterLogs(opts, "RoleAdminChanged", roleRule, previousAdminRoleRule, newAdminRoleRule) + if err != nil { + return nil, err + } + return &ERC20CustodyEchidnaTestRoleAdminChangedIterator{contract: _ERC20CustodyEchidnaTest.contract, event: "RoleAdminChanged", logs: logs, sub: sub}, nil +} + +// WatchRoleAdminChanged is a free log subscription operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. +// +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestFilterer) WatchRoleAdminChanged(opts *bind.WatchOpts, sink chan<- *ERC20CustodyEchidnaTestRoleAdminChanged, role [][32]byte, previousAdminRole [][32]byte, newAdminRole [][32]byte) (event.Subscription, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var previousAdminRoleRule []interface{} + for _, previousAdminRoleItem := range previousAdminRole { + previousAdminRoleRule = append(previousAdminRoleRule, previousAdminRoleItem) + } + var newAdminRoleRule []interface{} + for _, newAdminRoleItem := range newAdminRole { + newAdminRoleRule = append(newAdminRoleRule, newAdminRoleItem) + } + + logs, sub, err := _ERC20CustodyEchidnaTest.contract.WatchLogs(opts, "RoleAdminChanged", roleRule, previousAdminRoleRule, newAdminRoleRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ERC20CustodyEchidnaTestRoleAdminChanged) + if err := _ERC20CustodyEchidnaTest.contract.UnpackLog(event, "RoleAdminChanged", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRoleAdminChanged is a log parse operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. +// +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestFilterer) ParseRoleAdminChanged(log types.Log) (*ERC20CustodyEchidnaTestRoleAdminChanged, error) { + event := new(ERC20CustodyEchidnaTestRoleAdminChanged) + if err := _ERC20CustodyEchidnaTest.contract.UnpackLog(event, "RoleAdminChanged", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ERC20CustodyEchidnaTestRoleGrantedIterator is returned from FilterRoleGranted and is used to iterate over the raw logs and unpacked data for RoleGranted events raised by the ERC20CustodyEchidnaTest contract. +type ERC20CustodyEchidnaTestRoleGrantedIterator struct { + Event *ERC20CustodyEchidnaTestRoleGranted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ERC20CustodyEchidnaTestRoleGrantedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyEchidnaTestRoleGranted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyEchidnaTestRoleGranted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ERC20CustodyEchidnaTestRoleGrantedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC20CustodyEchidnaTestRoleGrantedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC20CustodyEchidnaTestRoleGranted represents a RoleGranted event raised by the ERC20CustodyEchidnaTest contract. +type ERC20CustodyEchidnaTestRoleGranted struct { + Role [32]byte + Account common.Address + Sender common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRoleGranted is a free log retrieval operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. +// +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestFilterer) FilterRoleGranted(opts *bind.FilterOpts, role [][32]byte, account []common.Address, sender []common.Address) (*ERC20CustodyEchidnaTestRoleGrantedIterator, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _ERC20CustodyEchidnaTest.contract.FilterLogs(opts, "RoleGranted", roleRule, accountRule, senderRule) + if err != nil { + return nil, err + } + return &ERC20CustodyEchidnaTestRoleGrantedIterator{contract: _ERC20CustodyEchidnaTest.contract, event: "RoleGranted", logs: logs, sub: sub}, nil +} + +// WatchRoleGranted is a free log subscription operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. +// +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestFilterer) WatchRoleGranted(opts *bind.WatchOpts, sink chan<- *ERC20CustodyEchidnaTestRoleGranted, role [][32]byte, account []common.Address, sender []common.Address) (event.Subscription, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _ERC20CustodyEchidnaTest.contract.WatchLogs(opts, "RoleGranted", roleRule, accountRule, 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(ERC20CustodyEchidnaTestRoleGranted) + if err := _ERC20CustodyEchidnaTest.contract.UnpackLog(event, "RoleGranted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRoleGranted is a log parse operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. +// +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestFilterer) ParseRoleGranted(log types.Log) (*ERC20CustodyEchidnaTestRoleGranted, error) { + event := new(ERC20CustodyEchidnaTestRoleGranted) + if err := _ERC20CustodyEchidnaTest.contract.UnpackLog(event, "RoleGranted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ERC20CustodyEchidnaTestRoleRevokedIterator is returned from FilterRoleRevoked and is used to iterate over the raw logs and unpacked data for RoleRevoked events raised by the ERC20CustodyEchidnaTest contract. +type ERC20CustodyEchidnaTestRoleRevokedIterator struct { + Event *ERC20CustodyEchidnaTestRoleRevoked // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ERC20CustodyEchidnaTestRoleRevokedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyEchidnaTestRoleRevoked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyEchidnaTestRoleRevoked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ERC20CustodyEchidnaTestRoleRevokedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC20CustodyEchidnaTestRoleRevokedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC20CustodyEchidnaTestRoleRevoked represents a RoleRevoked event raised by the ERC20CustodyEchidnaTest contract. +type ERC20CustodyEchidnaTestRoleRevoked struct { + Role [32]byte + Account common.Address + Sender common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRoleRevoked is a free log retrieval operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. +// +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestFilterer) FilterRoleRevoked(opts *bind.FilterOpts, role [][32]byte, account []common.Address, sender []common.Address) (*ERC20CustodyEchidnaTestRoleRevokedIterator, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _ERC20CustodyEchidnaTest.contract.FilterLogs(opts, "RoleRevoked", roleRule, accountRule, senderRule) + if err != nil { + return nil, err + } + return &ERC20CustodyEchidnaTestRoleRevokedIterator{contract: _ERC20CustodyEchidnaTest.contract, event: "RoleRevoked", logs: logs, sub: sub}, nil +} + +// WatchRoleRevoked is a free log subscription operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. +// +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestFilterer) WatchRoleRevoked(opts *bind.WatchOpts, sink chan<- *ERC20CustodyEchidnaTestRoleRevoked, role [][32]byte, account []common.Address, sender []common.Address) (event.Subscription, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _ERC20CustodyEchidnaTest.contract.WatchLogs(opts, "RoleRevoked", roleRule, accountRule, 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(ERC20CustodyEchidnaTestRoleRevoked) + if err := _ERC20CustodyEchidnaTest.contract.UnpackLog(event, "RoleRevoked", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRoleRevoked is a log parse operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. +// +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestFilterer) ParseRoleRevoked(log types.Log) (*ERC20CustodyEchidnaTestRoleRevoked, error) { + event := new(ERC20CustodyEchidnaTestRoleRevoked) + if err := _ERC20CustodyEchidnaTest.contract.UnpackLog(event, "RoleRevoked", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ERC20CustodyEchidnaTestUnpausedIterator is returned from FilterUnpaused and is used to iterate over the raw logs and unpacked data for Unpaused events raised by the ERC20CustodyEchidnaTest contract. +type ERC20CustodyEchidnaTestUnpausedIterator struct { + Event *ERC20CustodyEchidnaTestUnpaused // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ERC20CustodyEchidnaTestUnpausedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyEchidnaTestUnpaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyEchidnaTestUnpaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ERC20CustodyEchidnaTestUnpausedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC20CustodyEchidnaTestUnpausedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC20CustodyEchidnaTestUnpaused represents a Unpaused event raised by the ERC20CustodyEchidnaTest contract. +type ERC20CustodyEchidnaTestUnpaused struct { + Account common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUnpaused is a free log retrieval operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. +// +// Solidity: event Unpaused(address account) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestFilterer) FilterUnpaused(opts *bind.FilterOpts) (*ERC20CustodyEchidnaTestUnpausedIterator, error) { + + logs, sub, err := _ERC20CustodyEchidnaTest.contract.FilterLogs(opts, "Unpaused") + if err != nil { + return nil, err + } + return &ERC20CustodyEchidnaTestUnpausedIterator{contract: _ERC20CustodyEchidnaTest.contract, event: "Unpaused", logs: logs, sub: sub}, nil +} + +// WatchUnpaused is a free log subscription operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. +// +// Solidity: event Unpaused(address account) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestFilterer) WatchUnpaused(opts *bind.WatchOpts, sink chan<- *ERC20CustodyEchidnaTestUnpaused) (event.Subscription, error) { + + logs, sub, err := _ERC20CustodyEchidnaTest.contract.WatchLogs(opts, "Unpaused") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ERC20CustodyEchidnaTestUnpaused) + if err := _ERC20CustodyEchidnaTest.contract.UnpackLog(event, "Unpaused", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseUnpaused is a log parse operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. +// +// Solidity: event Unpaused(address account) +func (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestFilterer) ParseUnpaused(log types.Log) (*ERC20CustodyEchidnaTestUnpaused, error) { + event := new(ERC20CustodyEchidnaTestUnpaused) + if err := _ERC20CustodyEchidnaTest.contract.UnpackLog(event, "Unpaused", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ERC20CustodyEchidnaTestWithdrawIterator is returned from FilterWithdraw and is used to iterate over the raw logs and unpacked data for Withdraw events raised by the ERC20CustodyEchidnaTest contract. +type ERC20CustodyEchidnaTestWithdrawIterator struct { + Event *ERC20CustodyEchidnaTestWithdraw // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ERC20CustodyEchidnaTestWithdrawIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyEchidnaTestWithdraw) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyEchidnaTestWithdraw) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ERC20CustodyEchidnaTestWithdrawIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC20CustodyEchidnaTestWithdrawIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC20CustodyEchidnaTestWithdraw represents a Withdraw event raised by the ERC20CustodyEchidnaTest contract. +type ERC20CustodyEchidnaTestWithdraw 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 (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestFilterer) FilterWithdraw(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*ERC20CustodyEchidnaTestWithdrawIterator, 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 := _ERC20CustodyEchidnaTest.contract.FilterLogs(opts, "Withdraw", tokenRule, toRule) + if err != nil { + return nil, err + } + return &ERC20CustodyEchidnaTestWithdrawIterator{contract: _ERC20CustodyEchidnaTest.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 (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestFilterer) WatchWithdraw(opts *bind.WatchOpts, sink chan<- *ERC20CustodyEchidnaTestWithdraw, 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 := _ERC20CustodyEchidnaTest.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(ERC20CustodyEchidnaTestWithdraw) + if err := _ERC20CustodyEchidnaTest.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 (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestFilterer) ParseWithdraw(log types.Log) (*ERC20CustodyEchidnaTestWithdraw, error) { + event := new(ERC20CustodyEchidnaTestWithdraw) + if err := _ERC20CustodyEchidnaTest.contract.UnpackLog(event, "Withdraw", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ERC20CustodyEchidnaTestWithdrawAndCallIterator is returned from FilterWithdrawAndCall and is used to iterate over the raw logs and unpacked data for WithdrawAndCall events raised by the ERC20CustodyEchidnaTest contract. +type ERC20CustodyEchidnaTestWithdrawAndCallIterator struct { + Event *ERC20CustodyEchidnaTestWithdrawAndCall // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ERC20CustodyEchidnaTestWithdrawAndCallIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyEchidnaTestWithdrawAndCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyEchidnaTestWithdrawAndCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ERC20CustodyEchidnaTestWithdrawAndCallIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC20CustodyEchidnaTestWithdrawAndCallIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC20CustodyEchidnaTestWithdrawAndCall represents a WithdrawAndCall event raised by the ERC20CustodyEchidnaTest contract. +type ERC20CustodyEchidnaTestWithdrawAndCall 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 (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestFilterer) FilterWithdrawAndCall(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*ERC20CustodyEchidnaTestWithdrawAndCallIterator, 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 := _ERC20CustodyEchidnaTest.contract.FilterLogs(opts, "WithdrawAndCall", tokenRule, toRule) + if err != nil { + return nil, err + } + return &ERC20CustodyEchidnaTestWithdrawAndCallIterator{contract: _ERC20CustodyEchidnaTest.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 (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestFilterer) WatchWithdrawAndCall(opts *bind.WatchOpts, sink chan<- *ERC20CustodyEchidnaTestWithdrawAndCall, 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 := _ERC20CustodyEchidnaTest.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(ERC20CustodyEchidnaTestWithdrawAndCall) + if err := _ERC20CustodyEchidnaTest.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 (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestFilterer) ParseWithdrawAndCall(log types.Log) (*ERC20CustodyEchidnaTestWithdrawAndCall, error) { + event := new(ERC20CustodyEchidnaTestWithdrawAndCall) + if err := _ERC20CustodyEchidnaTest.contract.UnpackLog(event, "WithdrawAndCall", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ERC20CustodyEchidnaTestWithdrawAndRevertIterator is returned from FilterWithdrawAndRevert and is used to iterate over the raw logs and unpacked data for WithdrawAndRevert events raised by the ERC20CustodyEchidnaTest contract. +type ERC20CustodyEchidnaTestWithdrawAndRevertIterator struct { + Event *ERC20CustodyEchidnaTestWithdrawAndRevert // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ERC20CustodyEchidnaTestWithdrawAndRevertIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyEchidnaTestWithdrawAndRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ERC20CustodyEchidnaTestWithdrawAndRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ERC20CustodyEchidnaTestWithdrawAndRevertIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC20CustodyEchidnaTestWithdrawAndRevertIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC20CustodyEchidnaTestWithdrawAndRevert represents a WithdrawAndRevert event raised by the ERC20CustodyEchidnaTest contract. +type ERC20CustodyEchidnaTestWithdrawAndRevert 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 (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestFilterer) FilterWithdrawAndRevert(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*ERC20CustodyEchidnaTestWithdrawAndRevertIterator, 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 := _ERC20CustodyEchidnaTest.contract.FilterLogs(opts, "WithdrawAndRevert", tokenRule, toRule) + if err != nil { + return nil, err + } + return &ERC20CustodyEchidnaTestWithdrawAndRevertIterator{contract: _ERC20CustodyEchidnaTest.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 (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestFilterer) WatchWithdrawAndRevert(opts *bind.WatchOpts, sink chan<- *ERC20CustodyEchidnaTestWithdrawAndRevert, 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 := _ERC20CustodyEchidnaTest.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(ERC20CustodyEchidnaTestWithdrawAndRevert) + if err := _ERC20CustodyEchidnaTest.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 (_ERC20CustodyEchidnaTest *ERC20CustodyEchidnaTestFilterer) ParseWithdrawAndRevert(log types.Log) (*ERC20CustodyEchidnaTestWithdrawAndRevert, error) { + event := new(ERC20CustodyEchidnaTestWithdrawAndRevert) + if err := _ERC20CustodyEchidnaTest.contract.UnpackLog(event, "WithdrawAndRevert", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/pkg/contracts/prototypes/evm/gatewayevm.sol/gatewayevm.go b/v2/pkg/gatewayevm.sol/gatewayevm.go similarity index 51% rename from pkg/contracts/prototypes/evm/gatewayevm.sol/gatewayevm.go rename to v2/pkg/gatewayevm.sol/gatewayevm.go index cdf84756..32a32fa6 100644 --- a/pkg/contracts/prototypes/evm/gatewayevm.sol/gatewayevm.go +++ b/v2/pkg/gatewayevm.sol/gatewayevm.go @@ -31,8 +31,8 @@ var ( // GatewayEVMMetaData contains all meta data concerning the GatewayEVM contract. var GatewayEVMMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ApprovalFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CustodyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DepositFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExecutionFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientERC20Amount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientETHAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"Call\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Executed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ExecutedWithERC20\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Reverted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"RevertedWithERC20\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"call\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"custody\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"depositAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"depositAndCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"executeRevert\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"executeWithERC20\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tssAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_zetaToken\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"revertWithERC20\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_zetaConnector\",\"type\":\"address\"}],\"name\":\"setConnector\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_custody\",\"type\":\"address\"}],\"name\":\"setCustody\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tssAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zetaConnector\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zetaToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x60a06040523073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152503480156200004757600080fd5b50620000586200005e60201b60201c565b62000208565b600060019054906101000a900460ff1615620000b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000a8906200015c565b60405180910390fd5b60ff801660008054906101000a900460ff1660ff1614620001225760ff6000806101000a81548160ff021916908360ff1602179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860ff6040516200011991906200017e565b60405180910390a15b565b6000620001336027836200019b565b91506200014082620001b9565b604082019050919050565b6200015681620001ac565b82525050565b60006020820190508181036000830152620001778162000124565b9050919050565b60006020820190506200019560008301846200014b565b92915050565b600082825260208201905092915050565b600060ff82169050919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320696e69746960008201527f616c697a696e6700000000000000000000000000000000000000000000000000602082015250565b60805160601c6140266200024360003960008181610b3c01528181610bcb01528181610f3501528181610fc4015261140701526140266000f3fe6080604052600436106101355760003560e01c806357bec62f116100ab578063ae7a3a6f1161006f578063ae7a3a6f146103a2578063b8969bd4146103cb578063dda79b75146103f4578063f2fde38b1461041f578063f340fa0114610448578063f45346dc1461046457610135565b806357bec62f146102e15780635b1125911461030c578063715018a6146103375780638c6f037f1461034e5780638da5cb5b1461037757610135565b806335c018db116100fd57806335c018db146102035780633659cfe61461021f578063485cc955146102485780634f1ef286146102715780635131ab591461028d57806352d1902d146102b657610135565b806310188aef1461013a5780631b8b921d146101635780631cff79cd1461018c57806321e093b1146101bc57806329c59b5d146101e7575b600080fd5b34801561014657600080fd5b50610161600480360381019061015c9190612f0a565b61048d565b005b34801561016f57600080fd5b5061018a60048036038101906101859190612fff565b610647565b005b6101a660048036038101906101a19190612fff565b6106b3565b6040516101b391906136b5565b60405180910390f35b3480156101c857600080fd5b506101d16107a8565b6040516101de91906135d2565b60405180910390f35b61020160048036038101906101fc9190612fff565b6107ce565b005b61021d60048036038101906102189190612fff565b610948565b005b34801561022b57600080fd5b5061024660048036038101906102419190612f0a565b610b3a565b005b34801561025457600080fd5b5061026f600480360381019061026a9190612f37565b610cc3565b005b61028b6004803603810190610286919061305f565b610f33565b005b34801561029957600080fd5b506102b460048036038101906102af9190612f77565b611070565b005b3480156102c257600080fd5b506102cb611403565b6040516102d89190613676565b60405180910390f35b3480156102ed57600080fd5b506102f66114bc565b60405161030391906135d2565b60405180910390f35b34801561031857600080fd5b506103216114e2565b60405161032e91906135d2565b60405180910390f35b34801561034357600080fd5b5061034c611508565b005b34801561035a57600080fd5b506103756004803603810190610370919061310e565b61151c565b005b34801561038357600080fd5b5061038c6115d4565b60405161039991906135d2565b60405180910390f35b3480156103ae57600080fd5b506103c960048036038101906103c49190612f0a565b6115fe565b005b3480156103d757600080fd5b506103f260048036038101906103ed9190612f77565b6117b8565b005b34801561040057600080fd5b506104096119ee565b60405161041691906135d2565b60405180910390f35b34801561042b57600080fd5b5061044660048036038101906104419190612f0a565b611a14565b005b610462600480360381019061045d9190612f0a565b611a98565b005b34801561047057600080fd5b5061048b600480360381019061048691906130bb565b611c0c565b005b60fc60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610514576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461059c576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610603576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060fd60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde384846040516106a6929190613691565b60405180910390a3505050565b606060fc60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461073c576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610749858585611cbe565b90508473ffffffffffffffffffffffffffffffffffffffff167fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f3486866040516107959392919061396b565b60405180910390a2809150509392505050565b60fe60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000341415610809576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060fc60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1634604051610851906135bd565b60006040518083038185875af1925050503d806000811461088e576040519150601f19603f3d011682016040523d82523d6000602084013e610893565b606091505b505090506000151581151514156108d6576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4346000878760405161093a94939291906138ef565b60405180910390a350505050565b60fc60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109cf576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808473ffffffffffffffffffffffffffffffffffffffff16346040516109f6906135bd565b60006040518083038185875af1925050503d8060008114610a33576040519150601f19603f3d011682016040523d82523d6000602084013e610a38565b606091505b509150915081610a74576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff16638fcaa0b585856040518363ffffffff1660e01b8152600401610aaf929190613691565b600060405180830381600087803b158015610ac957600080fd5b505af1158015610add573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff167fd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c348686604051610b2b9392919061396b565b60405180910390a25050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610bc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc090613734565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610c08611d75565b73ffffffffffffffffffffffffffffffffffffffff1614610c5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5590613754565b60405180910390fd5b610c6781611dcc565b610cc081600067ffffffffffffffff811115610c8657610c85613b2c565b5b6040519080825280601f01601f191660200182016040528015610cb85781602001600182028036833780820191505090505b506000611dd7565b50565b60008060019054906101000a900460ff16159050808015610cf45750600160008054906101000a900460ff1660ff16105b80610d215750610d0330611f54565b158015610d205750600160008054906101000a900460ff1660ff16145b5b610d60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d57906137d4565b60405180910390fd5b60016000806101000a81548160ff021916908360ff1602179055508015610d9d576001600060016101000a81548160ff0219169083151502179055505b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610e045750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15610e3b576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e43611f77565b610e4b611fd0565b610e53612021565b8260fc60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160fe60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508015610f2e5760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986001604051610f2591906136d7565b60405180910390a15b505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610fc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb990613734565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16611001611d75565b73ffffffffffffffffffffffffffffffffffffffff1614611057576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104e90613754565b60405180910390fd5b61106082611dcc565b61106c82826001611dd7565b5050565b61107861207a565b60fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611124575060fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b1561115b576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000831415611196576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111a085856120ca565b6111d6576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff1663095ea7b385856040518363ffffffff1660e01b815260040161121192919061364d565b602060405180830381600087803b15801561122b57600080fd5b505af115801561123f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112639190613196565b611299576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006112a6858484611cbe565b90506112b286866120ca565b6112e8576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161132391906135d2565b60206040518083038186803b15801561133b57600080fd5b505afa15801561134f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137391906131f0565b90506000811115611389576113888782612162565b5b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b73828787876040516113ea9392919061396b565b60405180910390a350506113fc61234c565b5050505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614611493576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148a90613794565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b905090565b60fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60fc60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611510612356565b61151a60006123d4565b565b6000841415611557576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61156233848661249a565b8473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4868686866040516115c594939291906138ef565b60405180910390a35050505050565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60fc60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611685576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461170d576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611774576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060fb60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6117c061207a565b60fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561186c575060fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b156118a3576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008314156118de576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61190984848773ffffffffffffffffffffffffffffffffffffffff166126b49092919063ffffffff16565b8373ffffffffffffffffffffffffffffffffffffffff16638fcaa0b583836040518363ffffffff1660e01b8152600401611944929190613691565b600060405180830381600087803b15801561195e57600080fd5b505af1158015611972573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda78585856040516119d79392919061396b565b60405180910390a36119e761234c565b5050505050565b60fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611a1c612356565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611a8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8390613714565b60405180910390fd5b611a95816123d4565b50565b6000341415611ad3576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060fc60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1634604051611b1b906135bd565b60006040518083038185875af1925050503d8060008114611b58576040519150601f19603f3d011682016040523d82523d6000602084013e611b5d565b606091505b50509050600015158115151415611ba0576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4346000604051611c0092919061392f565b60405180910390a35050565b6000821415611c47576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611c5233828461249a565b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a48484604051611cb192919061392f565b60405180910390a3505050565b60606000808573ffffffffffffffffffffffffffffffffffffffff16348686604051611ceb92919061358d565b60006040518083038185875af1925050503d8060008114611d28576040519150601f19603f3d011682016040523d82523d6000602084013e611d2d565b606091505b509150915081611d69576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80925050509392505050565b6000611da37f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61273a565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611dd4612356565b50565b611e037f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914360001b612744565b60000160009054906101000a900460ff1615611e2757611e228361274e565b611f4f565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611e6d57600080fd5b505afa925050508015611e9e57506040513d601f19601f82011682018060405250810190611e9b91906131c3565b60015b611edd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed4906137f4565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b8114611f42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f39906137b4565b60405180910390fd5b50611f4e838383612807565b5b505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16611fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fbd90613874565b60405180910390fd5b611fce612833565b565b600060019054906101000a900460ff1661201f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201690613874565b60405180910390fd5b565b600060019054906101000a900460ff16612070576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206790613874565b60405180910390fd5b612078612894565b565b600260c95414156120c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b7906138b4565b60405180910390fd5b600260c981905550565b60008273ffffffffffffffffffffffffffffffffffffffff1663095ea7b38360006040518363ffffffff1660e01b8152600401612108929190613624565b602060405180830381600087803b15801561212257600080fd5b505af1158015612136573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061215a9190613196565b905092915050565b60fe60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156122fa578173ffffffffffffffffffffffffffffffffffffffff1663095ea7b360fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161221592919061364d565b602060405180830381600087803b15801561222f57600080fd5b505af1158015612243573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122679190613196565b5060fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663743e0c9b826040518263ffffffff1660e01b81526004016122c391906138d4565b600060405180830381600087803b1580156122dd57600080fd5b505af11580156122f1573d6000803e3d6000fd5b50505050612348565b61234760fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff166126b49092919063ffffffff16565b5b5050565b600160c981905550565b61235e6128ed565b73ffffffffffffffffffffffffffffffffffffffff1661237c6115d4565b73ffffffffffffffffffffffffffffffffffffffff16146123d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c990613834565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60fe60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561265f5761251d8330838573ffffffffffffffffffffffffffffffffffffffff166128f5909392919063ffffffff16565b8173ffffffffffffffffffffffffffffffffffffffff1663095ea7b360fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161257a92919061364d565b602060405180830381600087803b15801561259457600080fd5b505af11580156125a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125cc9190613196565b5060fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663743e0c9b826040518263ffffffff1660e01b815260040161262891906138d4565b600060405180830381600087803b15801561264257600080fd5b505af1158015612656573d6000803e3d6000fd5b505050506126af565b6126ae8360fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16838573ffffffffffffffffffffffffffffffffffffffff166128f5909392919063ffffffff16565b5b505050565b6127358363a9059cbb60e01b84846040516024016126d392919061364d565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061297e565b505050565b6000819050919050565b6000819050919050565b61275781611f54565b612796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278d90613814565b60405180910390fd5b806127c37f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61273a565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61281083612a45565b60008251118061281d5750805b1561282e5761282c8383612a94565b505b505050565b600060019054906101000a900460ff16612882576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161287990613874565b60405180910390fd5b61289261288d6128ed565b6123d4565b565b600060019054906101000a900460ff166128e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128da90613874565b60405180910390fd5b600160c981905550565b600033905090565b612978846323b872dd60e01b858585604051602401612916939291906135ed565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061297e565b50505050565b60006129e0826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16612ac19092919063ffffffff16565b9050600081511115612a405780806020019051810190612a009190613196565b612a3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a3690613894565b60405180910390fd5b5b505050565b612a4e8161274e565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b6060612ab98383604051806060016040528060278152602001613fca60279139612ad9565b905092915050565b6060612ad08484600085612b5f565b90509392505050565b60606000808573ffffffffffffffffffffffffffffffffffffffff1685604051612b0391906135a6565b600060405180830381855af49150503d8060008114612b3e576040519150601f19603f3d011682016040523d82523d6000602084013e612b43565b606091505b5091509150612b5486838387612c2c565b925050509392505050565b606082471015612ba4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9b90613774565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051612bcd91906135a6565b60006040518083038185875af1925050503d8060008114612c0a576040519150601f19603f3d011682016040523d82523d6000602084013e612c0f565b606091505b5091509150612c2087838387612ca2565b92505050949350505050565b60608315612c8f57600083511415612c8757612c4785611f54565b612c86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c7d90613854565b60405180910390fd5b5b829050612c9a565b612c998383612d18565b5b949350505050565b60608315612d0557600083511415612cfd57612cbd85612d68565b612cfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cf390613854565b60405180910390fd5b5b829050612d10565b612d0f8383612d8b565b5b949350505050565b600082511115612d2b5781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d5f91906136f2565b60405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600082511115612d9e5781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dd291906136f2565b60405180910390fd5b6000612dee612de9846139c2565b61399d565b905082815260208101848484011115612e0a57612e09613b6a565b5b612e15848285613ab9565b509392505050565b600081359050612e2c81613f6d565b92915050565b600081519050612e4181613f84565b92915050565b600081519050612e5681613f9b565b92915050565b60008083601f840112612e7257612e71613b60565b5b8235905067ffffffffffffffff811115612e8f57612e8e613b5b565b5b602083019150836001820283011115612eab57612eaa613b65565b5b9250929050565b600082601f830112612ec757612ec6613b60565b5b8135612ed7848260208601612ddb565b91505092915050565b600081359050612eef81613fb2565b92915050565b600081519050612f0481613fb2565b92915050565b600060208284031215612f2057612f1f613b74565b5b6000612f2e84828501612e1d565b91505092915050565b60008060408385031215612f4e57612f4d613b74565b5b6000612f5c85828601612e1d565b9250506020612f6d85828601612e1d565b9150509250929050565b600080600080600060808688031215612f9357612f92613b74565b5b6000612fa188828901612e1d565b9550506020612fb288828901612e1d565b9450506040612fc388828901612ee0565b935050606086013567ffffffffffffffff811115612fe457612fe3613b6f565b5b612ff088828901612e5c565b92509250509295509295909350565b60008060006040848603121561301857613017613b74565b5b600061302686828701612e1d565b935050602084013567ffffffffffffffff81111561304757613046613b6f565b5b61305386828701612e5c565b92509250509250925092565b6000806040838503121561307657613075613b74565b5b600061308485828601612e1d565b925050602083013567ffffffffffffffff8111156130a5576130a4613b6f565b5b6130b185828601612eb2565b9150509250929050565b6000806000606084860312156130d4576130d3613b74565b5b60006130e286828701612e1d565b93505060206130f386828701612ee0565b925050604061310486828701612e1d565b9150509250925092565b60008060008060006080868803121561312a57613129613b74565b5b600061313888828901612e1d565b955050602061314988828901612ee0565b945050604061315a88828901612e1d565b935050606086013567ffffffffffffffff81111561317b5761317a613b6f565b5b61318788828901612e5c565b92509250509295509295909350565b6000602082840312156131ac576131ab613b74565b5b60006131ba84828501612e32565b91505092915050565b6000602082840312156131d9576131d8613b74565b5b60006131e784828501612e47565b91505092915050565b60006020828403121561320657613205613b74565b5b600061321484828501612ef5565b91505092915050565b61322681613a36565b82525050565b61323581613a54565b82525050565b60006132478385613a09565b9350613254838584613ab9565b61325d83613b79565b840190509392505050565b60006132748385613a1a565b9350613281838584613ab9565b82840190509392505050565b6000613298826139f3565b6132a28185613a09565b93506132b2818560208601613ac8565b6132bb81613b79565b840191505092915050565b60006132d1826139f3565b6132db8185613a1a565b93506132eb818560208601613ac8565b80840191505092915050565b61330081613a95565b82525050565b61330f81613aa7565b82525050565b6000613320826139fe565b61332a8185613a25565b935061333a818560208601613ac8565b61334381613b79565b840191505092915050565b600061335b602683613a25565b915061336682613b8a565b604082019050919050565b600061337e602c83613a25565b915061338982613bd9565b604082019050919050565b60006133a1602c83613a25565b91506133ac82613c28565b604082019050919050565b60006133c4602683613a25565b91506133cf82613c77565b604082019050919050565b60006133e7603883613a25565b91506133f282613cc6565b604082019050919050565b600061340a602983613a25565b915061341582613d15565b604082019050919050565b600061342d602e83613a25565b915061343882613d64565b604082019050919050565b6000613450602e83613a25565b915061345b82613db3565b604082019050919050565b6000613473602d83613a25565b915061347e82613e02565b604082019050919050565b6000613496602083613a25565b91506134a182613e51565b602082019050919050565b60006134b9600083613a09565b91506134c482613e7a565b600082019050919050565b60006134dc600083613a1a565b91506134e782613e7a565b600082019050919050565b60006134ff601d83613a25565b915061350a82613e7d565b602082019050919050565b6000613522602b83613a25565b915061352d82613ea6565b604082019050919050565b6000613545602a83613a25565b915061355082613ef5565b604082019050919050565b6000613568601f83613a25565b915061357382613f44565b602082019050919050565b61358781613a7e565b82525050565b600061359a828486613268565b91508190509392505050565b60006135b282846132c6565b915081905092915050565b60006135c8826134cf565b9150819050919050565b60006020820190506135e7600083018461321d565b92915050565b6000606082019050613602600083018661321d565b61360f602083018561321d565b61361c604083018461357e565b949350505050565b6000604082019050613639600083018561321d565b61364660208301846132f7565b9392505050565b6000604082019050613662600083018561321d565b61366f602083018461357e565b9392505050565b600060208201905061368b600083018461322c565b92915050565b600060208201905081810360008301526136ac81848661323b565b90509392505050565b600060208201905081810360008301526136cf818461328d565b905092915050565b60006020820190506136ec6000830184613306565b92915050565b6000602082019050818103600083015261370c8184613315565b905092915050565b6000602082019050818103600083015261372d8161334e565b9050919050565b6000602082019050818103600083015261374d81613371565b9050919050565b6000602082019050818103600083015261376d81613394565b9050919050565b6000602082019050818103600083015261378d816133b7565b9050919050565b600060208201905081810360008301526137ad816133da565b9050919050565b600060208201905081810360008301526137cd816133fd565b9050919050565b600060208201905081810360008301526137ed81613420565b9050919050565b6000602082019050818103600083015261380d81613443565b9050919050565b6000602082019050818103600083015261382d81613466565b9050919050565b6000602082019050818103600083015261384d81613489565b9050919050565b6000602082019050818103600083015261386d816134f2565b9050919050565b6000602082019050818103600083015261388d81613515565b9050919050565b600060208201905081810360008301526138ad81613538565b9050919050565b600060208201905081810360008301526138cd8161355b565b9050919050565b60006020820190506138e9600083018461357e565b92915050565b6000606082019050613904600083018761357e565b613911602083018661321d565b818103604083015261392481848661323b565b905095945050505050565b6000606082019050613944600083018561357e565b613951602083018461321d565b8181036040830152613962816134ac565b90509392505050565b6000604082019050613980600083018661357e565b818103602083015261399381848661323b565b9050949350505050565b60006139a76139b8565b90506139b38282613afb565b919050565b6000604051905090565b600067ffffffffffffffff8211156139dd576139dc613b2c565b5b6139e682613b79565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000613a4182613a5e565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613aa082613a7e565b9050919050565b6000613ab282613a88565b9050919050565b82818337600083830152505050565b60005b83811015613ae6578082015181840152602081019050613acb565b83811115613af5576000848401525b50505050565b613b0482613b79565b810181811067ffffffffffffffff82111715613b2357613b22613b2c565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f64656c656761746563616c6c0000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f6163746976652070726f78790000000000000000000000000000000000000000602082015250565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f555550535570677261646561626c653a206d757374206e6f742062652063616c60008201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000602082015250565b7f45524331393637557067726164653a20756e737570706f727465642070726f7860008201527f6961626c65555549440000000000000000000000000000000000000000000000602082015250565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f45524331393637557067726164653a206e657720696d706c656d656e7461746960008201527f6f6e206973206e6f742055555053000000000000000000000000000000000000602082015250565b7f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60008201527f6f74206120636f6e747261637400000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b613f7681613a36565b8114613f8157600080fd5b50565b613f8d81613a48565b8114613f9857600080fd5b50565b613fa481613a54565b8114613faf57600080fd5b50565b613fbb81613a7e565b8114613fc657600080fd5b5056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122071c5d8f02c0c4967eb288874e4451bc4ee75b35d49d0b3560a1136ba07a133ca64736f6c63430008070033", + ABI: "[{\"type\":\"constructor\",\"inputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"ASSET_HANDLER_ROLE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"DEFAULT_ADMIN_ROLE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"PAUSER_ROLE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"TSS_ROLE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"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\":\"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\":\"getRoleAdmin\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"grantRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"hasRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_tssAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_zetaToken\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_admin\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"proxiableUUID\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"callerConfirmation\",\"type\":\"address\",\"internalType\":\"address\"}],\"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\":\"revokeRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"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\":\"supportsInterface\",\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\",\"internalType\":\"bytes4\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"tssAddress\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[],\"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\":\"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\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":false,\"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\":\"RoleAdminChanged\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"previousAdminRole\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"newAdminRole\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RoleGranted\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RoleRevoked\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"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\":\"AccessControlBadConfirmation\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"AccessControlUnauthorizedAccount\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"neededRole\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"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\":\"EnforcedPause\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExecutionFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExpectedPause\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"FailedInnerCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientERC20Amount\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientETHAmount\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidInitialization\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotInitializing\",\"inputs\":[]},{\"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: "0x60a06040523060805234801561001457600080fd5b5061001d610022565b6100d4565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100725760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100d15780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612d9a6100fd60003960008181611b5701528181611b800152611fc90152612d9a6000f3fe6080604052600436106101e35760003560e01c80635c975abb11610102578063ae7a3a6f11610095578063dda79b7511610064578063dda79b751461062e578063e63ab1e91461064e578063f340fa0114610682578063f45346dc1461069557600080fd5b8063ae7a3a6f146105ae578063b8969bd4146105ce578063c0c53b8b146105ee578063d547741f1461060e57600080fd5b806391d14854116100d157806391d14854146104b7578063a217fddf1461051c578063a783c78914610531578063ad3cb1cc1461056557600080fd5b80635c975abb146104175780635d62c8601461044e5780638456cb59146104825780638c6f037f1461049757600080fd5b806335c018db1161017a5780635131ab59116101495780635131ab59146103a257806352d1902d146103c257806357bec62f146103d75780635b112591146103f757600080fd5b806335c018db1461034757806336568abe1461035a5780633f4ba83a1461037a5780634f1ef2861461038f57600080fd5b806321e093b1116101b657806321e093b11461027f578063248a9ca3146102b757806329c59b5d146103145780632f2ff15d1461032757600080fd5b806301ffc9a7146101e857806310188aef1461021d5780631b8b921d1461023f5780631cff79cd1461025f575b600080fd5b3480156101f457600080fd5b5061020861020336600461280d565b6106b5565b60405190151581526020015b60405180910390f35b34801561022957600080fd5b5061023d61023836600461286b565b61074e565b005b34801561024b57600080fd5b5061023d61025a3660046128cf565b610842565b61027261026d3660046128cf565b61089c565b6040516102149190612990565b34801561028b57600080fd5b5060035461029f906001600160a01b031681565b6040516001600160a01b039091168152602001610214565b3480156102c357600080fd5b506103066102d23660046129a3565b60009081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b604051908152602001610214565b61023d6103223660046128cf565b61092d565b34801561033357600080fd5b5061023d6103423660046129bc565b610a5a565b61023d6103553660046128cf565b610aa4565b34801561036657600080fd5b5061023d6103753660046129bc565b610c2b565b34801561038657600080fd5b5061023d610c7c565b61023d61039d366004612a17565b610cb1565b3480156103ae57600080fd5b5061023d6103bd366004612b1e565b610cd0565b3480156103ce57600080fd5b50610306610fad565b3480156103e357600080fd5b5060025461029f906001600160a01b031681565b34801561040357600080fd5b5060015461029f906001600160a01b031681565b34801561042357600080fd5b507fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff16610208565b34801561045a57600080fd5b506103067f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b981565b34801561048e57600080fd5b5061023d610fdc565b3480156104a357600080fd5b5061023d6104b2366004612b8d565b61100e565b3480156104c357600080fd5b506102086104d23660046129bc565b60009182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408084206001600160a01b0393909316845291905290205460ff1690565b34801561052857600080fd5b50610306600081565b34801561053d57600080fd5b506103067f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb81565b34801561057157600080fd5b506102726040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b3480156105ba57600080fd5b5061023d6105c936600461286b565b6110b3565b3480156105da57600080fd5b5061023d6105e9366004612b1e565b6111a7565b3480156105fa57600080fd5b5061023d610609366004612bdf565b611321565b34801561061a57600080fd5b5061023d6106293660046129bc565b6115d6565b34801561063a57600080fd5b5060005461029f906001600160a01b031681565b34801561065a57600080fd5b506103067f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b61023d61069036600461286b565b61161a565b3480156106a157600080fd5b5061023d6106b0366004612c22565b611747565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061074857507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6000610759816117fa565b6002546001600160a01b03161561079c576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166107dc576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108067f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b983611804565b5050600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b61084a6118f1565b826001600160a01b0316336001600160a01b03167f2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3848460405161088f929190612c9e565b60405180910390a3505050565b60607f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb6108c8816117fa565b6108d06118f1565b60006108dd86868661194f565b9050856001600160a01b03167fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f34878760405161091c93929190612cba565b60405180910390a295945050505050565b6109356118f1565b3460000361096f576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040516000916001600160a01b03169034908381818185875af1925050503d80600081146109bc576040519150601f19603f3d011682016040523d82523d6000602084013e6109c1565b606091505b5090915050801515600003610a02576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b836001600160a01b0316336001600160a01b03167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a43460008787604051610a4c9493929190612cd4565b60405180910390a350505050565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610a94816117fa565b610a9e8383611804565b50505050565b7f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb610ace816117fa565b610ad66118f1565b600080856001600160a01b03163460405160006040518083038185875af1925050503d8060008114610b24576040519150601f19603f3d011682016040523d82523d6000602084013e610b29565b606091505b509150915081610b65576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f8fcaa0b50000000000000000000000000000000000000000000000000000000081526001600160a01b03871690638fcaa0b590610bac9088908890600401612c9e565b600060405180830381600087803b158015610bc657600080fd5b505af1158015610bda573d6000803e3d6000fd5b50505050856001600160a01b03167fd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c348787604051610c1b93929190612cba565b60405180910390a2505050505050565b6001600160a01b0381163314610c6d576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c7782826119f8565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610ca6816117fa565b610cae611abc565b50565b610cb9611b4c565b610cc282611c1c565b610ccc8282611c27565b5050565b610cd8611d4b565b7f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b9610d02816117fa565b610d0a6118f1565b83600003610d44576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d4e8686611dcc565b610d84576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301526024820186905287169063095ea7b3906044016020604051808303816000875af1158015610dec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e109190612cfd565b610e46576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610e5386858561194f565b9050610e5f8787611dcc565b610e95576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038916906370a0823190602401602060405180830381865afa158015610ef5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f199190612d1f565b90508015610f2b57610f2b8882611e5c565b866001600160a01b0316886001600160a01b03167f29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382888888604051610f7293929190612cba565b60405180910390a3505050610fa660017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050505050565b6000610fb7611fbe565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a611006816117fa565b610cae612020565b6110166118f1565b83600003611050576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61105b338486612099565b846001600160a01b0316336001600160a01b03167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4868686866040516110a49493929190612cd4565b60405180910390a35050505050565b60006110be816117fa565b6000546001600160a01b031615611101576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038216611141576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61116b7f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b983611804565b5050600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6111af611d4b565b7f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b96111d9816117fa565b6111e16118f1565b8360000361121b576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61122f6001600160a01b03871686866121ed565b6040517f8fcaa0b50000000000000000000000000000000000000000000000000000000081526001600160a01b03861690638fcaa0b5906112769086908690600401612c9e565b600060405180830381600087803b15801561129057600080fd5b505af11580156112a4573d6000803e3d6000fd5b50505050846001600160a01b0316866001600160a01b03167f723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda78686866040516112ef93929190612cba565b60405180910390a350610fa660017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff1660008115801561136c5750825b905060008267ffffffffffffffff1660011480156113895750303b155b905081158015611397575080155b156113ce576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001178555831561142f5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6001600160a01b038816158061144c57506001600160a01b038716155b15611483576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61148b612261565b611493612269565b61149b612261565b6114a3612279565b6114ae600087611804565b506114d97f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a87611804565b50600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038a161790556115377f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb89611804565b50600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03891617905583156115cc5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154611610816117fa565b610a9e83836119f8565b6116226118f1565b3460000361165c576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040516000916001600160a01b03169034908381818185875af1925050503d80600081146116a9576040519150601f19603f3d011682016040523d82523d6000602084013e6116ae565b606091505b50909150508015156000036116ef576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408051348152600060208201819052606082840181905282015290516001600160a01b0384169133917f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a49181900360800190a35050565b61174f6118f1565b81600003611789576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611794338284612099565b826001600160a01b0316336001600160a01b03167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4848460405161088f9291909182526001600160a01b0316602082015260606040820181905260009082015260800190565b610cae8133612289565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff166118e7576000848152602082815260408083206001600160a01b0387168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905561189d3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610748565b6000915050610748565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff161561194d576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6060600080856001600160a01b031634868660405161196f929190612d38565b60006040518083038185875af1925050503d80600081146119ac576040519150601f19603f3d011682016040523d82523d6000602084013e6119b1565b606091505b5091509150816119ed576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9150505b9392505050565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff16156118e7576000848152602082815260408083206001600160a01b038716808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610748565b611ac4612316565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480611be557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611bd97f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b1561194d576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610ccc816117fa565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611c9f575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252611c9c91810190612d1f565b60015b611ce5576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114611d41576040517faa1d49a400000000000000000000000000000000000000000000000000000000815260048101829052602401611cdc565b610c778383612371565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0080547ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01611dc6576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60029055565b6040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b038281166004830152600060248301819052919084169063095ea7b3906044016020604051808303816000875af1158015611e38573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f19190612cfd565b6003546001600160a01b0390811690831603611f7e576002546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152602481018390529083169063095ea7b3906044016020604051808303816000875af1158015611ede573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f029190612cfd565b506002546040517f743e0c9b000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b039091169063743e0c9b90602401600060405180830381600087803b158015611f6257600080fd5b505af1158015611f76573d6000803e3d6000fd5b505050505050565b600054610ccc906001600160a01b038481169116836121ed565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461194d576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6120286118f1565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833611b2e565b6003546001600160a01b03908116908316036121d1576120c46001600160a01b0383168430846123c7565b6002546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152602481018390529083169063095ea7b3906044016020604051808303816000875af1158015612130573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121549190612cfd565b506002546040517f743e0c9b000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b039091169063743e0c9b90602401600060405180830381600087803b1580156121b457600080fd5b505af11580156121c8573d6000803e3d6000fd5b50505050505050565b600054610c77906001600160a01b0384811691869116846123c7565b6040516001600160a01b03838116602483015260448201839052610c7791859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612400565b61194d61247c565b61227161247c565b61194d6124e3565b61228161247c565b61194d6124eb565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038516845290915290205460ff16610ccc576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401611cdc565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff1661194d576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61237a8261253c565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156123bf57610c7782826125e4565b610ccc61265a565b6040516001600160a01b038481166024830152838116604483015260648201839052610a9e9186918216906323b872dd9060840161221a565b60006124156001600160a01b03841683612692565b9050805160001415801561243a5750808060200190518101906124389190612cfd565b155b15610c77576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401611cdc565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff1661194d576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611f9861247c565b6124f361247c565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b806001600160a01b03163b60000361258b576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b0382166004820152602401611cdc565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516126019190612d48565b600060405180830381855af49150503d806000811461263c576040519150601f19603f3d011682016040523d82523d6000602084013e612641565b606091505b50915091506126518583836126a0565b95945050505050565b341561194d576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60606119f183836000612715565b6060826126b5576126b0826127cb565b6119f1565b81511580156126cc57506001600160a01b0384163b155b1561270e576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401611cdc565b50806119f1565b606081471015612753576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401611cdc565b600080856001600160a01b0316848660405161276f9190612d48565b60006040518083038185875af1925050503d80600081146127ac576040519150601f19603f3d011682016040523d82523d6000602084013e6127b1565b606091505b50915091506127c18683836126a0565b9695505050505050565b8051156127db5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006020828403121561281f57600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146119f157600080fd5b80356001600160a01b038116811461286657600080fd5b919050565b60006020828403121561287d57600080fd5b6119f18261284f565b60008083601f84011261289857600080fd5b50813567ffffffffffffffff8111156128b057600080fd5b6020830191508360208285010111156128c857600080fd5b9250929050565b6000806000604084860312156128e457600080fd5b6128ed8461284f565b9250602084013567ffffffffffffffff81111561290957600080fd5b61291586828701612886565b9497909650939450505050565b60005b8381101561293d578181015183820152602001612925565b50506000910152565b6000815180845261295e816020860160208601612922565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006119f16020830184612946565b6000602082840312156129b557600080fd5b5035919050565b600080604083850312156129cf57600080fd5b823591506129df6020840161284f565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060408385031215612a2a57600080fd5b612a338361284f565b9150602083013567ffffffffffffffff811115612a4f57600080fd5b8301601f81018513612a6057600080fd5b803567ffffffffffffffff811115612a7a57612a7a6129e8565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff82111715612ae657612ae66129e8565b604052818152828201602001871015612afe57600080fd5b816020840160208301376000602083830101528093505050509250929050565b600080600080600060808688031215612b3657600080fd5b612b3f8661284f565b9450612b4d6020870161284f565b935060408601359250606086013567ffffffffffffffff811115612b7057600080fd5b612b7c88828901612886565b969995985093965092949392505050565b600080600080600060808688031215612ba557600080fd5b612bae8661284f565b945060208601359350612bc36040870161284f565b9250606086013567ffffffffffffffff811115612b7057600080fd5b600080600060608486031215612bf457600080fd5b612bfd8461284f565b9250612c0b6020850161284f565b9150612c196040850161284f565b90509250925092565b600080600060608486031215612c3757600080fd5b612c408461284f565b925060208401359150612c196040850161284f565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b602081526000612cb2602083018486612c55565b949350505050565b838152604060208201526000612651604083018486612c55565b8481526001600160a01b03841660208201526060604082015260006127c1606083018486612c55565b600060208284031215612d0f57600080fd5b815180151581146119f157600080fd5b600060208284031215612d3157600080fd5b5051919050565b8183823760009101908152919050565b60008251612d5a818460208701612922565b919091019291505056fea26469706673582212201821442f44389baeb888640e13de33662eed4aff4f3c0ea195d55f55d8f2920864736f6c634300081a0033", } // GatewayEVMABI is the input ABI used to generate the binding from. @@ -202,6 +202,161 @@ func (_GatewayEVM *GatewayEVMTransactorRaw) Transact(opts *bind.TransactOpts, me return _GatewayEVM.Contract.contract.Transact(opts, method, params...) } +// ASSETHANDLERROLE is a free data retrieval call binding the contract method 0x5d62c860. +// +// Solidity: function ASSET_HANDLER_ROLE() view returns(bytes32) +func (_GatewayEVM *GatewayEVMCaller) ASSETHANDLERROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _GatewayEVM.contract.Call(opts, &out, "ASSET_HANDLER_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// ASSETHANDLERROLE is a free data retrieval call binding the contract method 0x5d62c860. +// +// Solidity: function ASSET_HANDLER_ROLE() view returns(bytes32) +func (_GatewayEVM *GatewayEVMSession) ASSETHANDLERROLE() ([32]byte, error) { + return _GatewayEVM.Contract.ASSETHANDLERROLE(&_GatewayEVM.CallOpts) +} + +// ASSETHANDLERROLE is a free data retrieval call binding the contract method 0x5d62c860. +// +// Solidity: function ASSET_HANDLER_ROLE() view returns(bytes32) +func (_GatewayEVM *GatewayEVMCallerSession) ASSETHANDLERROLE() ([32]byte, error) { + return _GatewayEVM.Contract.ASSETHANDLERROLE(&_GatewayEVM.CallOpts) +} + +// DEFAULTADMINROLE is a free data retrieval call binding the contract method 0xa217fddf. +// +// Solidity: function DEFAULT_ADMIN_ROLE() view returns(bytes32) +func (_GatewayEVM *GatewayEVMCaller) DEFAULTADMINROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _GatewayEVM.contract.Call(opts, &out, "DEFAULT_ADMIN_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// DEFAULTADMINROLE is a free data retrieval call binding the contract method 0xa217fddf. +// +// Solidity: function DEFAULT_ADMIN_ROLE() view returns(bytes32) +func (_GatewayEVM *GatewayEVMSession) DEFAULTADMINROLE() ([32]byte, error) { + return _GatewayEVM.Contract.DEFAULTADMINROLE(&_GatewayEVM.CallOpts) +} + +// DEFAULTADMINROLE is a free data retrieval call binding the contract method 0xa217fddf. +// +// Solidity: function DEFAULT_ADMIN_ROLE() view returns(bytes32) +func (_GatewayEVM *GatewayEVMCallerSession) DEFAULTADMINROLE() ([32]byte, error) { + return _GatewayEVM.Contract.DEFAULTADMINROLE(&_GatewayEVM.CallOpts) +} + +// PAUSERROLE is a free data retrieval call binding the contract method 0xe63ab1e9. +// +// Solidity: function PAUSER_ROLE() view returns(bytes32) +func (_GatewayEVM *GatewayEVMCaller) PAUSERROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _GatewayEVM.contract.Call(opts, &out, "PAUSER_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// PAUSERROLE is a free data retrieval call binding the contract method 0xe63ab1e9. +// +// Solidity: function PAUSER_ROLE() view returns(bytes32) +func (_GatewayEVM *GatewayEVMSession) PAUSERROLE() ([32]byte, error) { + return _GatewayEVM.Contract.PAUSERROLE(&_GatewayEVM.CallOpts) +} + +// PAUSERROLE is a free data retrieval call binding the contract method 0xe63ab1e9. +// +// Solidity: function PAUSER_ROLE() view returns(bytes32) +func (_GatewayEVM *GatewayEVMCallerSession) PAUSERROLE() ([32]byte, error) { + return _GatewayEVM.Contract.PAUSERROLE(&_GatewayEVM.CallOpts) +} + +// TSSROLE is a free data retrieval call binding the contract method 0xa783c789. +// +// Solidity: function TSS_ROLE() view returns(bytes32) +func (_GatewayEVM *GatewayEVMCaller) TSSROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _GatewayEVM.contract.Call(opts, &out, "TSS_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// TSSROLE is a free data retrieval call binding the contract method 0xa783c789. +// +// Solidity: function TSS_ROLE() view returns(bytes32) +func (_GatewayEVM *GatewayEVMSession) TSSROLE() ([32]byte, error) { + return _GatewayEVM.Contract.TSSROLE(&_GatewayEVM.CallOpts) +} + +// TSSROLE is a free data retrieval call binding the contract method 0xa783c789. +// +// Solidity: function TSS_ROLE() view returns(bytes32) +func (_GatewayEVM *GatewayEVMCallerSession) TSSROLE() ([32]byte, error) { + return _GatewayEVM.Contract.TSSROLE(&_GatewayEVM.CallOpts) +} + +// 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) @@ -233,35 +388,97 @@ 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. +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. // -// Solidity: function owner() view returns(address) -func (_GatewayEVM *GatewayEVMCaller) Owner(opts *bind.CallOpts) (common.Address, error) { +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_GatewayEVM *GatewayEVMCaller) GetRoleAdmin(opts *bind.CallOpts, role [32]byte) ([32]byte, error) { var out []interface{} - err := _GatewayEVM.contract.Call(opts, &out, "owner") + err := _GatewayEVM.contract.Call(opts, &out, "getRoleAdmin", role) if err != nil { - return *new(common.Address), err + return *new([32]byte), err } - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. +// +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_GatewayEVM *GatewayEVMSession) GetRoleAdmin(role [32]byte) ([32]byte, error) { + return _GatewayEVM.Contract.GetRoleAdmin(&_GatewayEVM.CallOpts, role) +} + +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. +// +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_GatewayEVM *GatewayEVMCallerSession) GetRoleAdmin(role [32]byte) ([32]byte, error) { + return _GatewayEVM.Contract.GetRoleAdmin(&_GatewayEVM.CallOpts, role) +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_GatewayEVM *GatewayEVMCaller) HasRole(opts *bind.CallOpts, role [32]byte, account common.Address) (bool, error) { + var out []interface{} + err := _GatewayEVM.contract.Call(opts, &out, "hasRole", role, account) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_GatewayEVM *GatewayEVMSession) HasRole(role [32]byte, account common.Address) (bool, error) { + return _GatewayEVM.Contract.HasRole(&_GatewayEVM.CallOpts, role, account) +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_GatewayEVM *GatewayEVMCallerSession) HasRole(role [32]byte, account common.Address) (bool, error) { + return _GatewayEVM.Contract.HasRole(&_GatewayEVM.CallOpts, role, account) +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_GatewayEVM *GatewayEVMCaller) Paused(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _GatewayEVM.contract.Call(opts, &out, "paused") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) return out0, err } -// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// Paused is a free data retrieval call binding the contract method 0x5c975abb. // -// Solidity: function owner() view returns(address) -func (_GatewayEVM *GatewayEVMSession) Owner() (common.Address, error) { - return _GatewayEVM.Contract.Owner(&_GatewayEVM.CallOpts) +// Solidity: function paused() view returns(bool) +func (_GatewayEVM *GatewayEVMSession) Paused() (bool, error) { + return _GatewayEVM.Contract.Paused(&_GatewayEVM.CallOpts) } -// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// Paused is a free data retrieval call binding the contract method 0x5c975abb. // -// Solidity: function owner() view returns(address) -func (_GatewayEVM *GatewayEVMCallerSession) Owner() (common.Address, error) { - return _GatewayEVM.Contract.Owner(&_GatewayEVM.CallOpts) +// Solidity: function paused() view returns(bool) +func (_GatewayEVM *GatewayEVMCallerSession) Paused() (bool, error) { + return _GatewayEVM.Contract.Paused(&_GatewayEVM.CallOpts) } // ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d. @@ -295,6 +512,37 @@ func (_GatewayEVM *GatewayEVMCallerSession) ProxiableUUID() ([32]byte, error) { return _GatewayEVM.Contract.ProxiableUUID(&_GatewayEVM.CallOpts) } +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) +func (_GatewayEVM *GatewayEVMCaller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) { + var out []interface{} + err := _GatewayEVM.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 (_GatewayEVM *GatewayEVMSession) SupportsInterface(interfaceId [4]byte) (bool, error) { + return _GatewayEVM.Contract.SupportsInterface(&_GatewayEVM.CallOpts, interfaceId) +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) +func (_GatewayEVM *GatewayEVMCallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) { + return _GatewayEVM.Contract.SupportsInterface(&_GatewayEVM.CallOpts, interfaceId) +} + // TssAddress is a free data retrieval call binding the contract method 0x5b112591. // // Solidity: function tssAddress() view returns(address) @@ -556,46 +804,88 @@ func (_GatewayEVM *GatewayEVMTransactorSession) ExecuteWithERC20(token common.Ad return _GatewayEVM.Contract.ExecuteWithERC20(&_GatewayEVM.TransactOpts, token, to, amount, data) } -// Initialize is a paid mutator transaction binding the contract method 0x485cc955. +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_GatewayEVM *GatewayEVMTransactor) GrantRole(opts *bind.TransactOpts, role [32]byte, account common.Address) (*types.Transaction, error) { + return _GatewayEVM.contract.Transact(opts, "grantRole", role, account) +} + +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_GatewayEVM *GatewayEVMSession) GrantRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _GatewayEVM.Contract.GrantRole(&_GatewayEVM.TransactOpts, role, account) +} + +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_GatewayEVM *GatewayEVMTransactorSession) GrantRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _GatewayEVM.Contract.GrantRole(&_GatewayEVM.TransactOpts, role, account) +} + +// Initialize is a paid mutator transaction binding the contract method 0xc0c53b8b. +// +// Solidity: function initialize(address _tssAddress, address _zetaToken, address _admin) returns() +func (_GatewayEVM *GatewayEVMTransactor) Initialize(opts *bind.TransactOpts, _tssAddress common.Address, _zetaToken common.Address, _admin common.Address) (*types.Transaction, error) { + return _GatewayEVM.contract.Transact(opts, "initialize", _tssAddress, _zetaToken, _admin) +} + +// Initialize is a paid mutator transaction binding the contract method 0xc0c53b8b. // -// 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) +// Solidity: function initialize(address _tssAddress, address _zetaToken, address _admin) returns() +func (_GatewayEVM *GatewayEVMSession) Initialize(_tssAddress common.Address, _zetaToken common.Address, _admin common.Address) (*types.Transaction, error) { + return _GatewayEVM.Contract.Initialize(&_GatewayEVM.TransactOpts, _tssAddress, _zetaToken, _admin) } -// Initialize is a paid mutator transaction binding the contract method 0x485cc955. +// Initialize is a paid mutator transaction binding the contract method 0xc0c53b8b. // -// 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) +// Solidity: function initialize(address _tssAddress, address _zetaToken, address _admin) returns() +func (_GatewayEVM *GatewayEVMTransactorSession) Initialize(_tssAddress common.Address, _zetaToken common.Address, _admin common.Address) (*types.Transaction, error) { + return _GatewayEVM.Contract.Initialize(&_GatewayEVM.TransactOpts, _tssAddress, _zetaToken, _admin) } -// Initialize is a paid mutator transaction binding the contract method 0x485cc955. +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. // -// 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) +// Solidity: function pause() returns() +func (_GatewayEVM *GatewayEVMTransactor) Pause(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVM.contract.Transact(opts, "pause") } -// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. // -// Solidity: function renounceOwnership() returns() -func (_GatewayEVM *GatewayEVMTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { - return _GatewayEVM.contract.Transact(opts, "renounceOwnership") +// Solidity: function pause() returns() +func (_GatewayEVM *GatewayEVMSession) Pause() (*types.Transaction, error) { + return _GatewayEVM.Contract.Pause(&_GatewayEVM.TransactOpts) } -// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. // -// Solidity: function renounceOwnership() returns() -func (_GatewayEVM *GatewayEVMSession) RenounceOwnership() (*types.Transaction, error) { - return _GatewayEVM.Contract.RenounceOwnership(&_GatewayEVM.TransactOpts) +// Solidity: function pause() returns() +func (_GatewayEVM *GatewayEVMTransactorSession) Pause() (*types.Transaction, error) { + return _GatewayEVM.Contract.Pause(&_GatewayEVM.TransactOpts) } -// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. // -// Solidity: function renounceOwnership() returns() -func (_GatewayEVM *GatewayEVMTransactorSession) RenounceOwnership() (*types.Transaction, error) { - return _GatewayEVM.Contract.RenounceOwnership(&_GatewayEVM.TransactOpts) +// Solidity: function renounceRole(bytes32 role, address callerConfirmation) returns() +func (_GatewayEVM *GatewayEVMTransactor) RenounceRole(opts *bind.TransactOpts, role [32]byte, callerConfirmation common.Address) (*types.Transaction, error) { + return _GatewayEVM.contract.Transact(opts, "renounceRole", role, callerConfirmation) +} + +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. +// +// Solidity: function renounceRole(bytes32 role, address callerConfirmation) returns() +func (_GatewayEVM *GatewayEVMSession) RenounceRole(role [32]byte, callerConfirmation common.Address) (*types.Transaction, error) { + return _GatewayEVM.Contract.RenounceRole(&_GatewayEVM.TransactOpts, role, callerConfirmation) +} + +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. +// +// Solidity: function renounceRole(bytes32 role, address callerConfirmation) returns() +func (_GatewayEVM *GatewayEVMTransactorSession) RenounceRole(role [32]byte, callerConfirmation common.Address) (*types.Transaction, error) { + return _GatewayEVM.Contract.RenounceRole(&_GatewayEVM.TransactOpts, role, callerConfirmation) } // RevertWithERC20 is a paid mutator transaction binding the contract method 0xb8969bd4. @@ -619,6 +909,27 @@ func (_GatewayEVM *GatewayEVMTransactorSession) RevertWithERC20(token common.Add return _GatewayEVM.Contract.RevertWithERC20(&_GatewayEVM.TransactOpts, token, to, amount, data) } +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_GatewayEVM *GatewayEVMTransactor) RevokeRole(opts *bind.TransactOpts, role [32]byte, account common.Address) (*types.Transaction, error) { + return _GatewayEVM.contract.Transact(opts, "revokeRole", role, account) +} + +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_GatewayEVM *GatewayEVMSession) RevokeRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _GatewayEVM.Contract.RevokeRole(&_GatewayEVM.TransactOpts, role, account) +} + +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_GatewayEVM *GatewayEVMTransactorSession) RevokeRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _GatewayEVM.Contract.RevokeRole(&_GatewayEVM.TransactOpts, role, account) +} + // SetConnector is a paid mutator transaction binding the contract method 0x10188aef. // // Solidity: function setConnector(address _zetaConnector) returns() @@ -661,46 +972,25 @@ func (_GatewayEVM *GatewayEVMTransactorSession) SetCustody(_custody common.Addre 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) -} - -// UpgradeTo is a paid mutator transaction binding the contract method 0x3659cfe6. +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. // -// Solidity: function upgradeTo(address newImplementation) returns() -func (_GatewayEVM *GatewayEVMTransactor) UpgradeTo(opts *bind.TransactOpts, newImplementation common.Address) (*types.Transaction, error) { - return _GatewayEVM.contract.Transact(opts, "upgradeTo", newImplementation) +// Solidity: function unpause() returns() +func (_GatewayEVM *GatewayEVMTransactor) Unpause(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVM.contract.Transact(opts, "unpause") } -// UpgradeTo is a paid mutator transaction binding the contract method 0x3659cfe6. +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. // -// Solidity: function upgradeTo(address newImplementation) returns() -func (_GatewayEVM *GatewayEVMSession) UpgradeTo(newImplementation common.Address) (*types.Transaction, error) { - return _GatewayEVM.Contract.UpgradeTo(&_GatewayEVM.TransactOpts, newImplementation) +// Solidity: function unpause() returns() +func (_GatewayEVM *GatewayEVMSession) Unpause() (*types.Transaction, error) { + return _GatewayEVM.Contract.Unpause(&_GatewayEVM.TransactOpts) } -// UpgradeTo is a paid mutator transaction binding the contract method 0x3659cfe6. +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. // -// Solidity: function upgradeTo(address newImplementation) returns() -func (_GatewayEVM *GatewayEVMTransactorSession) UpgradeTo(newImplementation common.Address) (*types.Transaction, error) { - return _GatewayEVM.Contract.UpgradeTo(&_GatewayEVM.TransactOpts, newImplementation) +// Solidity: function unpause() returns() +func (_GatewayEVM *GatewayEVMTransactorSession) Unpause() (*types.Transaction, error) { + return _GatewayEVM.Contract.Unpause(&_GatewayEVM.TransactOpts) } // UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286. @@ -724,9 +1014,9 @@ func (_GatewayEVM *GatewayEVMTransactorSession) UpgradeToAndCall(newImplementati return _GatewayEVM.Contract.UpgradeToAndCall(&_GatewayEVM.TransactOpts, newImplementation, data) } -// GatewayEVMAdminChangedIterator is returned from FilterAdminChanged and is used to iterate over the raw logs and unpacked data for AdminChanged events raised by the GatewayEVM contract. -type GatewayEVMAdminChangedIterator struct { - Event *GatewayEVMAdminChanged // Event containing the contract specifics and raw log +// 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 @@ -740,7 +1030,7 @@ type GatewayEVMAdminChangedIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *GatewayEVMAdminChangedIterator) Next() bool { +func (it *GatewayEVMCallIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -749,7 +1039,7 @@ func (it *GatewayEVMAdminChangedIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(GatewayEVMAdminChanged) + it.Event = new(GatewayEVMCall) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -764,7 +1054,7 @@ func (it *GatewayEVMAdminChangedIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(GatewayEVMAdminChanged) + it.Event = new(GatewayEVMCall) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -780,42 +1070,61 @@ func (it *GatewayEVMAdminChangedIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *GatewayEVMAdminChangedIterator) Error() error { +func (it *GatewayEVMCallIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *GatewayEVMAdminChangedIterator) Close() error { +func (it *GatewayEVMCallIterator) Close() error { it.sub.Unsubscribe() return nil } -// GatewayEVMAdminChanged represents a AdminChanged event raised by the GatewayEVM contract. -type GatewayEVMAdminChanged struct { - PreviousAdmin common.Address - NewAdmin common.Address - Raw types.Log // Blockchain specific contextual infos +// 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 } -// FilterAdminChanged is a free log retrieval operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f. +// FilterCall is a free log retrieval operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. // -// Solidity: event AdminChanged(address previousAdmin, address newAdmin) -func (_GatewayEVM *GatewayEVMFilterer) FilterAdminChanged(opts *bind.FilterOpts) (*GatewayEVMAdminChangedIterator, error) { +// 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, "AdminChanged") + logs, sub, err := _GatewayEVM.contract.FilterLogs(opts, "Call", senderRule, receiverRule) if err != nil { return nil, err } - return &GatewayEVMAdminChangedIterator{contract: _GatewayEVM.contract, event: "AdminChanged", logs: logs, sub: sub}, nil + return &GatewayEVMCallIterator{contract: _GatewayEVM.contract, event: "Call", logs: logs, sub: sub}, nil } -// WatchAdminChanged is a free log subscription operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f. +// WatchCall is a free log subscription operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. // -// Solidity: event AdminChanged(address previousAdmin, address newAdmin) -func (_GatewayEVM *GatewayEVMFilterer) WatchAdminChanged(opts *bind.WatchOpts, sink chan<- *GatewayEVMAdminChanged) (event.Subscription, error) { +// 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, "AdminChanged") + logs, sub, err := _GatewayEVM.contract.WatchLogs(opts, "Call", senderRule, receiverRule) if err != nil { return nil, err } @@ -825,8 +1134,8 @@ func (_GatewayEVM *GatewayEVMFilterer) WatchAdminChanged(opts *bind.WatchOpts, s select { case log := <-logs: // New log arrived, parse the event and forward to the user - event := new(GatewayEVMAdminChanged) - if err := _GatewayEVM.contract.UnpackLog(event, "AdminChanged", log); err != nil { + event := new(GatewayEVMCall) + if err := _GatewayEVM.contract.UnpackLog(event, "Call", log); err != nil { return err } event.Raw = log @@ -847,21 +1156,21 @@ func (_GatewayEVM *GatewayEVMFilterer) WatchAdminChanged(opts *bind.WatchOpts, s }), nil } -// ParseAdminChanged is a log parse operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f. +// ParseCall is a log parse operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. // -// Solidity: event AdminChanged(address previousAdmin, address newAdmin) -func (_GatewayEVM *GatewayEVMFilterer) ParseAdminChanged(log types.Log) (*GatewayEVMAdminChanged, error) { - event := new(GatewayEVMAdminChanged) - if err := _GatewayEVM.contract.UnpackLog(event, "AdminChanged", log); err != nil { +// 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 } -// GatewayEVMBeaconUpgradedIterator is returned from FilterBeaconUpgraded and is used to iterate over the raw logs and unpacked data for BeaconUpgraded events raised by the GatewayEVM contract. -type GatewayEVMBeaconUpgradedIterator struct { - Event *GatewayEVMBeaconUpgraded // Event containing the contract specifics and raw log +// 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 @@ -875,7 +1184,7 @@ type GatewayEVMBeaconUpgradedIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *GatewayEVMBeaconUpgradedIterator) Next() bool { +func (it *GatewayEVMDepositIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -884,7 +1193,7 @@ func (it *GatewayEVMBeaconUpgradedIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(GatewayEVMBeaconUpgraded) + it.Event = new(GatewayEVMDeposit) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -899,7 +1208,7 @@ func (it *GatewayEVMBeaconUpgradedIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(GatewayEVMBeaconUpgraded) + it.Event = new(GatewayEVMDeposit) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -915,51 +1224,63 @@ func (it *GatewayEVMBeaconUpgradedIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *GatewayEVMBeaconUpgradedIterator) Error() error { +func (it *GatewayEVMDepositIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *GatewayEVMBeaconUpgradedIterator) Close() error { +func (it *GatewayEVMDepositIterator) Close() error { it.sub.Unsubscribe() return nil } -// GatewayEVMBeaconUpgraded represents a BeaconUpgraded event raised by the GatewayEVM contract. -type GatewayEVMBeaconUpgraded struct { - Beacon common.Address - Raw types.Log // Blockchain specific contextual infos +// 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 } -// FilterBeaconUpgraded is a free log retrieval operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e. +// FilterDeposit is a free log retrieval operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. // -// Solidity: event BeaconUpgraded(address indexed beacon) -func (_GatewayEVM *GatewayEVMFilterer) FilterBeaconUpgraded(opts *bind.FilterOpts, beacon []common.Address) (*GatewayEVMBeaconUpgradedIterator, error) { +// 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 beaconRule []interface{} - for _, beaconItem := range beacon { - beaconRule = append(beaconRule, beaconItem) + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) } - - logs, sub, err := _GatewayEVM.contract.FilterLogs(opts, "BeaconUpgraded", beaconRule) + 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 &GatewayEVMBeaconUpgradedIterator{contract: _GatewayEVM.contract, event: "BeaconUpgraded", logs: logs, sub: sub}, nil + return &GatewayEVMDepositIterator{contract: _GatewayEVM.contract, event: "Deposit", logs: logs, sub: sub}, nil } -// WatchBeaconUpgraded is a free log subscription operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e. +// WatchDeposit is a free log subscription operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. // -// Solidity: event BeaconUpgraded(address indexed beacon) -func (_GatewayEVM *GatewayEVMFilterer) WatchBeaconUpgraded(opts *bind.WatchOpts, sink chan<- *GatewayEVMBeaconUpgraded, beacon []common.Address) (event.Subscription, error) { +// 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 beaconRule []interface{} - for _, beaconItem := range beacon { - beaconRule = append(beaconRule, beaconItem) + 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, "BeaconUpgraded", beaconRule) + logs, sub, err := _GatewayEVM.contract.WatchLogs(opts, "Deposit", senderRule, receiverRule) if err != nil { return nil, err } @@ -969,8 +1290,8 @@ func (_GatewayEVM *GatewayEVMFilterer) WatchBeaconUpgraded(opts *bind.WatchOpts, select { case log := <-logs: // New log arrived, parse the event and forward to the user - event := new(GatewayEVMBeaconUpgraded) - if err := _GatewayEVM.contract.UnpackLog(event, "BeaconUpgraded", log); err != nil { + event := new(GatewayEVMDeposit) + if err := _GatewayEVM.contract.UnpackLog(event, "Deposit", log); err != nil { return err } event.Raw = log @@ -991,21 +1312,21 @@ func (_GatewayEVM *GatewayEVMFilterer) WatchBeaconUpgraded(opts *bind.WatchOpts, }), nil } -// ParseBeaconUpgraded is a log parse operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e. +// ParseDeposit is a log parse operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. // -// Solidity: event BeaconUpgraded(address indexed beacon) -func (_GatewayEVM *GatewayEVMFilterer) ParseBeaconUpgraded(log types.Log) (*GatewayEVMBeaconUpgraded, error) { - event := new(GatewayEVMBeaconUpgraded) - if err := _GatewayEVM.contract.UnpackLog(event, "BeaconUpgraded", log); err != nil { +// 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 } -// 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 +// 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 @@ -1019,7 +1340,7 @@ type GatewayEVMCallIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more 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 { +func (it *GatewayEVMExecutedIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -1028,7 +1349,7 @@ func (it *GatewayEVMCallIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(GatewayEVMCall) + it.Event = new(GatewayEVMExecuted) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1043,7 +1364,7 @@ func (it *GatewayEVMCallIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(GatewayEVMCall) + it.Event = new(GatewayEVMExecuted) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1059,61 +1380,208 @@ func (it *GatewayEVMCallIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *GatewayEVMCallIterator) Error() error { +func (it *GatewayEVMExecutedIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *GatewayEVMCallIterator) Close() error { +func (it *GatewayEVMExecutedIterator) 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 +// 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 } -// FilterCall is a free log retrieval operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. +// FilterExecuted is a free log retrieval operation binding the contract event 0xcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f. // -// 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) { +// Solidity: event Executed(address indexed destination, uint256 value, bytes data) +func (_GatewayEVM *GatewayEVMFilterer) FilterExecuted(opts *bind.FilterOpts, destination []common.Address) (*GatewayEVMExecutedIterator, error) { - var senderRule []interface{} - for _, senderItem := range sender { - senderRule = append(senderRule, senderItem) + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) } - var receiverRule []interface{} - for _, receiverItem := range receiver { - receiverRule = append(receiverRule, receiverItem) + + 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 +} - logs, sub, err := _GatewayEVM.contract.FilterLogs(opts, "Call", senderRule, receiverRule) +// 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 &GatewayEVMCallIterator{contract: _GatewayEVM.contract, event: "Call", logs: logs, sub: sub}, nil + return event.NewSubscription(func(quit <-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 } -// WatchCall is a free log subscription operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. +// ParseExecuted is a log parse operation binding the contract event 0xcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f. // -// 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) { +// 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 +} - var senderRule []interface{} - for _, senderItem := range sender { - senderRule = append(senderRule, senderItem) +// 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 } - var receiverRule []interface{} - for _, receiverItem := range receiver { - receiverRule = append(receiverRule, receiverItem) + // 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 - logs, sub, err := _GatewayEVM.contract.WatchLogs(opts, "Call", senderRule, receiverRule) + case err := <-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 } @@ -1123,8 +1591,8 @@ func (_GatewayEVM *GatewayEVMFilterer) WatchCall(opts *bind.WatchOpts, sink chan 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 { + event := new(GatewayEVMExecutedWithERC20) + if err := _GatewayEVM.contract.UnpackLog(event, "ExecutedWithERC20", log); err != nil { return err } event.Raw = log @@ -1145,21 +1613,21 @@ func (_GatewayEVM *GatewayEVMFilterer) WatchCall(opts *bind.WatchOpts, sink chan }), nil } -// ParseCall is a log parse operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. +// ParseExecutedWithERC20 is a log parse operation binding the contract event 0x29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382. // -// 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 { +// 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 } -// 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 +// 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 @@ -1173,7 +1641,7 @@ type GatewayEVMDepositIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more 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 { +func (it *GatewayEVMInitializedIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -1182,7 +1650,7 @@ func (it *GatewayEVMDepositIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(GatewayEVMDeposit) + it.Event = new(GatewayEVMInitialized) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1197,7 +1665,7 @@ func (it *GatewayEVMDepositIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(GatewayEVMDeposit) + it.Event = new(GatewayEVMInitialized) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1213,63 +1681,175 @@ func (it *GatewayEVMDepositIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *GatewayEVMDepositIterator) Error() error { +func (it *GatewayEVMInitializedIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *GatewayEVMDepositIterator) Close() error { +func (it *GatewayEVMInitializedIterator) 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 +// GatewayEVMInitialized represents a Initialized event raised by the GatewayEVM contract. +type GatewayEVMInitialized struct { + Version uint64 + Raw types.Log // Blockchain specific contextual infos } -// FilterDeposit is a free log retrieval operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. +// FilterInitialized is a free log retrieval operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. // -// 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) { +// Solidity: event Initialized(uint64 version) +func (_GatewayEVM *GatewayEVMFilterer) FilterInitialized(opts *bind.FilterOpts) (*GatewayEVMInitializedIterator, 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, "Initialized") + if err != nil { + return nil, err } + return &GatewayEVMInitializedIterator{contract: _GatewayEVM.contract, event: "Initialized", logs: logs, sub: sub}, nil +} - logs, sub, err := _GatewayEVM.contract.FilterLogs(opts, "Deposit", senderRule, receiverRule) +// 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 &GatewayEVMDepositIterator{contract: _GatewayEVM.contract, event: "Deposit", logs: logs, sub: sub}, nil + return event.NewSubscription(func(quit <-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 } -// WatchDeposit is a free log subscription operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. +// ParseInitialized is a log parse operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. // -// 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) { +// 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 +} - var senderRule []interface{} - for _, senderItem := range sender { - senderRule = append(senderRule, senderItem) +// GatewayEVMPausedIterator is returned from FilterPaused and is used to iterate over the raw logs and unpacked data for Paused events raised by the GatewayEVM contract. +type GatewayEVMPausedIterator struct { + Event *GatewayEVMPaused // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMPausedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false } - var receiverRule []interface{} - for _, receiverItem := range receiver { - receiverRule = append(receiverRule, receiverItem) + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMPaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMPaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMPausedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMPausedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMPaused represents a Paused event raised by the GatewayEVM contract. +type GatewayEVMPaused struct { + Account common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterPaused is a free log retrieval operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. +// +// Solidity: event Paused(address account) +func (_GatewayEVM *GatewayEVMFilterer) FilterPaused(opts *bind.FilterOpts) (*GatewayEVMPausedIterator, error) { + + logs, sub, err := _GatewayEVM.contract.FilterLogs(opts, "Paused") + if err != nil { + return nil, err } + return &GatewayEVMPausedIterator{contract: _GatewayEVM.contract, event: "Paused", logs: logs, sub: sub}, nil +} - logs, sub, err := _GatewayEVM.contract.WatchLogs(opts, "Deposit", senderRule, receiverRule) +// WatchPaused is a free log subscription operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. +// +// Solidity: event Paused(address account) +func (_GatewayEVM *GatewayEVMFilterer) WatchPaused(opts *bind.WatchOpts, sink chan<- *GatewayEVMPaused) (event.Subscription, error) { + + logs, sub, err := _GatewayEVM.contract.WatchLogs(opts, "Paused") if err != nil { return nil, err } @@ -1279,8 +1859,8 @@ func (_GatewayEVM *GatewayEVMFilterer) WatchDeposit(opts *bind.WatchOpts, sink c 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 { + event := new(GatewayEVMPaused) + if err := _GatewayEVM.contract.UnpackLog(event, "Paused", log); err != nil { return err } event.Raw = log @@ -1301,21 +1881,21 @@ func (_GatewayEVM *GatewayEVMFilterer) WatchDeposit(opts *bind.WatchOpts, sink c }), nil } -// ParseDeposit is a log parse operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. +// ParsePaused is a log parse operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. // -// 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 { +// Solidity: event Paused(address account) +func (_GatewayEVM *GatewayEVMFilterer) ParsePaused(log types.Log) (*GatewayEVMPaused, error) { + event := new(GatewayEVMPaused) + if err := _GatewayEVM.contract.UnpackLog(event, "Paused", 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 +// 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 @@ -1329,7 +1909,7 @@ type GatewayEVMExecutedIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more 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 { +func (it *GatewayEVMRevertedIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -1338,7 +1918,7 @@ func (it *GatewayEVMExecutedIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(GatewayEVMExecuted) + it.Event = new(GatewayEVMReverted) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1353,7 +1933,7 @@ func (it *GatewayEVMExecutedIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(GatewayEVMExecuted) + it.Event = new(GatewayEVMReverted) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1369,53 +1949,53 @@ func (it *GatewayEVMExecutedIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *GatewayEVMExecutedIterator) Error() error { +func (it *GatewayEVMRevertedIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *GatewayEVMExecutedIterator) Close() error { +func (it *GatewayEVMRevertedIterator) Close() error { it.sub.Unsubscribe() return nil } -// GatewayEVMExecuted represents a Executed event raised by the GatewayEVM contract. -type GatewayEVMExecuted struct { +// 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 } -// FilterExecuted is a free log retrieval operation binding the contract event 0xcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f. +// FilterReverted is a free log retrieval operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. // -// Solidity: event Executed(address indexed destination, uint256 value, bytes data) -func (_GatewayEVM *GatewayEVMFilterer) FilterExecuted(opts *bind.FilterOpts, destination []common.Address) (*GatewayEVMExecutedIterator, error) { +// 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, "Executed", destinationRule) + logs, sub, err := _GatewayEVM.contract.FilterLogs(opts, "Reverted", destinationRule) if err != nil { return nil, err } - return &GatewayEVMExecutedIterator{contract: _GatewayEVM.contract, event: "Executed", logs: logs, sub: sub}, nil + return &GatewayEVMRevertedIterator{contract: _GatewayEVM.contract, event: "Reverted", logs: logs, sub: sub}, nil } -// WatchExecuted is a free log subscription operation binding the contract event 0xcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f. +// WatchReverted is a free log subscription operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. // -// 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) { +// 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, "Executed", destinationRule) + logs, sub, err := _GatewayEVM.contract.WatchLogs(opts, "Reverted", destinationRule) if err != nil { return nil, err } @@ -1425,8 +2005,8 @@ func (_GatewayEVM *GatewayEVMFilterer) WatchExecuted(opts *bind.WatchOpts, sink 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 { + event := new(GatewayEVMReverted) + if err := _GatewayEVM.contract.UnpackLog(event, "Reverted", log); err != nil { return err } event.Raw = log @@ -1447,21 +2027,21 @@ func (_GatewayEVM *GatewayEVMFilterer) WatchExecuted(opts *bind.WatchOpts, sink }), nil } -// ParseExecuted is a log parse operation binding the contract event 0xcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f. +// ParseReverted is a log parse operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. // -// 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 { +// 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 } -// 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 +// 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 @@ -1475,7 +2055,7 @@ type GatewayEVMExecutedWithERC20Iterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more 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 { +func (it *GatewayEVMRevertedWithERC20Iterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -1484,7 +2064,7 @@ func (it *GatewayEVMExecutedWithERC20Iterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(GatewayEVMExecutedWithERC20) + it.Event = new(GatewayEVMRevertedWithERC20) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1499,7 +2079,7 @@ func (it *GatewayEVMExecutedWithERC20Iterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(GatewayEVMExecutedWithERC20) + it.Event = new(GatewayEVMRevertedWithERC20) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1515,19 +2095,19 @@ func (it *GatewayEVMExecutedWithERC20Iterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *GatewayEVMExecutedWithERC20Iterator) Error() error { +func (it *GatewayEVMRevertedWithERC20Iterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *GatewayEVMExecutedWithERC20Iterator) Close() error { +func (it *GatewayEVMRevertedWithERC20Iterator) Close() error { it.sub.Unsubscribe() return nil } -// GatewayEVMExecutedWithERC20 represents a ExecutedWithERC20 event raised by the GatewayEVM contract. -type GatewayEVMExecutedWithERC20 struct { +// GatewayEVMRevertedWithERC20 represents a RevertedWithERC20 event raised by the GatewayEVM contract. +type GatewayEVMRevertedWithERC20 struct { Token common.Address To common.Address Amount *big.Int @@ -1535,10 +2115,10 @@ type GatewayEVMExecutedWithERC20 struct { Raw types.Log // Blockchain specific contextual infos } -// FilterExecutedWithERC20 is a free log retrieval operation binding the contract event 0x29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382. +// FilterRevertedWithERC20 is a free log retrieval operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. // -// 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) { +// 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 { @@ -1549,17 +2129,17 @@ func (_GatewayEVM *GatewayEVMFilterer) FilterExecutedWithERC20(opts *bind.Filter toRule = append(toRule, toItem) } - logs, sub, err := _GatewayEVM.contract.FilterLogs(opts, "ExecutedWithERC20", tokenRule, toRule) + logs, sub, err := _GatewayEVM.contract.FilterLogs(opts, "RevertedWithERC20", tokenRule, toRule) if err != nil { return nil, err } - return &GatewayEVMExecutedWithERC20Iterator{contract: _GatewayEVM.contract, event: "ExecutedWithERC20", logs: logs, sub: sub}, nil + return &GatewayEVMRevertedWithERC20Iterator{contract: _GatewayEVM.contract, event: "RevertedWithERC20", logs: logs, sub: sub}, nil } -// WatchExecutedWithERC20 is a free log subscription operation binding the contract event 0x29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382. +// WatchRevertedWithERC20 is a free log subscription operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. // -// 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) { +// 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 { @@ -1570,7 +2150,7 @@ func (_GatewayEVM *GatewayEVMFilterer) WatchExecutedWithERC20(opts *bind.WatchOp toRule = append(toRule, toItem) } - logs, sub, err := _GatewayEVM.contract.WatchLogs(opts, "ExecutedWithERC20", tokenRule, toRule) + logs, sub, err := _GatewayEVM.contract.WatchLogs(opts, "RevertedWithERC20", tokenRule, toRule) if err != nil { return nil, err } @@ -1580,8 +2160,8 @@ func (_GatewayEVM *GatewayEVMFilterer) WatchExecutedWithERC20(opts *bind.WatchOp 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 { + event := new(GatewayEVMRevertedWithERC20) + if err := _GatewayEVM.contract.UnpackLog(event, "RevertedWithERC20", log); err != nil { return err } event.Raw = log @@ -1602,21 +2182,21 @@ func (_GatewayEVM *GatewayEVMFilterer) WatchExecutedWithERC20(opts *bind.WatchOp }), nil } -// ParseExecutedWithERC20 is a log parse operation binding the contract event 0x29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382. +// ParseRevertedWithERC20 is a log parse operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. // -// 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 { +// 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 } -// 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 +// GatewayEVMRoleAdminChangedIterator is returned from FilterRoleAdminChanged and is used to iterate over the raw logs and unpacked data for RoleAdminChanged events raised by the GatewayEVM contract. +type GatewayEVMRoleAdminChangedIterator struct { + Event *GatewayEVMRoleAdminChanged // Event containing the contract specifics and raw log contract *bind.BoundContract // Generic contract to use for unpacking event data event string // Event name to use for unpacking event data @@ -1630,7 +2210,7 @@ type GatewayEVMInitializedIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more 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 { +func (it *GatewayEVMRoleAdminChangedIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -1639,7 +2219,7 @@ func (it *GatewayEVMInitializedIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(GatewayEVMInitialized) + it.Event = new(GatewayEVMRoleAdminChanged) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1654,7 +2234,7 @@ func (it *GatewayEVMInitializedIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(GatewayEVMInitialized) + it.Event = new(GatewayEVMRoleAdminChanged) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1670,41 +2250,69 @@ func (it *GatewayEVMInitializedIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *GatewayEVMInitializedIterator) Error() error { +func (it *GatewayEVMRoleAdminChangedIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *GatewayEVMInitializedIterator) Close() error { +func (it *GatewayEVMRoleAdminChangedIterator) Close() error { it.sub.Unsubscribe() return nil } -// GatewayEVMInitialized represents a Initialized event raised by the GatewayEVM contract. -type GatewayEVMInitialized struct { - Version uint8 - Raw types.Log // Blockchain specific contextual infos +// GatewayEVMRoleAdminChanged represents a RoleAdminChanged event raised by the GatewayEVM contract. +type GatewayEVMRoleAdminChanged struct { + Role [32]byte + PreviousAdminRole [32]byte + NewAdminRole [32]byte + Raw types.Log // Blockchain specific contextual infos } -// FilterInitialized is a free log retrieval operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. +// FilterRoleAdminChanged is a free log retrieval operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. // -// Solidity: event Initialized(uint8 version) -func (_GatewayEVM *GatewayEVMFilterer) FilterInitialized(opts *bind.FilterOpts) (*GatewayEVMInitializedIterator, error) { +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_GatewayEVM *GatewayEVMFilterer) FilterRoleAdminChanged(opts *bind.FilterOpts, role [][32]byte, previousAdminRole [][32]byte, newAdminRole [][32]byte) (*GatewayEVMRoleAdminChangedIterator, error) { - logs, sub, err := _GatewayEVM.contract.FilterLogs(opts, "Initialized") + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var previousAdminRoleRule []interface{} + for _, previousAdminRoleItem := range previousAdminRole { + previousAdminRoleRule = append(previousAdminRoleRule, previousAdminRoleItem) + } + var newAdminRoleRule []interface{} + for _, newAdminRoleItem := range newAdminRole { + newAdminRoleRule = append(newAdminRoleRule, newAdminRoleItem) + } + + logs, sub, err := _GatewayEVM.contract.FilterLogs(opts, "RoleAdminChanged", roleRule, previousAdminRoleRule, newAdminRoleRule) if err != nil { return nil, err } - return &GatewayEVMInitializedIterator{contract: _GatewayEVM.contract, event: "Initialized", logs: logs, sub: sub}, nil + return &GatewayEVMRoleAdminChangedIterator{contract: _GatewayEVM.contract, event: "RoleAdminChanged", logs: logs, sub: sub}, nil } -// WatchInitialized is a free log subscription operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. +// WatchRoleAdminChanged is a free log subscription operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. // -// Solidity: event Initialized(uint8 version) -func (_GatewayEVM *GatewayEVMFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *GatewayEVMInitialized) (event.Subscription, error) { +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_GatewayEVM *GatewayEVMFilterer) WatchRoleAdminChanged(opts *bind.WatchOpts, sink chan<- *GatewayEVMRoleAdminChanged, role [][32]byte, previousAdminRole [][32]byte, newAdminRole [][32]byte) (event.Subscription, error) { - logs, sub, err := _GatewayEVM.contract.WatchLogs(opts, "Initialized") + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var previousAdminRoleRule []interface{} + for _, previousAdminRoleItem := range previousAdminRole { + previousAdminRoleRule = append(previousAdminRoleRule, previousAdminRoleItem) + } + var newAdminRoleRule []interface{} + for _, newAdminRoleItem := range newAdminRole { + newAdminRoleRule = append(newAdminRoleRule, newAdminRoleItem) + } + + logs, sub, err := _GatewayEVM.contract.WatchLogs(opts, "RoleAdminChanged", roleRule, previousAdminRoleRule, newAdminRoleRule) if err != nil { return nil, err } @@ -1714,8 +2322,8 @@ func (_GatewayEVM *GatewayEVMFilterer) WatchInitialized(opts *bind.WatchOpts, si 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 { + event := new(GatewayEVMRoleAdminChanged) + if err := _GatewayEVM.contract.UnpackLog(event, "RoleAdminChanged", log); err != nil { return err } event.Raw = log @@ -1736,21 +2344,21 @@ func (_GatewayEVM *GatewayEVMFilterer) WatchInitialized(opts *bind.WatchOpts, si }), nil } -// ParseInitialized is a log parse operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. +// ParseRoleAdminChanged is a log parse operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. // -// Solidity: event Initialized(uint8 version) -func (_GatewayEVM *GatewayEVMFilterer) ParseInitialized(log types.Log) (*GatewayEVMInitialized, error) { - event := new(GatewayEVMInitialized) - if err := _GatewayEVM.contract.UnpackLog(event, "Initialized", log); err != nil { +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_GatewayEVM *GatewayEVMFilterer) ParseRoleAdminChanged(log types.Log) (*GatewayEVMRoleAdminChanged, error) { + event := new(GatewayEVMRoleAdminChanged) + if err := _GatewayEVM.contract.UnpackLog(event, "RoleAdminChanged", 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 +// GatewayEVMRoleGrantedIterator is returned from FilterRoleGranted and is used to iterate over the raw logs and unpacked data for RoleGranted events raised by the GatewayEVM contract. +type GatewayEVMRoleGrantedIterator struct { + Event *GatewayEVMRoleGranted // Event containing the contract specifics and raw log contract *bind.BoundContract // Generic contract to use for unpacking event data event string // Event name to use for unpacking event data @@ -1764,7 +2372,7 @@ type GatewayEVMOwnershipTransferredIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more 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 { +func (it *GatewayEVMRoleGrantedIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -1773,7 +2381,7 @@ func (it *GatewayEVMOwnershipTransferredIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(GatewayEVMOwnershipTransferred) + it.Event = new(GatewayEVMRoleGranted) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1788,7 +2396,7 @@ func (it *GatewayEVMOwnershipTransferredIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(GatewayEVMOwnershipTransferred) + it.Event = new(GatewayEVMRoleGranted) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1804,60 +2412,69 @@ func (it *GatewayEVMOwnershipTransferredIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *GatewayEVMOwnershipTransferredIterator) Error() error { +func (it *GatewayEVMRoleGrantedIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *GatewayEVMOwnershipTransferredIterator) Close() error { +func (it *GatewayEVMRoleGrantedIterator) 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 +// GatewayEVMRoleGranted represents a RoleGranted event raised by the GatewayEVM contract. +type GatewayEVMRoleGranted struct { + Role [32]byte + Account common.Address + Sender common.Address + Raw types.Log // Blockchain specific contextual infos } -// FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// FilterRoleGranted is a free log retrieval operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. // -// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) -func (_GatewayEVM *GatewayEVMFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*GatewayEVMOwnershipTransferredIterator, error) { +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_GatewayEVM *GatewayEVMFilterer) FilterRoleGranted(opts *bind.FilterOpts, role [][32]byte, account []common.Address, sender []common.Address) (*GatewayEVMRoleGrantedIterator, error) { - var previousOwnerRule []interface{} - for _, previousOwnerItem := range previousOwner { - previousOwnerRule = append(previousOwnerRule, previousOwnerItem) + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) } - var newOwnerRule []interface{} - for _, newOwnerItem := range newOwner { - newOwnerRule = append(newOwnerRule, newOwnerItem) + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) } - logs, sub, err := _GatewayEVM.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + logs, sub, err := _GatewayEVM.contract.FilterLogs(opts, "RoleGranted", roleRule, accountRule, senderRule) if err != nil { return nil, err } - return &GatewayEVMOwnershipTransferredIterator{contract: _GatewayEVM.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil + return &GatewayEVMRoleGrantedIterator{contract: _GatewayEVM.contract, event: "RoleGranted", logs: logs, sub: sub}, nil } -// WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// WatchRoleGranted is a free log subscription operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. // -// 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) { +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_GatewayEVM *GatewayEVMFilterer) WatchRoleGranted(opts *bind.WatchOpts, sink chan<- *GatewayEVMRoleGranted, role [][32]byte, account []common.Address, sender []common.Address) (event.Subscription, error) { - var previousOwnerRule []interface{} - for _, previousOwnerItem := range previousOwner { - previousOwnerRule = append(previousOwnerRule, previousOwnerItem) + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) } - var newOwnerRule []interface{} - for _, newOwnerItem := range newOwner { - newOwnerRule = append(newOwnerRule, newOwnerItem) + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) } - logs, sub, err := _GatewayEVM.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + logs, sub, err := _GatewayEVM.contract.WatchLogs(opts, "RoleGranted", roleRule, accountRule, senderRule) if err != nil { return nil, err } @@ -1867,8 +2484,8 @@ func (_GatewayEVM *GatewayEVMFilterer) WatchOwnershipTransferred(opts *bind.Watc 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 { + event := new(GatewayEVMRoleGranted) + if err := _GatewayEVM.contract.UnpackLog(event, "RoleGranted", log); err != nil { return err } event.Raw = log @@ -1889,21 +2506,21 @@ func (_GatewayEVM *GatewayEVMFilterer) WatchOwnershipTransferred(opts *bind.Watc }), nil } -// ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// ParseRoleGranted is a log parse operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. // -// 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 { +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_GatewayEVM *GatewayEVMFilterer) ParseRoleGranted(log types.Log) (*GatewayEVMRoleGranted, error) { + event := new(GatewayEVMRoleGranted) + if err := _GatewayEVM.contract.UnpackLog(event, "RoleGranted", 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 +// GatewayEVMRoleRevokedIterator is returned from FilterRoleRevoked and is used to iterate over the raw logs and unpacked data for RoleRevoked events raised by the GatewayEVM contract. +type GatewayEVMRoleRevokedIterator struct { + Event *GatewayEVMRoleRevoked // Event containing the contract specifics and raw log contract *bind.BoundContract // Generic contract to use for unpacking event data event string // Event name to use for unpacking event data @@ -1917,7 +2534,7 @@ type GatewayEVMRevertedIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more 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 { +func (it *GatewayEVMRoleRevokedIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -1926,7 +2543,7 @@ func (it *GatewayEVMRevertedIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(GatewayEVMReverted) + it.Event = new(GatewayEVMRoleRevoked) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1941,7 +2558,7 @@ func (it *GatewayEVMRevertedIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(GatewayEVMReverted) + it.Event = new(GatewayEVMRoleRevoked) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1957,53 +2574,69 @@ func (it *GatewayEVMRevertedIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *GatewayEVMRevertedIterator) Error() error { +func (it *GatewayEVMRoleRevokedIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *GatewayEVMRevertedIterator) Close() error { +func (it *GatewayEVMRoleRevokedIterator) 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 +// GatewayEVMRoleRevoked represents a RoleRevoked event raised by the GatewayEVM contract. +type GatewayEVMRoleRevoked struct { + Role [32]byte + Account common.Address + Sender common.Address + Raw types.Log // Blockchain specific contextual infos } -// FilterReverted is a free log retrieval operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. +// FilterRoleRevoked is a free log retrieval operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. // -// Solidity: event Reverted(address indexed destination, uint256 value, bytes data) -func (_GatewayEVM *GatewayEVMFilterer) FilterReverted(opts *bind.FilterOpts, destination []common.Address) (*GatewayEVMRevertedIterator, error) { +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_GatewayEVM *GatewayEVMFilterer) FilterRoleRevoked(opts *bind.FilterOpts, role [][32]byte, account []common.Address, sender []common.Address) (*GatewayEVMRoleRevokedIterator, error) { - var destinationRule []interface{} - for _, destinationItem := range destination { - destinationRule = append(destinationRule, destinationItem) + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) } - logs, sub, err := _GatewayEVM.contract.FilterLogs(opts, "Reverted", destinationRule) + logs, sub, err := _GatewayEVM.contract.FilterLogs(opts, "RoleRevoked", roleRule, accountRule, senderRule) if err != nil { return nil, err } - return &GatewayEVMRevertedIterator{contract: _GatewayEVM.contract, event: "Reverted", logs: logs, sub: sub}, nil + return &GatewayEVMRoleRevokedIterator{contract: _GatewayEVM.contract, event: "RoleRevoked", logs: logs, sub: sub}, nil } -// WatchReverted is a free log subscription operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. +// WatchRoleRevoked is a free log subscription operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. // -// 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) { +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_GatewayEVM *GatewayEVMFilterer) WatchRoleRevoked(opts *bind.WatchOpts, sink chan<- *GatewayEVMRoleRevoked, role [][32]byte, account []common.Address, sender []common.Address) (event.Subscription, error) { - var destinationRule []interface{} - for _, destinationItem := range destination { - destinationRule = append(destinationRule, destinationItem) + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) } - logs, sub, err := _GatewayEVM.contract.WatchLogs(opts, "Reverted", destinationRule) + logs, sub, err := _GatewayEVM.contract.WatchLogs(opts, "RoleRevoked", roleRule, accountRule, senderRule) if err != nil { return nil, err } @@ -2013,8 +2646,8 @@ func (_GatewayEVM *GatewayEVMFilterer) WatchReverted(opts *bind.WatchOpts, sink 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 { + event := new(GatewayEVMRoleRevoked) + if err := _GatewayEVM.contract.UnpackLog(event, "RoleRevoked", log); err != nil { return err } event.Raw = log @@ -2035,21 +2668,21 @@ func (_GatewayEVM *GatewayEVMFilterer) WatchReverted(opts *bind.WatchOpts, sink }), nil } -// ParseReverted is a log parse operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. +// ParseRoleRevoked is a log parse operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. // -// 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 { +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_GatewayEVM *GatewayEVMFilterer) ParseRoleRevoked(log types.Log) (*GatewayEVMRoleRevoked, error) { + event := new(GatewayEVMRoleRevoked) + if err := _GatewayEVM.contract.UnpackLog(event, "RoleRevoked", 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 +// GatewayEVMUnpausedIterator is returned from FilterUnpaused and is used to iterate over the raw logs and unpacked data for Unpaused events raised by the GatewayEVM contract. +type GatewayEVMUnpausedIterator struct { + Event *GatewayEVMUnpaused // Event containing the contract specifics and raw log contract *bind.BoundContract // Generic contract to use for unpacking event data event string // Event name to use for unpacking event data @@ -2063,7 +2696,7 @@ type GatewayEVMRevertedWithERC20Iterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more 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 { +func (it *GatewayEVMUnpausedIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -2072,7 +2705,7 @@ func (it *GatewayEVMRevertedWithERC20Iterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(GatewayEVMRevertedWithERC20) + it.Event = new(GatewayEVMUnpaused) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -2087,7 +2720,7 @@ func (it *GatewayEVMRevertedWithERC20Iterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(GatewayEVMRevertedWithERC20) + it.Event = new(GatewayEVMUnpaused) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -2103,62 +2736,41 @@ func (it *GatewayEVMRevertedWithERC20Iterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *GatewayEVMRevertedWithERC20Iterator) Error() error { +func (it *GatewayEVMUnpausedIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *GatewayEVMRevertedWithERC20Iterator) Close() error { +func (it *GatewayEVMUnpausedIterator) 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 +// GatewayEVMUnpaused represents a Unpaused event raised by the GatewayEVM contract. +type GatewayEVMUnpaused struct { + Account common.Address + Raw types.Log // Blockchain specific contextual infos } -// FilterRevertedWithERC20 is a free log retrieval operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. +// FilterUnpaused is a free log retrieval operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. // -// 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) - } +// Solidity: event Unpaused(address account) +func (_GatewayEVM *GatewayEVMFilterer) FilterUnpaused(opts *bind.FilterOpts) (*GatewayEVMUnpausedIterator, error) { - logs, sub, err := _GatewayEVM.contract.FilterLogs(opts, "RevertedWithERC20", tokenRule, toRule) + logs, sub, err := _GatewayEVM.contract.FilterLogs(opts, "Unpaused") if err != nil { return nil, err } - return &GatewayEVMRevertedWithERC20Iterator{contract: _GatewayEVM.contract, event: "RevertedWithERC20", logs: logs, sub: sub}, nil + return &GatewayEVMUnpausedIterator{contract: _GatewayEVM.contract, event: "Unpaused", logs: logs, sub: sub}, nil } -// WatchRevertedWithERC20 is a free log subscription operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. +// WatchUnpaused is a free log subscription operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. // -// 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) - } +// Solidity: event Unpaused(address account) +func (_GatewayEVM *GatewayEVMFilterer) WatchUnpaused(opts *bind.WatchOpts, sink chan<- *GatewayEVMUnpaused) (event.Subscription, error) { - logs, sub, err := _GatewayEVM.contract.WatchLogs(opts, "RevertedWithERC20", tokenRule, toRule) + logs, sub, err := _GatewayEVM.contract.WatchLogs(opts, "Unpaused") if err != nil { return nil, err } @@ -2168,8 +2780,8 @@ func (_GatewayEVM *GatewayEVMFilterer) WatchRevertedWithERC20(opts *bind.WatchOp 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 { + event := new(GatewayEVMUnpaused) + if err := _GatewayEVM.contract.UnpackLog(event, "Unpaused", log); err != nil { return err } event.Raw = log @@ -2190,12 +2802,12 @@ func (_GatewayEVM *GatewayEVMFilterer) WatchRevertedWithERC20(opts *bind.WatchOp }), nil } -// ParseRevertedWithERC20 is a log parse operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. +// ParseUnpaused is a log parse operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. // -// 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 { +// Solidity: event Unpaused(address account) +func (_GatewayEVM *GatewayEVMFilterer) ParseUnpaused(log types.Log) (*GatewayEVMUnpaused, error) { + event := new(GatewayEVMUnpaused) + if err := _GatewayEVM.contract.UnpackLog(event, "Unpaused", log); err != nil { return nil, err } event.Raw = log diff --git a/v2/pkg/gatewayevm.t.sol/gatewayevminboundtest.go b/v2/pkg/gatewayevm.t.sol/gatewayevminboundtest.go new file mode 100644 index 00000000..af1ce1ad --- /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\":\"ZeroAddress\",\"inputs\":[]}]", + Bin: "0x6080604052600c8054600160ff199182168117909255601f80549091169091179055620f4240602855348015603357600080fd5b5061b7c8806100436000396000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c8063916a17c6116100d8578063ba414fa61161008c578063e20c9f7111610066578063e20c9f711461027b578063f96c02df14610283578063fa7626d41461028b57600080fd5b8063ba414fa614610253578063bb93f11e1461026b578063c13d738f1461027357600080fd5b8063aa030c1c116100bd578063aa030c1c1461023b578063b0464fdc14610243578063b5508aa91461024b57600080fd5b8063916a17c61461021e5780639fd1e5971461023357600080fd5b806330f7c04f1161013a5780636459542a116101145780636459542a146101ec57806366d9a9a0146101f457806385226c811461020957600080fd5b806330f7c04f146101d45780633e5e3c23146101dc5780633f7286f4146101e457600080fd5b80630a9254e41161016b5780630a9254e4146101995780631ed7831c146101a15780632ade3880146101bf57600080fd5b806306978ca3146101875780630724d8e314610191575b600080fd5b61018f610298565b005b61018f6103c5565b61018f61057c565b6101a9610cb3565b6040516101b691906168aa565b60405180910390f35b6101c7610d15565b6040516101b69190616946565b61018f610e57565b6101a96112c4565b6101a9611324565b61018f611384565b6101fc611781565b6040516101b69190616aac565b610211611903565b6040516101b69190616b4a565b6102266119d3565b6040516101b69190616bc1565b61018f611ace565b61018f611cea565b610226611ecf565b610211611fca565b61025b61209a565b60405190151581526020016101b6565b61018f61216e565b61018f612308565b6101a96124b7565b61018f612517565b601f5461025b9060ff1681565b6040517ff28dceb300000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e73756666696369656e74455448416d6f756e7400000000000000000000006044820152600090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063f28dceb390606401600060405180830381600087803b15801561032e57600080fd5b505af1158015610342573d6000803e3d6000fd5b50506020546026546040517ff340fa010000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201529116925063f340fa01915083906024016000604051808303818588803b1580156103a957600080fd5b505af11580156103bd573d6000803e3d6000fd5b505050505050565b6027546020546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039182166084820152620186a092919091163190737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b15801561046157600080fd5b505af1158015610475573d6000803e3d6000fd5b505060265460255460408051878152600060208201819052606082840181905282015290516001600160a01b0393841695509290911692507f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4919081900360800190a36020546026546040517ff340fa010000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015291169063f340fa019084906024016000604051808303818588803b15801561053b57600080fd5b505af115801561054f573d6000803e3d6000fd5b50506027546001600160a01b0316319250610577915061057190508484616c87565b826126b9565b505050565b602580547fffffffffffffffffffffffff00000000000000000000000000000000000000009081163017909155602680548216611234179055602780549091166156781790556040516105ce906167ca565b60408082526004908201527f746573740000000000000000000000000000000000000000000000000000000060608201526080602082018190526003908201527f54544b000000000000000000000000000000000000000000000000000000000060a082015260c001604051809103906000f080158015610653573d6000803e3d6000fd5b50602380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055604051610698906167ca565b604080825260049082018190527f7a6574610000000000000000000000000000000000000000000000000000000060608301526080602083018190528201527f5a4554410000000000000000000000000000000000000000000000000000000060a082015260c001604051809103906000f08015801561071c573d6000803e3d6000fd5b50602480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283169081178255604080518082018252600e81527f4761746577617945564d2e736f6c00000000000000000000000000000000000060208201526027546025549251908616948101949094526044840192909252909216606482015261080d919060840160408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc0c53b8b00000000000000000000000000000000000000000000000000000000179052612738565b601f80547fffffffffffffffffffffff0000000000000000000000000000000000000000ff166101006001600160a01b0393841681029190911791829055602080549190920483167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117909155602754602554604051929391821692911690610899906167d7565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103906000f0801580156108d5573d6000803e3d6000fd5b50602180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283161790556020546024546027546025546040519385169492831693918316921690610930906167e4565b6001600160a01b039485168152928416602084015290831660408301529091166060820152608001604051809103906000f080158015610974573d6000803e3d6000fd5b50602280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283161790556027546040517fc88a5e6d00000000000000000000000000000000000000000000000000000000815291166004820152670de0b6b3a76400006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d90604401600060405180830381600087803b158015610a2057600080fd5b505af1158015610a34573d6000803e3d6000fd5b50506025546040517f06447d560000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d569150602401600060405180830381600087803b158015610aaa57600080fd5b505af1158015610abe573d6000803e3d6000fd5b50506020546021546040517fae7a3a6f0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201529116925063ae7a3a6f9150602401600060405180830381600087803b158015610b2457600080fd5b505af1158015610b38573d6000803e3d6000fd5b50506020546022546040517f10188aef0000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152911692506310188aef9150602401600060405180830381600087803b158015610b9e57600080fd5b505af1158015610bb2573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610c1457600080fd5b505af1158015610c28573d6000803e3d6000fd5b50506023546025546028546040517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b0392831660048201526024810191909152911692506340c10f199150604401600060405180830381600087803b158015610c9957600080fd5b505af1158015610cad573d6000803e3d6000fd5b50505050565b60606016805480602002602001604051908101604052809291908181526020018280548015610d0b57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ced575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020016000905b82821015610e4e57600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b82821015610e37578382906000526020600020018054610daa90616c9a565b80601f0160208091040260200160405190810160405280929190818152602001828054610dd690616c9a565b8015610e235780601f10610df857610100808354040283529160200191610e23565b820191906000526020600020905b815481529060010190602001808311610e0657829003601f168201915b505050505081526020019060010190610d8b565b505050508152505081526020019060010190610d39565b50505050905090565b6023546021546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152620186a09260009216906370a0823190602401602060405180830381865afa158015610ec3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee79190616ce7565b9050610ef46000826126b9565b6026546040516001600160a01b03909116602482015260009060440160408051601f19818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f84fae76000000000000000000000000000000000000000000000000000000000179052602354905491517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b03928316600482015260248101879052929350169063095ea7b3906044016020604051808303816000875af1158015610fd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffb9190616d00565b506020546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b15801561108a57600080fd5b505af115801561109e573d6000803e3d6000fd5b50506026546025546023546040516001600160a01b03938416955091831693507f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4926110f1928992909116908790616d22565b60405180910390a36020546026546023546040517f8c6f037f0000000000000000000000000000000000000000000000000000000081526001600160a01b0393841693638c6f037f9361115293908216928992909116908790600401616d4a565b600060405180830381600087803b15801561116c57600080fd5b505af1158015611180573d6000803e3d6000fd5b50506023546021546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260009450911691506370a0823190602401602060405180830381865afa1580156111ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112109190616ce7565b905061121c84826126b9565b6023546025546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260009291909116906370a0823190602401602060405180830381865afa158015611286573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112aa9190616ce7565b90506112bd856028546105719190616d81565b5050505050565b60606018805480602002602001604051908101604052809291908181526020018280548015610d0b576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610ced575050505050905090565b60606017805480602002602001604051908101604052809291908181526020018280548015610d0b576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610ced575050505050905090565b6023546021546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152620186a09260009216906370a0823190602401602060405180830381865afa1580156113f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114149190616ce7565b90506114216000826126b9565b6023546020546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201526024810185905291169063095ea7b3906044016020604051808303816000875af115801561148f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b39190616d00565b506020546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b15801561154257600080fd5b505af1158015611556573d6000803e3d6000fd5b5050602654602554602354604080518881526001600160a01b039283166020820152606081830181905260009082015290519382169550911692507f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4919081900360800190a36020546026546023546040517ff45346dc0000000000000000000000000000000000000000000000000000000081526001600160a01b03928316600482015260248101869052908216604482015291169063f45346dc90606401600060405180830381600087803b15801561163057600080fd5b505af1158015611644573d6000803e3d6000fd5b50506023546021546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260009450911691506370a0823190602401602060405180830381865afa1580156116b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d49190616ce7565b90506116e083826126b9565b6023546025546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260009291909116906370a0823190602401602060405180830381865afa15801561174a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176e9190616ce7565b9050610cad846028546105719190616d81565b6060601b805480602002602001604051908101604052809291908181526020016000905b82821015610e4e57838290600052602060002090600202016040518060400160405290816000820180546117d890616c9a565b80601f016020809104026020016040519081016040528092919081815260200182805461180490616c9a565b80156118515780601f1061182657610100808354040283529160200191611851565b820191906000526020600020905b81548152906001019060200180831161183457829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156118eb57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116118985790505b505050505081525050815260200190600101906117a5565b6060601a805480602002602001604051908101604052809291908181526020016000905b82821015610e4e57838290600052602060002001805461194690616c9a565b80601f016020809104026020016040519081016040528092919081815260200182805461197290616c9a565b80156119bf5780601f10611994576101008083540402835291602001916119bf565b820191906000526020600020905b8154815290600101906020018083116119a257829003601f168201915b505050505081526020019060010190611927565b6060601d805480602002602001604051908101604052809291908181526020016000905b82821015610e4e5760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015611ab657602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411611a635790505b505050505081525050815260200190600101906119f7565b6027546026546040516001600160a01b039182166024820152620186a09291909116319060009060440160408051601f19818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f84fae760000000000000000000000000000000000000000000000000000000001790525490517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b158015611bdf57600080fd5b505af1158015611bf3573d6000803e3d6000fd5b50506026546025546040516001600160a01b039283169450911691507f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a490611c419087906000908790616d22565b60405180910390a36020546026546040517f29c59b5d0000000000000000000000000000000000000000000000000000000081526001600160a01b03928316926329c59b5d928792611c9b92909116908690600401616d94565b6000604051808303818588803b158015611cb457600080fd5b505af1158015611cc8573d6000803e3d6000fd5b50506027546001600160a01b0316319250610cad915061057190508585616c87565b6026546040516001600160a01b03909116602482015260009060440160408051601f19818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f84fae760000000000000000000000000000000000000000000000000000000001790525490517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b158015611ded57600080fd5b505af1158015611e01573d6000803e3d6000fd5b50506026546025546040516001600160a01b039283169450911691507f2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde390611e4a908590616db6565b60405180910390a36020546026546040517f1b8b921d0000000000000000000000000000000000000000000000000000000081526001600160a01b0392831692631b8b921d92611ea1929116908590600401616d94565b600060405180830381600087803b158015611ebb57600080fd5b505af11580156112bd573d6000803e3d6000fd5b6060601c805480602002602001604051908101604052809291908181526020016000905b82821015610e4e5760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015611fb257602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411611f5f5790505b50505050508152505081526020019060010190611ef3565b60606019805480602002602001604051908101604052809291908181526020016000905b82821015610e4e57838290600052602060002001805461200d90616c9a565b80601f016020809104026020016040519081016040528092919081815260200182805461203990616c9a565b80156120865780601f1061205b57610100808354040283529160200191612086565b820191906000526020600020905b81548152906001019060200180831161206957829003601f168201915b505050505081526020019060010190611fee565b60085460009060ff16156120b2575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c65640000000000000000000000000000000000000000000000000000602483015260009163667f9d7090604401602060405180830381865afa158015612143573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121679190616ce7565b1415905090565b6026546040516001600160a01b039091166024820152600090819060440160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f84fae76000000000000000000000000000000000000000000000000000000000179052517ff28dceb3000000000000000000000000000000000000000000000000000000008152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063f28dceb3906122659060040160208082526017908201527f496e73756666696369656e744552433230416d6f756e74000000000000000000604082015260600190565b600060405180830381600087803b15801561227f57600080fd5b505af1158015612293573d6000803e3d6000fd5b50506020546026546023546040517f8c6f037f0000000000000000000000000000000000000000000000000000000081526001600160a01b039384169550638c6f037f94506122ee9392831692889216908790600401616d4a565b600060405180830381600087803b1580156103a957600080fd5b6026546040516001600160a01b039091166024820152600090819060440160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f84fae76000000000000000000000000000000000000000000000000000000000179052517ff28dceb3000000000000000000000000000000000000000000000000000000008152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063f28dceb3906123ff9060040160208082526015908201527f496e73756666696369656e74455448416d6f756e740000000000000000000000604082015260600190565b600060405180830381600087803b15801561241957600080fd5b505af115801561242d573d6000803e3d6000fd5b50506020546026546040517f29c59b5d0000000000000000000000000000000000000000000000000000000081526001600160a01b0392831694506329c59b5d935086926124819216908690600401616d94565b6000604051808303818588803b15801561249a57600080fd5b505af11580156124ae573d6000803e3d6000fd5b50505050505050565b60606015805480602002602001604051908101604052809291908181526020018280548015610d0b576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610ced575050505050905090565b6023546020546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260006024820181905292919091169063095ea7b3906044016020604051808303816000875af115801561258a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ae9190616d00565b506040517ff28dceb300000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f496e73756666696369656e744552433230416d6f756e740000000000000000006044820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063f28dceb390606401600060405180830381600087803b15801561264257600080fd5b505af1158015612656573d6000803e3d6000fd5b50506020546026546023546040517ff45346dc0000000000000000000000000000000000000000000000000000000081526001600160a01b0392831660048201526024810187905290821660448201529116925063f45346dc9150606401611ea1565b6040517f98296c540000000000000000000000000000000000000000000000000000000081526004810183905260248101829052737109709ecfa91a80626ff3989d68f67f5b1dd12d906398296c549060440160006040518083038186803b15801561272457600080fd5b505afa1580156103bd573d6000803e3d6000fd5b60006127426167f1565b61274d848483612757565b9150505b92915050565b60008061276485846127d2565b90506127c76040518060400160405280601d81526020017f4552433139363750726f78792e736f6c3a4552433139363750726f787900000081525082866040516020016127b2929190616d94565b604051602081830303815290604052856127de565b9150505b9392505050565b60006127cb838361280c565b60c08101515160009015612802576127fb84848460c00151612827565b90506127cb565b6127fb84846129cd565b60006128188383612ab8565b6127cb838360200151846127de565b600080612832612ac8565b905060006128408683612b9b565b905060006128578260600151836020015185613041565b9050600061286783838989613253565b90506000612874826140d0565b602081015181519192509060030b156128e75789826040015160405160200161289e929190616dc9565b60408051601f19818403018152908290527f08c379a00000000000000000000000000000000000000000000000000000000082526128de91600401616db6565b60405180910390fd5b600061292a6040518060400160405280601581526020017f4465706c6f79656420746f20616464726573733a20000000000000000000000081525083600161429f565b6040517fc6ce059d000000000000000000000000000000000000000000000000000000008152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c6ce059d9061297d908490600401616db6565b602060405180830381865afa15801561299a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129be9190616e4a565b9b9a5050505050505050505050565b6040517f8d1cc9250000000000000000000000000000000000000000000000000000000081526000908190737109709ecfa91a80626ff3989d68f67f5b1dd12d90638d1cc92590612a22908790600401616db6565b600060405180830381865afa158015612a3f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612a679190810190616f5b565b90506000612a958285604051602001612a81929190616f90565b60405160208183030381529060405261449f565b90506001600160a01b03811661274d57848460405160200161289e929190616fbf565b612ac4828260006144b2565b5050565b604080518082018252600381527f6f75740000000000000000000000000000000000000000000000000000000000602082015290517fd145736c000000000000000000000000000000000000000000000000000000008152606091737109709ecfa91a80626ff3989d68f67f5b1dd12d91829063d145736c90612b4f90849060040161706a565b600060405180830381865afa158015612b6c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612b9491908101906170b1565b9250505090565b612bcd6040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d9050612c186040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b612c21856145b5565b60208201526000612c318661499a565b90506000836001600160a01b031663d930a0e66040518163ffffffff1660e01b8152600401600060405180830381865afa158015612c73573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612c9b91908101906170b1565b86838560200151604051602001612cb594939291906170fa565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291506000906001600160a01b038616906360f9bb1190612d0d908590600401616db6565b600060405180830381865afa158015612d2a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612d5291908101906170b1565b6040517fdb4235f60000000000000000000000000000000000000000000000000000000081529091506001600160a01b0386169063db4235f690612d9a9084906004016171fe565b602060405180830381865afa158015612db7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ddb9190616d00565b612df0578160405160200161289e9190617250565b6040517f49c4fac80000000000000000000000000000000000000000000000000000000081526001600160a01b038616906349c4fac890612e359084906004016172e2565b600060405180830381865afa158015612e52573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612e7a91908101906170b1565b84526040517fdb4235f60000000000000000000000000000000000000000000000000000000081526001600160a01b0386169063db4235f690612ec1908490600401617334565b602060405180830381865afa158015612ede573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f029190616d00565b15612f97576040517f49c4fac80000000000000000000000000000000000000000000000000000000081526001600160a01b038616906349c4fac890612f4c908490600401617334565b600060405180830381865afa158015612f69573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612f9191908101906170b1565b60408501525b846001600160a01b03166349c4fac8828660000151604051602001612fbc9190617386565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401612fe89291906173f2565b600060405180830381865afa158015613005573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261302d91908101906170b1565b606085015250608083015250949350505050565b60408051600480825260a0820190925260609160009190816020015b606081526020019060019003908161305d5790505090506040518060400160405280600481526020017f6772657000000000000000000000000000000000000000000000000000000000815250816000815181106130bd576130bd617417565b60200260200101819052506040518060400160405280600381526020017f2d726c00000000000000000000000000000000000000000000000000000000008152508160018151811061311157613111617417565b60200260200101819052508460405160200161312d9190617446565b6040516020818303038152906040528160028151811061314f5761314f617417565b60200260200101819052508260405160200161316b91906174b2565b6040516020818303038152906040528160038151811061318d5761318d617417565b602002602001018190525060006131a3826140d0565b602080820151604080518082018252600581527f2e6a736f6e00000000000000000000000000000000000000000000000000000081850190815282518084018452600080825290860152825180840190935290518252928101929092529192506132349060408051808201825260008082526020918201528151808301909252845182528085019082015290614c1d565b613249578560405160200161289e91906174f3565b9695505050505050565b60a0810151604080518082018252600080825260209182015281518083019092528251808352928101910152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d90156132a3565b511590565b6134175782602001511561335f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605860248201527f54686520606c6963656e73655479706560206f7074696f6e2063616e6e6f742060448201527f62652075736564207768656e207468652060736b6970566572696679536f757260648201527f6365436f646560206f7074696f6e206973206074727565600000000000000000608482015260a4016128de565b8260c0015115613417576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605360248201527f54686520606c6963656e73655479706560206f7074696f6e2063616e6e6f742060448201527f62652075736564207768656e207468652060736b69704c6963656e736554797060648201527f6560206f7074696f6e2069732060747275656000000000000000000000000000608482015260a4016128de565b6040805160ff8082526120008201909252600091816020015b606081526020019060019003908161343057905050905060006040518060400160405280600381526020017f6e7078000000000000000000000000000000000000000000000000000000000081525082828061348b90617584565b935060ff16815181106134a0576134a0617417565b60200260200101819052506040518060400160405280600d81526020017f302e302e312d616c7068612e37000000000000000000000000000000000000008152506040516020016134f191906175a3565b60405160208183030381529060405282828061350c90617584565b935060ff168151811061352157613521617417565b60200260200101819052506040518060400160405280600681526020017f6465706c6f79000000000000000000000000000000000000000000000000000081525082828061356e90617584565b935060ff168151811061358357613583617417565b60200260200101819052506040518060400160405280600e81526020017f2d2d636f6e74726163744e616d650000000000000000000000000000000000008152508282806135d090617584565b935060ff16815181106135e5576135e5617417565b6020026020010181905250876020015182828061360190617584565b935060ff168151811061361657613616617417565b60200260200101819052506040518060400160405280600e81526020017f2d2d636f6e74726163745061746800000000000000000000000000000000000081525082828061366390617584565b935060ff168151811061367857613678617417565b60209081029190910101528751828261369081617584565b935060ff16815181106136a5576136a5617417565b60200260200101819052506040518060400160405280600981526020017f2d2d636861696e496400000000000000000000000000000000000000000000008152508282806136f290617584565b935060ff168151811061370757613707617417565b602002602001018190525061371b46614c7e565b828261372681617584565b935060ff168151811061373b5761373b617417565b60200260200101819052506040518060400160405280600f81526020017f2d2d6275696c64496e666f46696c65000000000000000000000000000000000081525082828061378890617584565b935060ff168151811061379d5761379d617417565b6020026020010181905250868282806137b590617584565b935060ff16815181106137ca576137ca617417565b60209081029190910101528551156138f15760408051808201909152601581527f2d2d636f6e7374727563746f7242797465636f646500000000000000000000006020820152828261381b81617584565b935060ff168151811061383057613830617417565b60209081029190910101526040517f71aad10d0000000000000000000000000000000000000000000000000000000081526001600160a01b038416906371aad10d90613880908990600401616db6565b600060405180830381865afa15801561389d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526138c591908101906170b1565b82826138d081617584565b935060ff16815181106138e5576138e5617417565b60200260200101819052505b8460200151156139c15760408051808201909152601281527f2d2d766572696679536f75726365436f646500000000000000000000000000006020820152828261393a81617584565b935060ff168151811061394f5761394f617417565b60200260200101819052506040518060400160405280600581526020017f66616c736500000000000000000000000000000000000000000000000000000081525082828061399c90617584565b935060ff16815181106139b1576139b1617417565b6020026020010181905250613b88565b6139f961329e8660a0015160408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b613a8c5760408051808201909152600d81527f2d2d6c6963656e7365547970650000000000000000000000000000000000000060208201528282613a3c81617584565b935060ff1681518110613a5157613a51617417565b60200260200101819052508460a00151604051602001613a719190617446565b60405160208183030381529060405282828061399c90617584565b8460c00151158015613acf575060408089015181518083018352600080825260209182015282518084019093528151835290810190820152613acd90511590565b155b15613b885760408051808201909152600d81527f2d2d6c6963656e7365547970650000000000000000000000000000000000000060208201528282613b1381617584565b935060ff1681518110613b2857613b28617417565b6020026020010181905250613b3c88614d1e565b604051602001613b4c9190617446565b604051602081830303815290604052828280613b6790617584565b935060ff1681518110613b7c57613b7c617417565b60200260200101819052505b60408086015181518083018352600080825260209182015282518084019093528151835290810190820152613bbc90511590565b613c515760408051808201909152600b81527f2d2d72656c61796572496400000000000000000000000000000000000000000060208201528282613bff81617584565b935060ff1681518110613c1457613c14617417565b60200260200101819052508460400151828280613c3090617584565b935060ff1681518110613c4557613c45617417565b60200260200101819052505b606085015115613d725760408051808201909152600681527f2d2d73616c74000000000000000000000000000000000000000000000000000060208201528282613c9a81617584565b935060ff1681518110613caf57613caf617417565b602090810291909101015260608501516040517fb11a19e800000000000000000000000000000000000000000000000000000000815260048101919091526001600160a01b0384169063b11a19e890602401600060405180830381865afa158015613d1e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613d4691908101906170b1565b8282613d5181617584565b935060ff1681518110613d6657613d66617417565b60200260200101819052505b60e08501515115613e195760408051808201909152600a81527f2d2d6761734c696d69740000000000000000000000000000000000000000000060208201528282613dbc81617584565b935060ff1681518110613dd157613dd1617417565b6020026020010181905250613ded8560e0015160000151614c7e565b8282613df881617584565b935060ff1681518110613e0d57613e0d617417565b60200260200101819052505b60e08501516020015115613ec35760408051808201909152600a81527f2d2d67617350726963650000000000000000000000000000000000000000000060208201528282613e6681617584565b935060ff1681518110613e7b57613e7b617417565b6020026020010181905250613e978560e0015160200151614c7e565b8282613ea281617584565b935060ff1681518110613eb757613eb7617417565b60200260200101819052505b60e08501516040015115613f6d5760408051808201909152600e81527f2d2d6d617846656550657247617300000000000000000000000000000000000060208201528282613f1081617584565b935060ff1681518110613f2557613f25617417565b6020026020010181905250613f418560e0015160400151614c7e565b8282613f4c81617584565b935060ff1681518110613f6157613f61617417565b60200260200101819052505b60e085015160600151156140175760408051808201909152601681527f2d2d6d61785072696f726974794665655065724761730000000000000000000060208201528282613fba81617584565b935060ff1681518110613fcf57613fcf617417565b6020026020010181905250613feb8560e0015160600151614c7e565b8282613ff681617584565b935060ff168151811061400b5761400b617417565b60200260200101819052505b60008160ff1667ffffffffffffffff81111561403557614035616e73565b60405190808252806020026020018201604052801561406857816020015b60608152602001906001900390816140535790505b50905060005b8260ff168160ff1610156140c157838160ff168151811061409157614091617417565b6020026020010151828260ff16815181106140ae576140ae617417565b602090810291909101015260010161406e565b5093505050505b949350505050565b6140f76040518060600160405280600060030b815260200160608152602001606081525090565b60408051808201825260048082527f6261736800000000000000000000000000000000000000000000000000000000602083015291517fd145736c000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d92600091849163d145736c9161417d9186910161760e565b600060405180830381865afa15801561419a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526141c291908101906170b1565b905060006141d0868361580d565b90506000846001600160a01b031663f45c1ce7836040518263ffffffff1660e01b81526004016142009190616b4a565b6000604051808303816000875af115801561421f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526142479190810190617655565b805190915060030b158015906142605750602081015151155b801561426f5750604081015151155b15613249578160008151811061428757614287617417565b602002602001015160405160200161289e919061770b565b606060006142d48560408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b60408051808201825260008082526020918201528151808301909252865182528087019082015290915061430b9082905b90615962565b15614468576000614388826143828461437c61434e8a60408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b6040805180820182526000808252602091820152815180830190925282518252918201519181019190915290565b90615989565b906159eb565b604080518082018252600181527f0a00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201529091506143ec908290615962565b1561445657604080518082018252600181527f0a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614453905b8290615a70565b90505b61445f81615a96565b925050506127cb565b821561448157848460405160200161289e9291906178f7565b50506040805160208101909152600081526127cb565b509392505050565b6000808251602084016000f09392505050565b8160a00151156144c157505050565b60006144ce848484615aff565b905060006144db826140d0565b602081015181519192509060030b1580156145775750604080518082018252600781527f53554343455353000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261457790604080518082018252600080825260209182015281518083019092528451825280850190820152614305565b1561458457505050505050565b604082015151156145a457816040015160405160200161289e919061799e565b8060405160200161289e91906179fc565b606060006145ea8360408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600481527f2e736f6c000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015290915061464f905b8290614c1d565b156146be57604080518082018252600481527f2e736f6c00000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526127cb906146b990839061609a565b615a96565b604080518082018252600181527f3a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614720905b8290616124565b6001036147ed57604080518082018252600181527f3a00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526147869061444c565b50604080518082018252600181527f3a00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526127cb906146b9905b8390615a70565b604080518082018252600581527f2e6a736f6e0000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261484c90614648565b1561498357604080518082018252600181527f2f000000000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201819052845180860190955292518452830152906148b49083906161be565b9050600081600183516148c79190616d81565b815181106148d7576148d7617417565b6020026020010151905061497a6146b961494d6040518060400160405280600581526020017f2e6a736f6e00000000000000000000000000000000000000000000000000000081525060408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b6040805180820182526000808252602091820152815180830190925285518252808601908201529061609a565b95945050505050565b8260405160200161289e9190617a67565b50919050565b606060006149cf8360408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600481527f2e736f6c0000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152909150614a3190614648565b15614a3f576127cb81615a96565b604080518082018252600181527f3a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614a9e90614719565b600103614b0857604080518082018252600181527f3a00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526127cb906146b9906147e6565b604080518082018252600581527f2e6a736f6e00000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614b6790614648565b1561498357604080518082018252600181527f2f00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820181905284518086019095529251845283015290614bcf9083906161be565b9050600181511115614c0b578060028251614bea9190616d81565b81518110614bfa57614bfa617417565b602002602001015192505050919050565b508260405160200161289e9190617a67565b805182516000911115614c3257506000612751565b81518351602085015160009291614c4891616c87565b614c529190616d81565b905082602001518103614c69576001915050612751565b82516020840151819020912014905092915050565b60606000614c8b83616263565b600101905060008167ffffffffffffffff811115614cab57614cab616e73565b6040519080825280601f01601f191660200182016040528015614cd5576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084614cdf57509392505050565b604081810151815180830183526000808252602091820181905283518085018552835181529282018383015283518085018552600a81527f554e4c4943454e5345440000000000000000000000000000000000000000000081840190815285518087018752838152840192909252845180860190955251845290830152606091614daa905b8290616345565b15614dea57505060408051808201909152600481527f4e6f6e65000000000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600981527f556e6c6963656e7365000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614e4990614da3565b15614e8957505060408051808201909152600981527f556e6c6963656e736500000000000000000000000000000000000000000000006020820152919050565b604080518082018252600381527f4d4954000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614ee890614da3565b15614f2857505060408051808201909152600381527f4d495400000000000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f47504c2d322e302d6f6e6c79000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614f8790614da3565b80614fec5750604080518082018252601081527f47504c2d322e302d6f722d6c617465720000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614fec90614da3565b1561502c57505060408051808201909152600981527f474e552047504c763200000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f47504c2d332e302d6f6e6c7900000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261508b90614da3565b806150f05750604080518082018252601081527f47504c2d332e302d6f722d6c6174657200000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526150f090614da3565b1561513057505060408051808201909152600981527f474e552047504c763300000000000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4c47504c2d322e312d6f6e6c79000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261518f90614da3565b806151f45750604080518082018252601181527f4c47504c2d322e312d6f722d6c61746572000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526151f490614da3565b1561523457505060408051808201909152600c81527f474e55204c47504c76322e3100000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4c47504c2d332e302d6f6e6c79000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261529390614da3565b806152f85750604080518082018252601181527f4c47504c2d332e302d6f722d6c61746572000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526152f890614da3565b1561533857505060408051808201909152600a81527f474e55204c47504c7633000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f4253442d322d436c6175736500000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261539790614da3565b156153d757505060408051808201909152600c81527f4253442d322d436c6175736500000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f4253442d332d436c6175736500000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261543690614da3565b1561547657505060408051808201909152600c81527f4253442d332d436c6175736500000000000000000000000000000000000000006020820152919050565b604080518082018252600781527f4d504c2d322e3000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526154d590614da3565b1561551557505060408051808201909152600781527f4d504c2d322e30000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600781527f4f534c2d332e30000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261557490614da3565b156155b457505060408051808201909152600781527f4f534c2d332e30000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600a81527f4170616368652d322e30000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261561390614da3565b1561565357505060408051808201909152600a81527f4170616368652d322e30000000000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4147504c2d332e302d6f6e6c7900000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526156b290614da3565b806157175750604080518082018252601181527f4147504c2d332e302d6f722d6c617465720000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261571790614da3565b1561575757505060408051808201909152600a81527f474e55204147504c7633000000000000000000000000000000000000000000006020820152919050565b604080518082018252600881527f4255534c2d312e31000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526157b690614da3565b156157f657505060408051808201909152600781527f42534c20312e31000000000000000000000000000000000000000000000000006020820152919050565b6040808401518451915161289e9290602001617b45565b60608060005b8451811015615898578185828151811061582f5761582f617417565b6020026020010151604051602001615848929190616f90565b6040516020818303038152906040529150600185516158679190616d81565b8114615890578160405160200161587e9190617cae565b60405160208183030381529060405291505b600101615813565b5060408051600380825260808201909252600091816020015b60608152602001906001900390816158b157905050905083816000815181106158dc576158dc617417565b60200260200101819052506040518060400160405280600281526020017f2d630000000000000000000000000000000000000000000000000000000000008152508160018151811061593057615930617417565b6020026020010181905250818160028151811061594f5761594f617417565b6020908102919091010152949350505050565b60208083015183518351928401516000936159809291849190616359565b14159392505050565b604080518082019091526000808252602082015260006159bb846000015185602001518560000151866020015161646a565b90508360200151816159cd9190616d81565b845185906159dc908390616d81565b90525060208401525090919050565b6040805180820190915260008082526020820152815183511015615a10575081612751565b6020808301519084015160019114615a375750815160208481015190840151829020919020145b8015615a6857825184518590615a4e908390616d81565b9052508251602085018051615a64908390616c87565b9052505b509192915050565b6040805180820190915260008082526020820152615a8f83838361658a565b5092915050565b60606000826000015167ffffffffffffffff811115615ab757615ab7616e73565b6040519080825280601f01601f191660200182016040528015615ae1576020820181803683370190505b5090506000602082019050615a8f8185602001518660000151616635565b60606000615b0b612ac8565b6040805160ff808252612000820190925291925060009190816020015b6060815260200190600190039081615b2857905050905060006040518060400160405280600381526020017f6e70780000000000000000000000000000000000000000000000000000000000815250828280615b8390617584565b935060ff1681518110615b9857615b98617417565b60200260200101819052506040518060400160405280600781526020017f5e312e33322e3300000000000000000000000000000000000000000000000000815250604051602001615be99190617cef565b604051602081830303815290604052828280615c0490617584565b935060ff1681518110615c1957615c19617417565b60200260200101819052506040518060400160405280600881526020017f76616c6964617465000000000000000000000000000000000000000000000000815250828280615c6690617584565b935060ff1681518110615c7b57615c7b617417565b602002602001018190525082604051602001615c9791906174b2565b604051602081830303815290604052828280615cb290617584565b935060ff1681518110615cc757615cc7617417565b60200260200101819052506040518060400160405280600a81526020017f2d2d636f6e747261637400000000000000000000000000000000000000000000815250828280615d1490617584565b935060ff1681518110615d2957615d29617417565b6020026020010181905250615d3e87846166af565b8282615d4981617584565b935060ff1681518110615d5e57615d5e617417565b602090810291909101015285515115615e0a5760408051808201909152600b81527f2d2d7265666572656e636500000000000000000000000000000000000000000060208201528282615db081617584565b935060ff1681518110615dc557615dc5617417565b6020026020010181905250615dde8660000151846166af565b8282615de981617584565b935060ff1681518110615dfe57615dfe617417565b60200260200101819052505b856080015115615e785760408051808201909152601881527f2d2d756e73616665536b697053746f72616765436865636b000000000000000060208201528282615e5381617584565b935060ff1681518110615e6857615e68617417565b6020026020010181905250615ede565b8415615ede5760408051808201909152601281527f2d2d726571756972655265666572656e6365000000000000000000000000000060208201528282615ebd81617584565b935060ff1681518110615ed257615ed2617417565b60200260200101819052505b60408601515115615f7a5760408051808201909152600d81527f2d2d756e73616665416c6c6f770000000000000000000000000000000000000060208201528282615f2881617584565b935060ff1681518110615f3d57615f3d617417565b60200260200101819052508560400151828280615f5990617584565b935060ff1681518110615f6e57615f6e617417565b60200260200101819052505b856060015115615fe45760408051808201909152601481527f2d2d756e73616665416c6c6f7752656e616d657300000000000000000000000060208201528282615fc381617584565b935060ff1681518110615fd857615fd8617417565b60200260200101819052505b60008160ff1667ffffffffffffffff81111561600257616002616e73565b60405190808252806020026020018201604052801561603557816020015b60608152602001906001900390816160205790505b50905060005b8260ff168160ff16101561608e57838160ff168151811061605e5761605e617417565b6020026020010151828260ff168151811061607b5761607b617417565b602090810291909101015260010161603b565b50979650505050505050565b60408051808201909152600080825260208201528151835110156160bf575081612751565b815183516020850151600092916160d591616c87565b6160df9190616d81565b60208401519091506001908214616100575082516020840151819020908220145b801561611b57835185518690616117908390616d81565b9052505b50929392505050565b6000808260000151616148856000015186602001518660000151876020015161646a565b6161529190616c87565b90505b835160208501516161669190616c87565b8111615a8f578161617681617d34565b92505082600001516161ad8560200151836161919190616d81565b865161619d9190616d81565b838660000151876020015161646a565b6161b79190616c87565b9050616155565b606060006161cc8484616124565b6161d7906001616c87565b67ffffffffffffffff8111156161ef576161ef616e73565b60405190808252806020026020018201604052801561622257816020015b606081526020019060019003908161620d5790505b50905060005b81518110156144975761623e6146b98686615a70565b82828151811061625057616250617417565b6020908102919091010152600101616228565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106162ac577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106162d8576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106162f657662386f26fc10000830492506010015b6305f5e100831061630e576305f5e100830492506008015b612710831061632257612710830492506004015b60648310616334576064830492506002015b600a83106127515760010192915050565b600061635183836166ef565b159392505050565b600080858411616460576020841161640c57600084156163a4576001616380866020616d81565b61638b906008617d4e565b616396906002617e4c565b6163a09190616d81565b1990505b83518116856163b38989616c87565b6163bd9190616d81565b805190935082165b8181146163f7578784116163df57879450505050506140c8565b836163e981617e58565b9450508284511690506163c5565b6164018785616c87565b9450505050506140c8565b8383206164198588616d81565b6164239087616c87565b91505b85821061645e5784822080820361644b576164418684616c87565b93505050506140c8565b616456600184616d81565b925050616426565b505b5092949350505050565b60008381868511616575576020851161652457600085156164b6576001616492876020616d81565b61649d906008617d4e565b6164a8906002617e4c565b6164b29190616d81565b1990505b845181166000876164c78b8b616c87565b6164d19190616d81565b855190915083165b828114616516578186106164fe576164f18b8b616c87565b96505050505050506140c8565b8561650881617d34565b9650508386511690506164d9565b8596505050505050506140c8565b508383206000905b6165368689616d81565b82116165735785832080820361655257839450505050506140c8565b61655d600185616c87565b935050818061656b90617d34565b92505061652c565b505b61657f8787616c87565b979650505050505050565b604080518082019091526000808252602082015260006165bc856000015186602001518660000151876020015161646a565b6020808701805191860191909152519091506165d89082616d81565b8352845160208601516165eb9190616c87565b81036165fa576000855261662c565b835183516166089190616c87565b85518690616617908390616d81565b90525083516166269082616c87565b60208601525b50909392505050565b6020811061666d578151835261664c602084616c87565b9250616659602083616c87565b9150616666602082616d81565b9050616635565b600019811561669c576001616683836020616d81565b61668f90610100617e4c565b6166999190616d81565b90505b9151835183169219169190911790915250565b606060006166bd8484612b9b565b80516020808301516040519394506166d793909101617e6f565b60405160208183030381529060405291505092915050565b8151815160009190811115616702575081515b6020808501519084015160005b838110156167bb578251825180821461678b57600019602087101561676a5760018461673c896020616d81565b6167469190616c87565b616751906008617d4e565b61675c906002617e4c565b6167669190616d81565b1990505b81811683821681810391146167885797506127519650505050505050565b50505b616796602086616c87565b94506167a3602085616c87565b935050506020816167b49190616c87565b905061670f565b50845186516132499190617ec7565b610c9f80617ee883390190565b6113e280618b8783390190565b61182a80619f6983390190565b6040518060e00160405280606081526020016060815260200160608152602001600015158152602001600015158152602001600015158152602001616834616839565b905290565b604051806101000160405280600015158152602001600015158152602001606081526020016000801916815260200160608152602001606081526020016000151581526020016168346040518060800160405280600081526020016000815260200160008152602001600081525090565b602080825282518282018190526000918401906040840190835b818110156168eb5783516001600160a01b03168352602093840193909201916001016168c4565b509095945050505050565b60005b838110156169115781810151838201526020016168f9565b50506000910152565b600081518084526169328160208601602086016168f6565b601f01601f19169290920160200192915050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015616a42577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452815180516001600160a01b03168652602090810151604082880181905281519088018190529101906060600582901b88018101919088019060005b81811015616a28577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08a8503018352616a1284865161691a565b60209586019590945092909201916001016169d8565b50919750505060209485019492909201915060010161696e565b50929695505050505050565b600081518084526020840193506020830160005b82811015616aa25781517fffffffff0000000000000000000000000000000000000000000000000000000016865260209586019590910190600101616a62565b5093949350505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015616a42577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08786030184528151805160408752616b18604088018261691a565b9050602082015191508681036020880152616b338183616a4e565b965050506020938401939190910190600101616ad4565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015616a42577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452616bac85835161691a565b94506020938401939190910190600101616b72565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015616a42577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc087860301845281516001600160a01b0381511686526020810151905060406020870152616c426040870182616a4e565b9550506020938401939190910190600101616be9565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561275157612751616c58565b600181811c90821680616cae57607f821691505b602082108103614994577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060208284031215616cf957600080fd5b5051919050565b600060208284031215616d1257600080fd5b815180151581146127cb57600080fd5b8381526001600160a01b038316602082015260606040820152600061497a606083018461691a565b6001600160a01b03851681528360208201526001600160a01b0383166040820152608060608201526000613249608083018461691a565b8181038181111561275157612751616c58565b6001600160a01b03831681526040602082015260006140c8604083018461691a565b6020815260006127cb602083018461691a565b7f4661696c656420746f206465706c6f7920636f6e747261637420000000000000815260008351616e0181601a8501602088016168f6565b7f3a20000000000000000000000000000000000000000000000000000000000000601a918401918201528351616e3e81601c8401602088016168f6565b01601c01949350505050565b600060208284031215616e5c57600080fd5b81516001600160a01b03811681146127cb57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715616ec557616ec5616e73565b60405290565b60008067ffffffffffffffff841115616ee657616ee6616e73565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff82111715616f1557616f15616e73565b604052838152905080828401851015616f2d57600080fd5b6144978460208301856168f6565b600082601f830112616f4c57600080fd5b6127cb83835160208501616ecb565b600060208284031215616f6d57600080fd5b815167ffffffffffffffff811115616f8457600080fd5b61274d84828501616f3b565b60008351616fa28184602088016168f6565b835190830190616fb68183602088016168f6565b01949350505050565b7f4661696c656420746f206465706c6f7920636f6e747261637420000000000000815260008351616ff781601a8501602088016168f6565b7f207573696e6720636f6e7374727563746f722064617461202200000000000000601a9184019182015283516170348160338401602088016168f6565b7f220000000000000000000000000000000000000000000000000000000000000060339290910191820152603401949350505050565b60408152600b60408201527f464f554e4452595f4f555400000000000000000000000000000000000000000060608201526080602082015260006127cb608083018461691a565b6000602082840312156170c357600080fd5b815167ffffffffffffffff8111156170da57600080fd5b8201601f810184136170eb57600080fd5b61274d84825160208401616ecb565b6000855161710c818460208a016168f6565b7f2f000000000000000000000000000000000000000000000000000000000000009083019081528551617146816001840160208a016168f6565b7f2f000000000000000000000000000000000000000000000000000000000000006001929091019182015284516171848160028401602089016168f6565b6001818301019150507f2f00000000000000000000000000000000000000000000000000000000000000600182015283516171c68160028401602088016168f6565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600292909101918201526007019695505050505050565b604081526000617211604083018461691a565b8281036020840152600481527f2e6173740000000000000000000000000000000000000000000000000000000060208201526040810191505092915050565b7f436f756c64206e6f742066696e642041535420696e206172746966616374200081526000825161728881601f8501602087016168f6565b7f2e205365742060617374203d20747275656020696e20666f756e6472792e746f601f9390910192830152507f6d6c000000000000000000000000000000000000000000000000000000000000603f820152604101919050565b6040815260006172f5604083018461691a565b8281036020840152601181527f2e6173742e6162736f6c7574655061746800000000000000000000000000000060208201526040810191505092915050565b604081526000617347604083018461691a565b8281036020840152600c81527f2e6173742e6c6963656e7365000000000000000000000000000000000000000060208201526040810191505092915050565b7f2e6d657461646174612e736f75726365732e5b270000000000000000000000008152600082516173be8160148501602087016168f6565b7f275d2e6b656363616b32353600000000000000000000000000000000000000006014939091019283015250602001919050565b604081526000617405604083018561691a565b82810360208401526127c7818561691a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f220000000000000000000000000000000000000000000000000000000000000081526000825161747e8160018501602087016168f6565b7f22000000000000000000000000000000000000000000000000000000000000006001939091019283015250600201919050565b600082516174c48184602087016168f6565b7f2f6275696c642d696e666f000000000000000000000000000000000000000000920191825250600b01919050565b7f436f756c64206e6f742066696e64206275696c642d696e666f2066696c65207781527f697468206d61746368696e6720736f7572636520636f6465206861736820666f60208201527f7220636f6e74726163742000000000000000000000000000000000000000000060408201526000825161757781604b8501602087016168f6565b91909101604b0192915050565b600060ff821660ff810361759a5761759a616c58565b60010192915050565b7f406f70656e7a657070656c696e2f646566656e6465722d6465706c6f792d636c81527f69656e742d636c694000000000000000000000000000000000000000000000006020820152600082516176018160298501602087016168f6565b9190910160290192915050565b60408152601660408201527f4f50454e5a455050454c494e5f424153485f504154480000000000000000000060608201526080602082015260006127cb608083018461691a565b60006020828403121561766757600080fd5b815167ffffffffffffffff81111561767e57600080fd5b82016060818503121561769057600080fd5b617698616ea2565b81518060030b81146176a957600080fd5b8152602082015167ffffffffffffffff8111156176c557600080fd5b6176d186828501616f3b565b602083015250604082015167ffffffffffffffff8111156176f157600080fd5b6176fd86828501616f3b565b604083015250949350505050565b7f4661696c656420746f2072756e206261736820636f6d6d616e6420776974682081527f22000000000000000000000000000000000000000000000000000000000000006020820152600082516177698160218501602087016168f6565b7f222e20496620796f7520617265207573696e672057696e646f77732c2073657460219390910192830152507f20746865204f50454e5a455050454c494e5f424153485f5041544820656e766960418201527f726f6e6d656e74207661726961626c6520746f207468652066756c6c7920717560618201527f616c69666965642070617468206f66207468652062617368206578656375746160818201527f626c652e20466f72206578616d706c652c20696620796f75206172652075736960a18201527f6e672047697420666f722057696e646f77732c206164642074686520666f6c6c60c18201527f6f77696e67206c696e6520696e20746865202e656e762066696c65206f66207960e18201527f6f75722070726f6a65637420287573696e6720666f727761726420736c6173686101018201527f6573293a0a4f50454e5a455050454c494e5f424153485f504154483d22433a2f6101218201527f50726f6772616d2046696c65732f4769742f62696e2f6261736822000000000061014182015261015c01919050565b7f4661696c656420746f2066696e64206c696e652077697468207072656669782081527f27000000000000000000000000000000000000000000000000000000000000006020820152600083516179558160218501602088016168f6565b7f2720696e206f75747075743a2000000000000000000000000000000000000000602191840191820152835161799281602e8401602088016168f6565b01602e01949350505050565b7f4661696c656420746f2072756e2075706772616465207361666574792076616c81527f69646174696f6e3a2000000000000000000000000000000000000000000000006020820152600082516176018160298501602087016168f6565b7f55706772616465207361666574792076616c69646174696f6e206661696c656481527f3a0a000000000000000000000000000000000000000000000000000000000000602082015260008251617a5a8160228501602087016168f6565b9190910160220192915050565b7f436f6e7472616374206e616d6520000000000000000000000000000000000000815260008251617a9f81600e8501602087016168f6565b7f206d75737420626520696e2074686520666f726d6174204d79436f6e74726163600e9390910192830152507f742e736f6c3a4d79436f6e7472616374206f72204d79436f6e74726163742e73602e8201527f6f6c206f72206f75742f4d79436f6e74726163742e736f6c2f4d79436f6e7472604e8201527f6163742e6a736f6e000000000000000000000000000000000000000000000000606e820152607601919050565b7f53504458206c6963656e7365206964656e746966696572200000000000000000815260008351617b7d8160188501602088016168f6565b7f20696e20000000000000000000000000000000000000000000000000000000006018918401918201528351617bba81601c8401602088016168f6565b7f20646f6573206e6f74206c6f6f6b206c696b65206120737570706f7274656420601c92909101918201527f6c6963656e736520666f7220626c6f636b206578706c6f726572207665726966603c8201527f69636174696f6e2e205573652074686520606c6963656e73655479706560206f605c8201527f7074696f6e20746f20737065636966792061206c6963656e736520747970652c607c8201527f206f7220736574207468652060736b69704c6963656e73655479706560206f70609c8201527f74696f6e20746f2060747275656020746f20736b69702e00000000000000000060bc82015260d301949350505050565b60008251617cc08184602087016168f6565b7f2000000000000000000000000000000000000000000000000000000000000000920191825250600101919050565b7f406f70656e7a657070656c696e2f75706772616465732d636f72654000000000815260008251617d2781601c8501602087016168f6565b91909101601c0192915050565b60006000198203617d4757617d47616c58565b5060010190565b808202811582820484141761275157612751616c58565b6001815b6001841115617da057808504811115617d8457617d84616c58565b6001841615617d9257908102905b60019390931c928002617d69565b935093915050565b600082617db757506001612751565b81617dc457506000612751565b8160018114617dda5760028114617de457617e00565b6001915050612751565b60ff841115617df557617df5616c58565b50506001821b612751565b5060208310610133831016604e8410600b8410161715617e23575081810a612751565b617e306000198484617d65565b8060001904821115617e4457617e44616c58565b029392505050565b60006127cb8383617da8565b600081617e6757617e67616c58565b506000190190565b60008351617e818184602088016168f6565b7f3a000000000000000000000000000000000000000000000000000000000000009083019081528351617ebb8160018401602088016168f6565b01600101949350505050565b8181036000831280158383131683831282161715615a8f57615a8f616c5856fe608060405234801561001057600080fd5b50604051610c9f380380610c9f83398101604081905261002f9161010d565b8181600361003d83826101ff565b50600461004a82826101ff565b50505050506102bd565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261007b57600080fd5b81516001600160401b0381111561009457610094610054565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100c2576100c2610054565b6040528181528382016020018510156100da57600080fd5b60005b828110156100f9576020818601810151838301820152016100dd565b506000918101602001919091529392505050565b6000806040838503121561012057600080fd5b82516001600160401b0381111561013657600080fd5b6101428582860161006a565b602085015190935090506001600160401b0381111561016057600080fd5b61016c8582860161006a565b9150509250929050565b600181811c9082168061018a57607f821691505b6020821081036101aa57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156101fa57806000526020600020601f840160051c810160208510156101d75750805b601f840160051c820191505b818110156101f757600081556001016101e3565b50505b505050565b81516001600160401b0381111561021857610218610054565b61022c816102268454610176565b846101b0565b6020601f82116001811461026057600083156102485750848201515b600019600385901b1c1916600184901b1784556101f7565b600084815260208120601f198516915b828110156102905787850151825560209485019460019092019101610270565b50848210156102ae5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b6109d3806102cc6000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c806340c10f191161007657806395d89b411161005b57806395d89b4114610183578063a9059cbb1461018b578063dd62ed3e1461019e57600080fd5b806340c10f191461013857806370a082311461014d57600080fd5b806318160ddd116100a757806318160ddd1461010457806323b872dd14610116578063313ce5671461012957600080fd5b806306fdde03146100c3578063095ea7b3146100e1575b600080fd5b6100cb6101e4565b6040516100d891906107bf565b60405180910390f35b6100f46100ef366004610854565b610276565b60405190151581526020016100d8565b6002545b6040519081526020016100d8565b6100f461012436600461087e565b610290565b604051601281526020016100d8565b61014b610146366004610854565b6102b4565b005b61010861015b3660046108bb565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6100cb6102c2565b6100f4610199366004610854565b6102d1565b6101086101ac3660046108dd565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101f390610910565b80601f016020809104026020016040519081016040528092919081815260200182805461021f90610910565b801561026c5780601f106102415761010080835404028352916020019161026c565b820191906000526020600020905b81548152906001019060200180831161024f57829003601f168201915b5050505050905090565b6000336102848185856102df565b60019150505b92915050565b60003361029e8582856102f1565b6102a98585856103c5565b506001949350505050565b6102be8282610470565b5050565b6060600480546101f390610910565b6000336102848185856103c5565b6102ec83838360016104cc565b505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146103bf57818110156103b0576040517ffb8f41b200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101829052604481018390526064015b60405180910390fd5b6103bf848484840360006104cc565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610415576040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff8216610465576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b6102ec838383610614565b73ffffffffffffffffffffffffffffffffffffffff82166104c0576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b6102be60008383610614565b73ffffffffffffffffffffffffffffffffffffffff841661051c576040517fe602df05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff831661056c576040517f94280d62000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020908152604080832093871683529290522082905580156103bf578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161060691815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff831661064c5780600260008282546106419190610963565b909155506106fe9050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902054818110156106d2576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260248101829052604481018390526064016103a7565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090209082900390555b73ffffffffffffffffffffffffffffffffffffffff821661072757600280548290039055610753565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090208054820190555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107b291815260200190565b60405180910390a3505050565b602081526000825180602084015260005b818110156107ed57602081860181015160408684010152016107d0565b5060006040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461084f57600080fd5b919050565b6000806040838503121561086757600080fd5b6108708361082b565b946020939093013593505050565b60008060006060848603121561089357600080fd5b61089c8461082b565b92506108aa6020850161082b565b929592945050506040919091013590565b6000602082840312156108cd57600080fd5b6108d68261082b565b9392505050565b600080604083850312156108f057600080fd5b6108f98361082b565b91506109076020840161082b565b90509250929050565b600181811c9082168061092457607f821691505b60208210810361095d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b8082018082111561028a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea26469706673582212207e804ca539d49155d2b6bc19268ce22f9f857027c75247d69fb0d56a089c93d464736f6c634300081a0033608060405234801561001057600080fd5b506040516113e23803806113e283398101604081905261002f916101d3565b60016000556002805460ff191690556001600160a01b038316158061005b57506001600160a01b038216155b156100795760405163d92e233d60e01b815260040160405180910390fd5b60028054610100600160a81b0319166101006001600160a01b038681169190910291909117909155600380546001600160a01b0319169184169190911790556100c3600082610122565b506100ee7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a82610122565b506101197f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e483610122565b50505050610216565b60008281526001602090815260408083206001600160a01b038516845290915281205460ff166101ad5760008381526001602081815260408084206001600160a01b0387168086529252808420805460ff19169093179092559051339286917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45060016101b1565b5060005b92915050565b80516001600160a01b03811681146101ce57600080fd5b919050565b6000806000606084860312156101e857600080fd5b6101f1846101b7565b92506101ff602085016101b7565b915061020d604085016101b7565b90509250925092565b6111bd806102256000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c80635c975abb116100b2578063a217fddf11610081578063d547741f11610066578063d547741f146102c2578063d9caed12146102d5578063e63ab1e9146102e857600080fd5b8063a217fddf146102a7578063c8a02362146102af57600080fd5b80635c975abb146102275780638456cb591461023257806385f438c11461023a57806391d148541461026157600080fd5b80632f2ff15d116100ee5780632f2ff15d146101d957806336568abe146101ec5780633f4ba83a146101ff5780635b1125911461020757600080fd5b806301ffc9a714610120578063116191b61461014857806321fc65f214610192578063248a9ca3146101a7575b600080fd5b61013361012e366004610ee3565b61030f565b60405190151581526020015b60405180910390f35b60025461016d90610100900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161013f565b6101a56101a0366004610f4e565b6103a8565b005b6101cb6101b5366004610feb565b6000908152600160208190526040909120015490565b60405190815260200161013f565b6101a56101e7366004611004565b61051d565b6101a56101fa366004611004565b610549565b6101a56105a7565b60035461016d9073ffffffffffffffffffffffffffffffffffffffff1681565b60025460ff16610133565b6101a56105dc565b6101cb7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e481565b61013361026f366004611004565b600091825260016020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b6101cb600081565b6101a56102bd366004610f4e565b61060e565b6101a56102d0366004611004565b610769565b6101a56102e3366004611030565b61078f565b6101cb7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806103a257507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6103b061085c565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e46103da8161089f565b6103e26108a9565b60025461040e9073ffffffffffffffffffffffffffffffffffffffff88811691610100900416866108e8565b6002546040517f5131ab5900000000000000000000000000000000000000000000000000000000815261010090910473ffffffffffffffffffffffffffffffffffffffff1690635131ab599061047090899089908990899089906004016110b6565b600060405180830381600087803b15801561048a57600080fd5b505af115801561049e573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e86868660405161050393929190611113565b60405180910390a3506105166001600055565b5050505050565b600082815260016020819052604090912001546105398161089f565b6105438383610975565b50505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610598576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105a28282610a40565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6105d18161089f565b6105d9610aff565b50565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6106068161089f565b6105d9610b7c565b61061661085c565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e46106408161089f565b6106486108a9565b6002546106749073ffffffffffffffffffffffffffffffffffffffff88811691610100900416866108e8565b6002546040517fb8969bd400000000000000000000000000000000000000000000000000000000815261010090910473ffffffffffffffffffffffffffffffffffffffff169063b8969bd4906106d690899089908990899089906004016110b6565b600060405180830381600087803b1580156106f057600080fd5b505af1158015610704573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c886868660405161050393929190611113565b600082815260016020819052604090912001546107858161089f565b6105438383610a40565b61079761085c565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e46107c18161089f565b6107c96108a9565b6107ea73ffffffffffffffffffffffffffffffffffffffff851684846108e8565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb8460405161084991815260200190565b60405180910390a3506105a26001600055565b600260005403610898576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b6105d98133610bd7565b60025460ff16156108e6576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526105a2908490610c68565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff16610a3857600083815260016020818152604080842073ffffffffffffffffffffffffffffffffffffffff8716808652925280842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169093179092559051339286917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45060016103a2565b5060006103a2565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff1615610a3857600083815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016103a2565b610b07610cfe565b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b610b846108a9565b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610b523390565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610c64576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602481018390526044015b60405180910390fd5b5050565b6000610c8a73ffffffffffffffffffffffffffffffffffffffff841683610d3a565b90508051600014158015610caf575080806020019051810190610cad9190611136565b155b156105a2576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602401610c5b565b60025460ff166108e6576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060610d4883836000610d4f565b9392505050565b606081471015610d8d576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610c5b565b6000808573ffffffffffffffffffffffffffffffffffffffff168486604051610db69190611158565b60006040518083038185875af1925050503d8060008114610df3576040519150601f19603f3d011682016040523d82523d6000602084013e610df8565b606091505b5091509150610e08868383610e12565b9695505050505050565b606082610e2757610e2282610ea1565b610d48565b8151158015610e4b575073ffffffffffffffffffffffffffffffffffffffff84163b155b15610e9a576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610c5b565b5080610d48565b805115610eb15780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060208284031215610ef557600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610d4857600080fd5b803573ffffffffffffffffffffffffffffffffffffffff81168114610f4957600080fd5b919050565b600080600080600060808688031215610f6657600080fd5b610f6f86610f25565b9450610f7d60208701610f25565b935060408601359250606086013567ffffffffffffffff811115610fa057600080fd5b8601601f81018813610fb157600080fd5b803567ffffffffffffffff811115610fc857600080fd5b886020828401011115610fda57600080fd5b959894975092955050506020019190565b600060208284031215610ffd57600080fd5b5035919050565b6000806040838503121561101757600080fd5b8235915061102760208401610f25565b90509250929050565b60008060006060848603121561104557600080fd5b61104e84610f25565b925061105c60208501610f25565b929592945050506040919091013590565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff8516602082015283604082015260806060820152600061110860808301848661106d565b979650505050505050565b83815260406020820152600061112d60408301848661106d565b95945050505050565b60006020828403121561114857600080fd5b81518015158114610d4857600080fd5b6000825160005b81811015611179576020818601810151858301520161115f565b50600092019182525091905056fea2646970667358221220f228501fb7798406cf58c84b1f7af446926eecd69943c0a6760dfd0c5550e2ff64736f6c634300081a003360c060405260001960045534801561001657600080fd5b5060405161182a38038061182a833981016040819052610035916101fb565b60016000819055805460ff19169055838383836001600160a01b038416158061006557506001600160a01b038316155b8061007757506001600160a01b038216155b156100955760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0384811660805283811660a052600380546001600160a01b0319169184169190911790556100cb60008261012f565b506100f67f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e48361012f565b506101217f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8261012f565b50505050505050505061024f565b60008281526002602090815260408083206001600160a01b038516845290915281205460ff166101d55760008381526002602090815260408083206001600160a01b03861684529091529020805460ff1916600117905561018d3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016101d9565b5060005b92915050565b80516001600160a01b03811681146101f657600080fd5b919050565b6000806000806080858703121561021157600080fd5b61021a856101df565b9350610228602086016101df565b9250610236604086016101df565b9150610244606086016101df565b905092959194509250565b60805160a05161155b6102cf6000396000818161021d0152818161049a015281816105dc015281816106a2015281816107a7015281816108c901528181610a7d01528181610bbf01528181610c850152610ddc0152600081816101d1015281816105a60152818161067301528181610b890152610c56015261155b6000f3fe608060405234801561001057600080fd5b50600436106101775760003560e01c80635c975abb116100d857806385f438c11161008c578063d547741f11610066578063d547741f1461037f578063d5abeb0114610392578063e63ab1e91461039b57600080fd5b806385f438c11461030a57806391d1485414610331578063a217fddf1461037757600080fd5b80636f8b44b0116100bd5780636f8b44b0146102dc578063743e0c9b146102ef5780638456cb591461030257600080fd5b80635c975abb146102be5780635e3e9fef146102c957600080fd5b8063248a9ca31161012f57806336568abe1161011457806336568abe146102835780633f4ba83a146102965780635b1125911461029e57600080fd5b8063248a9ca31461023f5780632f2ff15d1461027057600080fd5b8063106e629011610160578063106e6290146101b9578063116191b6146101cc57806321e093b11461021857600080fd5b806301ffc9a71461017c57806302d5c899146101a4575b600080fd5b61018f61018a36600461128d565b6103c2565b60405190151581526020015b60405180910390f35b6101b76101b23660046112ff565b61045b565b005b6101b76101c7366004611391565b610768565b6101f37f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161019b565b6101f37f000000000000000000000000000000000000000000000000000000000000000081565b61026261024d3660046113c4565b60009081526002602052604090206001015490565b60405190815260200161019b565b6101b761027e3660046113dd565b610985565b6101b76102913660046113dd565b6109b0565b6101b7610a09565b6003546101f39073ffffffffffffffffffffffffffffffffffffffff1681565b60015460ff1661018f565b6101b76102d73660046112ff565b610a3e565b6101b76102ea3660046113c4565b610d31565b6101b76102fd3660046113c4565b610d9f565b6101b7610e49565b6102627f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e481565b61018f61033f3660046113dd565b600091825260026020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b610262600081565b6101b761038d3660046113dd565b610e7b565b61026260045481565b6102627f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061045557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b610463610ea0565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e461048d81610ee3565b610495610eed565b6004547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610503573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105279190611409565b6105319087611422565b1115610569576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1e458bee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201879052604482018490527f00000000000000000000000000000000000000000000000000000000000000001690631e458bee90606401600060405180830381600087803b15801561062057600080fd5b505af1158015610634573d6000803e3d6000fd5b50506040517fb8969bd400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016925063b8969bd491506106d2907f0000000000000000000000000000000000000000000000000000000000000000908a908a908a908a906004016114a5565b600060405180830381600087803b1580156106ec57600080fd5b505af1158015610700573d6000803e3d6000fd5b505050508573ffffffffffffffffffffffffffffffffffffffff167fba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe86868660405161074e93929190611502565b60405180910390a2506107616001600055565b5050505050565b610770610ea0565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e461079a81610ee3565b6107a2610eed565b6004547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610810573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108349190611409565b61083e9085611422565b1115610876576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1e458bee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015260248201859052604482018490527f00000000000000000000000000000000000000000000000000000000000000001690631e458bee90606401600060405180830381600087803b15801561090d57600080fd5b505af1158015610921573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243648460405161096d91815260200190565b60405180910390a2506109806001600055565b505050565b6000828152600260205260409020600101546109a081610ee3565b6109aa8383610f2c565b50505050565b73ffffffffffffffffffffffffffffffffffffffff811633146109ff576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610980828261102c565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610a3381610ee3565b610a3b6110eb565b50565b610a46610ea0565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e4610a7081610ee3565b610a78610eed565b6004547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0a9190611409565b610b149087611422565b1115610b4c576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1e458bee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201879052604482018490527f00000000000000000000000000000000000000000000000000000000000000001690631e458bee90606401600060405180830381600087803b158015610c0357600080fd5b505af1158015610c17573d6000803e3d6000fd5b50506040517f5131ab5900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169250635131ab599150610cb5907f0000000000000000000000000000000000000000000000000000000000000000908a908a908a908a906004016114a5565b600060405180830381600087803b158015610ccf57600080fd5b505af1158015610ce3573d6000803e3d6000fd5b505050508573ffffffffffffffffffffffffffffffffffffffff167f7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced86868660405161074e93929190611502565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e4610d5b81610ee3565b610d63610eed565b60048290556040518281527f7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c9060200160405180910390a15050565b610da7610eed565b6040517f79cc6790000000000000000000000000000000000000000000000000000000008152336004820152602481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906379cc679090604401600060405180830381600087803b158015610e3557600080fd5b505af1158015610761573d6000803e3d6000fd5b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610e7381610ee3565b610a3b611168565b600082815260026020526040902060010154610e9681610ee3565b6109aa838361102c565b600260005403610edc576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b610a3b81336111c1565b60015460ff1615610f2a576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600082815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff1661102457600083815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610fc23390565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610455565b506000610455565b600082815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff161561102457600083815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610455565b6110f3611251565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b611170610eed565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2583361113e565b600082815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1661124d576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526024810183905260440160405180910390fd5b5050565b60015460ff16610f2a576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006020828403121561129f57600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146112cf57600080fd5b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146112fa57600080fd5b919050565b60008060008060006080868803121561131757600080fd5b611320866112d6565b945060208601359350604086013567ffffffffffffffff81111561134357600080fd5b8601601f8101881361135457600080fd5b803567ffffffffffffffff81111561136b57600080fd5b88602082840101111561137d57600080fd5b959894975060200195606001359392505050565b6000806000606084860312156113a657600080fd5b6113af846112d6565b95602085013595506040909401359392505050565b6000602082840312156113d657600080fd5b5035919050565b600080604083850312156113f057600080fd5b82359150611400602084016112d6565b90509250929050565b60006020828403121561141b57600080fd5b5051919050565b80820180821115610455577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff851660208201528360408201526080606082015260006114f760808301848661145c565b979650505050505050565b83815260406020820152600061151c60408301848661145c565b9594505050505056fea2646970667358221220c864e28878a70f2d629a9a8bcc8540adbc24308f0bdca4bb9f799c9b08a4b8fc64736f6c634300081a0033a2646970667358221220b68ef6a2e59ebd6ec07004817f94d2e8ad26c5b98e5fa2bbd022b8eb674f554764736f6c634300081a0033", +} + +// 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..0fb8f15e --- /dev/null +++ b/v2/pkg/gatewayevm.t.sol/gatewayevmtest.go @@ -0,0 +1,6197 @@ +// 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\":\"ASSET_HANDLER_ROLE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"IS_TEST\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"PAUSER_ROLE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"TSS_ROLE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"WITHDRAWER_ROLE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"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\":\"testForwardCallToReceiveERC20PartialThroughCustodyFailsIfSenderIsNotWithdrawer\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testForwardCallToReceiveERC20ThroughCustody\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testForwardCallToReceiveERC20ThroughCustodyFailsIfAmountIs0\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testForwardCallToReceiveERC20ThroughCustodyFailsIfSenderIsNotWithdrawer\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testForwardCallToReceiveNoParams\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testForwardCallToReceiveNoParamsThroughCustody\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testForwardCallToReceiveNoParamsTogglePause\",\"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\":\"testWithdrawAndRevertThroughCustodyFailsIfSenderIsNotWithdrawer\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testWithdrawThroughCustody\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testWithdrawThroughCustodyFailsIfSenderIsNotWithdrawer\",\"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\":\"AccessControlUnauthorizedAccount\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"neededRole\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"type\":\"error\",\"name\":\"ApprovalFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"CustodyInitialized\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"DepositFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EnforcedPause\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExecutionFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientERC20Amount\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientETHAmount\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ZeroAddress\",\"inputs\":[]}]", + Bin: "0x6080604052600c8054600160ff199182168117909255601f80549091169091179055348015602c57600080fd5b5061ff4d8061003c6000396000f3fe608060405234801561001057600080fd5b50600436106102925760003560e01c8063a3f9d0e011610160578063dd51e82f116100d8578063fa18c09b1161008c578063fb176c1211610071578063fb176c121461049a578063fe7bdbb2146104a2578063fe8e5f1b146104aa57600080fd5b8063fa18c09b14610485578063fa7626d41461048d57600080fd5b8063e63ab1e9116100bd578063e63ab1e91461044e578063eb1ce7f914610475578063f68bd1c01461047d57600080fd5b8063dd51e82f1461043e578063e20c9f711461044657600080fd5b8063b5508aa91161012f578063c9350b7f11610114578063c9350b7f14610426578063cbd57e2f1461042e578063cebad2a61461043657600080fd5b8063b5508aa914610406578063ba414fa61461040e57600080fd5b8063a3f9d0e0146103c7578063a4943deb146103cf578063a783c789146103d7578063b0464fdc146103fe57600080fd5b80633f7286f41161020e57806371149c94116101c257806385226c81116101a757806385226c811461037657806385f438c11461038b578063916a17c6146103b257600080fd5b806371149c94146103665780637d7f772a1461036e57600080fd5b80635d62c860116101f35780635d62c8601461031457806366d9a9a0146103495780636a6218541461035e57600080fd5b80633f7286f41461030457806344671b941461030c57600080fd5b80632206eb65116102655780633e5e3c231161024a5780633e5e3c23146102ec5780633e73ecb4146102f45780633ee92923146102fc57600080fd5b80632206eb65146102cf5780632ade3880146102d757600080fd5b80630a9254e4146102975780630eee72a9146102a15780631779672f146102a95780631ed7831c146102b1575b600080fd5b61029f6104b2565b005b61029f610d62565b61029f610fdd565b6102b9611132565b6040516102c6919061a168565b60405180910390f35b61029f611194565b6102df6113d8565b6040516102c6919061a204565b6102b961151a565b61029f61157a565b61029f611adb565b6102b9611b95565b61029f611bf5565b61033b7f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b981565b6040519081526020016102c6565b610351611f78565b6040516102c6919061a36a565b61029f6120e5565b61029f61219c565b61029f612992565b61037e612ccb565b6040516102c6919061a464565b61033b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e481565b6103ba612d9b565b6040516102c6919061a477565b61029f612e81565b61029f61345f565b61033b7f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb81565b6103ba61366f565b61037e613755565b610416613825565b60405190151581526020016102c6565b61029f6138f9565b61029f613b3d565b61029f61409e565b61029f6142d7565b6102b9614a8d565b61033b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b61029f614aed565b61029f614c12565b61029f614fc0565b601f546104169060ff1681565b61029f6152e6565b61029f61593a565b61029f615d68565b602680547fffffffffffffffffffffffff00000000000000000000000000000000000000009081163017909155602780548216611234179055602880549091166156781790556040516105049061a07b565b60408082526004908201527f746573740000000000000000000000000000000000000000000000000000000060608201526080602082018190526003908201527f54544b000000000000000000000000000000000000000000000000000000000060a082015260c001604051809103906000f080158015610589573d6000803e3d6000fd5b50602480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03929092169190911790556040516105ce9061a07b565b604080825260049082018190527f7a6574610000000000000000000000000000000000000000000000000000000060608301526080602083018190528201527f5a4554410000000000000000000000000000000000000000000000000000000060a082015260c001604051809103906000f080158015610652573d6000803e3d6000fd5b50602580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03928316908117909155604080518082018252600e81527f4761746577617945564d2e736f6c00000000000000000000000000000000000060208201526028546026549251908516602482015260448101939093529216606482015261072c919060840160408051601f198184030181529190526020810180516001600160e01b03167fc0c53b8b00000000000000000000000000000000000000000000000000000000179052615f6e565b601f80547fffffffffffffffffffffff0000000000000000000000000000000000000000ff166101006001600160a01b0393841681029190911791829055602080549190920483167fffffffffffffffffffffffff000000000000000000000000000000000000000090911681179091556028546026546040519293918216929116906107b89061a088565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103906000f0801580156107f4573d6000803e3d6000fd5b50602280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03928316179055602054602554602854602654604051938516949283169391831692169061084f9061a095565b6001600160a01b039485168152928416602084015290831660408301529091166060820152608001604051809103906000f080158015610893573d6000803e3d6000fd5b50602380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03929092169190911790556040516108d89061a0a2565b604051809103906000f0801580156108f4573d6000803e3d6000fd5b50602180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283161790556028546040517fc88a5e6d00000000000000000000000000000000000000000000000000000000815291166004820152670de0b6b3a76400006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d90604401600060405180830381600087803b1580156109a057600080fd5b505af11580156109b4573d6000803e3d6000fd5b50506026546040517f06447d560000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d569150602401600060405180830381600087803b158015610a2a57600080fd5b505af1158015610a3e573d6000803e3d6000fd5b50506020546022546040517fae7a3a6f0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201529116925063ae7a3a6f9150602401600060405180830381600087803b158015610aa457600080fd5b505af1158015610ab8573d6000803e3d6000fd5b50506020546023546040517f10188aef0000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152911692506310188aef9150602401600060405180830381600087803b158015610b1e57600080fd5b505af1158015610b32573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610b9457600080fd5b505af1158015610ba8573d6000803e3d6000fd5b5050602480546026546040517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152620f4240938101939093521692506340c10f199150604401600060405180830381600087803b158015610c1957600080fd5b505af1158015610c2d573d6000803e3d6000fd5b5050602480546022546040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201526207a1209381019390935216925063a9059cbb91506044016020604051808303816000875af1158015610ca3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc7919061a50e565b506028546040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152670de0b6b3a76400006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d90604401600060405180830381600087803b158015610d4857600080fd5b505af1158015610d5c573d6000803e3d6000fd5b50505050565b60248054602754604051620186a09381018490526001600160a01b0392831660448201529116606482015260009060840160408051601f198184030181529181526020820180516001600160e01b03167fc513169100000000000000000000000000000000000000000000000000000000179052602654905163ca669fa760e01b81526001600160a01b039091166004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa7906024015b600060405180830381600087803b158015610e3257600080fd5b505af1158015610e46573d6000803e3d6000fd5b5050602654604080516001600160a01b0390921660248301527f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e460448084019190915281518084039091018152606490920181526020820180516001600160e01b03167fe2517d3f00000000000000000000000000000000000000000000000000000000179052517ff28dceb3000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d935063f28dceb39250610f1c919060040161a530565b600060405180830381600087803b158015610f3657600080fd5b505af1158015610f4a573d6000803e3d6000fd5b50506022546024546021546040517f21fc65f20000000000000000000000000000000000000000000000000000000081526001600160a01b0393841695506321fc65f29450610fa79392831692909116908790879060040161a543565b600060405180830381600087803b158015610fc157600080fd5b505af1158015610fd5573d6000803e3d6000fd5b505050505050565b6024805460275460405160009381018490526001600160a01b03928316604482015291166064820152819060840160408051601f198184030181529181526020820180516001600160e01b03167f357fc5a200000000000000000000000000000000000000000000000000000000179052602854905163ca669fa760e01b81526001600160a01b039091166004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa7906024015b600060405180830381600087803b1580156110aa57600080fd5b505af11580156110be573d6000803e3d6000fd5b50506040517fc31eb0e00000000000000000000000000000000000000000000000000000000081527f951e19ed000000000000000000000000000000000000000000000000000000006004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c31eb0e09150602401610f1c565b6060601680548060200260200160405190810160405280929190818152602001828054801561118a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161116c575b5050505050905090565b60248054602754604051620186a09381018490526001600160a01b0392831660448201529116606482015260009060840160408051601f198184030181529181526020820180516001600160e01b03167f357fc5a200000000000000000000000000000000000000000000000000000000179052602654905163ca669fa760e01b81526001600160a01b039091166004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b15801561126357600080fd5b505af1158015611277573d6000803e3d6000fd5b5050602654604080516001600160a01b0390921660248301527f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b960448084019190915281518084039091018152606490920181526020820180516001600160e01b03167fe2517d3f00000000000000000000000000000000000000000000000000000000179052517ff28dceb3000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d935063f28dceb3925061134d919060040161a530565b600060405180830381600087803b15801561136757600080fd5b505af115801561137b573d6000803e3d6000fd5b50506020546024546027546040517fb8969bd40000000000000000000000000000000000000000000000000000000081526001600160a01b03938416955063b8969bd49450610fa79392831692909116908790879060040161a543565b6060601e805480602002602001604051908101604052809291908181526020016000905b8282101561151157600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b828210156114fa57838290600052602060002001805461146d9061a57a565b80601f01602080910402602001604051908101604052809291908181526020018280546114999061a57a565b80156114e65780601f106114bb576101008083540402835291602001916114e6565b820191906000526020600020905b8154815290600101906020018083116114c957829003601f168201915b50505050508152602001906001019061144e565b5050505081525050815260200190600101906113fc565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801561118a576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161116c575050505050905090565b602480546027546040516370a0823160e01b81526001600160a01b039182166004820152620186a09360009392909216916370a082319101602060405180830381865afa1580156115cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f3919061a5c7565b9050611600816000615f8d565b602480546022546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa158015611650573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611674919061a5c7565b6027546040516001600160a01b0390911660248201526044810185905290915060009060640160408051601f198184030181529181526020820180516001600160e01b03167fa9059cbb0000000000000000000000000000000000000000000000000000000017905260245490517ff30c7ba3000000000000000000000000000000000000000000000000000000008152919250737109709ecfa91a80626ff3989d68f67f5b1dd12d9163f30c7ba391611742916001600160a01b039190911690600090869060040161a5e0565b600060405180830381600087803b15801561175c57600080fd5b505af1158015611770573d6000803e3d6000fd5b50506022546040516381bad6f360e01b8152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b1580156117e957600080fd5b505af11580156117fd573d6000803e3d6000fd5b50506027546024546040518881526001600160a01b039283169450911691507f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb9060200160405180910390a360285460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b1580156118a257600080fd5b505af11580156118b6573d6000803e3d6000fd5b5050602254602480546027546040517fd9caed120000000000000000000000000000000000000000000000000000000081526001600160a01b0392831660048201529082169281019290925260448201899052909116925063d9caed129150606401600060405180830381600087803b15801561193257600080fd5b505af1158015611946573d6000803e3d6000fd5b5050602480546027546040516370a0823160e01b81526001600160a01b03918216600482015260009550911692506370a082319101602060405180830381865afa158015611998573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119bc919061a5c7565b90506119c88186615f8d565b602480546022546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa158015611a18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3c919061a5c7565b9050611a5181611a4c888761a637565b615f8d565b602480546020546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa158015611aa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ac5919061a5c7565b9050611ad2816000615f8d565b50505050505050565b60248054602754604051620186a09381018490526001600160a01b0392831660448201529116606482015260009060840160408051601f198184030181529181526020820180516001600160e01b03167f357fc5a200000000000000000000000000000000000000000000000000000000179052602654905163ca669fa760e01b81526001600160a01b039091166004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401610e18565b6060601780548060200260200160405190810160405280929190818152602001828054801561118a576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161116c575050505050905090565b6040805160048082526024820183526020820180516001600160e01b03167f6ed701690000000000000000000000000000000000000000000000000000000017905260215492517ff30c7ba30000000000000000000000000000000000000000000000000000000081529192737109709ecfa91a80626ff3989d68f67f5b1dd12d9263f30c7ba392611c96926001600160a01b03169160009187910161a5e0565b600060405180830381600087803b158015611cb057600080fd5b505af1158015611cc4573d6000803e3d6000fd5b50506021546040516381bad6f360e01b8152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b158015611d3d57600080fd5b505af1158015611d51573d6000803e3d6000fd5b5050602080546040516001600160a01b0390911681527fbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a0935001905060405180910390a16020546040516381bad6f360e01b8152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b158015611e0a57600080fd5b505af1158015611e1e573d6000803e3d6000fd5b50506021546040516001600160a01b0390911692507fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f9150611e6490600090859061a64a565b60405180910390a260285460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b158015611ec557600080fd5b505af1158015611ed9573d6000803e3d6000fd5b50506020546021546040517f1cff79cd0000000000000000000000000000000000000000000000000000000081526001600160a01b039283169450631cff79cd9350611f2d9290911690859060040161a663565b6000604051808303816000875af1158015611f4c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611f74919081019061a76d565b5050565b6060601b805480602002602001604051908101604052809291908181526020016000905b828210156115115783829060005260206000209060020201604051806040016040529081600082018054611fcf9061a57a565b80601f0160208091040260200160405190810160405280929190818152602001828054611ffb9061a57a565b80156120485780601f1061201d57610100808354040283529160200191612048565b820191906000526020600020905b81548152906001019060200180831161202b57829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156120cd57602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b0319168152602001906004019060208260030104928301926001038202915080841161208f5790505b50505050508152505081526020019060010190611f9c565b6024805460275460405160009381018490526001600160a01b03928316604482015291166064820152819060840160408051601f198184030181529181526020820180516001600160e01b03167fc513169100000000000000000000000000000000000000000000000000000000179052602854905163ca669fa760e01b81526001600160a01b039091166004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401611090565b6040517f68656c6c6f0000000000000000000000000000000000000000000000000000006020820152620186a09060009060250160408051808303601f1901815290829052602480546021546370a0823160e01b85526001600160a01b0390811660048601529294506000939216916370a082319101602060405180830381865afa15801561222f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612253919061a5c7565b9050612260816000615f8d565b602480546022546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa1580156122b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122d4919061a5c7565b6020546040516001600160a01b0390911660248201526044810186905290915060009060640160408051601f198184030181529181526020820180516001600160e01b03167fa9059cbb0000000000000000000000000000000000000000000000000000000017905260245490517ff30c7ba3000000000000000000000000000000000000000000000000000000008152919250737109709ecfa91a80626ff3989d68f67f5b1dd12d9163f30c7ba3916123a2916001600160a01b039190911690600090869060040161a5e0565b600060405180830381600087803b1580156123bc57600080fd5b505af11580156123d0573d6000803e3d6000fd5b50506021546040516381bad6f360e01b8152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b15801561244957600080fd5b505af115801561245d573d6000803e3d6000fd5b50506020546040517f0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa93506124a092506001600160a01b0390911690879061a663565b60405180910390a16020546040516381bad6f360e01b8152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b15801561251d57600080fd5b505af1158015612531573d6000803e3d6000fd5b50506021546024546040516001600160a01b039283169450911691507f723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda79061257c908990899061a64a565b60405180910390a36022546040516381bad6f360e01b8152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b1580156125f957600080fd5b505af115801561260d573d6000803e3d6000fd5b50506021546024546040516001600160a01b039283169450911691507fb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c890612658908990899061a64a565b60405180910390a360285460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b1580156126b957600080fd5b505af11580156126cd573d6000803e3d6000fd5b50506022546024546021546040517fc8a023620000000000000000000000000000000000000000000000000000000081526001600160a01b03938416955063c8a02362945061272a9392831692909116908a908a9060040161a543565b600060405180830381600087803b15801561274457600080fd5b505af1158015612758573d6000803e3d6000fd5b5050602480546021546040516370a0823160e01b81526001600160a01b03918216600482015260009550911692506370a0823191015b602060405180830381865afa1580156127ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127cf919061a5c7565b90506127db8187615f8d565b602480546022546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa15801561282b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061284f919061a5c7565b905061285f81611a4c898761a637565b602480546020546021546040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081526001600160a01b0392831660048201529082169381019390935260009291169063dd62ed3e90604401602060405180830381865afa1580156128d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128f9919061a5c7565b9050612906816000615f8d565b602480546020546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa158015612956573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061297a919061a5c7565b9050612987816000615f8d565b505050505050505050565b604080516001808252818301909252600091816020015b60608152602001906001900390816129a95790505090506040518060400160405280600f81526020017f48656c6c6f2c20466f756e64727921000000000000000000000000000000000081525081600081518110612a0957612a0961a7a2565b6020908102919091010152604080516001808252818301909252600091816020016020820280368337019050509050602a81600081518110612a4d57612a4d61a7a2565b6020908102919091010152604051600190600090612a739085908590859060240161a803565b60408051601f198184030181529181526020820180516001600160e01b03167ff05b6abf00000000000000000000000000000000000000000000000000000000179052602654905163ca669fa760e01b81526001600160a01b039091166004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b158015612b1157600080fd5b505af1158015612b25573d6000803e3d6000fd5b5050602654604080516001600160a01b0390921660248301527f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb60448084019190915281518084039091018152606490920181526020820180516001600160e01b03167fe2517d3f00000000000000000000000000000000000000000000000000000000179052517ff28dceb3000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d935063f28dceb39250612bfb919060040161a530565b600060405180830381600087803b158015612c1557600080fd5b505af1158015612c29573d6000803e3d6000fd5b50506020546021546040517f1cff79cd0000000000000000000000000000000000000000000000000000000081526001600160a01b039283169450631cff79cd9350612c7d9290911690859060040161a663565b6000604051808303816000875af1158015612c9c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612cc4919081019061a76d565b5050505050565b6060601a805480602002602001604051908101604052809291908181526020016000905b82821015611511578382906000526020600020018054612d0e9061a57a565b80601f0160208091040260200160405190810160405280929190818152602001828054612d3a9061a57a565b8015612d875780601f10612d5c57610100808354040283529160200191612d87565b820191906000526020600020905b815481529060010190602001808311612d6a57829003601f168201915b505050505081526020019060010190612cef565b6060601d805480602002602001604051908101604052809291908181526020016000905b828210156115115760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015612e6957602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b03191681526020019060040190602082600301049283019260010382029150808411612e2b5790505b50505050508152505081526020019060010190612dbf565b604080516004808252602480830184526020830180516001600160e01b03167f6ed7016900000000000000000000000000000000000000000000000000000000179052805460275494516370a0823160e01b81526001600160a01b0395861693810193909352620186a0946000939116916370a082319101602060405180830381865afa158015612f16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f3a919061a5c7565b9050612f47816000615f8d565b602480546022546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa158015612f97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fbb919061a5c7565b6020546040516001600160a01b0390911660248201526044810186905290915060009060640160408051601f198184030181529181526020820180516001600160e01b03167fa9059cbb0000000000000000000000000000000000000000000000000000000017905260245490517ff30c7ba3000000000000000000000000000000000000000000000000000000008152919250737109709ecfa91a80626ff3989d68f67f5b1dd12d9163f30c7ba391613089916001600160a01b039190911690600090869060040161a5e0565b600060405180830381600087803b1580156130a357600080fd5b505af11580156130b7573d6000803e3d6000fd5b50506021546040516381bad6f360e01b8152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b15801561313057600080fd5b505af1158015613144573d6000803e3d6000fd5b5050602080546040516001600160a01b0390911681527fbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a0935001905060405180910390a16022546040516381bad6f360e01b8152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b1580156131fd57600080fd5b505af1158015613211573d6000803e3d6000fd5b50506021546024546040516001600160a01b039283169450911691507f85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e9061325c908990899061a64a565b60405180910390a360285460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b1580156132bd57600080fd5b505af11580156132d1573d6000803e3d6000fd5b50506022546024546021546040517f21fc65f20000000000000000000000000000000000000000000000000000000081526001600160a01b0393841695506321fc65f2945061332e9392831692909116908a908a9060040161a543565b600060405180830381600087803b15801561334857600080fd5b505af115801561335c573d6000803e3d6000fd5b5050602480546027546040516370a0823160e01b81526001600160a01b03918216600482015260009550911692506370a082319101602060405180830381865afa1580156133ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133d2919061a5c7565b90506133df816000615f8d565b602480546022546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa15801561342f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613453919061a5c7565b905061285f8185615f8d565b6040517f68656c6c6f0000000000000000000000000000000000000000000000000000006020820152620186a09060009060250160408051808303601f190181529082905260265463ca669fa760e01b83526001600160a01b031660048301529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b1580156134fa57600080fd5b505af115801561350e573d6000803e3d6000fd5b5050602654604080516001600160a01b0390921660248301527f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e460448084019190915281518084039091018152606490920181526020820180516001600160e01b03167fe2517d3f00000000000000000000000000000000000000000000000000000000179052517ff28dceb3000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d935063f28dceb392506135e4919060040161a530565b600060405180830381600087803b1580156135fe57600080fd5b505af1158015613612573d6000803e3d6000fd5b50506022546024546021546040517fc8a023620000000000000000000000000000000000000000000000000000000081526001600160a01b03938416955063c8a023629450610fa79392831692909116908790879060040161a543565b6060601c805480602002602001604051908101604052809291908181526020016000905b828210156115115760008481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801561373d57602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b031916815260200190600401906020826003010492830192600103820291508084116136ff5790505b50505050508152505081526020019060010190613693565b60606019805480602002602001604051908101604052809291908181526020016000905b828210156115115783829060005260206000200180546137989061a57a565b80601f01602080910402602001604051908101604052809291908181526020018280546137c49061a57a565b80156138115780601f106137e657610100808354040283529160200191613811565b820191906000526020600020905b8154815290600101906020018083116137f457829003601f168201915b505050505081526020019060010190613779565b60085460009060ff161561383d575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c65640000000000000000000000000000000000000000000000000000602483015260009163667f9d7090604401602060405180830381865afa1580156138ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138f2919061a5c7565b1415905090565b60248054602754604051620186a09381018490526001600160a01b0392831660448201529116606482015260009060840160408051601f198184030181529181526020820180516001600160e01b03167f357fc5a200000000000000000000000000000000000000000000000000000000179052602654905163ca669fa760e01b81526001600160a01b039091166004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b1580156139c857600080fd5b505af11580156139dc573d6000803e3d6000fd5b5050602654604080516001600160a01b0390921660248301527f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b960448084019190915281518084039091018152606490920181526020820180516001600160e01b03167fe2517d3f00000000000000000000000000000000000000000000000000000000179052517ff28dceb3000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d935063f28dceb39250613ab2919060040161a530565b600060405180830381600087803b158015613acc57600080fd5b505af1158015613ae0573d6000803e3d6000fd5b50506020546024546027546040517f5131ab590000000000000000000000000000000000000000000000000000000081526001600160a01b039384169550635131ab599450610fa79392831692909116908790879060040161a543565b60248054602754604051620186a09381018490526001600160a01b0392831660448201529116606482015260009060840160408051601f198184030181529181526020820180516001600160e01b03167f357fc5a2000000000000000000000000000000000000000000000000000000001790526024805460275492516370a0823160e01b81526001600160a01b0393841660048201529394506000939216916370a082319101602060405180830381865afa158015613c01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c25919061a5c7565b9050613c32816000615f8d565b602480546022546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa158015613c82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ca6919061a5c7565b6020546040516001600160a01b0390911660248201526044810186905290915060009060640160408051601f198184030181529181526020820180516001600160e01b03167fa9059cbb0000000000000000000000000000000000000000000000000000000017905260245490517ff30c7ba3000000000000000000000000000000000000000000000000000000008152919250737109709ecfa91a80626ff3989d68f67f5b1dd12d9163f30c7ba391613d74916001600160a01b039190911690600090869060040161a5e0565b600060405180830381600087803b158015613d8e57600080fd5b505af1158015613da2573d6000803e3d6000fd5b50506021546040516381bad6f360e01b8152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b158015613e1b57600080fd5b505af1158015613e2f573d6000803e3d6000fd5b505060208054602454602754604080516001600160a01b0394851681529485018c905291831684830152919091166060830152517f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af609350908190036080019150a16022546040516381bad6f360e01b8152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b158015613f0557600080fd5b505af1158015613f19573d6000803e3d6000fd5b50506021546024546040516001600160a01b039283169450911691507f85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e90613f64908990899061a64a565b60405180910390a360285460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b158015613fc557600080fd5b505af1158015613fd9573d6000803e3d6000fd5b50506022546024546021546040517f21fc65f20000000000000000000000000000000000000000000000000000000081526001600160a01b0393841695506321fc65f294506140369392831692909116908a908a9060040161a543565b600060405180830381600087803b15801561405057600080fd5b505af1158015614064573d6000803e3d6000fd5b5050602480546027546040516370a0823160e01b81526001600160a01b03918216600482015260009550911692506370a08231910161278e565b6040517f68656c6c6f0000000000000000000000000000000000000000000000000000006020820152670de0b6b3a76400009060009060250160408051808303601f190181529082905260265463ca669fa760e01b83526001600160a01b031660048301529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b15801561413e57600080fd5b505af1158015614152573d6000803e3d6000fd5b5050602654604080516001600160a01b0390921660248301527f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb60448084019190915281518084039091018152606490920181526020820180516001600160e01b03167fe2517d3f00000000000000000000000000000000000000000000000000000000179052517ff28dceb3000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d935063f28dceb39250614228919060040161a530565b600060405180830381600087803b15801561424257600080fd5b505af1158015614256573d6000803e3d6000fd5b50506020546021546040517f35c018db0000000000000000000000000000000000000000000000000000000081526001600160a01b0392831694506335c018db935086926142aa921690869060040161a663565b6000604051808303818588803b1580156142c357600080fd5b505af1158015611ad2573d6000803e3d6000fd5b60285460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b15801561433057600080fd5b505af1158015614344573d6000803e3d6000fd5b5050602854604080516001600160a01b0390921660248301527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60448084019190915281518084039091018152606490920181526020820180516001600160e01b03167fe2517d3f00000000000000000000000000000000000000000000000000000000179052517ff28dceb3000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d935063f28dceb3925061441a919060040161a530565b600060405180830381600087803b15801561443457600080fd5b505af1158015614448573d6000803e3d6000fd5b50505050602060009054906101000a90046001600160a01b03166001600160a01b0316638456cb596040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561449c57600080fd5b505af11580156144b0573d6000803e3d6000fd5b505060285460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063ca669fa79150602401600060405180830381600087803b15801561450d57600080fd5b505af1158015614521573d6000803e3d6000fd5b5050602854604080516001600160a01b0390921660248301527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60448084019190915281518084039091018152606490920181526020820180516001600160e01b03167fe2517d3f00000000000000000000000000000000000000000000000000000000179052517ff28dceb3000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d935063f28dceb392506145f7919060040161a530565b600060405180830381600087803b15801561461157600080fd5b505af1158015614625573d6000803e3d6000fd5b50505050602060009054906101000a90046001600160a01b03166001600160a01b0316633f4ba83a6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561467957600080fd5b505af115801561468d573d6000803e3d6000fd5b505060265460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063ca669fa79150602401600060405180830381600087803b1580156146ea57600080fd5b505af11580156146fe573d6000803e3d6000fd5b50505050602060009054906101000a90046001600160a01b03166001600160a01b0316638456cb596040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561475257600080fd5b505af1158015614766573d6000803e3d6000fd5b5050604080516004808252602480830184526020830180516001600160e01b03167f6ed701690000000000000000000000000000000000000000000000000000000017905292517fc31eb0e00000000000000000000000000000000000000000000000000000000081527fd93c06650000000000000000000000000000000000000000000000000000000091810191909152909350737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c31eb0e09101600060405180830381600087803b15801561483357600080fd5b505af1158015614847573d6000803e3d6000fd5b505060285460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063ca669fa79150602401600060405180830381600087803b1580156148a457600080fd5b505af11580156148b8573d6000803e3d6000fd5b50506020546021546040517f1cff79cd0000000000000000000000000000000000000000000000000000000081526001600160a01b039283169450631cff79cd935061490c9290911690859060040161a663565b6000604051808303816000875af115801561492b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052614953919081019061a76d565b5060265460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b1580156149ad57600080fd5b505af11580156149c1573d6000803e3d6000fd5b50505050602060009054906101000a90046001600160a01b03166001600160a01b0316633f4ba83a6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015614a1557600080fd5b505af1158015614a29573d6000803e3d6000fd5b50506021546040517ff30c7ba3000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d935063f30c7ba39250611c96916001600160a01b031690600090869060040161a5e0565b6060601580548060200260200160405190810160405280929190818152602001828054801561118a576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161116c575050505050905090565b600080604051602001614b23907f68656c6c6f000000000000000000000000000000000000000000000000000000815260050190565b60408051808303601f190181529082905260285463ca669fa760e01b83526001600160a01b031660048301529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b158015614b8a57600080fd5b505af1158015614b9e573d6000803e3d6000fd5b50506040517fc31eb0e00000000000000000000000000000000000000000000000000000000081527f951e19ed000000000000000000000000000000000000000000000000000000006004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c31eb0e091506024016135e4565b604080516001808252818301909252600091816020015b6060815260200190600190039081614c295790505090506040518060400160405280600f81526020017f48656c6c6f2c20466f756e64727921000000000000000000000000000000000081525081600081518110614c8957614c8961a7a2565b6020908102919091010152604080516001808252818301909252600091816020016020820280368337019050509050602a81600081518110614ccd57614ccd61a7a2565b6020908102919091010152604051600190600090614cf39085908590859060240161a803565b60408051601f198184030181529181526020820180516001600160e01b03167ff05b6abf0000000000000000000000000000000000000000000000000000000017905260215490517ff30c7ba3000000000000000000000000000000000000000000000000000000008152919250737109709ecfa91a80626ff3989d68f67f5b1dd12d9163f30c7ba391614d9b916001600160a01b039190911690600090869060040161a5e0565b600060405180830381600087803b158015614db557600080fd5b505af1158015614dc9573d6000803e3d6000fd5b50506021546040516381bad6f360e01b8152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b158015614e4257600080fd5b505af1158015614e56573d6000803e3d6000fd5b50506020546040517f74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b1469350614e9d92506001600160a01b039091169087908790879061a83b565b60405180910390a16020546040516381bad6f360e01b8152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b158015614f1a57600080fd5b505af1158015614f2e573d6000803e3d6000fd5b50506021546040516001600160a01b0390911692507fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f9150614f7490600090859061a64a565b60405180910390a260285460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401612bfb565b604080517f68656c6c6f0000000000000000000000000000000000000000000000000000006020820152815160058183030181526025909101909152602154670de0b6b3a764000091906001600160a01b03163161501f816000615f8d565b6021546040516381bad6f360e01b8152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b15801561509457600080fd5b505af11580156150a8573d6000803e3d6000fd5b50506020546040517f0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa93506150eb92506001600160a01b0390911690859061a663565b60405180910390a16020546040516381bad6f360e01b8152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b15801561516857600080fd5b505af115801561517c573d6000803e3d6000fd5b50506021546040516001600160a01b0390911692507fd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c91506151c990670de0b6b3a764000090869061a64a565b60405180910390a260285460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b15801561522a57600080fd5b505af115801561523e573d6000803e3d6000fd5b50506020546021546040517f35c018db0000000000000000000000000000000000000000000000000000000081526001600160a01b0392831694506335c018db93508792615292921690879060040161a663565b6000604051808303818588803b1580156152ab57600080fd5b505af11580156152bf573d6000803e3d6000fd5b50506021546001600160a01b0316319250610d5c9150829050670de0b6b3a7640000615f8d565b60248054602754604051620186a09381018490526001600160a01b0392831660448201529116606482015260009060840160408051601f198184030181529181526020820180516001600160e01b03167fc5131691000000000000000000000000000000000000000000000000000000001790526024805460275492516370a0823160e01b81526001600160a01b0393841660048201529394506000939216916370a082319101602060405180830381865afa1580156153aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906153ce919061a5c7565b90506153db816000615f8d565b602480546022546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa15801561542b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061544f919061a5c7565b6020546040516001600160a01b0390911660248201526044810186905290915060009060640160408051601f198184030181529181526020820180516001600160e01b03167fa9059cbb0000000000000000000000000000000000000000000000000000000017905260245490517ff30c7ba3000000000000000000000000000000000000000000000000000000008152919250737109709ecfa91a80626ff3989d68f67f5b1dd12d9163f30c7ba39161551d916001600160a01b039190911690600090869060040161a5e0565b600060405180830381600087803b15801561553757600080fd5b505af115801561554b573d6000803e3d6000fd5b50506021546040516381bad6f360e01b8152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b1580156155c457600080fd5b505af11580156155d8573d6000803e3d6000fd5b50506020547f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af6092506001600160a01b0316905061561660028861a883565b602454602754604080516001600160a01b03958616815260208101949094529184168383015292909216606082015290519081900360800190a16022546040516381bad6f360e01b8152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b1580156156c557600080fd5b505af11580156156d9573d6000803e3d6000fd5b50506021546024546040516001600160a01b039283169450911691507f85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e90615724908990899061a64a565b60405180910390a360285460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b15801561578557600080fd5b505af1158015615799573d6000803e3d6000fd5b50506022546024546021546040517f21fc65f20000000000000000000000000000000000000000000000000000000081526001600160a01b0393841695506321fc65f294506157f69392831692909116908a908a9060040161a543565b600060405180830381600087803b15801561581057600080fd5b505af1158015615824573d6000803e3d6000fd5b5050602480546027546040516370a0823160e01b81526001600160a01b03918216600482015260009550911692506370a082319101602060405180830381865afa158015615876573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061589a919061a5c7565b90506158ab81611a4c60028961a883565b602480546022546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa1580156158fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061591f919061a5c7565b905061285f8161593060028a61a883565b611a4c908761a637565b60408051808201909152600f81527f48656c6c6f2c20466f756e6472792100000000000000000000000000000000006020820152602154602a90600190670de0b6b3a764000090615997906000906001600160a01b031631615f8d565b60008484846040516024016159ae9392919061a8be565b60408051601f198184030181529181526020820180516001600160e01b03167fe04d4f970000000000000000000000000000000000000000000000000000000017905260215490517ff30c7ba3000000000000000000000000000000000000000000000000000000008152919250737109709ecfa91a80626ff3989d68f67f5b1dd12d9163f30c7ba391615a5d916001600160a01b039190911690670de0b6b3a764000090869060040161a5e0565b600060405180830381600087803b158015615a7757600080fd5b505af1158015615a8b573d6000803e3d6000fd5b50506021546040516381bad6f360e01b8152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b158015615b0457600080fd5b505af1158015615b18573d6000803e3d6000fd5b50506020546040517f1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa9350615b6192506001600160a01b0390911690859089908990899061a8e8565b60405180910390a16020546040516381bad6f360e01b8152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b158015615bde57600080fd5b505af1158015615bf2573d6000803e3d6000fd5b50506021546040516001600160a01b0390911692507fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f9150615c3f90670de0b6b3a764000090859061a64a565b60405180910390a260285460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b158015615ca057600080fd5b505af1158015615cb4573d6000803e3d6000fd5b50506020546021546040517f1cff79cd0000000000000000000000000000000000000000000000000000000081526001600160a01b039283169450631cff79cd93508692615d08921690869060040161a663565b60006040518083038185885af1158015615d26573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f19168201604052615d4f919081019061a76d565b50602154612cc49083906001600160a01b031631615f8d565b60265460405163ca669fa760e01b81526001600160a01b039091166004820152620186a090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b158015615dc657600080fd5b505af1158015615dda573d6000803e3d6000fd5b5050602654604080516001600160a01b0390921660248301527f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e460448084019190915281518084039091018152606490920181526020820180516001600160e01b03167fe2517d3f00000000000000000000000000000000000000000000000000000000179052517ff28dceb3000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d935063f28dceb39250615eb0919060040161a530565b600060405180830381600087803b158015615eca57600080fd5b505af1158015615ede573d6000803e3d6000fd5b5050602254602480546027546040517fd9caed120000000000000000000000000000000000000000000000000000000081526001600160a01b0392831660048201529082169281019290925260448201869052909116925063d9caed129150606401600060405180830381600087803b158015615f5a57600080fd5b505af1158015612cc4573d6000803e3d6000fd5b6000615f7861a0af565b615f8384848361600c565b9150505b92915050565b6040517f98296c540000000000000000000000000000000000000000000000000000000081526004810183905260248101829052737109709ecfa91a80626ff3989d68f67f5b1dd12d906398296c549060440160006040518083038186803b158015615ff857600080fd5b505afa158015610fd5573d6000803e3d6000fd5b6000806160198584616087565b905061607c6040518060400160405280601d81526020017f4552433139363750726f78792e736f6c3a4552433139363750726f7879000000815250828660405160200161606792919061a663565b60405160208183030381529060405285616093565b9150505b9392505050565b600061608083836160c1565b60c081015151600090156160b7576160b084848460c001516160dc565b9050616080565b6160b08484616282565b60006160cd838361636d565b61608083836020015184616093565b6000806160e7616379565b905060006160f5868361644c565b9050600061610c82606001518360200151856168f2565b9050600061611c83838989616b04565b9050600061612982617981565b602081015181519192509060030b1561619c5789826040015160405160200161615392919061a929565b60408051601f19818403018152908290527f08c379a00000000000000000000000000000000000000000000000000000000082526161939160040161a530565b60405180910390fd5b60006161df6040518060400160405280601581526020017f4465706c6f79656420746f20616464726573733a200000000000000000000000815250836001617b50565b6040517fc6ce059d000000000000000000000000000000000000000000000000000000008152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c6ce059d9061623290849060040161a530565b602060405180830381865afa15801561624f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616273919061a9aa565b9b9a5050505050505050505050565b6040517f8d1cc9250000000000000000000000000000000000000000000000000000000081526000908190737109709ecfa91a80626ff3989d68f67f5b1dd12d90638d1cc925906162d790879060040161a530565b600060405180830381865afa1580156162f4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261631c919081019061a76d565b9050600061634a828560405160200161633692919061a9d3565b604051602081830303815290604052617d50565b90506001600160a01b038116615f8357848460405160200161615392919061aa02565b611f7482826000617d63565b604080518082018252600381527f6f75740000000000000000000000000000000000000000000000000000000000602082015290517fd145736c000000000000000000000000000000000000000000000000000000008152606091737109709ecfa91a80626ff3989d68f67f5b1dd12d91829063d145736c9061640090849060040161aaad565b600060405180830381865afa15801561641d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052616445919081019061aaf4565b9250505090565b61647e6040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d90506164c96040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b6164d285617e66565b602082015260006164e28661824b565b90506000836001600160a01b031663d930a0e66040518163ffffffff1660e01b8152600401600060405180830381865afa158015616524573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261654c919081019061aaf4565b86838560200151604051602001616566949392919061ab3d565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291506000906001600160a01b038616906360f9bb11906165be90859060040161a530565b600060405180830381865afa1580156165db573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052616603919081019061aaf4565b6040517fdb4235f60000000000000000000000000000000000000000000000000000000081529091506001600160a01b0386169063db4235f69061664b90849060040161ac41565b602060405180830381865afa158015616668573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061668c919061a50e565b6166a15781604051602001616153919061ac93565b6040517f49c4fac80000000000000000000000000000000000000000000000000000000081526001600160a01b038616906349c4fac8906166e690849060040161ad25565b600060405180830381865afa158015616703573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261672b919081019061aaf4565b84526040517fdb4235f60000000000000000000000000000000000000000000000000000000081526001600160a01b0386169063db4235f69061677290849060040161ad77565b602060405180830381865afa15801561678f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906167b3919061a50e565b15616848576040517f49c4fac80000000000000000000000000000000000000000000000000000000081526001600160a01b038616906349c4fac8906167fd90849060040161ad77565b600060405180830381865afa15801561681a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052616842919081019061aaf4565b60408501525b846001600160a01b03166349c4fac882866000015160405160200161686d919061adc9565b6040516020818303038152906040526040518363ffffffff1660e01b815260040161689992919061ae35565b600060405180830381865afa1580156168b6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526168de919081019061aaf4565b606085015250608083015250949350505050565b60408051600480825260a0820190925260609160009190816020015b606081526020019060019003908161690e5790505090506040518060400160405280600481526020017f67726570000000000000000000000000000000000000000000000000000000008152508160008151811061696e5761696e61a7a2565b60200260200101819052506040518060400160405280600381526020017f2d726c0000000000000000000000000000000000000000000000000000000000815250816001815181106169c2576169c261a7a2565b6020026020010181905250846040516020016169de919061ae5a565b60405160208183030381529060405281600281518110616a0057616a0061a7a2565b602002602001018190525082604051602001616a1c919061aec6565b60405160208183030381529060405281600381518110616a3e57616a3e61a7a2565b60200260200101819052506000616a5482617981565b602080820151604080518082018252600581527f2e6a736f6e0000000000000000000000000000000000000000000000000000008185019081528251808401845260008082529086015282518084019093529051825292810192909252919250616ae590604080518082018252600080825260209182015281518083019092528451825280850190820152906184ce565b616afa5785604051602001616153919061af07565b9695505050505050565b60a0810151604080518082018252600080825260209182015281518083019092528251808352928101910152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9015616b54565b511590565b616cc857826020015115616c10576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605860248201527f54686520606c6963656e73655479706560206f7074696f6e2063616e6e6f742060448201527f62652075736564207768656e207468652060736b6970566572696679536f757260648201527f6365436f646560206f7074696f6e206973206074727565600000000000000000608482015260a401616193565b8260c0015115616cc8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605360248201527f54686520606c6963656e73655479706560206f7074696f6e2063616e6e6f742060448201527f62652075736564207768656e207468652060736b69704c6963656e736554797060648201527f6560206f7074696f6e2069732060747275656000000000000000000000000000608482015260a401616193565b6040805160ff8082526120008201909252600091816020015b6060815260200190600190039081616ce157905050905060006040518060400160405280600381526020017f6e70780000000000000000000000000000000000000000000000000000000000815250828280616d3c9061af98565b935060ff1681518110616d5157616d5161a7a2565b60200260200101819052506040518060400160405280600d81526020017f302e302e312d616c7068612e3700000000000000000000000000000000000000815250604051602001616da2919061afb7565b604051602081830303815290604052828280616dbd9061af98565b935060ff1681518110616dd257616dd261a7a2565b60200260200101819052506040518060400160405280600681526020017f6465706c6f790000000000000000000000000000000000000000000000000000815250828280616e1f9061af98565b935060ff1681518110616e3457616e3461a7a2565b60200260200101819052506040518060400160405280600e81526020017f2d2d636f6e74726163744e616d65000000000000000000000000000000000000815250828280616e819061af98565b935060ff1681518110616e9657616e9661a7a2565b60200260200101819052508760200151828280616eb29061af98565b935060ff1681518110616ec757616ec761a7a2565b60200260200101819052506040518060400160405280600e81526020017f2d2d636f6e747261637450617468000000000000000000000000000000000000815250828280616f149061af98565b935060ff1681518110616f2957616f2961a7a2565b602090810291909101015287518282616f418161af98565b935060ff1681518110616f5657616f5661a7a2565b60200260200101819052506040518060400160405280600981526020017f2d2d636861696e49640000000000000000000000000000000000000000000000815250828280616fa39061af98565b935060ff1681518110616fb857616fb861a7a2565b6020026020010181905250616fcc4661852f565b8282616fd78161af98565b935060ff1681518110616fec57616fec61a7a2565b60200260200101819052506040518060400160405280600f81526020017f2d2d6275696c64496e666f46696c6500000000000000000000000000000000008152508282806170399061af98565b935060ff168151811061704e5761704e61a7a2565b6020026020010181905250868282806170669061af98565b935060ff168151811061707b5761707b61a7a2565b60209081029190910101528551156171a25760408051808201909152601581527f2d2d636f6e7374727563746f7242797465636f64650000000000000000000000602082015282826170cc8161af98565b935060ff16815181106170e1576170e161a7a2565b60209081029190910101526040517f71aad10d0000000000000000000000000000000000000000000000000000000081526001600160a01b038416906371aad10d9061713190899060040161a530565b600060405180830381865afa15801561714e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052617176919081019061aaf4565b82826171818161af98565b935060ff16815181106171965761719661a7a2565b60200260200101819052505b8460200151156172725760408051808201909152601281527f2d2d766572696679536f75726365436f64650000000000000000000000000000602082015282826171eb8161af98565b935060ff16815181106172005761720061a7a2565b60200260200101819052506040518060400160405280600581526020017f66616c736500000000000000000000000000000000000000000000000000000081525082828061724d9061af98565b935060ff16815181106172625761726261a7a2565b6020026020010181905250617439565b6172aa616b4f8660a0015160408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b61733d5760408051808201909152600d81527f2d2d6c6963656e73655479706500000000000000000000000000000000000000602082015282826172ed8161af98565b935060ff16815181106173025761730261a7a2565b60200260200101819052508460a00151604051602001617322919061ae5a565b60405160208183030381529060405282828061724d9061af98565b8460c0015115801561738057506040808901518151808301835260008082526020918201528251808401909352815183529081019082015261737e90511590565b155b156174395760408051808201909152600d81527f2d2d6c6963656e73655479706500000000000000000000000000000000000000602082015282826173c48161af98565b935060ff16815181106173d9576173d961a7a2565b60200260200101819052506173ed886185cf565b6040516020016173fd919061ae5a565b6040516020818303038152906040528282806174189061af98565b935060ff168151811061742d5761742d61a7a2565b60200260200101819052505b6040808601518151808301835260008082526020918201528251808401909352815183529081019082015261746d90511590565b6175025760408051808201909152600b81527f2d2d72656c617965724964000000000000000000000000000000000000000000602082015282826174b08161af98565b935060ff16815181106174c5576174c561a7a2565b602002602001018190525084604001518282806174e19061af98565b935060ff16815181106174f6576174f661a7a2565b60200260200101819052505b6060850151156176235760408051808201909152600681527f2d2d73616c7400000000000000000000000000000000000000000000000000006020820152828261754b8161af98565b935060ff16815181106175605761756061a7a2565b602090810291909101015260608501516040517fb11a19e800000000000000000000000000000000000000000000000000000000815260048101919091526001600160a01b0384169063b11a19e890602401600060405180830381865afa1580156175cf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526175f7919081019061aaf4565b82826176028161af98565b935060ff16815181106176175761761761a7a2565b60200260200101819052505b60e085015151156176ca5760408051808201909152600a81527f2d2d6761734c696d6974000000000000000000000000000000000000000000006020820152828261766d8161af98565b935060ff16815181106176825761768261a7a2565b602002602001018190525061769e8560e001516000015161852f565b82826176a98161af98565b935060ff16815181106176be576176be61a7a2565b60200260200101819052505b60e085015160200151156177745760408051808201909152600a81527f2d2d676173507269636500000000000000000000000000000000000000000000602082015282826177178161af98565b935060ff168151811061772c5761772c61a7a2565b60200260200101819052506177488560e001516020015161852f565b82826177538161af98565b935060ff16815181106177685761776861a7a2565b60200260200101819052505b60e0850151604001511561781e5760408051808201909152600e81527f2d2d6d6178466565506572476173000000000000000000000000000000000000602082015282826177c18161af98565b935060ff16815181106177d6576177d661a7a2565b60200260200101819052506177f28560e001516040015161852f565b82826177fd8161af98565b935060ff16815181106178125761781261a7a2565b60200260200101819052505b60e085015160600151156178c85760408051808201909152601681527f2d2d6d61785072696f72697479466565506572476173000000000000000000006020820152828261786b8161af98565b935060ff16815181106178805761788061a7a2565b602002602001018190525061789c8560e001516060015161852f565b82826178a78161af98565b935060ff16815181106178bc576178bc61a7a2565b60200260200101819052505b60008160ff1667ffffffffffffffff8111156178e6576178e661a685565b60405190808252806020026020018201604052801561791957816020015b60608152602001906001900390816179045790505b50905060005b8260ff168160ff16101561797257838160ff16815181106179425761794261a7a2565b6020026020010151828260ff168151811061795f5761795f61a7a2565b602090810291909101015260010161791f565b5093505050505b949350505050565b6179a86040518060600160405280600060030b815260200160608152602001606081525090565b60408051808201825260048082527f6261736800000000000000000000000000000000000000000000000000000000602083015291517fd145736c000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d92600091849163d145736c91617a2e9186910161b022565b600060405180830381865afa158015617a4b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052617a73919081019061aaf4565b90506000617a8186836190be565b90506000846001600160a01b031663f45c1ce7836040518263ffffffff1660e01b8152600401617ab1919061a464565b6000604051808303816000875af1158015617ad0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052617af8919081019061b069565b805190915060030b15801590617b115750602081015151155b8015617b205750604081015151155b15616afa5781600081518110617b3857617b3861a7a2565b6020026020010151604051602001616153919061b11f565b60606000617b858560408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600080825260209182015281518083019092528651825280870190820152909150617bbc9082905b90619213565b15617d19576000617c3982617c3384617c2d617bff8a60408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b6040805180820182526000808252602091820152815180830190925282518252918201519181019190915290565b9061923a565b9061929c565b604080518082018252600181527f0a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152909150617c9d908290619213565b15617d0757604080518082018252600181527f0a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152617d04905b8290619321565b90505b617d1081619347565b92505050616080565b8215617d3257848460405160200161615392919061b30b565b5050604080516020810190915260008152616080565b509392505050565b6000808251602084016000f09392505050565b8160a0015115617d7257505050565b6000617d7f8484846193b0565b90506000617d8c82617981565b602081015181519192509060030b158015617e285750604080518082018252600781527f535543434553530000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152617e2890604080518082018252600080825260209182015281518083019092528451825280850190820152617bb6565b15617e3557505050505050565b60408201515115617e55578160400151604051602001616153919061b3b2565b80604051602001616153919061b410565b60606000617e9b8360408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600481527f2e736f6c0000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152909150617f00905b82906184ce565b15617f6f57604080518082018252600481527f2e736f6c000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261608090617f6a90839061994b565b619347565b604080518082018252600181527f3a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152617fd1905b82906199d5565b60010361809e57604080518082018252600181527f3a000000000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261803790617cfd565b50604080518082018252600181527f3a000000000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261608090617f6a905b8390619321565b604080518082018252600581527f2e6a736f6e000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526180fd90617ef9565b1561823457604080518082018252600181527f2f00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820181905284518086019095529251845283015290618165908390619a6f565b905060008160018351618178919061a637565b815181106181885761818861a7a2565b6020026020010151905061822b617f6a6181fe6040518060400160405280600581526020017f2e6a736f6e00000000000000000000000000000000000000000000000000000081525060408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b6040805180820182526000808252602091820152815180830190925285518252808601908201529061994b565b95945050505050565b82604051602001616153919061b47b565b50919050565b606060006182808360408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600481527f2e736f6c00000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201529091506182e290617ef9565b156182f05761608081619347565b604080518082018252600181527f3a000000000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261834f90617fca565b6001036183b957604080518082018252600181527f3a000000000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261608090617f6a90618097565b604080518082018252600581527f2e6a736f6e0000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261841890617ef9565b1561823457604080518082018252600181527f2f00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820181905284518086019095529251845283015290618480908390619a6f565b90506001815111156184bc57806002825161849b919061a637565b815181106184ab576184ab61a7a2565b602002602001015192505050919050565b5082604051602001616153919061b47b565b8051825160009111156184e357506000615f87565b815183516020850151600092916184f99161b559565b618503919061a637565b90508260200151810361851a576001915050615f87565b82516020840151819020912014905092915050565b6060600061853c83619b14565b600101905060008167ffffffffffffffff81111561855c5761855c61a685565b6040519080825280601f01601f191660200182016040528015618586576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a850494508461859057509392505050565b604081810151815180830183526000808252602091820181905283518085018552835181529282018383015283518085018552600a81527f554e4c4943454e534544000000000000000000000000000000000000000000008184019081528551808701875283815284019290925284518086019095525184529083015260609161865b905b8290619bf6565b1561869b57505060408051808201909152600481527f4e6f6e65000000000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600981527f556e6c6963656e73650000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526186fa90618654565b1561873a57505060408051808201909152600981527f556e6c6963656e736500000000000000000000000000000000000000000000006020820152919050565b604080518082018252600381527f4d495400000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261879990618654565b156187d957505060408051808201909152600381527f4d495400000000000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f47504c2d322e302d6f6e6c7900000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261883890618654565b8061889d5750604080518082018252601081527f47504c2d322e302d6f722d6c61746572000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261889d90618654565b156188dd57505060408051808201909152600981527f474e552047504c763200000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f47504c2d332e302d6f6e6c7900000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261893c90618654565b806189a15750604080518082018252601081527f47504c2d332e302d6f722d6c6174657200000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526189a190618654565b156189e157505060408051808201909152600981527f474e552047504c763300000000000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4c47504c2d322e312d6f6e6c790000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152618a4090618654565b80618aa55750604080518082018252601181527f4c47504c2d322e312d6f722d6c6174657200000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152618aa590618654565b15618ae557505060408051808201909152600c81527f474e55204c47504c76322e3100000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4c47504c2d332e302d6f6e6c790000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152618b4490618654565b80618ba95750604080518082018252601181527f4c47504c2d332e302d6f722d6c6174657200000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152618ba990618654565b15618be957505060408051808201909152600a81527f474e55204c47504c7633000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f4253442d322d436c61757365000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152618c4890618654565b15618c8857505060408051808201909152600c81527f4253442d322d436c6175736500000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f4253442d332d436c61757365000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152618ce790618654565b15618d2757505060408051808201909152600c81527f4253442d332d436c6175736500000000000000000000000000000000000000006020820152919050565b604080518082018252600781527f4d504c2d322e300000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152618d8690618654565b15618dc657505060408051808201909152600781527f4d504c2d322e30000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600781527f4f534c2d332e300000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152618e2590618654565b15618e6557505060408051808201909152600781527f4f534c2d332e30000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600a81527f4170616368652d322e300000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152618ec490618654565b15618f0457505060408051808201909152600a81527f4170616368652d322e30000000000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4147504c2d332e302d6f6e6c790000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152618f6390618654565b80618fc85750604080518082018252601181527f4147504c2d332e302d6f722d6c6174657200000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152618fc890618654565b1561900857505060408051808201909152600a81527f474e55204147504c7633000000000000000000000000000000000000000000006020820152919050565b604080518082018252600881527f4255534c2d312e310000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261906790618654565b156190a757505060408051808201909152600781527f42534c20312e31000000000000000000000000000000000000000000000000006020820152919050565b60408084015184519151616153929060200161b56c565b60608060005b845181101561914957818582815181106190e0576190e061a7a2565b60200260200101516040516020016190f992919061a9d3565b604051602081830303815290604052915060018551619118919061a637565b8114619141578160405160200161912f919061b6d5565b60405160208183030381529060405291505b6001016190c4565b5060408051600380825260808201909252600091816020015b6060815260200190600190039081619162579050509050838160008151811061918d5761918d61a7a2565b60200260200101819052506040518060400160405280600281526020017f2d63000000000000000000000000000000000000000000000000000000000000815250816001815181106191e1576191e161a7a2565b602002602001018190525081816002815181106192005761920061a7a2565b6020908102919091010152949350505050565b60208083015183518351928401516000936192319291849190619c0a565b14159392505050565b6040805180820190915260008082526020820152600061926c8460000151856020015185600001518660200151619d1b565b905083602001518161927e919061a637565b8451859061928d90839061a637565b90525060208401525090919050565b60408051808201909152600080825260208201528151835110156192c1575081615f87565b60208083015190840151600191146192e85750815160208481015190840151829020919020145b8015619319578251845185906192ff90839061a637565b905250825160208501805161931590839061b559565b9052505b509192915050565b6040805180820190915260008082526020820152619340838383619e3b565b5092915050565b60606000826000015167ffffffffffffffff8111156193685761936861a685565b6040519080825280601f01601f191660200182016040528015619392576020820181803683370190505b50905060006020820190506193408185602001518660000151619ee6565b606060006193bc616379565b6040805160ff808252612000820190925291925060009190816020015b60608152602001906001900390816193d957905050905060006040518060400160405280600381526020017f6e707800000000000000000000000000000000000000000000000000000000008152508282806194349061af98565b935060ff16815181106194495761944961a7a2565b60200260200101819052506040518060400160405280600781526020017f5e312e33322e330000000000000000000000000000000000000000000000000081525060405160200161949a919061b716565b6040516020818303038152906040528282806194b59061af98565b935060ff16815181106194ca576194ca61a7a2565b60200260200101819052506040518060400160405280600881526020017f76616c69646174650000000000000000000000000000000000000000000000008152508282806195179061af98565b935060ff168151811061952c5761952c61a7a2565b602002602001018190525082604051602001619548919061aec6565b6040516020818303038152906040528282806195639061af98565b935060ff16815181106195785761957861a7a2565b60200260200101819052506040518060400160405280600a81526020017f2d2d636f6e7472616374000000000000000000000000000000000000000000008152508282806195c59061af98565b935060ff16815181106195da576195da61a7a2565b60200260200101819052506195ef8784619f60565b82826195fa8161af98565b935060ff168151811061960f5761960f61a7a2565b6020908102919091010152855151156196bb5760408051808201909152600b81527f2d2d7265666572656e6365000000000000000000000000000000000000000000602082015282826196618161af98565b935060ff16815181106196765761967661a7a2565b602002602001018190525061968f866000015184619f60565b828261969a8161af98565b935060ff16815181106196af576196af61a7a2565b60200260200101819052505b8560800151156197295760408051808201909152601881527f2d2d756e73616665536b697053746f72616765436865636b0000000000000000602082015282826197048161af98565b935060ff16815181106197195761971961a7a2565b602002602001018190525061978f565b841561978f5760408051808201909152601281527f2d2d726571756972655265666572656e636500000000000000000000000000006020820152828261976e8161af98565b935060ff16815181106197835761978361a7a2565b60200260200101819052505b6040860151511561982b5760408051808201909152600d81527f2d2d756e73616665416c6c6f7700000000000000000000000000000000000000602082015282826197d98161af98565b935060ff16815181106197ee576197ee61a7a2565b6020026020010181905250856040015182828061980a9061af98565b935060ff168151811061981f5761981f61a7a2565b60200260200101819052505b8560600151156198955760408051808201909152601481527f2d2d756e73616665416c6c6f7752656e616d6573000000000000000000000000602082015282826198748161af98565b935060ff16815181106198895761988961a7a2565b60200260200101819052505b60008160ff1667ffffffffffffffff8111156198b3576198b361a685565b6040519080825280602002602001820160405280156198e657816020015b60608152602001906001900390816198d15790505b50905060005b8260ff168160ff16101561993f57838160ff168151811061990f5761990f61a7a2565b6020026020010151828260ff168151811061992c5761992c61a7a2565b60209081029190910101526001016198ec565b50979650505050505050565b6040805180820190915260008082526020820152815183511015619970575081615f87565b815183516020850151600092916199869161b559565b619990919061a637565b602084015190915060019082146199b1575082516020840151819020908220145b80156199cc578351855186906199c890839061a637565b9052505b50929392505050565b60008082600001516199f98560000151866020015186600001518760200151619d1b565b619a03919061b559565b90505b83516020850151619a17919061b559565b81116193405781619a278161b75b565b9250508260000151619a5e856020015183619a42919061a637565b8651619a4e919061a637565b8386600001518760200151619d1b565b619a68919061b559565b9050619a06565b60606000619a7d84846199d5565b619a8890600161b559565b67ffffffffffffffff811115619aa057619aa061a685565b604051908082528060200260200182016040528015619ad357816020015b6060815260200190600190039081619abe5790505b50905060005b8151811015617d4857619aef617f6a8686619321565b828281518110619b0157619b0161a7a2565b6020908102919091010152600101619ad9565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310619b5d577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310619b89576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310619ba757662386f26fc10000830492506010015b6305f5e1008310619bbf576305f5e100830492506008015b6127108310619bd357612710830492506004015b60648310619be5576064830492506002015b600a8310615f875760010192915050565b6000619c028383619fa0565b159392505050565b600080858411619d115760208411619cbd5760008415619c55576001619c3186602061a637565b619c3c90600861b775565b619c4790600261b873565b619c51919061a637565b1990505b8351811685619c64898961b559565b619c6e919061a637565b805190935082165b818114619ca857878411619c905787945050505050617979565b83619c9a8161b87f565b945050828451169050619c76565b619cb2878561b559565b945050505050617979565b838320619cca858861a637565b619cd4908761b559565b91505b858210619d0f57848220808203619cfc57619cf2868461b559565b9350505050617979565b619d0760018461a637565b925050619cd7565b505b5092949350505050565b60008381868511619e265760208511619dd55760008515619d67576001619d4387602061a637565b619d4e90600861b775565b619d5990600261b873565b619d63919061a637565b1990505b84518116600087619d788b8b61b559565b619d82919061a637565b855190915083165b828114619dc757818610619daf57619da28b8b61b559565b9650505050505050617979565b85619db98161b75b565b965050838651169050619d8a565b859650505050505050617979565b508383206000905b619de7868961a637565b8211619e2457858320808203619e035783945050505050617979565b619e0e60018561b559565b9350508180619e1c9061b75b565b925050619ddd565b505b619e30878761b559565b979650505050505050565b60408051808201909152600080825260208201526000619e6d8560000151866020015186600001518760200151619d1b565b602080870180519186019190915251909150619e89908261a637565b835284516020860151619e9c919061b559565b8103619eab5760008552619edd565b83518351619eb9919061b559565b85518690619ec890839061a637565b9052508351619ed7908261b559565b60208601525b50909392505050565b60208110619f1e5781518352619efd60208461b559565b9250619f0a60208361b559565b9150619f1760208261a637565b9050619ee6565b6000198115619f4d576001619f3483602061a637565b619f409061010061b873565b619f4a919061a637565b90505b9151835183169219169190911790915250565b60606000619f6e848461644c565b8051602080830151604051939450619f889390910161b896565b60405160208183030381529060405291505092915050565b8151815160009190811115619fb3575081515b6020808501519084015160005b8381101561a06c578251825180821461a03c57600019602087101561a01b57600184619fed89602061a637565b619ff7919061b559565b61a00290600861b775565b61a00d90600261b873565b61a017919061a637565b1990505b818116838216818103911461a039579750615f879650505050505050565b50505b61a04760208661b559565b945061a05460208561b559565b9350505060208161a065919061b559565b9050619fc0565b5084518651616afa919061b8ee565b610c9f8061b90f83390190565b6113e28061c5ae83390190565b61182a8061d99083390190565b610d5e8061f1ba83390190565b6040518060e0016040528060608152602001606081526020016060815260200160001515815260200160001515815260200160001515815260200161a0f261a0f7565b905290565b6040518061010001604052806000151581526020016000151581526020016060815260200160008019168152602001606081526020016060815260200160001515815260200161a0f26040518060800160405280600081526020016000815260200160008152602001600081525090565b602080825282518282018190526000918401906040840190835b8181101561a1a95783516001600160a01b031683526020938401939092019160010161a182565b509095945050505050565b60005b8381101561a1cf57818101518382015260200161a1b7565b50506000910152565b6000815180845261a1f081602086016020860161a1b4565b601f01601f19169290920160200192915050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561a300577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452815180516001600160a01b03168652602090810151604082880181905281519088018190529101906060600582901b88018101919088019060005b8181101561a2e6577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08a850301835261a2d084865161a1d8565b602095860195909450929092019160010161a296565b50919750505060209485019492909201915060010161a22c565b50929695505050505050565b600081518084526020840193506020830160005b8281101561a3605781517fffffffff000000000000000000000000000000000000000000000000000000001686526020958601959091019060010161a320565b5093949350505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561a300577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452815180516040875261a3d6604088018261a1d8565b905060208201519150868103602088015261a3f1818361a30c565b96505050602093840193919091019060010161a392565b600082825180855260208501945060208160051b8301016020850160005b8381101561a45857601f1985840301885261a44283835161a1d8565b602098890198909350919091019060010161a426565b50909695505050505050565b602081526000616080602083018461a408565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561a300577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc087860301845281516001600160a01b038151168652602081015190506040602087015261a4f8604087018261a30c565b955050602093840193919091019060010161a49f565b60006020828403121561a52057600080fd5b8151801515811461608057600080fd5b602081526000616080602083018461a1d8565b6001600160a01b03851681526001600160a01b0384166020820152826040820152608060608201526000616afa608083018461a1d8565b600181811c9082168061a58e57607f821691505b602082108103618245577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006020828403121561a5d957600080fd5b5051919050565b6001600160a01b038416815282602082015260606040820152600061822b606083018461a1d8565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115615f8757615f8761a608565b828152604060208201526000617979604083018461a1d8565b6001600160a01b0383168152604060208201526000617979604083018461a1d8565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171561a6d75761a6d761a685565b60405290565b60008067ffffffffffffffff84111561a6f85761a6f861a685565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff8211171561a7275761a72761a685565b60405283815290508082840185101561a73f57600080fd5b617d4884602083018561a1b4565b600082601f83011261a75e57600080fd5b6160808383516020850161a6dd565b60006020828403121561a77f57600080fd5b815167ffffffffffffffff81111561a79657600080fd5b615f838482850161a74d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081518084526020840193506020830160005b8281101561a36057815186526020958601959091019060010161a7e5565b60608152600061a816606083018661a408565b828103602084015261a828818661a7d1565b9150508215156040830152949350505050565b6001600160a01b038516815260806020820152600061a85d608083018661a408565b828103604084015261a86f818661a7d1565b915050821515606083015295945050505050565b60008261a8b9577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60608152600061a8d1606083018661a1d8565b602083019490945250901515604090910152919050565b6001600160a01b038616815284602082015260a06040820152600061a91060a083018661a1d8565b6060830194909452509015156080909101529392505050565b7f4661696c656420746f206465706c6f7920636f6e74726163742000000000000081526000835161a96181601a85016020880161a1b4565b7f3a20000000000000000000000000000000000000000000000000000000000000601a91840191820152835161a99e81601c84016020880161a1b4565b01601c01949350505050565b60006020828403121561a9bc57600080fd5b81516001600160a01b038116811461608057600080fd5b6000835161a9e581846020880161a1b4565b83519083019061a9f981836020880161a1b4565b01949350505050565b7f4661696c656420746f206465706c6f7920636f6e74726163742000000000000081526000835161aa3a81601a85016020880161a1b4565b7f207573696e6720636f6e7374727563746f722064617461202200000000000000601a91840191820152835161aa7781603384016020880161a1b4565b7f220000000000000000000000000000000000000000000000000000000000000060339290910191820152603401949350505050565b60408152600b60408201527f464f554e4452595f4f55540000000000000000000000000000000000000000006060820152608060208201526000616080608083018461a1d8565b60006020828403121561ab0657600080fd5b815167ffffffffffffffff81111561ab1d57600080fd5b8201601f8101841361ab2e57600080fd5b615f838482516020840161a6dd565b6000855161ab4f818460208a0161a1b4565b7f2f00000000000000000000000000000000000000000000000000000000000000908301908152855161ab89816001840160208a0161a1b4565b7f2f0000000000000000000000000000000000000000000000000000000000000060019290910191820152845161abc781600284016020890161a1b4565b6001818301019150507f2f000000000000000000000000000000000000000000000000000000000000006001820152835161ac0981600284016020880161a1b4565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600292909101918201526007019695505050505050565b60408152600061ac54604083018461a1d8565b8281036020840152600481527f2e6173740000000000000000000000000000000000000000000000000000000060208201526040810191505092915050565b7f436f756c64206e6f742066696e642041535420696e206172746966616374200081526000825161accb81601f85016020870161a1b4565b7f2e205365742060617374203d20747275656020696e20666f756e6472792e746f601f9390910192830152507f6d6c000000000000000000000000000000000000000000000000000000000000603f820152604101919050565b60408152600061ad38604083018461a1d8565b8281036020840152601181527f2e6173742e6162736f6c7574655061746800000000000000000000000000000060208201526040810191505092915050565b60408152600061ad8a604083018461a1d8565b8281036020840152600c81527f2e6173742e6c6963656e7365000000000000000000000000000000000000000060208201526040810191505092915050565b7f2e6d657461646174612e736f75726365732e5b2700000000000000000000000081526000825161ae0181601485016020870161a1b4565b7f275d2e6b656363616b32353600000000000000000000000000000000000000006014939091019283015250602001919050565b60408152600061ae48604083018561a1d8565b828103602084015261607c818561a1d8565b7f220000000000000000000000000000000000000000000000000000000000000081526000825161ae9281600185016020870161a1b4565b7f22000000000000000000000000000000000000000000000000000000000000006001939091019283015250600201919050565b6000825161aed881846020870161a1b4565b7f2f6275696c642d696e666f000000000000000000000000000000000000000000920191825250600b01919050565b7f436f756c64206e6f742066696e64206275696c642d696e666f2066696c65207781527f697468206d61746368696e6720736f7572636520636f6465206861736820666f60208201527f7220636f6e74726163742000000000000000000000000000000000000000000060408201526000825161af8b81604b85016020870161a1b4565b91909101604b0192915050565b600060ff821660ff810361afae5761afae61a608565b60010192915050565b7f406f70656e7a657070656c696e2f646566656e6465722d6465706c6f792d636c81527f69656e742d636c6940000000000000000000000000000000000000000000000060208201526000825161b01581602985016020870161a1b4565b9190910160290192915050565b60408152601660408201527f4f50454e5a455050454c494e5f424153485f50415448000000000000000000006060820152608060208201526000616080608083018461a1d8565b60006020828403121561b07b57600080fd5b815167ffffffffffffffff81111561b09257600080fd5b82016060818503121561b0a457600080fd5b61b0ac61a6b4565b81518060030b811461b0bd57600080fd5b8152602082015167ffffffffffffffff81111561b0d957600080fd5b61b0e58682850161a74d565b602083015250604082015167ffffffffffffffff81111561b10557600080fd5b61b1118682850161a74d565b604083015250949350505050565b7f4661696c656420746f2072756e206261736820636f6d6d616e6420776974682081527f220000000000000000000000000000000000000000000000000000000000000060208201526000825161b17d81602185016020870161a1b4565b7f222e20496620796f7520617265207573696e672057696e646f77732c2073657460219390910192830152507f20746865204f50454e5a455050454c494e5f424153485f5041544820656e766960418201527f726f6e6d656e74207661726961626c6520746f207468652066756c6c7920717560618201527f616c69666965642070617468206f66207468652062617368206578656375746160818201527f626c652e20466f72206578616d706c652c20696620796f75206172652075736960a18201527f6e672047697420666f722057696e646f77732c206164642074686520666f6c6c60c18201527f6f77696e67206c696e6520696e20746865202e656e762066696c65206f66207960e18201527f6f75722070726f6a65637420287573696e6720666f727761726420736c6173686101018201527f6573293a0a4f50454e5a455050454c494e5f424153485f504154483d22433a2f6101218201527f50726f6772616d2046696c65732f4769742f62696e2f6261736822000000000061014182015261015c01919050565b7f4661696c656420746f2066696e64206c696e652077697468207072656669782081527f270000000000000000000000000000000000000000000000000000000000000060208201526000835161b36981602185016020880161a1b4565b7f2720696e206f75747075743a2000000000000000000000000000000000000000602191840191820152835161b3a681602e84016020880161a1b4565b01602e01949350505050565b7f4661696c656420746f2072756e2075706772616465207361666574792076616c81527f69646174696f6e3a20000000000000000000000000000000000000000000000060208201526000825161b01581602985016020870161a1b4565b7f55706772616465207361666574792076616c69646174696f6e206661696c656481527f3a0a00000000000000000000000000000000000000000000000000000000000060208201526000825161b46e81602285016020870161a1b4565b9190910160220192915050565b7f436f6e7472616374206e616d652000000000000000000000000000000000000081526000825161b4b381600e85016020870161a1b4565b7f206d75737420626520696e2074686520666f726d6174204d79436f6e74726163600e9390910192830152507f742e736f6c3a4d79436f6e7472616374206f72204d79436f6e74726163742e73602e8201527f6f6c206f72206f75742f4d79436f6e74726163742e736f6c2f4d79436f6e7472604e8201527f6163742e6a736f6e000000000000000000000000000000000000000000000000606e820152607601919050565b80820180821115615f8757615f8761a608565b7f53504458206c6963656e7365206964656e74696669657220000000000000000081526000835161b5a481601885016020880161a1b4565b7f20696e2000000000000000000000000000000000000000000000000000000000601891840191820152835161b5e181601c84016020880161a1b4565b7f20646f6573206e6f74206c6f6f6b206c696b65206120737570706f7274656420601c92909101918201527f6c6963656e736520666f7220626c6f636b206578706c6f726572207665726966603c8201527f69636174696f6e2e205573652074686520606c6963656e73655479706560206f605c8201527f7074696f6e20746f20737065636966792061206c6963656e736520747970652c607c8201527f206f7220736574207468652060736b69704c6963656e73655479706560206f70609c8201527f74696f6e20746f2060747275656020746f20736b69702e00000000000000000060bc82015260d301949350505050565b6000825161b6e781846020870161a1b4565b7f2000000000000000000000000000000000000000000000000000000000000000920191825250600101919050565b7f406f70656e7a657070656c696e2f75706772616465732d636f7265400000000081526000825161b74e81601c85016020870161a1b4565b91909101601c0192915050565b6000600019820361b76e5761b76e61a608565b5060010190565b8082028115828204841417615f8757615f8761a608565b6001815b600184111561b7c75780850481111561b7ab5761b7ab61a608565b600184161561b7b957908102905b60019390931c92800261b790565b935093915050565b60008261b7de57506001615f87565b8161b7eb57506000615f87565b816001811461b801576002811461b80b5761b827565b6001915050615f87565b60ff84111561b81c5761b81c61a608565b50506001821b615f87565b5060208310610133831016604e8410600b841016171561b84a575081810a615f87565b61b857600019848461b78c565b806000190482111561b86b5761b86b61a608565b029392505050565b6000616080838361b7cf565b60008161b88e5761b88e61a608565b506000190190565b6000835161b8a881846020880161a1b4565b7f3a00000000000000000000000000000000000000000000000000000000000000908301908152835161b8e281600184016020880161a1b4565b01600101949350505050565b81810360008312801583831316838312821617156193405761934061a60856fe608060405234801561001057600080fd5b50604051610c9f380380610c9f83398101604081905261002f9161010d565b8181600361003d83826101ff565b50600461004a82826101ff565b50505050506102bd565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261007b57600080fd5b81516001600160401b0381111561009457610094610054565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100c2576100c2610054565b6040528181528382016020018510156100da57600080fd5b60005b828110156100f9576020818601810151838301820152016100dd565b506000918101602001919091529392505050565b6000806040838503121561012057600080fd5b82516001600160401b0381111561013657600080fd5b6101428582860161006a565b602085015190935090506001600160401b0381111561016057600080fd5b61016c8582860161006a565b9150509250929050565b600181811c9082168061018a57607f821691505b6020821081036101aa57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156101fa57806000526020600020601f840160051c810160208510156101d75750805b601f840160051c820191505b818110156101f757600081556001016101e3565b50505b505050565b81516001600160401b0381111561021857610218610054565b61022c816102268454610176565b846101b0565b6020601f82116001811461026057600083156102485750848201515b600019600385901b1c1916600184901b1784556101f7565b600084815260208120601f198516915b828110156102905787850151825560209485019460019092019101610270565b50848210156102ae5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b6109d3806102cc6000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c806340c10f191161007657806395d89b411161005b57806395d89b4114610183578063a9059cbb1461018b578063dd62ed3e1461019e57600080fd5b806340c10f191461013857806370a082311461014d57600080fd5b806318160ddd116100a757806318160ddd1461010457806323b872dd14610116578063313ce5671461012957600080fd5b806306fdde03146100c3578063095ea7b3146100e1575b600080fd5b6100cb6101e4565b6040516100d891906107bf565b60405180910390f35b6100f46100ef366004610854565b610276565b60405190151581526020016100d8565b6002545b6040519081526020016100d8565b6100f461012436600461087e565b610290565b604051601281526020016100d8565b61014b610146366004610854565b6102b4565b005b61010861015b3660046108bb565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6100cb6102c2565b6100f4610199366004610854565b6102d1565b6101086101ac3660046108dd565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101f390610910565b80601f016020809104026020016040519081016040528092919081815260200182805461021f90610910565b801561026c5780601f106102415761010080835404028352916020019161026c565b820191906000526020600020905b81548152906001019060200180831161024f57829003601f168201915b5050505050905090565b6000336102848185856102df565b60019150505b92915050565b60003361029e8582856102f1565b6102a98585856103c5565b506001949350505050565b6102be8282610470565b5050565b6060600480546101f390610910565b6000336102848185856103c5565b6102ec83838360016104cc565b505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146103bf57818110156103b0576040517ffb8f41b200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101829052604481018390526064015b60405180910390fd5b6103bf848484840360006104cc565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610415576040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff8216610465576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b6102ec838383610614565b73ffffffffffffffffffffffffffffffffffffffff82166104c0576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b6102be60008383610614565b73ffffffffffffffffffffffffffffffffffffffff841661051c576040517fe602df05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff831661056c576040517f94280d62000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020908152604080832093871683529290522082905580156103bf578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161060691815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff831661064c5780600260008282546106419190610963565b909155506106fe9050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902054818110156106d2576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260248101829052604481018390526064016103a7565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090209082900390555b73ffffffffffffffffffffffffffffffffffffffff821661072757600280548290039055610753565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090208054820190555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107b291815260200190565b60405180910390a3505050565b602081526000825180602084015260005b818110156107ed57602081860181015160408684010152016107d0565b5060006040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461084f57600080fd5b919050565b6000806040838503121561086757600080fd5b6108708361082b565b946020939093013593505050565b60008060006060848603121561089357600080fd5b61089c8461082b565b92506108aa6020850161082b565b929592945050506040919091013590565b6000602082840312156108cd57600080fd5b6108d68261082b565b9392505050565b600080604083850312156108f057600080fd5b6108f98361082b565b91506109076020840161082b565b90509250929050565b600181811c9082168061092457607f821691505b60208210810361095d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b8082018082111561028a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea26469706673582212207e804ca539d49155d2b6bc19268ce22f9f857027c75247d69fb0d56a089c93d464736f6c634300081a0033608060405234801561001057600080fd5b506040516113e23803806113e283398101604081905261002f916101d3565b60016000556002805460ff191690556001600160a01b038316158061005b57506001600160a01b038216155b156100795760405163d92e233d60e01b815260040160405180910390fd5b60028054610100600160a81b0319166101006001600160a01b038681169190910291909117909155600380546001600160a01b0319169184169190911790556100c3600082610122565b506100ee7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a82610122565b506101197f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e483610122565b50505050610216565b60008281526001602090815260408083206001600160a01b038516845290915281205460ff166101ad5760008381526001602081815260408084206001600160a01b0387168086529252808420805460ff19169093179092559051339286917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45060016101b1565b5060005b92915050565b80516001600160a01b03811681146101ce57600080fd5b919050565b6000806000606084860312156101e857600080fd5b6101f1846101b7565b92506101ff602085016101b7565b915061020d604085016101b7565b90509250925092565b6111bd806102256000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c80635c975abb116100b2578063a217fddf11610081578063d547741f11610066578063d547741f146102c2578063d9caed12146102d5578063e63ab1e9146102e857600080fd5b8063a217fddf146102a7578063c8a02362146102af57600080fd5b80635c975abb146102275780638456cb591461023257806385f438c11461023a57806391d148541461026157600080fd5b80632f2ff15d116100ee5780632f2ff15d146101d957806336568abe146101ec5780633f4ba83a146101ff5780635b1125911461020757600080fd5b806301ffc9a714610120578063116191b61461014857806321fc65f214610192578063248a9ca3146101a7575b600080fd5b61013361012e366004610ee3565b61030f565b60405190151581526020015b60405180910390f35b60025461016d90610100900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161013f565b6101a56101a0366004610f4e565b6103a8565b005b6101cb6101b5366004610feb565b6000908152600160208190526040909120015490565b60405190815260200161013f565b6101a56101e7366004611004565b61051d565b6101a56101fa366004611004565b610549565b6101a56105a7565b60035461016d9073ffffffffffffffffffffffffffffffffffffffff1681565b60025460ff16610133565b6101a56105dc565b6101cb7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e481565b61013361026f366004611004565b600091825260016020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b6101cb600081565b6101a56102bd366004610f4e565b61060e565b6101a56102d0366004611004565b610769565b6101a56102e3366004611030565b61078f565b6101cb7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806103a257507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6103b061085c565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e46103da8161089f565b6103e26108a9565b60025461040e9073ffffffffffffffffffffffffffffffffffffffff88811691610100900416866108e8565b6002546040517f5131ab5900000000000000000000000000000000000000000000000000000000815261010090910473ffffffffffffffffffffffffffffffffffffffff1690635131ab599061047090899089908990899089906004016110b6565b600060405180830381600087803b15801561048a57600080fd5b505af115801561049e573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e86868660405161050393929190611113565b60405180910390a3506105166001600055565b5050505050565b600082815260016020819052604090912001546105398161089f565b6105438383610975565b50505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610598576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105a28282610a40565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6105d18161089f565b6105d9610aff565b50565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6106068161089f565b6105d9610b7c565b61061661085c565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e46106408161089f565b6106486108a9565b6002546106749073ffffffffffffffffffffffffffffffffffffffff88811691610100900416866108e8565b6002546040517fb8969bd400000000000000000000000000000000000000000000000000000000815261010090910473ffffffffffffffffffffffffffffffffffffffff169063b8969bd4906106d690899089908990899089906004016110b6565b600060405180830381600087803b1580156106f057600080fd5b505af1158015610704573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c886868660405161050393929190611113565b600082815260016020819052604090912001546107858161089f565b6105438383610a40565b61079761085c565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e46107c18161089f565b6107c96108a9565b6107ea73ffffffffffffffffffffffffffffffffffffffff851684846108e8565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb8460405161084991815260200190565b60405180910390a3506105a26001600055565b600260005403610898576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b6105d98133610bd7565b60025460ff16156108e6576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526105a2908490610c68565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff16610a3857600083815260016020818152604080842073ffffffffffffffffffffffffffffffffffffffff8716808652925280842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169093179092559051339286917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45060016103a2565b5060006103a2565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff1615610a3857600083815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016103a2565b610b07610cfe565b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b610b846108a9565b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610b523390565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610c64576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602481018390526044015b60405180910390fd5b5050565b6000610c8a73ffffffffffffffffffffffffffffffffffffffff841683610d3a565b90508051600014158015610caf575080806020019051810190610cad9190611136565b155b156105a2576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602401610c5b565b60025460ff166108e6576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060610d4883836000610d4f565b9392505050565b606081471015610d8d576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610c5b565b6000808573ffffffffffffffffffffffffffffffffffffffff168486604051610db69190611158565b60006040518083038185875af1925050503d8060008114610df3576040519150601f19603f3d011682016040523d82523d6000602084013e610df8565b606091505b5091509150610e08868383610e12565b9695505050505050565b606082610e2757610e2282610ea1565b610d48565b8151158015610e4b575073ffffffffffffffffffffffffffffffffffffffff84163b155b15610e9a576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610c5b565b5080610d48565b805115610eb15780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060208284031215610ef557600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610d4857600080fd5b803573ffffffffffffffffffffffffffffffffffffffff81168114610f4957600080fd5b919050565b600080600080600060808688031215610f6657600080fd5b610f6f86610f25565b9450610f7d60208701610f25565b935060408601359250606086013567ffffffffffffffff811115610fa057600080fd5b8601601f81018813610fb157600080fd5b803567ffffffffffffffff811115610fc857600080fd5b886020828401011115610fda57600080fd5b959894975092955050506020019190565b600060208284031215610ffd57600080fd5b5035919050565b6000806040838503121561101757600080fd5b8235915061102760208401610f25565b90509250929050565b60008060006060848603121561104557600080fd5b61104e84610f25565b925061105c60208501610f25565b929592945050506040919091013590565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff8516602082015283604082015260806060820152600061110860808301848661106d565b979650505050505050565b83815260406020820152600061112d60408301848661106d565b95945050505050565b60006020828403121561114857600080fd5b81518015158114610d4857600080fd5b6000825160005b81811015611179576020818601810151858301520161115f565b50600092019182525091905056fea2646970667358221220f228501fb7798406cf58c84b1f7af446926eecd69943c0a6760dfd0c5550e2ff64736f6c634300081a003360c060405260001960045534801561001657600080fd5b5060405161182a38038061182a833981016040819052610035916101fb565b60016000819055805460ff19169055838383836001600160a01b038416158061006557506001600160a01b038316155b8061007757506001600160a01b038216155b156100955760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0384811660805283811660a052600380546001600160a01b0319169184169190911790556100cb60008261012f565b506100f67f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e48361012f565b506101217f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8261012f565b50505050505050505061024f565b60008281526002602090815260408083206001600160a01b038516845290915281205460ff166101d55760008381526002602090815260408083206001600160a01b03861684529091529020805460ff1916600117905561018d3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016101d9565b5060005b92915050565b80516001600160a01b03811681146101f657600080fd5b919050565b6000806000806080858703121561021157600080fd5b61021a856101df565b9350610228602086016101df565b9250610236604086016101df565b9150610244606086016101df565b905092959194509250565b60805160a05161155b6102cf6000396000818161021d0152818161049a015281816105dc015281816106a2015281816107a7015281816108c901528181610a7d01528181610bbf01528181610c850152610ddc0152600081816101d1015281816105a60152818161067301528181610b890152610c56015261155b6000f3fe608060405234801561001057600080fd5b50600436106101775760003560e01c80635c975abb116100d857806385f438c11161008c578063d547741f11610066578063d547741f1461037f578063d5abeb0114610392578063e63ab1e91461039b57600080fd5b806385f438c11461030a57806391d1485414610331578063a217fddf1461037757600080fd5b80636f8b44b0116100bd5780636f8b44b0146102dc578063743e0c9b146102ef5780638456cb591461030257600080fd5b80635c975abb146102be5780635e3e9fef146102c957600080fd5b8063248a9ca31161012f57806336568abe1161011457806336568abe146102835780633f4ba83a146102965780635b1125911461029e57600080fd5b8063248a9ca31461023f5780632f2ff15d1461027057600080fd5b8063106e629011610160578063106e6290146101b9578063116191b6146101cc57806321e093b11461021857600080fd5b806301ffc9a71461017c57806302d5c899146101a4575b600080fd5b61018f61018a36600461128d565b6103c2565b60405190151581526020015b60405180910390f35b6101b76101b23660046112ff565b61045b565b005b6101b76101c7366004611391565b610768565b6101f37f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161019b565b6101f37f000000000000000000000000000000000000000000000000000000000000000081565b61026261024d3660046113c4565b60009081526002602052604090206001015490565b60405190815260200161019b565b6101b761027e3660046113dd565b610985565b6101b76102913660046113dd565b6109b0565b6101b7610a09565b6003546101f39073ffffffffffffffffffffffffffffffffffffffff1681565b60015460ff1661018f565b6101b76102d73660046112ff565b610a3e565b6101b76102ea3660046113c4565b610d31565b6101b76102fd3660046113c4565b610d9f565b6101b7610e49565b6102627f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e481565b61018f61033f3660046113dd565b600091825260026020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b610262600081565b6101b761038d3660046113dd565b610e7b565b61026260045481565b6102627f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061045557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b610463610ea0565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e461048d81610ee3565b610495610eed565b6004547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610503573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105279190611409565b6105319087611422565b1115610569576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1e458bee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201879052604482018490527f00000000000000000000000000000000000000000000000000000000000000001690631e458bee90606401600060405180830381600087803b15801561062057600080fd5b505af1158015610634573d6000803e3d6000fd5b50506040517fb8969bd400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016925063b8969bd491506106d2907f0000000000000000000000000000000000000000000000000000000000000000908a908a908a908a906004016114a5565b600060405180830381600087803b1580156106ec57600080fd5b505af1158015610700573d6000803e3d6000fd5b505050508573ffffffffffffffffffffffffffffffffffffffff167fba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe86868660405161074e93929190611502565b60405180910390a2506107616001600055565b5050505050565b610770610ea0565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e461079a81610ee3565b6107a2610eed565b6004547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610810573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108349190611409565b61083e9085611422565b1115610876576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1e458bee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015260248201859052604482018490527f00000000000000000000000000000000000000000000000000000000000000001690631e458bee90606401600060405180830381600087803b15801561090d57600080fd5b505af1158015610921573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243648460405161096d91815260200190565b60405180910390a2506109806001600055565b505050565b6000828152600260205260409020600101546109a081610ee3565b6109aa8383610f2c565b50505050565b73ffffffffffffffffffffffffffffffffffffffff811633146109ff576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610980828261102c565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610a3381610ee3565b610a3b6110eb565b50565b610a46610ea0565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e4610a7081610ee3565b610a78610eed565b6004547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0a9190611409565b610b149087611422565b1115610b4c576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1e458bee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201879052604482018490527f00000000000000000000000000000000000000000000000000000000000000001690631e458bee90606401600060405180830381600087803b158015610c0357600080fd5b505af1158015610c17573d6000803e3d6000fd5b50506040517f5131ab5900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169250635131ab599150610cb5907f0000000000000000000000000000000000000000000000000000000000000000908a908a908a908a906004016114a5565b600060405180830381600087803b158015610ccf57600080fd5b505af1158015610ce3573d6000803e3d6000fd5b505050508573ffffffffffffffffffffffffffffffffffffffff167f7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced86868660405161074e93929190611502565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e4610d5b81610ee3565b610d63610eed565b60048290556040518281527f7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c9060200160405180910390a15050565b610da7610eed565b6040517f79cc6790000000000000000000000000000000000000000000000000000000008152336004820152602481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906379cc679090604401600060405180830381600087803b158015610e3557600080fd5b505af1158015610761573d6000803e3d6000fd5b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610e7381610ee3565b610a3b611168565b600082815260026020526040902060010154610e9681610ee3565b6109aa838361102c565b600260005403610edc576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b610a3b81336111c1565b60015460ff1615610f2a576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600082815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff1661102457600083815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610fc23390565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610455565b506000610455565b600082815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff161561102457600083815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610455565b6110f3611251565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b611170610eed565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2583361113e565b600082815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1661124d576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526024810183905260440160405180910390fd5b5050565b60015460ff16610f2a576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006020828403121561129f57600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146112cf57600080fd5b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146112fa57600080fd5b919050565b60008060008060006080868803121561131757600080fd5b611320866112d6565b945060208601359350604086013567ffffffffffffffff81111561134357600080fd5b8601601f8101881361135457600080fd5b803567ffffffffffffffff81111561136b57600080fd5b88602082840101111561137d57600080fd5b959894975060200195606001359392505050565b6000806000606084860312156113a657600080fd5b6113af846112d6565b95602085013595506040909401359392505050565b6000602082840312156113d657600080fd5b5035919050565b600080604083850312156113f057600080fd5b82359150611400602084016112d6565b90509250929050565b60006020828403121561141b57600080fd5b5051919050565b80820180821115610455577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff851660208201528360408201526080606082015260006114f760808301848661145c565b979650505050505050565b83815260406020820152600061151c60408301848661145c565b9594505050505056fea2646970667358221220c864e28878a70f2d629a9a8bcc8540adbc24308f0bdca4bb9f799c9b08a4b8fc64736f6c634300081a00336080604052348015600f57600080fd5b506001600055610d3a806100246000396000f3fe6080604052600436106100635760003560e01c8063c513169111610040578063c5131691146100c1578063e04d4f97146100e1578063f05b6abf146100f457005b8063357fc5a21461006c5780636ed701691461008c5780638fcaa0b5146100a157005b3661006a57005b005b34801561007857600080fd5b5061006a6100873660046106c0565b610114565b34801561009857600080fd5b5061006a6101aa565b3480156100ad57600080fd5b5061006a6100bc3660046106fc565b6101df565b3480156100cd57600080fd5b5061006a6100dc3660046106c0565b61021e565b61006a6100ef366004610895565b6102f9565b34801561010057600080fd5b5061006a61010f366004610981565b61033d565b61011c610372565b61013e73ffffffffffffffffffffffffffffffffffffffff83163383866103b5565b604080513381526020810185905273ffffffffffffffffffffffffffffffffffffffff848116828401528316606082015290517f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af609181900360800190a16101a56001600055565b505050565b6040513381527fbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a09060200160405180910390a1565b7f0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa33838360405161021293929190610a6b565b60405180910390a15050565b610226610372565b6000610233600285610ad5565b90508060000361026f576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61029173ffffffffffffffffffffffffffffffffffffffff84163384846103b5565b604080513381526020810183905273ffffffffffffffffffffffffffffffffffffffff858116828401528416606082015290517f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af609181900360800190a1506101a56001600055565b7f1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa3334858585604051610330959493929190610b7e565b60405180910390a1505050565b7f74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146338484846040516103309493929190610c08565b6002600054036103ae576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017905261044a908590610450565b50505050565b600061047273ffffffffffffffffffffffffffffffffffffffff8416836104eb565b905080516000141580156104975750808060200190518101906104959190610ccb565b155b156101a5576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024015b60405180910390fd5b60606104f983836000610500565b9392505050565b60608147101561053e576040517fcd7860590000000000000000000000000000000000000000000000000000000081523060048201526024016104e2565b6000808573ffffffffffffffffffffffffffffffffffffffff1684866040516105679190610ce8565b60006040518083038185875af1925050503d80600081146105a4576040519150601f19603f3d011682016040523d82523d6000602084013e6105a9565b606091505b50915091506105b98683836105c3565b9695505050505050565b6060826105d8576105d382610652565b6104f9565b81511580156105fc575073ffffffffffffffffffffffffffffffffffffffff84163b155b1561064b576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016104e2565b50806104f9565b8051156106625780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b803573ffffffffffffffffffffffffffffffffffffffff811681146106bb57600080fd5b919050565b6000806000606084860312156106d557600080fd5b833592506106e560208501610697565b91506106f360408501610697565b90509250925092565b6000806020838503121561070f57600080fd5b823567ffffffffffffffff81111561072657600080fd5b8301601f8101851361073757600080fd5b803567ffffffffffffffff81111561074e57600080fd5b85602082840101111561076057600080fd5b6020919091019590945092505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156107e6576107e6610770565b604052919050565b600082601f8301126107ff57600080fd5b813567ffffffffffffffff81111561081957610819610770565b61084a60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160161079f565b81815284602083860101111561085f57600080fd5b816020850160208301376000918101602001919091529392505050565b801515811461069457600080fd5b80356106bb8161087c565b6000806000606084860312156108aa57600080fd5b833567ffffffffffffffff8111156108c157600080fd5b6108cd868287016107ee565b9350506020840135915060408401356108e58161087c565b809150509250925092565b600067ffffffffffffffff82111561090a5761090a610770565b5060051b60200190565b600082601f83011261092557600080fd5b8135610938610933826108f0565b61079f565b8082825260208201915060208360051b86010192508583111561095a57600080fd5b602085015b8381101561097757803583526020928301920161095f565b5095945050505050565b60008060006060848603121561099657600080fd5b833567ffffffffffffffff8111156109ad57600080fd5b8401601f810186136109be57600080fd5b80356109cc610933826108f0565b8082825260208201915060208360051b8501019250888311156109ee57600080fd5b602084015b83811015610a3057803567ffffffffffffffff811115610a1257600080fd5b610a218b6020838901016107ee565b845250602092830192016109f3565b509550505050602084013567ffffffffffffffff811115610a5057600080fd5b610a5c86828701610914565b9250506106f36040850161088a565b73ffffffffffffffffffffffffffffffffffffffff8416815260406020820152816040820152818360608301376000818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b600082610b0b577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60005b83811015610b2b578181015183820152602001610b13565b50506000910152565b60008151808452610b4c816020860160208601610b10565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b73ffffffffffffffffffffffffffffffffffffffff8616815284602082015260a060408201526000610bb360a0830186610b34565b6060830194909452509015156080909101529392505050565b600081518084526020840193506020830160005b82811015610bfe578151865260209586019590910190600101610be0565b5093949350505050565b60006080820173ffffffffffffffffffffffffffffffffffffffff871683526080602084015280865180835260a08501915060a08160051b86010192506020880160005b82811015610c9b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60878603018452610c86858351610b34565b94506020938401939190910190600101610c4c565b505050508281036040840152610cb18186610bcc565b915050610cc2606083018415159052565b95945050505050565b600060208284031215610cdd57600080fd5b81516104f98161087c565b60008251610cfa818460208701610b10565b919091019291505056fea2646970667358221220556072e1abafc3c4063b8cce832228b4f309b93726aaa6a6dfab20cb880c6d1864736f6c634300081a0033a26469706673582212203c84eed415f53c6b73679bdd3c1ebe23a4c98cf0abb3f4090db80e6ae1ff633164736f6c634300081a0033", +} + +// 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...) +} + +// ASSETHANDLERROLE is a free data retrieval call binding the contract method 0x5d62c860. +// +// Solidity: function ASSET_HANDLER_ROLE() view returns(bytes32) +func (_GatewayEVMTest *GatewayEVMTestCaller) ASSETHANDLERROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _GatewayEVMTest.contract.Call(opts, &out, "ASSET_HANDLER_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// ASSETHANDLERROLE is a free data retrieval call binding the contract method 0x5d62c860. +// +// Solidity: function ASSET_HANDLER_ROLE() view returns(bytes32) +func (_GatewayEVMTest *GatewayEVMTestSession) ASSETHANDLERROLE() ([32]byte, error) { + return _GatewayEVMTest.Contract.ASSETHANDLERROLE(&_GatewayEVMTest.CallOpts) +} + +// ASSETHANDLERROLE is a free data retrieval call binding the contract method 0x5d62c860. +// +// Solidity: function ASSET_HANDLER_ROLE() view returns(bytes32) +func (_GatewayEVMTest *GatewayEVMTestCallerSession) ASSETHANDLERROLE() ([32]byte, error) { + return _GatewayEVMTest.Contract.ASSETHANDLERROLE(&_GatewayEVMTest.CallOpts) +} + +// 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) +} + +// PAUSERROLE is a free data retrieval call binding the contract method 0xe63ab1e9. +// +// Solidity: function PAUSER_ROLE() view returns(bytes32) +func (_GatewayEVMTest *GatewayEVMTestCaller) PAUSERROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _GatewayEVMTest.contract.Call(opts, &out, "PAUSER_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// PAUSERROLE is a free data retrieval call binding the contract method 0xe63ab1e9. +// +// Solidity: function PAUSER_ROLE() view returns(bytes32) +func (_GatewayEVMTest *GatewayEVMTestSession) PAUSERROLE() ([32]byte, error) { + return _GatewayEVMTest.Contract.PAUSERROLE(&_GatewayEVMTest.CallOpts) +} + +// PAUSERROLE is a free data retrieval call binding the contract method 0xe63ab1e9. +// +// Solidity: function PAUSER_ROLE() view returns(bytes32) +func (_GatewayEVMTest *GatewayEVMTestCallerSession) PAUSERROLE() ([32]byte, error) { + return _GatewayEVMTest.Contract.PAUSERROLE(&_GatewayEVMTest.CallOpts) +} + +// TSSROLE is a free data retrieval call binding the contract method 0xa783c789. +// +// Solidity: function TSS_ROLE() view returns(bytes32) +func (_GatewayEVMTest *GatewayEVMTestCaller) TSSROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _GatewayEVMTest.contract.Call(opts, &out, "TSS_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// TSSROLE is a free data retrieval call binding the contract method 0xa783c789. +// +// Solidity: function TSS_ROLE() view returns(bytes32) +func (_GatewayEVMTest *GatewayEVMTestSession) TSSROLE() ([32]byte, error) { + return _GatewayEVMTest.Contract.TSSROLE(&_GatewayEVMTest.CallOpts) +} + +// TSSROLE is a free data retrieval call binding the contract method 0xa783c789. +// +// Solidity: function TSS_ROLE() view returns(bytes32) +func (_GatewayEVMTest *GatewayEVMTestCallerSession) TSSROLE() ([32]byte, error) { + return _GatewayEVMTest.Contract.TSSROLE(&_GatewayEVMTest.CallOpts) +} + +// WITHDRAWERROLE is a free data retrieval call binding the contract method 0x85f438c1. +// +// Solidity: function WITHDRAWER_ROLE() view returns(bytes32) +func (_GatewayEVMTest *GatewayEVMTestCaller) WITHDRAWERROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _GatewayEVMTest.contract.Call(opts, &out, "WITHDRAWER_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// WITHDRAWERROLE is a free data retrieval call binding the contract method 0x85f438c1. +// +// Solidity: function WITHDRAWER_ROLE() view returns(bytes32) +func (_GatewayEVMTest *GatewayEVMTestSession) WITHDRAWERROLE() ([32]byte, error) { + return _GatewayEVMTest.Contract.WITHDRAWERROLE(&_GatewayEVMTest.CallOpts) +} + +// WITHDRAWERROLE is a free data retrieval call binding the contract method 0x85f438c1. +// +// Solidity: function WITHDRAWER_ROLE() view returns(bytes32) +func (_GatewayEVMTest *GatewayEVMTestCallerSession) WITHDRAWERROLE() ([32]byte, error) { + return _GatewayEVMTest.Contract.WITHDRAWERROLE(&_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) +} + +// TestForwardCallToReceiveERC20PartialThroughCustodyFailsIfSenderIsNotWithdrawer is a paid mutator transaction binding the contract method 0x0eee72a9. +// +// Solidity: function testForwardCallToReceiveERC20PartialThroughCustodyFailsIfSenderIsNotWithdrawer() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactor) TestForwardCallToReceiveERC20PartialThroughCustodyFailsIfSenderIsNotWithdrawer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMTest.contract.Transact(opts, "testForwardCallToReceiveERC20PartialThroughCustodyFailsIfSenderIsNotWithdrawer") +} + +// TestForwardCallToReceiveERC20PartialThroughCustodyFailsIfSenderIsNotWithdrawer is a paid mutator transaction binding the contract method 0x0eee72a9. +// +// Solidity: function testForwardCallToReceiveERC20PartialThroughCustodyFailsIfSenderIsNotWithdrawer() returns() +func (_GatewayEVMTest *GatewayEVMTestSession) TestForwardCallToReceiveERC20PartialThroughCustodyFailsIfSenderIsNotWithdrawer() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestForwardCallToReceiveERC20PartialThroughCustodyFailsIfSenderIsNotWithdrawer(&_GatewayEVMTest.TransactOpts) +} + +// TestForwardCallToReceiveERC20PartialThroughCustodyFailsIfSenderIsNotWithdrawer is a paid mutator transaction binding the contract method 0x0eee72a9. +// +// Solidity: function testForwardCallToReceiveERC20PartialThroughCustodyFailsIfSenderIsNotWithdrawer() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactorSession) TestForwardCallToReceiveERC20PartialThroughCustodyFailsIfSenderIsNotWithdrawer() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestForwardCallToReceiveERC20PartialThroughCustodyFailsIfSenderIsNotWithdrawer(&_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) +} + +// TestForwardCallToReceiveERC20ThroughCustodyFailsIfSenderIsNotWithdrawer is a paid mutator transaction binding the contract method 0x3ee92923. +// +// Solidity: function testForwardCallToReceiveERC20ThroughCustodyFailsIfSenderIsNotWithdrawer() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactor) TestForwardCallToReceiveERC20ThroughCustodyFailsIfSenderIsNotWithdrawer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMTest.contract.Transact(opts, "testForwardCallToReceiveERC20ThroughCustodyFailsIfSenderIsNotWithdrawer") +} + +// TestForwardCallToReceiveERC20ThroughCustodyFailsIfSenderIsNotWithdrawer is a paid mutator transaction binding the contract method 0x3ee92923. +// +// Solidity: function testForwardCallToReceiveERC20ThroughCustodyFailsIfSenderIsNotWithdrawer() returns() +func (_GatewayEVMTest *GatewayEVMTestSession) TestForwardCallToReceiveERC20ThroughCustodyFailsIfSenderIsNotWithdrawer() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestForwardCallToReceiveERC20ThroughCustodyFailsIfSenderIsNotWithdrawer(&_GatewayEVMTest.TransactOpts) +} + +// TestForwardCallToReceiveERC20ThroughCustodyFailsIfSenderIsNotWithdrawer is a paid mutator transaction binding the contract method 0x3ee92923. +// +// Solidity: function testForwardCallToReceiveERC20ThroughCustodyFailsIfSenderIsNotWithdrawer() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactorSession) TestForwardCallToReceiveERC20ThroughCustodyFailsIfSenderIsNotWithdrawer() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestForwardCallToReceiveERC20ThroughCustodyFailsIfSenderIsNotWithdrawer(&_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) +} + +// TestForwardCallToReceiveNoParamsTogglePause is a paid mutator transaction binding the contract method 0xdd51e82f. +// +// Solidity: function testForwardCallToReceiveNoParamsTogglePause() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactor) TestForwardCallToReceiveNoParamsTogglePause(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMTest.contract.Transact(opts, "testForwardCallToReceiveNoParamsTogglePause") +} + +// TestForwardCallToReceiveNoParamsTogglePause is a paid mutator transaction binding the contract method 0xdd51e82f. +// +// Solidity: function testForwardCallToReceiveNoParamsTogglePause() returns() +func (_GatewayEVMTest *GatewayEVMTestSession) TestForwardCallToReceiveNoParamsTogglePause() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestForwardCallToReceiveNoParamsTogglePause(&_GatewayEVMTest.TransactOpts) +} + +// TestForwardCallToReceiveNoParamsTogglePause is a paid mutator transaction binding the contract method 0xdd51e82f. +// +// Solidity: function testForwardCallToReceiveNoParamsTogglePause() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactorSession) TestForwardCallToReceiveNoParamsTogglePause() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestForwardCallToReceiveNoParamsTogglePause(&_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) +} + +// TestWithdrawAndRevertThroughCustodyFailsIfSenderIsNotWithdrawer is a paid mutator transaction binding the contract method 0xa4943deb. +// +// Solidity: function testWithdrawAndRevertThroughCustodyFailsIfSenderIsNotWithdrawer() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactor) TestWithdrawAndRevertThroughCustodyFailsIfSenderIsNotWithdrawer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMTest.contract.Transact(opts, "testWithdrawAndRevertThroughCustodyFailsIfSenderIsNotWithdrawer") +} + +// TestWithdrawAndRevertThroughCustodyFailsIfSenderIsNotWithdrawer is a paid mutator transaction binding the contract method 0xa4943deb. +// +// Solidity: function testWithdrawAndRevertThroughCustodyFailsIfSenderIsNotWithdrawer() returns() +func (_GatewayEVMTest *GatewayEVMTestSession) TestWithdrawAndRevertThroughCustodyFailsIfSenderIsNotWithdrawer() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestWithdrawAndRevertThroughCustodyFailsIfSenderIsNotWithdrawer(&_GatewayEVMTest.TransactOpts) +} + +// TestWithdrawAndRevertThroughCustodyFailsIfSenderIsNotWithdrawer is a paid mutator transaction binding the contract method 0xa4943deb. +// +// Solidity: function testWithdrawAndRevertThroughCustodyFailsIfSenderIsNotWithdrawer() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactorSession) TestWithdrawAndRevertThroughCustodyFailsIfSenderIsNotWithdrawer() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestWithdrawAndRevertThroughCustodyFailsIfSenderIsNotWithdrawer(&_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) +} + +// TestWithdrawThroughCustodyFailsIfSenderIsNotWithdrawer is a paid mutator transaction binding the contract method 0xfe8e5f1b. +// +// Solidity: function testWithdrawThroughCustodyFailsIfSenderIsNotWithdrawer() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactor) TestWithdrawThroughCustodyFailsIfSenderIsNotWithdrawer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMTest.contract.Transact(opts, "testWithdrawThroughCustodyFailsIfSenderIsNotWithdrawer") +} + +// TestWithdrawThroughCustodyFailsIfSenderIsNotWithdrawer is a paid mutator transaction binding the contract method 0xfe8e5f1b. +// +// Solidity: function testWithdrawThroughCustodyFailsIfSenderIsNotWithdrawer() returns() +func (_GatewayEVMTest *GatewayEVMTestSession) TestWithdrawThroughCustodyFailsIfSenderIsNotWithdrawer() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestWithdrawThroughCustodyFailsIfSenderIsNotWithdrawer(&_GatewayEVMTest.TransactOpts) +} + +// TestWithdrawThroughCustodyFailsIfSenderIsNotWithdrawer is a paid mutator transaction binding the contract method 0xfe8e5f1b. +// +// Solidity: function testWithdrawThroughCustodyFailsIfSenderIsNotWithdrawer() returns() +func (_GatewayEVMTest *GatewayEVMTestTransactorSession) TestWithdrawThroughCustodyFailsIfSenderIsNotWithdrawer() (*types.Transaction, error) { + return _GatewayEVMTest.Contract.TestWithdrawThroughCustodyFailsIfSenderIsNotWithdrawer(&_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..13ef7da5 --- /dev/null +++ b/v2/pkg/gatewayevmechidnatest.sol/gatewayevmechidnatest.go @@ -0,0 +1,3042 @@ +// 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\":\"ASSET_HANDLER_ROLE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"DEFAULT_ADMIN_ROLE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"PAUSER_ROLE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"TSS_ROLE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"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\":\"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\":\"getRoleAdmin\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"grantRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"hasRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_tssAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_zetaToken\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_admin\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"proxiableUUID\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"callerConfirmation\",\"type\":\"address\",\"internalType\":\"address\"}],\"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\":\"revokeRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"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\":\"supportsInterface\",\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\",\"internalType\":\"bytes4\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"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\":\"tssAddress\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[],\"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\":\"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\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":false,\"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\":\"RoleAdminChanged\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"previousAdminRole\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"newAdminRole\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RoleGranted\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RoleRevoked\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"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\":\"AccessControlBadConfirmation\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"AccessControlUnauthorizedAccount\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"neededRole\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"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\":\"EnforcedPause\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExecutionFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExpectedPause\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"FailedInnerCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientERC20Amount\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientETHAmount\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidInitialization\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotInitializing\",\"inputs\":[]},{\"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: "0x60a060405230608052600580546001600160a01b0319163317905534801561002657600080fd5b5061002f610154565b600554600180546001600160a01b039092166001600160a01b031992831617905560028054610123921691909117905560405161006b90610206565b60408082526004908201819052631d195cdd60e21b606083015260806020830181905282015263151154d560e21b60a082015260c001604051809103906000f0801580156100bd573d6000803e3d6000fd5b50600480546001600160a01b0319166001600160a01b039283161790556001546040513092919091169082906100f290610213565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103906000f08015801561012e573d6000803e3d6000fd5b50600080546001600160a01b0319166001600160a01b0392909216919091179055610220565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156101a45760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146102035780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b610c9f8061324883390190565b6113e280613ee783390190565b608051612fff61024960003960008181611d3301528181611d5c01526121a50152612fff6000f3fe6080604052600436106102345760003560e01c80635c975abb11610138578063ad3cb1cc116100b0578063d547741f1161007f578063e63ab1e911610064578063e63ab1e9146106ff578063f340fa0114610733578063f45346dc1461074657600080fd5b8063d547741f146106bf578063dda79b75146106df57600080fd5b8063ad3cb1cc14610616578063ae7a3a6f1461065f578063b8969bd41461067f578063c0c53b8b1461069f57600080fd5b80638456cb591161010757806391d14854116100ec57806391d1485414610568578063a217fddf146105cd578063a783c789146105e257600080fd5b80638456cb59146105335780638c6f037f1461054857600080fd5b80635c975abb146104885780635d62c860146104bf5780636ab90f9b146104f357806381100bf01461051357600080fd5b806335c018db116101cb5780634f1ef2861161019a57806352d1902d1161017f57806352d1902d1461043357806357bec62f146104485780635b1125911461046857600080fd5b80634f1ef286146104005780635131ab591461041357600080fd5b806335c018db1461039857806336568abe146103ab5780633c2f05a8146103cb5780633f4ba83a146103eb57600080fd5b806321e093b11161020757806321e093b1146102d0578063248a9ca31461030857806329c59b5d146103655780632f2ff15d1461037857600080fd5b806301ffc9a71461023957806310188aef1461026e5780631b8b921d146102905780631cff79cd146102b0575b600080fd5b34801561024557600080fd5b506102596102543660046129e9565b610766565b60405190151581526020015b60405180910390f35b34801561027a57600080fd5b5061028e610289366004612a47565b6107ff565b005b34801561029c57600080fd5b5061028e6102ab366004612aab565b6108f3565b6102c36102be366004612aab565b61094d565b6040516102659190612b6c565b3480156102dc57600080fd5b506003546102f0906001600160a01b031681565b6040516001600160a01b039091168152602001610265565b34801561031457600080fd5b50610357610323366004612b7f565b60009081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b604051908152602001610265565b61028e610373366004612aab565b6109de565b34801561038457600080fd5b5061028e610393366004612b98565b610b0b565b61028e6103a6366004612aab565b610b55565b3480156103b757600080fd5b5061028e6103c6366004612b98565b610cdc565b3480156103d757600080fd5b506004546102f0906001600160a01b031681565b3480156103f757600080fd5b5061028e610d2d565b61028e61040e366004612bf3565b610d62565b34801561041f57600080fd5b5061028e61042e366004612cfa565b610d81565b34801561043f57600080fd5b5061035761105e565b34801561045457600080fd5b506002546102f0906001600160a01b031681565b34801561047457600080fd5b506001546102f0906001600160a01b031681565b34801561049457600080fd5b507fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff16610259565b3480156104cb57600080fd5b506103577f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b981565b3480156104ff57600080fd5b5061028e61050e366004612d69565b61108d565b34801561051f57600080fd5b506005546102f0906001600160a01b031681565b34801561053f57600080fd5b5061028e6111b8565b34801561055457600080fd5b5061028e610563366004612dc3565b6111ea565b34801561057457600080fd5b50610259610583366004612b98565b60009182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156105d957600080fd5b50610357600081565b3480156105ee57600080fd5b506103577f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb81565b34801561062257600080fd5b506102c36040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b34801561066b57600080fd5b5061028e61067a366004612a47565b61128f565b34801561068b57600080fd5b5061028e61069a366004612cfa565b611383565b3480156106ab57600080fd5b5061028e6106ba366004612e15565b6114fd565b3480156106cb57600080fd5b5061028e6106da366004612b98565b6117b2565b3480156106eb57600080fd5b506000546102f0906001600160a01b031681565b34801561070b57600080fd5b506103577f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b61028e610741366004612a47565b6117f6565b34801561075257600080fd5b5061028e610761366004612e58565b611923565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806107f957507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b600061080a816119d6565b6002546001600160a01b03161561084d576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03821661088d576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108b77f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b9836119e0565b5050600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6108fb611acd565b826001600160a01b0316336001600160a01b03167f2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde38484604051610940929190612ed4565b60405180910390a3505050565b60607f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb610979816119d6565b610981611acd565b600061098e868686611b2b565b9050856001600160a01b03167fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f3487876040516109cd93929190612ef0565b60405180910390a295945050505050565b6109e6611acd565b34600003610a20576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040516000916001600160a01b03169034908381818185875af1925050503d8060008114610a6d576040519150601f19603f3d011682016040523d82523d6000602084013e610a72565b606091505b5090915050801515600003610ab3576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b836001600160a01b0316336001600160a01b03167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a43460008787604051610afd9493929190612f0a565b60405180910390a350505050565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610b45816119d6565b610b4f83836119e0565b50505050565b7f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb610b7f816119d6565b610b87611acd565b600080856001600160a01b03163460405160006040518083038185875af1925050503d8060008114610bd5576040519150601f19603f3d011682016040523d82523d6000602084013e610bda565b606091505b509150915081610c16576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f8fcaa0b50000000000000000000000000000000000000000000000000000000081526001600160a01b03871690638fcaa0b590610c5d9088908890600401612ed4565b600060405180830381600087803b158015610c7757600080fd5b505af1158015610c8b573d6000803e3d6000fd5b50505050856001600160a01b03167fd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c348787604051610ccc93929190612ef0565b60405180910390a2505050505050565b6001600160a01b0381163314610d1e576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d288282611bd4565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610d57816119d6565b610d5f611c98565b50565b610d6a611d28565b610d7382611df8565b610d7d8282611e03565b5050565b610d89611f27565b7f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b9610db3816119d6565b610dbb611acd565b83600003610df5576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610dff8686611fa8565b610e35576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301526024820186905287169063095ea7b3906044016020604051808303816000875af1158015610e9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec19190612f33565b610ef7576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610f04868585611b2b565b9050610f108787611fa8565b610f46576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038916906370a0823190602401602060405180830381865afa158015610fa6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fca9190612f55565b90508015610fdc57610fdc8882612038565b866001600160a01b0316886001600160a01b03167f29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b738288888860405161102393929190612ef0565b60405180910390a350505061105760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050505050565b600061106861219a565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b600480546040517f40c10f190000000000000000000000000000000000000000000000000000000081523092810192909252602482018590526001600160a01b0316906340c10f1990604401600060405180830381600087803b1580156110f357600080fd5b505af1158015611107573d6000803e3d6000fd5b505060045461112592506001600160a01b0316905085858585610d81565b600480546040517f70a0823100000000000000000000000000000000000000000000000000000000815230928101929092526001600160a01b0316906370a0823190602401602060405180830381865afa158015611187573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ab9190612f55565b15610b4f57610b4f612f6e565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6111e2816119d6565b610d5f6121fc565b6111f2611acd565b8360000361122c576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611237338486612275565b846001600160a01b0316336001600160a01b03167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4868686866040516112809493929190612f0a565b60405180910390a35050505050565b600061129a816119d6565b6000546001600160a01b0316156112dd576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03821661131d576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113477f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b9836119e0565b5050600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b61138b611f27565b7f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b96113b5816119d6565b6113bd611acd565b836000036113f7576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61140b6001600160a01b03871686866123c9565b6040517f8fcaa0b50000000000000000000000000000000000000000000000000000000081526001600160a01b03861690638fcaa0b5906114529086908690600401612ed4565b600060405180830381600087803b15801561146c57600080fd5b505af1158015611480573d6000803e3d6000fd5b50505050846001600160a01b0316866001600160a01b03167f723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda78686866040516114cb93929190612ef0565b60405180910390a35061105760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156115485750825b905060008267ffffffffffffffff1660011480156115655750303b155b905081158015611573575080155b156115aa576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001178555831561160b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6001600160a01b038816158061162857506001600160a01b038716155b1561165f576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61166761243d565b61166f612445565b61167761243d565b61167f612455565b61168a6000876119e0565b506116b57f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a876119e0565b50600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038a161790556117137f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb896119e0565b50600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03891617905583156117a85784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680060205260409020600101546117ec816119d6565b610b4f8383611bd4565b6117fe611acd565b34600003611838576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040516000916001600160a01b03169034908381818185875af1925050503d8060008114611885576040519150601f19603f3d011682016040523d82523d6000602084013e61188a565b606091505b50909150508015156000036118cb576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408051348152600060208201819052606082840181905282015290516001600160a01b0384169133917f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a49181900360800190a35050565b61192b611acd565b81600003611965576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611970338284612275565b826001600160a01b0316336001600160a01b03167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a484846040516109409291909182526001600160a01b0316602082015260606040820181905260009082015260800190565b610d5f8133612465565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff16611ac3576000848152602082815260408083206001600160a01b0387168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055611a793390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506107f9565b60009150506107f9565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff1615611b29576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6060600080856001600160a01b0316348686604051611b4b929190612f9d565b60006040518083038185875af1925050503d8060008114611b88576040519150601f19603f3d011682016040523d82523d6000602084013e611b8d565b606091505b509150915081611bc9576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9150505b9392505050565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff1615611ac3576000848152602082815260408083206001600160a01b038716808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506107f9565b611ca06124f2565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480611dc157507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611db57f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b15611b29576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610d7d816119d6565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611e7b575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252611e7891810190612f55565b60015b611ec1576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114611f1d576040517faa1d49a400000000000000000000000000000000000000000000000000000000815260048101829052602401611eb8565b610d28838361254d565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0080547ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01611fa2576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60029055565b6040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b038281166004830152600060248301819052919084169063095ea7b3906044016020604051808303816000875af1158015612014573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bcd9190612f33565b6003546001600160a01b039081169083160361215a576002546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152602481018390529083169063095ea7b3906044016020604051808303816000875af11580156120ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120de9190612f33565b506002546040517f743e0c9b000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b039091169063743e0c9b90602401600060405180830381600087803b15801561213e57600080fd5b505af1158015612152573d6000803e3d6000fd5b505050505050565b600054610d7d906001600160a01b038481169116836123c9565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611b29576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612204611acd565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833611d0a565b6003546001600160a01b03908116908316036123ad576122a06001600160a01b0383168430846125a3565b6002546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152602481018390529083169063095ea7b3906044016020604051808303816000875af115801561230c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123309190612f33565b506002546040517f743e0c9b000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b039091169063743e0c9b90602401600060405180830381600087803b15801561239057600080fd5b505af11580156123a4573d6000803e3d6000fd5b50505050505050565b600054610d28906001600160a01b0384811691869116846125a3565b6040516001600160a01b03838116602483015260448201839052610d2891859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506125dc565b611b29612658565b61244d612658565b611b296126bf565b61245d612658565b611b296126c7565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038516845290915290205460ff16610d7d576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401611eb8565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff16611b29576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61255682612718565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561259b57610d2882826127c0565b610d7d612836565b6040516001600160a01b038481166024830152838116604483015260648201839052610b4f9186918216906323b872dd906084016123f6565b60006125f16001600160a01b0384168361286e565b905080516000141580156126165750808060200190518101906126149190612f33565b155b15610d28576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401611eb8565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff16611b29576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612174612658565b6126cf612658565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b806001600160a01b03163b600003612767576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b0382166004820152602401611eb8565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516127dd9190612fad565b600060405180830381855af49150503d8060008114612818576040519150601f19603f3d011682016040523d82523d6000602084013e61281d565b606091505b509150915061282d85838361287c565b95945050505050565b3415611b29576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060611bcd838360006128f1565b6060826128915761288c826129a7565b611bcd565b81511580156128a857506001600160a01b0384163b155b156128ea576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401611eb8565b5080611bcd565b60608147101561292f576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401611eb8565b600080856001600160a01b0316848660405161294b9190612fad565b60006040518083038185875af1925050503d8060008114612988576040519150601f19603f3d011682016040523d82523d6000602084013e61298d565b606091505b509150915061299d86838361287c565b9695505050505050565b8051156129b75780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000602082840312156129fb57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611bcd57600080fd5b80356001600160a01b0381168114612a4257600080fd5b919050565b600060208284031215612a5957600080fd5b611bcd82612a2b565b60008083601f840112612a7457600080fd5b50813567ffffffffffffffff811115612a8c57600080fd5b602083019150836020828501011115612aa457600080fd5b9250929050565b600080600060408486031215612ac057600080fd5b612ac984612a2b565b9250602084013567ffffffffffffffff811115612ae557600080fd5b612af186828701612a62565b9497909650939450505050565b60005b83811015612b19578181015183820152602001612b01565b50506000910152565b60008151808452612b3a816020860160208601612afe565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611bcd6020830184612b22565b600060208284031215612b9157600080fd5b5035919050565b60008060408385031215612bab57600080fd5b82359150612bbb60208401612a2b565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060408385031215612c0657600080fd5b612c0f83612a2b565b9150602083013567ffffffffffffffff811115612c2b57600080fd5b8301601f81018513612c3c57600080fd5b803567ffffffffffffffff811115612c5657612c56612bc4565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff82111715612cc257612cc2612bc4565b604052818152828201602001871015612cda57600080fd5b816020840160208301376000602083830101528093505050509250929050565b600080600080600060808688031215612d1257600080fd5b612d1b86612a2b565b9450612d2960208701612a2b565b935060408601359250606086013567ffffffffffffffff811115612d4c57600080fd5b612d5888828901612a62565b969995985093965092949392505050565b60008060008060608587031215612d7f57600080fd5b612d8885612a2b565b935060208501359250604085013567ffffffffffffffff811115612dab57600080fd5b612db787828801612a62565b95989497509550505050565b600080600080600060808688031215612ddb57600080fd5b612de486612a2b565b945060208601359350612df960408701612a2b565b9250606086013567ffffffffffffffff811115612d4c57600080fd5b600080600060608486031215612e2a57600080fd5b612e3384612a2b565b9250612e4160208501612a2b565b9150612e4f60408501612a2b565b90509250925092565b600080600060608486031215612e6d57600080fd5b612e7684612a2b565b925060208401359150612e4f60408501612a2b565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b602081526000612ee8602083018486612e8b565b949350505050565b83815260406020820152600061282d604083018486612e8b565b8481526001600160a01b038416602082015260606040820152600061299d606083018486612e8b565b600060208284031215612f4557600080fd5b81518015158114611bcd57600080fd5b600060208284031215612f6757600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b8183823760009101908152919050565b60008251612fbf818460208701612afe565b919091019291505056fea2646970667358221220e575ea5a18b9462f7a8e597ab970f6a09ecc09fd51c56fa3c6c1397f89f20af164736f6c634300081a0033608060405234801561001057600080fd5b50604051610c9f380380610c9f83398101604081905261002f9161010d565b8181600361003d83826101ff565b50600461004a82826101ff565b50505050506102bd565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261007b57600080fd5b81516001600160401b0381111561009457610094610054565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100c2576100c2610054565b6040528181528382016020018510156100da57600080fd5b60005b828110156100f9576020818601810151838301820152016100dd565b506000918101602001919091529392505050565b6000806040838503121561012057600080fd5b82516001600160401b0381111561013657600080fd5b6101428582860161006a565b602085015190935090506001600160401b0381111561016057600080fd5b61016c8582860161006a565b9150509250929050565b600181811c9082168061018a57607f821691505b6020821081036101aa57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156101fa57806000526020600020601f840160051c810160208510156101d75750805b601f840160051c820191505b818110156101f757600081556001016101e3565b50505b505050565b81516001600160401b0381111561021857610218610054565b61022c816102268454610176565b846101b0565b6020601f82116001811461026057600083156102485750848201515b600019600385901b1c1916600184901b1784556101f7565b600084815260208120601f198516915b828110156102905787850151825560209485019460019092019101610270565b50848210156102ae5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b6109d3806102cc6000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c806340c10f191161007657806395d89b411161005b57806395d89b4114610183578063a9059cbb1461018b578063dd62ed3e1461019e57600080fd5b806340c10f191461013857806370a082311461014d57600080fd5b806318160ddd116100a757806318160ddd1461010457806323b872dd14610116578063313ce5671461012957600080fd5b806306fdde03146100c3578063095ea7b3146100e1575b600080fd5b6100cb6101e4565b6040516100d891906107bf565b60405180910390f35b6100f46100ef366004610854565b610276565b60405190151581526020016100d8565b6002545b6040519081526020016100d8565b6100f461012436600461087e565b610290565b604051601281526020016100d8565b61014b610146366004610854565b6102b4565b005b61010861015b3660046108bb565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6100cb6102c2565b6100f4610199366004610854565b6102d1565b6101086101ac3660046108dd565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101f390610910565b80601f016020809104026020016040519081016040528092919081815260200182805461021f90610910565b801561026c5780601f106102415761010080835404028352916020019161026c565b820191906000526020600020905b81548152906001019060200180831161024f57829003601f168201915b5050505050905090565b6000336102848185856102df565b60019150505b92915050565b60003361029e8582856102f1565b6102a98585856103c5565b506001949350505050565b6102be8282610470565b5050565b6060600480546101f390610910565b6000336102848185856103c5565b6102ec83838360016104cc565b505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146103bf57818110156103b0576040517ffb8f41b200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101829052604481018390526064015b60405180910390fd5b6103bf848484840360006104cc565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610415576040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff8216610465576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b6102ec838383610614565b73ffffffffffffffffffffffffffffffffffffffff82166104c0576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b6102be60008383610614565b73ffffffffffffffffffffffffffffffffffffffff841661051c576040517fe602df05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff831661056c576040517f94280d62000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020908152604080832093871683529290522082905580156103bf578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161060691815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff831661064c5780600260008282546106419190610963565b909155506106fe9050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902054818110156106d2576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260248101829052604481018390526064016103a7565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090209082900390555b73ffffffffffffffffffffffffffffffffffffffff821661072757600280548290039055610753565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090208054820190555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107b291815260200190565b60405180910390a3505050565b602081526000825180602084015260005b818110156107ed57602081860181015160408684010152016107d0565b5060006040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461084f57600080fd5b919050565b6000806040838503121561086757600080fd5b6108708361082b565b946020939093013593505050565b60008060006060848603121561089357600080fd5b61089c8461082b565b92506108aa6020850161082b565b929592945050506040919091013590565b6000602082840312156108cd57600080fd5b6108d68261082b565b9392505050565b600080604083850312156108f057600080fd5b6108f98361082b565b91506109076020840161082b565b90509250929050565b600181811c9082168061092457607f821691505b60208210810361095d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b8082018082111561028a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea26469706673582212207e804ca539d49155d2b6bc19268ce22f9f857027c75247d69fb0d56a089c93d464736f6c634300081a0033608060405234801561001057600080fd5b506040516113e23803806113e283398101604081905261002f916101d3565b60016000556002805460ff191690556001600160a01b038316158061005b57506001600160a01b038216155b156100795760405163d92e233d60e01b815260040160405180910390fd5b60028054610100600160a81b0319166101006001600160a01b038681169190910291909117909155600380546001600160a01b0319169184169190911790556100c3600082610122565b506100ee7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a82610122565b506101197f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e483610122565b50505050610216565b60008281526001602090815260408083206001600160a01b038516845290915281205460ff166101ad5760008381526001602081815260408084206001600160a01b0387168086529252808420805460ff19169093179092559051339286917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45060016101b1565b5060005b92915050565b80516001600160a01b03811681146101ce57600080fd5b919050565b6000806000606084860312156101e857600080fd5b6101f1846101b7565b92506101ff602085016101b7565b915061020d604085016101b7565b90509250925092565b6111bd806102256000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c80635c975abb116100b2578063a217fddf11610081578063d547741f11610066578063d547741f146102c2578063d9caed12146102d5578063e63ab1e9146102e857600080fd5b8063a217fddf146102a7578063c8a02362146102af57600080fd5b80635c975abb146102275780638456cb591461023257806385f438c11461023a57806391d148541461026157600080fd5b80632f2ff15d116100ee5780632f2ff15d146101d957806336568abe146101ec5780633f4ba83a146101ff5780635b1125911461020757600080fd5b806301ffc9a714610120578063116191b61461014857806321fc65f214610192578063248a9ca3146101a7575b600080fd5b61013361012e366004610ee3565b61030f565b60405190151581526020015b60405180910390f35b60025461016d90610100900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161013f565b6101a56101a0366004610f4e565b6103a8565b005b6101cb6101b5366004610feb565b6000908152600160208190526040909120015490565b60405190815260200161013f565b6101a56101e7366004611004565b61051d565b6101a56101fa366004611004565b610549565b6101a56105a7565b60035461016d9073ffffffffffffffffffffffffffffffffffffffff1681565b60025460ff16610133565b6101a56105dc565b6101cb7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e481565b61013361026f366004611004565b600091825260016020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b6101cb600081565b6101a56102bd366004610f4e565b61060e565b6101a56102d0366004611004565b610769565b6101a56102e3366004611030565b61078f565b6101cb7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806103a257507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6103b061085c565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e46103da8161089f565b6103e26108a9565b60025461040e9073ffffffffffffffffffffffffffffffffffffffff88811691610100900416866108e8565b6002546040517f5131ab5900000000000000000000000000000000000000000000000000000000815261010090910473ffffffffffffffffffffffffffffffffffffffff1690635131ab599061047090899089908990899089906004016110b6565b600060405180830381600087803b15801561048a57600080fd5b505af115801561049e573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e86868660405161050393929190611113565b60405180910390a3506105166001600055565b5050505050565b600082815260016020819052604090912001546105398161089f565b6105438383610975565b50505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610598576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105a28282610a40565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6105d18161089f565b6105d9610aff565b50565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6106068161089f565b6105d9610b7c565b61061661085c565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e46106408161089f565b6106486108a9565b6002546106749073ffffffffffffffffffffffffffffffffffffffff88811691610100900416866108e8565b6002546040517fb8969bd400000000000000000000000000000000000000000000000000000000815261010090910473ffffffffffffffffffffffffffffffffffffffff169063b8969bd4906106d690899089908990899089906004016110b6565b600060405180830381600087803b1580156106f057600080fd5b505af1158015610704573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c886868660405161050393929190611113565b600082815260016020819052604090912001546107858161089f565b6105438383610a40565b61079761085c565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e46107c18161089f565b6107c96108a9565b6107ea73ffffffffffffffffffffffffffffffffffffffff851684846108e8565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb8460405161084991815260200190565b60405180910390a3506105a26001600055565b600260005403610898576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b6105d98133610bd7565b60025460ff16156108e6576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526105a2908490610c68565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff16610a3857600083815260016020818152604080842073ffffffffffffffffffffffffffffffffffffffff8716808652925280842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169093179092559051339286917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45060016103a2565b5060006103a2565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff1615610a3857600083815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016103a2565b610b07610cfe565b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b610b846108a9565b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610b523390565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610c64576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602481018390526044015b60405180910390fd5b5050565b6000610c8a73ffffffffffffffffffffffffffffffffffffffff841683610d3a565b90508051600014158015610caf575080806020019051810190610cad9190611136565b155b156105a2576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602401610c5b565b60025460ff166108e6576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060610d4883836000610d4f565b9392505050565b606081471015610d8d576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610c5b565b6000808573ffffffffffffffffffffffffffffffffffffffff168486604051610db69190611158565b60006040518083038185875af1925050503d8060008114610df3576040519150601f19603f3d011682016040523d82523d6000602084013e610df8565b606091505b5091509150610e08868383610e12565b9695505050505050565b606082610e2757610e2282610ea1565b610d48565b8151158015610e4b575073ffffffffffffffffffffffffffffffffffffffff84163b155b15610e9a576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610c5b565b5080610d48565b805115610eb15780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060208284031215610ef557600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610d4857600080fd5b803573ffffffffffffffffffffffffffffffffffffffff81168114610f4957600080fd5b919050565b600080600080600060808688031215610f6657600080fd5b610f6f86610f25565b9450610f7d60208701610f25565b935060408601359250606086013567ffffffffffffffff811115610fa057600080fd5b8601601f81018813610fb157600080fd5b803567ffffffffffffffff811115610fc857600080fd5b886020828401011115610fda57600080fd5b959894975092955050506020019190565b600060208284031215610ffd57600080fd5b5035919050565b6000806040838503121561101757600080fd5b8235915061102760208401610f25565b90509250929050565b60008060006060848603121561104557600080fd5b61104e84610f25565b925061105c60208501610f25565b929592945050506040919091013590565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff8516602082015283604082015260806060820152600061110860808301848661106d565b979650505050505050565b83815260406020820152600061112d60408301848661106d565b95945050505050565b60006020828403121561114857600080fd5b81518015158114610d4857600080fd5b6000825160005b81811015611179576020818601810151858301520161115f565b50600092019182525091905056fea2646970667358221220f228501fb7798406cf58c84b1f7af446926eecd69943c0a6760dfd0c5550e2ff64736f6c634300081a0033", +} + +// 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...) +} + +// ASSETHANDLERROLE is a free data retrieval call binding the contract method 0x5d62c860. +// +// Solidity: function ASSET_HANDLER_ROLE() view returns(bytes32) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestCaller) ASSETHANDLERROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _GatewayEVMEchidnaTest.contract.Call(opts, &out, "ASSET_HANDLER_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// ASSETHANDLERROLE is a free data retrieval call binding the contract method 0x5d62c860. +// +// Solidity: function ASSET_HANDLER_ROLE() view returns(bytes32) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestSession) ASSETHANDLERROLE() ([32]byte, error) { + return _GatewayEVMEchidnaTest.Contract.ASSETHANDLERROLE(&_GatewayEVMEchidnaTest.CallOpts) +} + +// ASSETHANDLERROLE is a free data retrieval call binding the contract method 0x5d62c860. +// +// Solidity: function ASSET_HANDLER_ROLE() view returns(bytes32) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestCallerSession) ASSETHANDLERROLE() ([32]byte, error) { + return _GatewayEVMEchidnaTest.Contract.ASSETHANDLERROLE(&_GatewayEVMEchidnaTest.CallOpts) +} + +// DEFAULTADMINROLE is a free data retrieval call binding the contract method 0xa217fddf. +// +// Solidity: function DEFAULT_ADMIN_ROLE() view returns(bytes32) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestCaller) DEFAULTADMINROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _GatewayEVMEchidnaTest.contract.Call(opts, &out, "DEFAULT_ADMIN_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// DEFAULTADMINROLE is a free data retrieval call binding the contract method 0xa217fddf. +// +// Solidity: function DEFAULT_ADMIN_ROLE() view returns(bytes32) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestSession) DEFAULTADMINROLE() ([32]byte, error) { + return _GatewayEVMEchidnaTest.Contract.DEFAULTADMINROLE(&_GatewayEVMEchidnaTest.CallOpts) +} + +// DEFAULTADMINROLE is a free data retrieval call binding the contract method 0xa217fddf. +// +// Solidity: function DEFAULT_ADMIN_ROLE() view returns(bytes32) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestCallerSession) DEFAULTADMINROLE() ([32]byte, error) { + return _GatewayEVMEchidnaTest.Contract.DEFAULTADMINROLE(&_GatewayEVMEchidnaTest.CallOpts) +} + +// PAUSERROLE is a free data retrieval call binding the contract method 0xe63ab1e9. +// +// Solidity: function PAUSER_ROLE() view returns(bytes32) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestCaller) PAUSERROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _GatewayEVMEchidnaTest.contract.Call(opts, &out, "PAUSER_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// PAUSERROLE is a free data retrieval call binding the contract method 0xe63ab1e9. +// +// Solidity: function PAUSER_ROLE() view returns(bytes32) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestSession) PAUSERROLE() ([32]byte, error) { + return _GatewayEVMEchidnaTest.Contract.PAUSERROLE(&_GatewayEVMEchidnaTest.CallOpts) +} + +// PAUSERROLE is a free data retrieval call binding the contract method 0xe63ab1e9. +// +// Solidity: function PAUSER_ROLE() view returns(bytes32) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestCallerSession) PAUSERROLE() ([32]byte, error) { + return _GatewayEVMEchidnaTest.Contract.PAUSERROLE(&_GatewayEVMEchidnaTest.CallOpts) +} + +// TSSROLE is a free data retrieval call binding the contract method 0xa783c789. +// +// Solidity: function TSS_ROLE() view returns(bytes32) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestCaller) TSSROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _GatewayEVMEchidnaTest.contract.Call(opts, &out, "TSS_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// TSSROLE is a free data retrieval call binding the contract method 0xa783c789. +// +// Solidity: function TSS_ROLE() view returns(bytes32) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestSession) TSSROLE() ([32]byte, error) { + return _GatewayEVMEchidnaTest.Contract.TSSROLE(&_GatewayEVMEchidnaTest.CallOpts) +} + +// TSSROLE is a free data retrieval call binding the contract method 0xa783c789. +// +// Solidity: function TSS_ROLE() view returns(bytes32) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestCallerSession) TSSROLE() ([32]byte, error) { + return _GatewayEVMEchidnaTest.Contract.TSSROLE(&_GatewayEVMEchidnaTest.CallOpts) +} + +// 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) +} + +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. +// +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestCaller) GetRoleAdmin(opts *bind.CallOpts, role [32]byte) ([32]byte, error) { + var out []interface{} + err := _GatewayEVMEchidnaTest.contract.Call(opts, &out, "getRoleAdmin", role) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. +// +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestSession) GetRoleAdmin(role [32]byte) ([32]byte, error) { + return _GatewayEVMEchidnaTest.Contract.GetRoleAdmin(&_GatewayEVMEchidnaTest.CallOpts, role) +} + +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. +// +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestCallerSession) GetRoleAdmin(role [32]byte) ([32]byte, error) { + return _GatewayEVMEchidnaTest.Contract.GetRoleAdmin(&_GatewayEVMEchidnaTest.CallOpts, role) +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestCaller) HasRole(opts *bind.CallOpts, role [32]byte, account common.Address) (bool, error) { + var out []interface{} + err := _GatewayEVMEchidnaTest.contract.Call(opts, &out, "hasRole", role, account) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestSession) HasRole(role [32]byte, account common.Address) (bool, error) { + return _GatewayEVMEchidnaTest.Contract.HasRole(&_GatewayEVMEchidnaTest.CallOpts, role, account) +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestCallerSession) HasRole(role [32]byte, account common.Address) (bool, error) { + return _GatewayEVMEchidnaTest.Contract.HasRole(&_GatewayEVMEchidnaTest.CallOpts, role, account) +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestCaller) Paused(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _GatewayEVMEchidnaTest.contract.Call(opts, &out, "paused") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestSession) Paused() (bool, error) { + return _GatewayEVMEchidnaTest.Contract.Paused(&_GatewayEVMEchidnaTest.CallOpts) +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestCallerSession) Paused() (bool, error) { + return _GatewayEVMEchidnaTest.Contract.Paused(&_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) +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestCaller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) { + var out []interface{} + err := _GatewayEVMEchidnaTest.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 (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestSession) SupportsInterface(interfaceId [4]byte) (bool, error) { + return _GatewayEVMEchidnaTest.Contract.SupportsInterface(&_GatewayEVMEchidnaTest.CallOpts, interfaceId) +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestCallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) { + return _GatewayEVMEchidnaTest.Contract.SupportsInterface(&_GatewayEVMEchidnaTest.CallOpts, interfaceId) +} + +// 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) +} + +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactor) GrantRole(opts *bind.TransactOpts, role [32]byte, account common.Address) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.contract.Transact(opts, "grantRole", role, account) +} + +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestSession) GrantRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.GrantRole(&_GatewayEVMEchidnaTest.TransactOpts, role, account) +} + +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactorSession) GrantRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.GrantRole(&_GatewayEVMEchidnaTest.TransactOpts, role, account) +} + +// Initialize is a paid mutator transaction binding the contract method 0xc0c53b8b. +// +// Solidity: function initialize(address _tssAddress, address _zetaToken, address _admin) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactor) Initialize(opts *bind.TransactOpts, _tssAddress common.Address, _zetaToken common.Address, _admin common.Address) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.contract.Transact(opts, "initialize", _tssAddress, _zetaToken, _admin) +} + +// Initialize is a paid mutator transaction binding the contract method 0xc0c53b8b. +// +// Solidity: function initialize(address _tssAddress, address _zetaToken, address _admin) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestSession) Initialize(_tssAddress common.Address, _zetaToken common.Address, _admin common.Address) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.Initialize(&_GatewayEVMEchidnaTest.TransactOpts, _tssAddress, _zetaToken, _admin) +} + +// Initialize is a paid mutator transaction binding the contract method 0xc0c53b8b. +// +// Solidity: function initialize(address _tssAddress, address _zetaToken, address _admin) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactorSession) Initialize(_tssAddress common.Address, _zetaToken common.Address, _admin common.Address) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.Initialize(&_GatewayEVMEchidnaTest.TransactOpts, _tssAddress, _zetaToken, _admin) +} + +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. +// +// Solidity: function pause() returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactor) Pause(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.contract.Transact(opts, "pause") +} + +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. +// +// Solidity: function pause() returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestSession) Pause() (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.Pause(&_GatewayEVMEchidnaTest.TransactOpts) +} + +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. +// +// Solidity: function pause() returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactorSession) Pause() (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.Pause(&_GatewayEVMEchidnaTest.TransactOpts) +} + +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. +// +// Solidity: function renounceRole(bytes32 role, address callerConfirmation) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactor) RenounceRole(opts *bind.TransactOpts, role [32]byte, callerConfirmation common.Address) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.contract.Transact(opts, "renounceRole", role, callerConfirmation) +} + +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. +// +// Solidity: function renounceRole(bytes32 role, address callerConfirmation) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestSession) RenounceRole(role [32]byte, callerConfirmation common.Address) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.RenounceRole(&_GatewayEVMEchidnaTest.TransactOpts, role, callerConfirmation) +} + +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. +// +// Solidity: function renounceRole(bytes32 role, address callerConfirmation) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactorSession) RenounceRole(role [32]byte, callerConfirmation common.Address) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.RenounceRole(&_GatewayEVMEchidnaTest.TransactOpts, role, callerConfirmation) +} + +// 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) +} + +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactor) RevokeRole(opts *bind.TransactOpts, role [32]byte, account common.Address) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.contract.Transact(opts, "revokeRole", role, account) +} + +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestSession) RevokeRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.RevokeRole(&_GatewayEVMEchidnaTest.TransactOpts, role, account) +} + +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactorSession) RevokeRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.RevokeRole(&_GatewayEVMEchidnaTest.TransactOpts, role, account) +} + +// 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) +} + +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. +// +// Solidity: function unpause() returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactor) Unpause(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.contract.Transact(opts, "unpause") +} + +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. +// +// Solidity: function unpause() returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestSession) Unpause() (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.Unpause(&_GatewayEVMEchidnaTest.TransactOpts) +} + +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. +// +// Solidity: function unpause() returns() +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestTransactorSession) Unpause() (*types.Transaction, error) { + return _GatewayEVMEchidnaTest.Contract.Unpause(&_GatewayEVMEchidnaTest.TransactOpts) +} + +// 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 +} + +// GatewayEVMEchidnaTestPausedIterator is returned from FilterPaused and is used to iterate over the raw logs and unpacked data for Paused events raised by the GatewayEVMEchidnaTest contract. +type GatewayEVMEchidnaTestPausedIterator struct { + Event *GatewayEVMEchidnaTestPaused // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMEchidnaTestPausedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMEchidnaTestPaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMEchidnaTestPaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMEchidnaTestPausedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMEchidnaTestPausedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMEchidnaTestPaused represents a Paused event raised by the GatewayEVMEchidnaTest contract. +type GatewayEVMEchidnaTestPaused struct { + Account common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterPaused is a free log retrieval operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. +// +// Solidity: event Paused(address account) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) FilterPaused(opts *bind.FilterOpts) (*GatewayEVMEchidnaTestPausedIterator, error) { + + logs, sub, err := _GatewayEVMEchidnaTest.contract.FilterLogs(opts, "Paused") + if err != nil { + return nil, err + } + return &GatewayEVMEchidnaTestPausedIterator{contract: _GatewayEVMEchidnaTest.contract, event: "Paused", logs: logs, sub: sub}, nil +} + +// WatchPaused is a free log subscription operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. +// +// Solidity: event Paused(address account) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) WatchPaused(opts *bind.WatchOpts, sink chan<- *GatewayEVMEchidnaTestPaused) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMEchidnaTest.contract.WatchLogs(opts, "Paused") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMEchidnaTestPaused) + if err := _GatewayEVMEchidnaTest.contract.UnpackLog(event, "Paused", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParsePaused is a log parse operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. +// +// Solidity: event Paused(address account) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) ParsePaused(log types.Log) (*GatewayEVMEchidnaTestPaused, error) { + event := new(GatewayEVMEchidnaTestPaused) + if err := _GatewayEVMEchidnaTest.contract.UnpackLog(event, "Paused", 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 +} + +// GatewayEVMEchidnaTestRoleAdminChangedIterator is returned from FilterRoleAdminChanged and is used to iterate over the raw logs and unpacked data for RoleAdminChanged events raised by the GatewayEVMEchidnaTest contract. +type GatewayEVMEchidnaTestRoleAdminChangedIterator struct { + Event *GatewayEVMEchidnaTestRoleAdminChanged // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMEchidnaTestRoleAdminChangedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMEchidnaTestRoleAdminChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMEchidnaTestRoleAdminChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMEchidnaTestRoleAdminChangedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMEchidnaTestRoleAdminChangedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMEchidnaTestRoleAdminChanged represents a RoleAdminChanged event raised by the GatewayEVMEchidnaTest contract. +type GatewayEVMEchidnaTestRoleAdminChanged struct { + Role [32]byte + PreviousAdminRole [32]byte + NewAdminRole [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRoleAdminChanged is a free log retrieval operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. +// +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) FilterRoleAdminChanged(opts *bind.FilterOpts, role [][32]byte, previousAdminRole [][32]byte, newAdminRole [][32]byte) (*GatewayEVMEchidnaTestRoleAdminChangedIterator, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var previousAdminRoleRule []interface{} + for _, previousAdminRoleItem := range previousAdminRole { + previousAdminRoleRule = append(previousAdminRoleRule, previousAdminRoleItem) + } + var newAdminRoleRule []interface{} + for _, newAdminRoleItem := range newAdminRole { + newAdminRoleRule = append(newAdminRoleRule, newAdminRoleItem) + } + + logs, sub, err := _GatewayEVMEchidnaTest.contract.FilterLogs(opts, "RoleAdminChanged", roleRule, previousAdminRoleRule, newAdminRoleRule) + if err != nil { + return nil, err + } + return &GatewayEVMEchidnaTestRoleAdminChangedIterator{contract: _GatewayEVMEchidnaTest.contract, event: "RoleAdminChanged", logs: logs, sub: sub}, nil +} + +// WatchRoleAdminChanged is a free log subscription operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. +// +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) WatchRoleAdminChanged(opts *bind.WatchOpts, sink chan<- *GatewayEVMEchidnaTestRoleAdminChanged, role [][32]byte, previousAdminRole [][32]byte, newAdminRole [][32]byte) (event.Subscription, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var previousAdminRoleRule []interface{} + for _, previousAdminRoleItem := range previousAdminRole { + previousAdminRoleRule = append(previousAdminRoleRule, previousAdminRoleItem) + } + var newAdminRoleRule []interface{} + for _, newAdminRoleItem := range newAdminRole { + newAdminRoleRule = append(newAdminRoleRule, newAdminRoleItem) + } + + logs, sub, err := _GatewayEVMEchidnaTest.contract.WatchLogs(opts, "RoleAdminChanged", roleRule, previousAdminRoleRule, newAdminRoleRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMEchidnaTestRoleAdminChanged) + if err := _GatewayEVMEchidnaTest.contract.UnpackLog(event, "RoleAdminChanged", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRoleAdminChanged is a log parse operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. +// +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) ParseRoleAdminChanged(log types.Log) (*GatewayEVMEchidnaTestRoleAdminChanged, error) { + event := new(GatewayEVMEchidnaTestRoleAdminChanged) + if err := _GatewayEVMEchidnaTest.contract.UnpackLog(event, "RoleAdminChanged", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMEchidnaTestRoleGrantedIterator is returned from FilterRoleGranted and is used to iterate over the raw logs and unpacked data for RoleGranted events raised by the GatewayEVMEchidnaTest contract. +type GatewayEVMEchidnaTestRoleGrantedIterator struct { + Event *GatewayEVMEchidnaTestRoleGranted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMEchidnaTestRoleGrantedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMEchidnaTestRoleGranted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMEchidnaTestRoleGranted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMEchidnaTestRoleGrantedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMEchidnaTestRoleGrantedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMEchidnaTestRoleGranted represents a RoleGranted event raised by the GatewayEVMEchidnaTest contract. +type GatewayEVMEchidnaTestRoleGranted struct { + Role [32]byte + Account common.Address + Sender common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRoleGranted is a free log retrieval operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. +// +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) FilterRoleGranted(opts *bind.FilterOpts, role [][32]byte, account []common.Address, sender []common.Address) (*GatewayEVMEchidnaTestRoleGrantedIterator, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _GatewayEVMEchidnaTest.contract.FilterLogs(opts, "RoleGranted", roleRule, accountRule, senderRule) + if err != nil { + return nil, err + } + return &GatewayEVMEchidnaTestRoleGrantedIterator{contract: _GatewayEVMEchidnaTest.contract, event: "RoleGranted", logs: logs, sub: sub}, nil +} + +// WatchRoleGranted is a free log subscription operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. +// +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) WatchRoleGranted(opts *bind.WatchOpts, sink chan<- *GatewayEVMEchidnaTestRoleGranted, role [][32]byte, account []common.Address, sender []common.Address) (event.Subscription, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _GatewayEVMEchidnaTest.contract.WatchLogs(opts, "RoleGranted", roleRule, accountRule, 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(GatewayEVMEchidnaTestRoleGranted) + if err := _GatewayEVMEchidnaTest.contract.UnpackLog(event, "RoleGranted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRoleGranted is a log parse operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. +// +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) ParseRoleGranted(log types.Log) (*GatewayEVMEchidnaTestRoleGranted, error) { + event := new(GatewayEVMEchidnaTestRoleGranted) + if err := _GatewayEVMEchidnaTest.contract.UnpackLog(event, "RoleGranted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMEchidnaTestRoleRevokedIterator is returned from FilterRoleRevoked and is used to iterate over the raw logs and unpacked data for RoleRevoked events raised by the GatewayEVMEchidnaTest contract. +type GatewayEVMEchidnaTestRoleRevokedIterator struct { + Event *GatewayEVMEchidnaTestRoleRevoked // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMEchidnaTestRoleRevokedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMEchidnaTestRoleRevoked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMEchidnaTestRoleRevoked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMEchidnaTestRoleRevokedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMEchidnaTestRoleRevokedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMEchidnaTestRoleRevoked represents a RoleRevoked event raised by the GatewayEVMEchidnaTest contract. +type GatewayEVMEchidnaTestRoleRevoked struct { + Role [32]byte + Account common.Address + Sender common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRoleRevoked is a free log retrieval operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. +// +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) FilterRoleRevoked(opts *bind.FilterOpts, role [][32]byte, account []common.Address, sender []common.Address) (*GatewayEVMEchidnaTestRoleRevokedIterator, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _GatewayEVMEchidnaTest.contract.FilterLogs(opts, "RoleRevoked", roleRule, accountRule, senderRule) + if err != nil { + return nil, err + } + return &GatewayEVMEchidnaTestRoleRevokedIterator{contract: _GatewayEVMEchidnaTest.contract, event: "RoleRevoked", logs: logs, sub: sub}, nil +} + +// WatchRoleRevoked is a free log subscription operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. +// +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) WatchRoleRevoked(opts *bind.WatchOpts, sink chan<- *GatewayEVMEchidnaTestRoleRevoked, role [][32]byte, account []common.Address, sender []common.Address) (event.Subscription, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _GatewayEVMEchidnaTest.contract.WatchLogs(opts, "RoleRevoked", roleRule, accountRule, 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(GatewayEVMEchidnaTestRoleRevoked) + if err := _GatewayEVMEchidnaTest.contract.UnpackLog(event, "RoleRevoked", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRoleRevoked is a log parse operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. +// +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) ParseRoleRevoked(log types.Log) (*GatewayEVMEchidnaTestRoleRevoked, error) { + event := new(GatewayEVMEchidnaTestRoleRevoked) + if err := _GatewayEVMEchidnaTest.contract.UnpackLog(event, "RoleRevoked", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayEVMEchidnaTestUnpausedIterator is returned from FilterUnpaused and is used to iterate over the raw logs and unpacked data for Unpaused events raised by the GatewayEVMEchidnaTest contract. +type GatewayEVMEchidnaTestUnpausedIterator struct { + Event *GatewayEVMEchidnaTestUnpaused // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMEchidnaTestUnpausedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMEchidnaTestUnpaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMEchidnaTestUnpaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMEchidnaTestUnpausedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMEchidnaTestUnpausedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMEchidnaTestUnpaused represents a Unpaused event raised by the GatewayEVMEchidnaTest contract. +type GatewayEVMEchidnaTestUnpaused struct { + Account common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUnpaused is a free log retrieval operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. +// +// Solidity: event Unpaused(address account) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) FilterUnpaused(opts *bind.FilterOpts) (*GatewayEVMEchidnaTestUnpausedIterator, error) { + + logs, sub, err := _GatewayEVMEchidnaTest.contract.FilterLogs(opts, "Unpaused") + if err != nil { + return nil, err + } + return &GatewayEVMEchidnaTestUnpausedIterator{contract: _GatewayEVMEchidnaTest.contract, event: "Unpaused", logs: logs, sub: sub}, nil +} + +// WatchUnpaused is a free log subscription operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. +// +// Solidity: event Unpaused(address account) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) WatchUnpaused(opts *bind.WatchOpts, sink chan<- *GatewayEVMEchidnaTestUnpaused) (event.Subscription, error) { + + logs, sub, err := _GatewayEVMEchidnaTest.contract.WatchLogs(opts, "Unpaused") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayEVMEchidnaTestUnpaused) + if err := _GatewayEVMEchidnaTest.contract.UnpackLog(event, "Unpaused", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseUnpaused is a log parse operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. +// +// Solidity: event Unpaused(address account) +func (_GatewayEVMEchidnaTest *GatewayEVMEchidnaTestFilterer) ParseUnpaused(log types.Log) (*GatewayEVMEchidnaTestUnpaused, error) { + event := new(GatewayEVMEchidnaTestUnpaused) + if err := _GatewayEVMEchidnaTest.contract.UnpackLog(event, "Unpaused", 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..94f0e9a1 --- /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\":\"ZeroAddress\",\"inputs\":[]}]", + Bin: "0x6080604052600c8054600160ff199182168117909255601f80549091169091179055348015602c57600080fd5b5061bf218061003c6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806385226c811161008c578063b5508aa911610066578063b5508aa91461018b578063ba414fa614610193578063e20c9f71146101ab578063fa7626d4146101b357600080fd5b806385226c8114610159578063916a17c61461016e578063b0464fdc1461018357600080fd5b80633e5e3c23116100c85780633e5e3c231461012c5780633f7286f41461013457806366d9a9a01461013c5780637a380ebf1461015157600080fd5b80630a9254e4146100ef5780631ed7831c146100f95780632ade388014610117575b600080fd5b6100f76101c0565b005b610101610a85565b60405161010e919061620b565b60405180910390f35b61011f610ae7565b60405161010e91906162a7565b610101610c29565b610101610c89565b610144610ce9565b60405161010e919061640d565b6100f7610e6b565b61016161152d565b60405161010e91906164ab565b6101766115fd565b60405161010e9190616522565b6101766116f8565b6101616117f3565b61019b6118c3565b604051901515815260200161010e565b610101611997565b601f5461019b9060ff1681565b602680547fffffffffffffffffffffffff00000000000000000000000000000000000000009081163017909155602780548216611234179055602880549091166156781790556040516102129061611e565b60408082526004908201527f746573740000000000000000000000000000000000000000000000000000000060608201526080602082018190526003908201527f54544b000000000000000000000000000000000000000000000000000000000060a082015260c001604051809103906000f080158015610297573d6000803e3d6000fd5b50602480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03929092169190911790556040516102dc9061611e565b604080825260049082018190527f7a6574610000000000000000000000000000000000000000000000000000000060608301526080602083018190528201527f5a4554410000000000000000000000000000000000000000000000000000000060a082015260c001604051809103906000f080158015610360573d6000803e3d6000fd5b50602580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03928316908117909155604080518082018252600e81527f4761746577617945564d2e736f6c00000000000000000000000000000000000060208201526028546026549251908516602482015260448101939093529216606482015261044f919060840160408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc0c53b8b000000000000000000000000000000000000000000000000000000001790526119f7565b601f80547fffffffffffffffffffffff0000000000000000000000000000000000000000ff166101006001600160a01b0393841681029190911791829055602080549190920483167fffffffffffffffffffffffff000000000000000000000000000000000000000090911681179091556028546026546040519293918216929116906104db9061612b565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103906000f080158015610517573d6000803e3d6000fd5b50602280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03928316179055602054602554602854602654604051938516949283169391831692169061057290616138565b6001600160a01b039485168152928416602084015290831660408301529091166060820152608001604051809103906000f0801580156105b6573d6000803e3d6000fd5b50602380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03929092169190911790556040516105fb90616145565b604051809103906000f080158015610617573d6000803e3d6000fd5b50602180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283161790556028546040517fc88a5e6d00000000000000000000000000000000000000000000000000000000815291166004820152670de0b6b3a76400006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d90604401600060405180830381600087803b1580156106c357600080fd5b505af11580156106d7573d6000803e3d6000fd5b50506026546040517f06447d560000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d569150602401600060405180830381600087803b15801561074d57600080fd5b505af1158015610761573d6000803e3d6000fd5b50506020546022546040517fae7a3a6f0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201529116925063ae7a3a6f9150602401600060405180830381600087803b1580156107c757600080fd5b505af11580156107db573d6000803e3d6000fd5b50506020546023546040517f10188aef0000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152911692506310188aef9150602401600060405180830381600087803b15801561084157600080fd5b505af1158015610855573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156108b757600080fd5b505af11580156108cb573d6000803e3d6000fd5b5050602480546026546040517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152620f4240938101939093521692506340c10f199150604401600060405180830381600087803b15801561093c57600080fd5b505af1158015610950573d6000803e3d6000fd5b5050602480546022546040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201526207a1209381019390935216925063a9059cbb91506044016020604051808303816000875af11580156109c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ea91906165b9565b506028546040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152670de0b6b3a76400006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d90604401600060405180830381600087803b158015610a6b57600080fd5b505af1158015610a7f573d6000803e3d6000fd5b50505050565b60606016805480602002602001604051908101604052809291908181526020018280548015610add57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610abf575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020016000905b82821015610c2057600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b82821015610c09578382906000526020600020018054610b7c906165db565b80601f0160208091040260200160405190810160405280929190818152602001828054610ba8906165db565b8015610bf55780601f10610bca57610100808354040283529160200191610bf5565b820191906000526020600020905b815481529060010190602001808311610bd857829003601f168201915b505050505081526020019060010190610b5d565b505050508152505081526020019060010190610b0b565b50505050905090565b60606018805480602002602001604051908101604052809291908181526020018280548015610add576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610abf575050505050905090565b60606017805480602002602001604051908101604052809291908181526020018280548015610add576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610abf575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020016000905b82821015610c205783829060005260206000209060020201604051806040016040529081600082018054610d40906165db565b80601f0160208091040260200160405190810160405280929190818152602001828054610d6c906165db565b8015610db95780601f10610d8e57610100808354040283529160200191610db9565b820191906000526020600020905b815481529060010190602001808311610d9c57829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015610e5357602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610e005790505b50505050508152505081526020019060010190610d0d565b60208054604080517fdda79b7500000000000000000000000000000000000000000000000000000000815290516000936001600160a01b039093169263dda79b7592600480820193918290030181865afa158015610ecd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef19190616628565b60208054604080517f5b11259100000000000000000000000000000000000000000000000000000000815290519394506000936001600160a01b0390921692635b112591926004808401938290030181865afa158015610f55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f799190616628565b604080518082018252600f81527f48656c6c6f2c20466f756e647279210000000000000000000000000000000000602080830191909152601f5483518085018552601981527f4761746577617945564d55706772616465546573742e736f6c00000000000000818401528451928301909452600082526026549495509193602a93600193670de0b6b3a764000093611023936001600160a01b036101009093048316939216611a16565b600084848460405160240161103a93929190616651565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe04d4f9700000000000000000000000000000000000000000000000000000000179052601f5460215491517ff30c7ba30000000000000000000000000000000000000000000000000000000081529293506001600160a01b03610100909104811692737109709ecfa91a80626ff3989d68f67f5b1dd12d9263f30c7ba392611100929116908790879060040161667b565b600060405180830381600087803b15801561111a57600080fd5b505af115801561112e573d6000803e3d6000fd5b50506021546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b1580156111c057600080fd5b505af11580156111d4573d6000803e3d6000fd5b50506020546040517f1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa935061121d92506001600160a01b039091169086908a908a908a906166a3565b60405180910390a16020546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b1580156112b357600080fd5b505af11580156112c7573d6000803e3d6000fd5b50506021546040516001600160a01b0390911692507f373df382b9c587826f3de13f16d67f8d99f28ee947fc0924c6ef2d6d2c7e8546915061130c90869086906166e4565b60405180910390a26028546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b15801561138657600080fd5b505af115801561139a573d6000803e3d6000fd5b50506021546040517f1cff79cd0000000000000000000000000000000000000000000000000000000081526001600160a01b038086169450631cff79cd935087926113ec9291169087906004016166fd565b60006040518083038185885af115801561140a573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f191682016040526114339190810190616807565b5060208054604080517fdda79b7500000000000000000000000000000000000000000000000000000000815290516114c0938c936001600160a01b03169263dda79b7592600480830193928290030181865afa158015611497573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114bb9190616628565b611a32565b60208054604080517f5b1125910000000000000000000000000000000000000000000000000000000081529051611523938b936001600160a01b031692635b11259192600480830193928290030181865afa158015611497573d6000803e3d6000fd5b5050505050505050565b6060601a805480602002602001604051908101604052809291908181526020016000905b82821015610c20578382906000526020600020018054611570906165db565b80601f016020809104026020016040519081016040528092919081815260200182805461159c906165db565b80156115e95780601f106115be576101008083540402835291602001916115e9565b820191906000526020600020905b8154815290600101906020018083116115cc57829003601f168201915b505050505081526020019060010190611551565b6060601d805480602002602001604051908101604052809291908181526020016000905b82821015610c205760008481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156116e057602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161168d5790505b50505050508152505081526020019060010190611621565b6060601c805480602002602001604051908101604052809291908181526020016000905b82821015610c205760008481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156117db57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116117885790505b5050505050815250508152602001906001019061171c565b60606019805480602002602001604051908101604052809291908181526020016000905b82821015610c20578382906000526020600020018054611836906165db565b80601f0160208091040260200160405190810160405280929190818152602001828054611862906165db565b80156118af5780601f10611884576101008083540402835291602001916118af565b820191906000526020600020905b81548152906001019060200180831161189257829003601f168201915b505050505081526020019060010190611817565b60085460009060ff16156118db575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c65640000000000000000000000000000000000000000000000000000602483015260009163667f9d7090604401602060405180830381865afa15801561196c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611990919061683c565b1415905090565b60606015805480602002602001604051908101604052809291908181526020018280548015610add576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610abf575050505050905090565b6000611a01616152565b611a0c848483611ac2565b9150505b92915050565b611a1e616152565b611a2b8585858486611b3d565b5050505050565b6040517f515361f60000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015282166024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063515361f69060440160006040518083038186803b158015611aa657600080fd5b505afa158015611aba573d6000803e3d6000fd5b505050505050565b600080611acf8584611c3e565b9050611b326040518060400160405280601d81526020017f4552433139363750726f78792e736f6c3a4552433139363750726f78790000008152508286604051602001611b1d9291906166fd565b60405160208183030381529060405285611c4a565b9150505b9392505050565b6040517f06447d560000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201528190737109709ecfa91a80626ff3989d68f67f5b1dd12d9081906306447d5690602401600060405180830381600087803b158015611baf57600080fd5b505af1925050508015611bc0575060015b611bd557611bd087878787611c78565b611c35565b611be187878787611c78565b806001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611c1c57600080fd5b505af1158015611c30573d6000803e3d6000fd5b505050505b50505050505050565b6000611b368383611c91565b60c08101515160009015611c6e57611c6784848460c00151611cac565b9050611b36565b611c678484611e52565b6000611c848483611f3d565b9050611a2b858285611f49565b6000611c9d8383612313565b611b3683836020015184611c4a565b600080611cb7612323565b90506000611cc586836123f6565b90506000611cdc826060015183602001518561289c565b90506000611cec83838989612aae565b90506000611cf98261392b565b602081015181519192509060030b15611d6c57898260400151604051602001611d23929190616855565b60408051601f19818403018152908290527f08c379a0000000000000000000000000000000000000000000000000000000008252611d63916004016168d6565b60405180910390fd5b6000611daf6040518060400160405280601581526020017f4465706c6f79656420746f20616464726573733a200000000000000000000000815250836001613afa565b6040517fc6ce059d000000000000000000000000000000000000000000000000000000008152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c6ce059d90611e029084906004016168d6565b602060405180830381865afa158015611e1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e439190616628565b9b9a5050505050505050505050565b6040517f8d1cc9250000000000000000000000000000000000000000000000000000000081526000908190737109709ecfa91a80626ff3989d68f67f5b1dd12d90638d1cc92590611ea79087906004016168d6565b600060405180830381865afa158015611ec4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611eec9190810190616807565b90506000611f1a8285604051602001611f069291906168e9565b604051602081830303815290604052613cfa565b90506001600160a01b038116611a0c578484604051602001611d23929190616918565b6000611c9d8383613d0d565b6040517f667f9d700000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201527fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61036024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90600090829063667f9d7090604401602060405180830381865afa158015611fe5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612009919061683c565b9050806121b057600061201b86613d19565b604080518082018252600581527f352e302e30000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201529091506120a6905b60408051808201825260008082526020918201528151808301909252845182528085019082015290613e06565b806120b2575060008451115b15612135576040517f4f1ef2860000000000000000000000000000000000000000000000000000000081526001600160a01b03871690634f1ef286906120fe90889088906004016166fd565b600060405180830381600087803b15801561211857600080fd5b505af115801561212c573d6000803e3d6000fd5b505050506121aa565b6040517f3659cfe60000000000000000000000000000000000000000000000000000000081526001600160a01b038681166004830152871690633659cfe690602401600060405180830381600087803b15801561219157600080fd5b505af11580156121a5573d6000803e3d6000fd5b505050505b50611a2b565b8060006121bc82613d19565b604080518082018252600581527f352e302e300000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015290915061221e90612079565b8061222a575060008551115b156122af576040517f9623609d0000000000000000000000000000000000000000000000000000000081526001600160a01b03831690639623609d90612278908a908a908a906004016169c3565b600060405180830381600087803b15801561229257600080fd5b505af11580156122a6573d6000803e3d6000fd5b50505050611c35565b6040517f99a88ec40000000000000000000000000000000000000000000000000000000081526001600160a01b03888116600483015287811660248301528316906399a88ec490604401600060405180830381600087803b158015611c1c57600080fd5b61231f82826000613e1a565b5050565b604080518082018252600381527f6f75740000000000000000000000000000000000000000000000000000000000602082015290517fd145736c000000000000000000000000000000000000000000000000000000008152606091737109709ecfa91a80626ff3989d68f67f5b1dd12d91829063d145736c906123aa9084906004016169f4565b600060405180830381865afa1580156123c7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526123ef9190810190616a3b565b9250505090565b6124286040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d90506124736040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b61247c85613f1d565b6020820152600061248c86614302565b90506000836001600160a01b031663d930a0e66040518163ffffffff1660e01b8152600401600060405180830381865afa1580156124ce573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526124f69190810190616a3b565b868385602001516040516020016125109493929190616a84565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291506000906001600160a01b038616906360f9bb11906125689085906004016168d6565b600060405180830381865afa158015612585573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526125ad9190810190616a3b565b6040517fdb4235f60000000000000000000000000000000000000000000000000000000081529091506001600160a01b0386169063db4235f6906125f5908490600401616b88565b602060405180830381865afa158015612612573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061263691906165b9565b61264b5781604051602001611d239190616bda565b6040517f49c4fac80000000000000000000000000000000000000000000000000000000081526001600160a01b038616906349c4fac890612690908490600401616c6c565b600060405180830381865afa1580156126ad573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526126d59190810190616a3b565b84526040517fdb4235f60000000000000000000000000000000000000000000000000000000081526001600160a01b0386169063db4235f69061271c908490600401616cbe565b602060405180830381865afa158015612739573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275d91906165b9565b156127f2576040517f49c4fac80000000000000000000000000000000000000000000000000000000081526001600160a01b038616906349c4fac8906127a7908490600401616cbe565b600060405180830381865afa1580156127c4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526127ec9190810190616a3b565b60408501525b846001600160a01b03166349c4fac88286600001516040516020016128179190616d10565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401612843929190616d7c565b600060405180830381865afa158015612860573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526128889190810190616a3b565b606085015250608083015250949350505050565b60408051600480825260a0820190925260609160009190816020015b60608152602001906001900390816128b85790505090506040518060400160405280600481526020017f67726570000000000000000000000000000000000000000000000000000000008152508160008151811061291857612918616da1565b60200260200101819052506040518060400160405280600381526020017f2d726c00000000000000000000000000000000000000000000000000000000008152508160018151811061296c5761296c616da1565b6020026020010181905250846040516020016129889190616dd0565b604051602081830303815290604052816002815181106129aa576129aa616da1565b6020026020010181905250826040516020016129c69190616e3c565b604051602081830303815290604052816003815181106129e8576129e8616da1565b602002602001018190525060006129fe8261392b565b602080820151604080518082018252600581527f2e6a736f6e0000000000000000000000000000000000000000000000000000008185019081528251808401845260008082529086015282518084019093529051825292810192909252919250612a8f9060408051808201825260008082526020918201528151808301909252845182528085019082015290614585565b612aa45785604051602001611d239190616e7d565b9695505050505050565b60a0810151604080518082018252600080825260209182015281518083019092528251808352928101910152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9015612afe565b511590565b612c7257826020015115612bba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605860248201527f54686520606c6963656e73655479706560206f7074696f6e2063616e6e6f742060448201527f62652075736564207768656e207468652060736b6970566572696679536f757260648201527f6365436f646560206f7074696f6e206973206074727565600000000000000000608482015260a401611d63565b8260c0015115612c72576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605360248201527f54686520606c6963656e73655479706560206f7074696f6e2063616e6e6f742060448201527f62652075736564207768656e207468652060736b69704c6963656e736554797060648201527f6560206f7074696f6e2069732060747275656000000000000000000000000000608482015260a401611d63565b6040805160ff8082526120008201909252600091816020015b6060815260200190600190039081612c8b57905050905060006040518060400160405280600381526020017f6e70780000000000000000000000000000000000000000000000000000000000815250828280612ce690616f3d565b935060ff1681518110612cfb57612cfb616da1565b60200260200101819052506040518060400160405280600d81526020017f302e302e312d616c7068612e3700000000000000000000000000000000000000815250604051602001612d4c9190616f5c565b604051602081830303815290604052828280612d6790616f3d565b935060ff1681518110612d7c57612d7c616da1565b60200260200101819052506040518060400160405280600681526020017f6465706c6f790000000000000000000000000000000000000000000000000000815250828280612dc990616f3d565b935060ff1681518110612dde57612dde616da1565b60200260200101819052506040518060400160405280600e81526020017f2d2d636f6e74726163744e616d65000000000000000000000000000000000000815250828280612e2b90616f3d565b935060ff1681518110612e4057612e40616da1565b60200260200101819052508760200151828280612e5c90616f3d565b935060ff1681518110612e7157612e71616da1565b60200260200101819052506040518060400160405280600e81526020017f2d2d636f6e747261637450617468000000000000000000000000000000000000815250828280612ebe90616f3d565b935060ff1681518110612ed357612ed3616da1565b602090810291909101015287518282612eeb81616f3d565b935060ff1681518110612f0057612f00616da1565b60200260200101819052506040518060400160405280600981526020017f2d2d636861696e49640000000000000000000000000000000000000000000000815250828280612f4d90616f3d565b935060ff1681518110612f6257612f62616da1565b6020026020010181905250612f76466145e6565b8282612f8181616f3d565b935060ff1681518110612f9657612f96616da1565b60200260200101819052506040518060400160405280600f81526020017f2d2d6275696c64496e666f46696c650000000000000000000000000000000000815250828280612fe390616f3d565b935060ff1681518110612ff857612ff8616da1565b60200260200101819052508682828061301090616f3d565b935060ff168151811061302557613025616da1565b602090810291909101015285511561314c5760408051808201909152601581527f2d2d636f6e7374727563746f7242797465636f646500000000000000000000006020820152828261307681616f3d565b935060ff168151811061308b5761308b616da1565b60209081029190910101526040517f71aad10d0000000000000000000000000000000000000000000000000000000081526001600160a01b038416906371aad10d906130db9089906004016168d6565b600060405180830381865afa1580156130f8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131209190810190616a3b565b828261312b81616f3d565b935060ff168151811061314057613140616da1565b60200260200101819052505b84602001511561321c5760408051808201909152601281527f2d2d766572696679536f75726365436f646500000000000000000000000000006020820152828261319581616f3d565b935060ff16815181106131aa576131aa616da1565b60200260200101819052506040518060400160405280600581526020017f66616c73650000000000000000000000000000000000000000000000000000008152508282806131f790616f3d565b935060ff168151811061320c5761320c616da1565b60200260200101819052506133e3565b613254612af98660a0015160408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b6132e75760408051808201909152600d81527f2d2d6c6963656e736554797065000000000000000000000000000000000000006020820152828261329781616f3d565b935060ff16815181106132ac576132ac616da1565b60200260200101819052508460a001516040516020016132cc9190616dd0565b6040516020818303038152906040528282806131f790616f3d565b8460c0015115801561332a57506040808901518151808301835260008082526020918201528251808401909352815183529081019082015261332890511590565b155b156133e35760408051808201909152600d81527f2d2d6c6963656e736554797065000000000000000000000000000000000000006020820152828261336e81616f3d565b935060ff168151811061338357613383616da1565b602002602001018190525061339788614686565b6040516020016133a79190616dd0565b6040516020818303038152906040528282806133c290616f3d565b935060ff16815181106133d7576133d7616da1565b60200260200101819052505b6040808601518151808301835260008082526020918201528251808401909352815183529081019082015261341790511590565b6134ac5760408051808201909152600b81527f2d2d72656c6179657249640000000000000000000000000000000000000000006020820152828261345a81616f3d565b935060ff168151811061346f5761346f616da1565b6020026020010181905250846040015182828061348b90616f3d565b935060ff16815181106134a0576134a0616da1565b60200260200101819052505b6060850151156135cd5760408051808201909152600681527f2d2d73616c740000000000000000000000000000000000000000000000000000602082015282826134f581616f3d565b935060ff168151811061350a5761350a616da1565b602090810291909101015260608501516040517fb11a19e800000000000000000000000000000000000000000000000000000000815260048101919091526001600160a01b0384169063b11a19e890602401600060405180830381865afa158015613579573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526135a19190810190616a3b565b82826135ac81616f3d565b935060ff16815181106135c1576135c1616da1565b60200260200101819052505b60e085015151156136745760408051808201909152600a81527f2d2d6761734c696d6974000000000000000000000000000000000000000000006020820152828261361781616f3d565b935060ff168151811061362c5761362c616da1565b60200260200101819052506136488560e00151600001516145e6565b828261365381616f3d565b935060ff168151811061366857613668616da1565b60200260200101819052505b60e0850151602001511561371e5760408051808201909152600a81527f2d2d676173507269636500000000000000000000000000000000000000000000602082015282826136c181616f3d565b935060ff16815181106136d6576136d6616da1565b60200260200101819052506136f28560e00151602001516145e6565b82826136fd81616f3d565b935060ff168151811061371257613712616da1565b60200260200101819052505b60e085015160400151156137c85760408051808201909152600e81527f2d2d6d61784665655065724761730000000000000000000000000000000000006020820152828261376b81616f3d565b935060ff168151811061378057613780616da1565b602002602001018190525061379c8560e00151604001516145e6565b82826137a781616f3d565b935060ff16815181106137bc576137bc616da1565b60200260200101819052505b60e085015160600151156138725760408051808201909152601681527f2d2d6d61785072696f72697479466565506572476173000000000000000000006020820152828261381581616f3d565b935060ff168151811061382a5761382a616da1565b60200260200101819052506138468560e00151606001516145e6565b828261385181616f3d565b935060ff168151811061386657613866616da1565b60200260200101819052505b60008160ff1667ffffffffffffffff8111156138905761389061671f565b6040519080825280602002602001820160405280156138c357816020015b60608152602001906001900390816138ae5790505b50905060005b8260ff168160ff16101561391c57838160ff16815181106138ec576138ec616da1565b6020026020010151828260ff168151811061390957613909616da1565b60209081029190910101526001016138c9565b5093505050505b949350505050565b6139526040518060600160405280600060030b815260200160608152602001606081525090565b60408051808201825260048082527f6261736800000000000000000000000000000000000000000000000000000000602083015291517fd145736c000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d92600091849163d145736c916139d891869101616fc7565b600060405180830381865afa1580156139f5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613a1d9190810190616a3b565b90506000613a2b8683615175565b90506000846001600160a01b031663f45c1ce7836040518263ffffffff1660e01b8152600401613a5b91906164ab565b6000604051808303816000875af1158015613a7a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613aa2919081019061700e565b805190915060030b15801590613abb5750602081015151155b8015613aca5750604081015151155b15612aa45781600081518110613ae257613ae2616da1565b6020026020010151604051602001611d2391906170c4565b60606000613b2f8560408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600080825260209182015281518083019092528651825280870190820152909150613b669082905b906152ca565b15613cc3576000613be382613bdd84613bd7613ba98a60408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b6040805180820182526000808252602091820152815180830190925282518252918201519181019190915290565b906152f1565b90615353565b604080518082018252600181527f0a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152909150613c479082906152ca565b15613cb157604080518082018252600181527f0a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152613cae905b82906153d8565b90505b613cba816153fe565b92505050611b36565b8215613cdc578484604051602001611d239291906172b0565b5050604080516020810190915260008152611b36565b509392505050565b6000808251602084016000f09392505050565b61231f82826001613e1a565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fad3cb1cc00000000000000000000000000000000000000000000000000000000179052905160609160009182916001600160a01b03861691613d8e9190617357565b6000604051808303816000865af19150503d8060008114613dcb576040519150601f19603f3d011682016040523d82523d6000602084013e613dd0565b606091505b50915091508115613def57808060200190518101906139239190616a3b565b505060408051602081019091526000815292915050565b6000613e128383615467565b159392505050565b8160a0015115613e2957505050565b6000613e36848484615542565b90506000613e438261392b565b602081015181519192509060030b158015613edf5750604080518082018252600781527f535543434553530000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152613edf90604080518082018252600080825260209182015281518083019092528451825280850190820152613b60565b15613eec57505050505050565b60408201515115613f0c578160400151604051602001611d239190617373565b80604051602001611d2391906173d1565b60606000613f528360408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600481527f2e736f6c0000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152909150613fb7905b8290614585565b1561402657604080518082018252600481527f2e736f6c0000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152611b3690614021908390615add565b6153fe565b604080518082018252600181527f3a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614088905b8290615b67565b60010361415557604080518082018252600181527f3a00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526140ee90613ca7565b50604080518082018252600181527f3a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152611b3690614021905b83906153d8565b604080518082018252600581527f2e6a736f6e000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526141b490613fb0565b156142eb57604080518082018252600181527f2f0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082018190528451808601909552925184528301529061421c908390615c01565b90506000816001835161422f919061743c565b8151811061423f5761423f616da1565b602002602001015190506142e26140216142b56040518060400160405280600581526020017f2e6a736f6e00000000000000000000000000000000000000000000000000000081525060408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b60408051808201825260008082526020918201528151808301909252855182528086019082015290615add565b95945050505050565b82604051602001611d23919061744f565b50919050565b606060006143378360408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600481527f2e736f6c000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015290915061439990613fb0565b156143a757611b36816153fe565b604080518082018252600181527f3a000000000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261440690614081565b60010361447057604080518082018252600181527f3a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152611b36906140219061414e565b604080518082018252600581527f2e6a736f6e000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526144cf90613fb0565b156142eb57604080518082018252600181527f2f00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820181905284518086019095529251845283015290614537908390615c01565b9050600181511115614573578060028251614552919061743c565b8151811061456257614562616da1565b602002602001015192505050919050565b5082604051602001611d23919061744f565b80518251600091111561459a57506000611a10565b815183516020850151600092916145b09161752d565b6145ba919061743c565b9050826020015181036145d1576001915050611a10565b82516020840151819020912014905092915050565b606060006145f383615ca6565b600101905060008167ffffffffffffffff8111156146135761461361671f565b6040519080825280601f01601f19166020018201604052801561463d576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a850494508461464757509392505050565b604081810151815180830183526000808252602091820181905283518085018552835181529282018383015283518085018552600a81527f554e4c4943454e5345440000000000000000000000000000000000000000000081840190815285518087018752838152840192909252845180860190955251845290830152606091614712905b8290613e06565b1561475257505060408051808201909152600481527f4e6f6e65000000000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600981527f556e6c6963656e73650000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526147b19061470b565b156147f157505060408051808201909152600981527f556e6c6963656e736500000000000000000000000000000000000000000000006020820152919050565b604080518082018252600381527f4d49540000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526148509061470b565b1561489057505060408051808201909152600381527f4d495400000000000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f47504c2d322e302d6f6e6c790000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526148ef9061470b565b806149545750604080518082018252601081527f47504c2d322e302d6f722d6c6174657200000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526149549061470b565b1561499457505060408051808201909152600981527f474e552047504c763200000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f47504c2d332e302d6f6e6c790000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526149f39061470b565b80614a585750604080518082018252601081527f47504c2d332e302d6f722d6c617465720000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614a589061470b565b15614a9857505060408051808201909152600981527f474e552047504c763300000000000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4c47504c2d322e312d6f6e6c790000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614af79061470b565b80614b5c5750604080518082018252601181527f4c47504c2d322e312d6f722d6c6174657200000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614b5c9061470b565b15614b9c57505060408051808201909152600c81527f474e55204c47504c76322e3100000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4c47504c2d332e302d6f6e6c790000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614bfb9061470b565b80614c605750604080518082018252601181527f4c47504c2d332e302d6f722d6c6174657200000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614c609061470b565b15614ca057505060408051808201909152600a81527f474e55204c47504c7633000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f4253442d322d436c61757365000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614cff9061470b565b15614d3f57505060408051808201909152600c81527f4253442d322d436c6175736500000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f4253442d332d436c61757365000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614d9e9061470b565b15614dde57505060408051808201909152600c81527f4253442d332d436c6175736500000000000000000000000000000000000000006020820152919050565b604080518082018252600781527f4d504c2d322e300000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614e3d9061470b565b15614e7d57505060408051808201909152600781527f4d504c2d322e30000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600781527f4f534c2d332e300000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614edc9061470b565b15614f1c57505060408051808201909152600781527f4f534c2d332e30000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600a81527f4170616368652d322e300000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614f7b9061470b565b15614fbb57505060408051808201909152600a81527f4170616368652d322e30000000000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4147504c2d332e302d6f6e6c79000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261501a9061470b565b8061507f5750604080518082018252601181527f4147504c2d332e302d6f722d6c617465720000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261507f9061470b565b156150bf57505060408051808201909152600a81527f474e55204147504c7633000000000000000000000000000000000000000000006020820152919050565b604080518082018252600881527f4255534c2d312e310000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261511e9061470b565b1561515e57505060408051808201909152600781527f42534c20312e31000000000000000000000000000000000000000000000000006020820152919050565b60408084015184519151611d239290602001617540565b60608060005b8451811015615200578185828151811061519757615197616da1565b60200260200101516040516020016151b09291906168e9565b6040516020818303038152906040529150600185516151cf919061743c565b81146151f857816040516020016151e691906176a9565b60405160208183030381529060405291505b60010161517b565b5060408051600380825260808201909252600091816020015b6060815260200190600190039081615219579050509050838160008151811061524457615244616da1565b60200260200101819052506040518060400160405280600281526020017f2d630000000000000000000000000000000000000000000000000000000000008152508160018151811061529857615298616da1565b602002602001018190525081816002815181106152b7576152b7616da1565b6020908102919091010152949350505050565b60208083015183518351928401516000936152e89291849190615d88565b14159392505050565b604080518082019091526000808252602082015260006153238460000151856020015185600001518660200151615e99565b9050836020015181615335919061743c565b8451859061534490839061743c565b90525060208401525090919050565b6040805180820190915260008082526020820152815183511015615378575081611a10565b602080830151908401516001911461539f5750815160208481015190840151829020919020145b80156153d0578251845185906153b690839061743c565b90525082516020850180516153cc90839061752d565b9052505b509192915050565b60408051808201909152600080825260208201526153f7838383615fb9565b5092915050565b60606000826000015167ffffffffffffffff81111561541f5761541f61671f565b6040519080825280601f01601f191660200182016040528015615449576020820181803683370190505b50905060006020820190506153f78185602001518660000151616064565b815181516000919081111561547a575081515b6020808501519084015160005b8381101561553357825182518082146155035760001960208710156154e2576001846154b489602061743c565b6154be919061752d565b6154c99060086176ea565b6154d49060026177e8565b6154de919061743c565b1990505b8181168382168181039114615500579750611a109650505050505050565b50505b61550e60208661752d565b945061551b60208561752d565b9350505060208161552c919061752d565b9050615487565b5084518651612aa491906177f4565b6060600061554e612323565b6040805160ff808252612000820190925291925060009190816020015b606081526020019060019003908161556b57905050905060006040518060400160405280600381526020017f6e707800000000000000000000000000000000000000000000000000000000008152508282806155c690616f3d565b935060ff16815181106155db576155db616da1565b60200260200101819052506040518060400160405280600781526020017f5e312e33322e330000000000000000000000000000000000000000000000000081525060405160200161562c9190617814565b60405160208183030381529060405282828061564790616f3d565b935060ff168151811061565c5761565c616da1565b60200260200101819052506040518060400160405280600881526020017f76616c69646174650000000000000000000000000000000000000000000000008152508282806156a990616f3d565b935060ff16815181106156be576156be616da1565b6020026020010181905250826040516020016156da9190616e3c565b6040516020818303038152906040528282806156f590616f3d565b935060ff168151811061570a5761570a616da1565b60200260200101819052506040518060400160405280600a81526020017f2d2d636f6e74726163740000000000000000000000000000000000000000000081525082828061575790616f3d565b935060ff168151811061576c5761576c616da1565b602002602001018190525061578187846160de565b828261578c81616f3d565b935060ff16815181106157a1576157a1616da1565b60209081029190910101528551511561584d5760408051808201909152600b81527f2d2d7265666572656e6365000000000000000000000000000000000000000000602082015282826157f381616f3d565b935060ff168151811061580857615808616da1565b60200260200101819052506158218660000151846160de565b828261582c81616f3d565b935060ff168151811061584157615841616da1565b60200260200101819052505b8560800151156158bb5760408051808201909152601881527f2d2d756e73616665536b697053746f72616765436865636b00000000000000006020820152828261589681616f3d565b935060ff16815181106158ab576158ab616da1565b6020026020010181905250615921565b84156159215760408051808201909152601281527f2d2d726571756972655265666572656e636500000000000000000000000000006020820152828261590081616f3d565b935060ff168151811061591557615915616da1565b60200260200101819052505b604086015151156159bd5760408051808201909152600d81527f2d2d756e73616665416c6c6f77000000000000000000000000000000000000006020820152828261596b81616f3d565b935060ff168151811061598057615980616da1565b6020026020010181905250856040015182828061599c90616f3d565b935060ff16815181106159b1576159b1616da1565b60200260200101819052505b856060015115615a275760408051808201909152601481527f2d2d756e73616665416c6c6f7752656e616d657300000000000000000000000060208201528282615a0681616f3d565b935060ff1681518110615a1b57615a1b616da1565b60200260200101819052505b60008160ff1667ffffffffffffffff811115615a4557615a4561671f565b604051908082528060200260200182016040528015615a7857816020015b6060815260200190600190039081615a635790505b50905060005b8260ff168160ff161015615ad157838160ff1681518110615aa157615aa1616da1565b6020026020010151828260ff1681518110615abe57615abe616da1565b6020908102919091010152600101615a7e565b50979650505050505050565b6040805180820190915260008082526020820152815183511015615b02575081611a10565b81518351602085015160009291615b189161752d565b615b22919061743c565b60208401519091506001908214615b43575082516020840151819020908220145b8015615b5e57835185518690615b5a90839061743c565b9052505b50929392505050565b6000808260000151615b8b8560000151866020015186600001518760200151615e99565b615b95919061752d565b90505b83516020850151615ba9919061752d565b81116153f75781615bb981617859565b9250508260000151615bf0856020015183615bd4919061743c565b8651615be0919061743c565b8386600001518760200151615e99565b615bfa919061752d565b9050615b98565b60606000615c0f8484615b67565b615c1a90600161752d565b67ffffffffffffffff811115615c3257615c3261671f565b604051908082528060200260200182016040528015615c6557816020015b6060815260200190600190039081615c505790505b50905060005b8151811015613cf257615c8161402186866153d8565b828281518110615c9357615c93616da1565b6020908102919091010152600101615c6b565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310615cef577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310615d1b576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310615d3957662386f26fc10000830492506010015b6305f5e1008310615d51576305f5e100830492506008015b6127108310615d6557612710830492506004015b60648310615d77576064830492506002015b600a8310611a105760010192915050565b600080858411615e8f5760208411615e3b5760008415615dd3576001615daf86602061743c565b615dba9060086176ea565b615dc59060026177e8565b615dcf919061743c565b1990505b8351811685615de2898961752d565b615dec919061743c565b805190935082165b818114615e2657878411615e0e5787945050505050613923565b83615e1881617873565b945050828451169050615df4565b615e30878561752d565b945050505050613923565b838320615e48858861743c565b615e52908761752d565b91505b858210615e8d57848220808203615e7a57615e70868461752d565b9350505050613923565b615e8560018461743c565b925050615e55565b505b5092949350505050565b60008381868511615fa45760208511615f535760008515615ee5576001615ec187602061743c565b615ecc9060086176ea565b615ed79060026177e8565b615ee1919061743c565b1990505b84518116600087615ef68b8b61752d565b615f00919061743c565b855190915083165b828114615f4557818610615f2d57615f208b8b61752d565b9650505050505050613923565b85615f3781617859565b965050838651169050615f08565b859650505050505050613923565b508383206000905b615f65868961743c565b8211615fa257858320808203615f815783945050505050613923565b615f8c60018561752d565b9350508180615f9a90617859565b925050615f5b565b505b615fae878761752d565b979650505050505050565b60408051808201909152600080825260208201526000615feb8560000151866020015186600001518760200151615e99565b602080870180519186019190915251909150616007908261743c565b83528451602086015161601a919061752d565b8103616029576000855261605b565b83518351616037919061752d565b8551869061604690839061743c565b9052508351616055908261752d565b60208601525b50909392505050565b6020811061609c578151835261607b60208461752d565b925061608860208361752d565b915061609560208261743c565b9050616064565b60001981156160cb5760016160b283602061743c565b6160be906101006177e8565b6160c8919061743c565b90505b9151835183169219169190911790915250565b606060006160ec84846123f6565b80516020808301516040519394506161069390910161788a565b60405160208183030381529060405291505092915050565b610c9f806178e383390190565b6113e28061858283390190565b61182a8061996483390190565b610d5e8061b18e83390190565b6040518060e0016040528060608152602001606081526020016060815260200160001515815260200160001515815260200160001515815260200161619561619a565b905290565b604051806101000160405280600015158152602001600015158152602001606081526020016000801916815260200160608152602001606081526020016000151581526020016161956040518060800160405280600081526020016000815260200160008152602001600081525090565b602080825282518282018190526000918401906040840190835b8181101561624c5783516001600160a01b0316835260209384019390920191600101616225565b509095945050505050565b60005b8381101561627257818101518382015260200161625a565b50506000910152565b60008151808452616293816020860160208601616257565b601f01601f19169290920160200192915050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b828110156163a3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452815180516001600160a01b03168652602090810151604082880181905281519088018190529101906060600582901b88018101919088019060005b81811015616389577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08a850301835261637384865161627b565b6020958601959094509290920191600101616339565b5091975050506020948501949290920191506001016162cf565b50929695505050505050565b600081518084526020840193506020830160005b828110156164035781517fffffffff00000000000000000000000000000000000000000000000000000000168652602095860195909101906001016163c3565b5093949350505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b828110156163a3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08786030184528151805160408752616479604088018261627b565b905060208201519150868103602088015261649481836163af565b965050506020938401939190910190600101616435565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b828110156163a3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc087860301845261650d85835161627b565b945060209384019391909101906001016164d3565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b828110156163a3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc087860301845281516001600160a01b03815116865260208101519050604060208701526165a360408701826163af565b955050602093840193919091019060010161654a565b6000602082840312156165cb57600080fd5b81518015158114611b3657600080fd5b600181811c908216806165ef57607f821691505b6020821081036142fc577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006020828403121561663a57600080fd5b81516001600160a01b0381168114611b3657600080fd5b606081526000616664606083018661627b565b602083019490945250901515604090910152919050565b6001600160a01b03841681528260208201526060604082015260006142e2606083018461627b565b6001600160a01b038616815284602082015260a0604082015260006166cb60a083018661627b565b6060830194909452509015156080909101529392505050565b828152604060208201526000613923604083018461627b565b6001600160a01b0383168152604060208201526000613923604083018461627b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff811182821017156167715761677161671f565b60405290565b60008067ffffffffffffffff8411156167925761679261671f565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff821117156167c1576167c161671f565b6040528381529050808284018510156167d957600080fd5b613cf2846020830185616257565b600082601f8301126167f857600080fd5b611b3683835160208501616777565b60006020828403121561681957600080fd5b815167ffffffffffffffff81111561683057600080fd5b611a0c848285016167e7565b60006020828403121561684e57600080fd5b5051919050565b7f4661696c656420746f206465706c6f7920636f6e74726163742000000000000081526000835161688d81601a850160208801616257565b7f3a20000000000000000000000000000000000000000000000000000000000000601a9184019182015283516168ca81601c840160208801616257565b01601c01949350505050565b602081526000611b36602083018461627b565b600083516168fb818460208801616257565b83519083019061690f818360208801616257565b01949350505050565b7f4661696c656420746f206465706c6f7920636f6e74726163742000000000000081526000835161695081601a850160208801616257565b7f207573696e6720636f6e7374727563746f722064617461202200000000000000601a91840191820152835161698d816033840160208801616257565b7f220000000000000000000000000000000000000000000000000000000000000060339290910191820152603401949350505050565b6001600160a01b03841681526001600160a01b03831660208201526060604082015260006142e2606083018461627b565b60408152600b60408201527f464f554e4452595f4f55540000000000000000000000000000000000000000006060820152608060208201526000611b36608083018461627b565b600060208284031215616a4d57600080fd5b815167ffffffffffffffff811115616a6457600080fd5b8201601f81018413616a7557600080fd5b611a0c84825160208401616777565b60008551616a96818460208a01616257565b7f2f000000000000000000000000000000000000000000000000000000000000009083019081528551616ad0816001840160208a01616257565b7f2f00000000000000000000000000000000000000000000000000000000000000600192909101918201528451616b0e816002840160208901616257565b6001818301019150507f2f0000000000000000000000000000000000000000000000000000000000000060018201528351616b50816002840160208801616257565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600292909101918201526007019695505050505050565b604081526000616b9b604083018461627b565b8281036020840152600481527f2e6173740000000000000000000000000000000000000000000000000000000060208201526040810191505092915050565b7f436f756c64206e6f742066696e642041535420696e2061727469666163742000815260008251616c1281601f850160208701616257565b7f2e205365742060617374203d20747275656020696e20666f756e6472792e746f601f9390910192830152507f6d6c000000000000000000000000000000000000000000000000000000000000603f820152604101919050565b604081526000616c7f604083018461627b565b8281036020840152601181527f2e6173742e6162736f6c7574655061746800000000000000000000000000000060208201526040810191505092915050565b604081526000616cd1604083018461627b565b8281036020840152600c81527f2e6173742e6c6963656e7365000000000000000000000000000000000000000060208201526040810191505092915050565b7f2e6d657461646174612e736f75726365732e5b27000000000000000000000000815260008251616d48816014850160208701616257565b7f275d2e6b656363616b32353600000000000000000000000000000000000000006014939091019283015250602001919050565b604081526000616d8f604083018561627b565b8281036020840152611b32818561627b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f2200000000000000000000000000000000000000000000000000000000000000815260008251616e08816001850160208701616257565b7f22000000000000000000000000000000000000000000000000000000000000006001939091019283015250600201919050565b60008251616e4e818460208701616257565b7f2f6275696c642d696e666f000000000000000000000000000000000000000000920191825250600b01919050565b7f436f756c64206e6f742066696e64206275696c642d696e666f2066696c65207781527f697468206d61746368696e6720736f7572636520636f6465206861736820666f60208201527f7220636f6e747261637420000000000000000000000000000000000000000000604082015260008251616f0181604b850160208701616257565b91909101604b0192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600060ff821660ff8103616f5357616f53616f0e565b60010192915050565b7f406f70656e7a657070656c696e2f646566656e6465722d6465706c6f792d636c81527f69656e742d636c69400000000000000000000000000000000000000000000000602082015260008251616fba816029850160208701616257565b9190910160290192915050565b60408152601660408201527f4f50454e5a455050454c494e5f424153485f50415448000000000000000000006060820152608060208201526000611b36608083018461627b565b60006020828403121561702057600080fd5b815167ffffffffffffffff81111561703757600080fd5b82016060818503121561704957600080fd5b61705161674e565b81518060030b811461706257600080fd5b8152602082015167ffffffffffffffff81111561707e57600080fd5b61708a868285016167e7565b602083015250604082015167ffffffffffffffff8111156170aa57600080fd5b6170b6868285016167e7565b604083015250949350505050565b7f4661696c656420746f2072756e206261736820636f6d6d616e6420776974682081527f2200000000000000000000000000000000000000000000000000000000000000602082015260008251617122816021850160208701616257565b7f222e20496620796f7520617265207573696e672057696e646f77732c2073657460219390910192830152507f20746865204f50454e5a455050454c494e5f424153485f5041544820656e766960418201527f726f6e6d656e74207661726961626c6520746f207468652066756c6c7920717560618201527f616c69666965642070617468206f66207468652062617368206578656375746160818201527f626c652e20466f72206578616d706c652c20696620796f75206172652075736960a18201527f6e672047697420666f722057696e646f77732c206164642074686520666f6c6c60c18201527f6f77696e67206c696e6520696e20746865202e656e762066696c65206f66207960e18201527f6f75722070726f6a65637420287573696e6720666f727761726420736c6173686101018201527f6573293a0a4f50454e5a455050454c494e5f424153485f504154483d22433a2f6101218201527f50726f6772616d2046696c65732f4769742f62696e2f6261736822000000000061014182015261015c01919050565b7f4661696c656420746f2066696e64206c696e652077697468207072656669782081527f270000000000000000000000000000000000000000000000000000000000000060208201526000835161730e816021850160208801616257565b7f2720696e206f75747075743a2000000000000000000000000000000000000000602191840191820152835161734b81602e840160208801616257565b01602e01949350505050565b60008251617369818460208701616257565b9190910192915050565b7f4661696c656420746f2072756e2075706772616465207361666574792076616c81527f69646174696f6e3a200000000000000000000000000000000000000000000000602082015260008251616fba816029850160208701616257565b7f55706772616465207361666574792076616c69646174696f6e206661696c656481527f3a0a00000000000000000000000000000000000000000000000000000000000060208201526000825161742f816022850160208701616257565b9190910160220192915050565b81810381811115611a1057611a10616f0e565b7f436f6e7472616374206e616d652000000000000000000000000000000000000081526000825161748781600e850160208701616257565b7f206d75737420626520696e2074686520666f726d6174204d79436f6e74726163600e9390910192830152507f742e736f6c3a4d79436f6e7472616374206f72204d79436f6e74726163742e73602e8201527f6f6c206f72206f75742f4d79436f6e74726163742e736f6c2f4d79436f6e7472604e8201527f6163742e6a736f6e000000000000000000000000000000000000000000000000606e820152607601919050565b80820180821115611a1057611a10616f0e565b7f53504458206c6963656e7365206964656e746966696572200000000000000000815260008351617578816018850160208801616257565b7f20696e200000000000000000000000000000000000000000000000000000000060189184019182015283516175b581601c840160208801616257565b7f20646f6573206e6f74206c6f6f6b206c696b65206120737570706f7274656420601c92909101918201527f6c6963656e736520666f7220626c6f636b206578706c6f726572207665726966603c8201527f69636174696f6e2e205573652074686520606c6963656e73655479706560206f605c8201527f7074696f6e20746f20737065636966792061206c6963656e736520747970652c607c8201527f206f7220736574207468652060736b69704c6963656e73655479706560206f70609c8201527f74696f6e20746f2060747275656020746f20736b69702e00000000000000000060bc82015260d301949350505050565b600082516176bb818460208701616257565b7f2000000000000000000000000000000000000000000000000000000000000000920191825250600101919050565b8082028115828204841417611a1057611a10616f0e565b6001815b600184111561773c5780850481111561772057617720616f0e565b600184161561772e57908102905b60019390931c928002617705565b935093915050565b60008261775357506001611a10565b8161776057506000611a10565b816001811461777657600281146177805761779c565b6001915050611a10565b60ff84111561779157617791616f0e565b50506001821b611a10565b5060208310610133831016604e8410600b84101617156177bf575081810a611a10565b6177cc6000198484617701565b80600019048211156177e0576177e0616f0e565b029392505050565b6000611b368383617744565b81810360008312801583831316838312821617156153f7576153f7616f0e565b7f406f70656e7a657070656c696e2f75706772616465732d636f7265400000000081526000825161784c81601c850160208701616257565b91909101601c0192915050565b6000600019820361786c5761786c616f0e565b5060010190565b60008161788257617882616f0e565b506000190190565b6000835161789c818460208801616257565b7f3a0000000000000000000000000000000000000000000000000000000000000090830190815283516178d6816001840160208801616257565b0160010194935050505056fe608060405234801561001057600080fd5b50604051610c9f380380610c9f83398101604081905261002f9161010d565b8181600361003d83826101ff565b50600461004a82826101ff565b50505050506102bd565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261007b57600080fd5b81516001600160401b0381111561009457610094610054565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100c2576100c2610054565b6040528181528382016020018510156100da57600080fd5b60005b828110156100f9576020818601810151838301820152016100dd565b506000918101602001919091529392505050565b6000806040838503121561012057600080fd5b82516001600160401b0381111561013657600080fd5b6101428582860161006a565b602085015190935090506001600160401b0381111561016057600080fd5b61016c8582860161006a565b9150509250929050565b600181811c9082168061018a57607f821691505b6020821081036101aa57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156101fa57806000526020600020601f840160051c810160208510156101d75750805b601f840160051c820191505b818110156101f757600081556001016101e3565b50505b505050565b81516001600160401b0381111561021857610218610054565b61022c816102268454610176565b846101b0565b6020601f82116001811461026057600083156102485750848201515b600019600385901b1c1916600184901b1784556101f7565b600084815260208120601f198516915b828110156102905787850151825560209485019460019092019101610270565b50848210156102ae5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b6109d3806102cc6000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c806340c10f191161007657806395d89b411161005b57806395d89b4114610183578063a9059cbb1461018b578063dd62ed3e1461019e57600080fd5b806340c10f191461013857806370a082311461014d57600080fd5b806318160ddd116100a757806318160ddd1461010457806323b872dd14610116578063313ce5671461012957600080fd5b806306fdde03146100c3578063095ea7b3146100e1575b600080fd5b6100cb6101e4565b6040516100d891906107bf565b60405180910390f35b6100f46100ef366004610854565b610276565b60405190151581526020016100d8565b6002545b6040519081526020016100d8565b6100f461012436600461087e565b610290565b604051601281526020016100d8565b61014b610146366004610854565b6102b4565b005b61010861015b3660046108bb565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6100cb6102c2565b6100f4610199366004610854565b6102d1565b6101086101ac3660046108dd565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101f390610910565b80601f016020809104026020016040519081016040528092919081815260200182805461021f90610910565b801561026c5780601f106102415761010080835404028352916020019161026c565b820191906000526020600020905b81548152906001019060200180831161024f57829003601f168201915b5050505050905090565b6000336102848185856102df565b60019150505b92915050565b60003361029e8582856102f1565b6102a98585856103c5565b506001949350505050565b6102be8282610470565b5050565b6060600480546101f390610910565b6000336102848185856103c5565b6102ec83838360016104cc565b505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146103bf57818110156103b0576040517ffb8f41b200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101829052604481018390526064015b60405180910390fd5b6103bf848484840360006104cc565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610415576040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff8216610465576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b6102ec838383610614565b73ffffffffffffffffffffffffffffffffffffffff82166104c0576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b6102be60008383610614565b73ffffffffffffffffffffffffffffffffffffffff841661051c576040517fe602df05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff831661056c576040517f94280d62000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020908152604080832093871683529290522082905580156103bf578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161060691815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff831661064c5780600260008282546106419190610963565b909155506106fe9050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902054818110156106d2576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260248101829052604481018390526064016103a7565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090209082900390555b73ffffffffffffffffffffffffffffffffffffffff821661072757600280548290039055610753565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090208054820190555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107b291815260200190565b60405180910390a3505050565b602081526000825180602084015260005b818110156107ed57602081860181015160408684010152016107d0565b5060006040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461084f57600080fd5b919050565b6000806040838503121561086757600080fd5b6108708361082b565b946020939093013593505050565b60008060006060848603121561089357600080fd5b61089c8461082b565b92506108aa6020850161082b565b929592945050506040919091013590565b6000602082840312156108cd57600080fd5b6108d68261082b565b9392505050565b600080604083850312156108f057600080fd5b6108f98361082b565b91506109076020840161082b565b90509250929050565b600181811c9082168061092457607f821691505b60208210810361095d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b8082018082111561028a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea26469706673582212207e804ca539d49155d2b6bc19268ce22f9f857027c75247d69fb0d56a089c93d464736f6c634300081a0033608060405234801561001057600080fd5b506040516113e23803806113e283398101604081905261002f916101d3565b60016000556002805460ff191690556001600160a01b038316158061005b57506001600160a01b038216155b156100795760405163d92e233d60e01b815260040160405180910390fd5b60028054610100600160a81b0319166101006001600160a01b038681169190910291909117909155600380546001600160a01b0319169184169190911790556100c3600082610122565b506100ee7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a82610122565b506101197f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e483610122565b50505050610216565b60008281526001602090815260408083206001600160a01b038516845290915281205460ff166101ad5760008381526001602081815260408084206001600160a01b0387168086529252808420805460ff19169093179092559051339286917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45060016101b1565b5060005b92915050565b80516001600160a01b03811681146101ce57600080fd5b919050565b6000806000606084860312156101e857600080fd5b6101f1846101b7565b92506101ff602085016101b7565b915061020d604085016101b7565b90509250925092565b6111bd806102256000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c80635c975abb116100b2578063a217fddf11610081578063d547741f11610066578063d547741f146102c2578063d9caed12146102d5578063e63ab1e9146102e857600080fd5b8063a217fddf146102a7578063c8a02362146102af57600080fd5b80635c975abb146102275780638456cb591461023257806385f438c11461023a57806391d148541461026157600080fd5b80632f2ff15d116100ee5780632f2ff15d146101d957806336568abe146101ec5780633f4ba83a146101ff5780635b1125911461020757600080fd5b806301ffc9a714610120578063116191b61461014857806321fc65f214610192578063248a9ca3146101a7575b600080fd5b61013361012e366004610ee3565b61030f565b60405190151581526020015b60405180910390f35b60025461016d90610100900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161013f565b6101a56101a0366004610f4e565b6103a8565b005b6101cb6101b5366004610feb565b6000908152600160208190526040909120015490565b60405190815260200161013f565b6101a56101e7366004611004565b61051d565b6101a56101fa366004611004565b610549565b6101a56105a7565b60035461016d9073ffffffffffffffffffffffffffffffffffffffff1681565b60025460ff16610133565b6101a56105dc565b6101cb7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e481565b61013361026f366004611004565b600091825260016020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b6101cb600081565b6101a56102bd366004610f4e565b61060e565b6101a56102d0366004611004565b610769565b6101a56102e3366004611030565b61078f565b6101cb7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806103a257507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6103b061085c565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e46103da8161089f565b6103e26108a9565b60025461040e9073ffffffffffffffffffffffffffffffffffffffff88811691610100900416866108e8565b6002546040517f5131ab5900000000000000000000000000000000000000000000000000000000815261010090910473ffffffffffffffffffffffffffffffffffffffff1690635131ab599061047090899089908990899089906004016110b6565b600060405180830381600087803b15801561048a57600080fd5b505af115801561049e573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e86868660405161050393929190611113565b60405180910390a3506105166001600055565b5050505050565b600082815260016020819052604090912001546105398161089f565b6105438383610975565b50505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610598576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105a28282610a40565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6105d18161089f565b6105d9610aff565b50565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6106068161089f565b6105d9610b7c565b61061661085c565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e46106408161089f565b6106486108a9565b6002546106749073ffffffffffffffffffffffffffffffffffffffff88811691610100900416866108e8565b6002546040517fb8969bd400000000000000000000000000000000000000000000000000000000815261010090910473ffffffffffffffffffffffffffffffffffffffff169063b8969bd4906106d690899089908990899089906004016110b6565b600060405180830381600087803b1580156106f057600080fd5b505af1158015610704573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c886868660405161050393929190611113565b600082815260016020819052604090912001546107858161089f565b6105438383610a40565b61079761085c565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e46107c18161089f565b6107c96108a9565b6107ea73ffffffffffffffffffffffffffffffffffffffff851684846108e8565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb8460405161084991815260200190565b60405180910390a3506105a26001600055565b600260005403610898576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b6105d98133610bd7565b60025460ff16156108e6576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526105a2908490610c68565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff16610a3857600083815260016020818152604080842073ffffffffffffffffffffffffffffffffffffffff8716808652925280842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169093179092559051339286917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45060016103a2565b5060006103a2565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff1615610a3857600083815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016103a2565b610b07610cfe565b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b610b846108a9565b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610b523390565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610c64576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602481018390526044015b60405180910390fd5b5050565b6000610c8a73ffffffffffffffffffffffffffffffffffffffff841683610d3a565b90508051600014158015610caf575080806020019051810190610cad9190611136565b155b156105a2576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602401610c5b565b60025460ff166108e6576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060610d4883836000610d4f565b9392505050565b606081471015610d8d576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610c5b565b6000808573ffffffffffffffffffffffffffffffffffffffff168486604051610db69190611158565b60006040518083038185875af1925050503d8060008114610df3576040519150601f19603f3d011682016040523d82523d6000602084013e610df8565b606091505b5091509150610e08868383610e12565b9695505050505050565b606082610e2757610e2282610ea1565b610d48565b8151158015610e4b575073ffffffffffffffffffffffffffffffffffffffff84163b155b15610e9a576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610c5b565b5080610d48565b805115610eb15780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060208284031215610ef557600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610d4857600080fd5b803573ffffffffffffffffffffffffffffffffffffffff81168114610f4957600080fd5b919050565b600080600080600060808688031215610f6657600080fd5b610f6f86610f25565b9450610f7d60208701610f25565b935060408601359250606086013567ffffffffffffffff811115610fa057600080fd5b8601601f81018813610fb157600080fd5b803567ffffffffffffffff811115610fc857600080fd5b886020828401011115610fda57600080fd5b959894975092955050506020019190565b600060208284031215610ffd57600080fd5b5035919050565b6000806040838503121561101757600080fd5b8235915061102760208401610f25565b90509250929050565b60008060006060848603121561104557600080fd5b61104e84610f25565b925061105c60208501610f25565b929592945050506040919091013590565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff8516602082015283604082015260806060820152600061110860808301848661106d565b979650505050505050565b83815260406020820152600061112d60408301848661106d565b95945050505050565b60006020828403121561114857600080fd5b81518015158114610d4857600080fd5b6000825160005b81811015611179576020818601810151858301520161115f565b50600092019182525091905056fea2646970667358221220f228501fb7798406cf58c84b1f7af446926eecd69943c0a6760dfd0c5550e2ff64736f6c634300081a003360c060405260001960045534801561001657600080fd5b5060405161182a38038061182a833981016040819052610035916101fb565b60016000819055805460ff19169055838383836001600160a01b038416158061006557506001600160a01b038316155b8061007757506001600160a01b038216155b156100955760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0384811660805283811660a052600380546001600160a01b0319169184169190911790556100cb60008261012f565b506100f67f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e48361012f565b506101217f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8261012f565b50505050505050505061024f565b60008281526002602090815260408083206001600160a01b038516845290915281205460ff166101d55760008381526002602090815260408083206001600160a01b03861684529091529020805460ff1916600117905561018d3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016101d9565b5060005b92915050565b80516001600160a01b03811681146101f657600080fd5b919050565b6000806000806080858703121561021157600080fd5b61021a856101df565b9350610228602086016101df565b9250610236604086016101df565b9150610244606086016101df565b905092959194509250565b60805160a05161155b6102cf6000396000818161021d0152818161049a015281816105dc015281816106a2015281816107a7015281816108c901528181610a7d01528181610bbf01528181610c850152610ddc0152600081816101d1015281816105a60152818161067301528181610b890152610c56015261155b6000f3fe608060405234801561001057600080fd5b50600436106101775760003560e01c80635c975abb116100d857806385f438c11161008c578063d547741f11610066578063d547741f1461037f578063d5abeb0114610392578063e63ab1e91461039b57600080fd5b806385f438c11461030a57806391d1485414610331578063a217fddf1461037757600080fd5b80636f8b44b0116100bd5780636f8b44b0146102dc578063743e0c9b146102ef5780638456cb591461030257600080fd5b80635c975abb146102be5780635e3e9fef146102c957600080fd5b8063248a9ca31161012f57806336568abe1161011457806336568abe146102835780633f4ba83a146102965780635b1125911461029e57600080fd5b8063248a9ca31461023f5780632f2ff15d1461027057600080fd5b8063106e629011610160578063106e6290146101b9578063116191b6146101cc57806321e093b11461021857600080fd5b806301ffc9a71461017c57806302d5c899146101a4575b600080fd5b61018f61018a36600461128d565b6103c2565b60405190151581526020015b60405180910390f35b6101b76101b23660046112ff565b61045b565b005b6101b76101c7366004611391565b610768565b6101f37f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161019b565b6101f37f000000000000000000000000000000000000000000000000000000000000000081565b61026261024d3660046113c4565b60009081526002602052604090206001015490565b60405190815260200161019b565b6101b761027e3660046113dd565b610985565b6101b76102913660046113dd565b6109b0565b6101b7610a09565b6003546101f39073ffffffffffffffffffffffffffffffffffffffff1681565b60015460ff1661018f565b6101b76102d73660046112ff565b610a3e565b6101b76102ea3660046113c4565b610d31565b6101b76102fd3660046113c4565b610d9f565b6101b7610e49565b6102627f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e481565b61018f61033f3660046113dd565b600091825260026020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b610262600081565b6101b761038d3660046113dd565b610e7b565b61026260045481565b6102627f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061045557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b610463610ea0565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e461048d81610ee3565b610495610eed565b6004547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610503573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105279190611409565b6105319087611422565b1115610569576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1e458bee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201879052604482018490527f00000000000000000000000000000000000000000000000000000000000000001690631e458bee90606401600060405180830381600087803b15801561062057600080fd5b505af1158015610634573d6000803e3d6000fd5b50506040517fb8969bd400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016925063b8969bd491506106d2907f0000000000000000000000000000000000000000000000000000000000000000908a908a908a908a906004016114a5565b600060405180830381600087803b1580156106ec57600080fd5b505af1158015610700573d6000803e3d6000fd5b505050508573ffffffffffffffffffffffffffffffffffffffff167fba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe86868660405161074e93929190611502565b60405180910390a2506107616001600055565b5050505050565b610770610ea0565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e461079a81610ee3565b6107a2610eed565b6004547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610810573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108349190611409565b61083e9085611422565b1115610876576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1e458bee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015260248201859052604482018490527f00000000000000000000000000000000000000000000000000000000000000001690631e458bee90606401600060405180830381600087803b15801561090d57600080fd5b505af1158015610921573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243648460405161096d91815260200190565b60405180910390a2506109806001600055565b505050565b6000828152600260205260409020600101546109a081610ee3565b6109aa8383610f2c565b50505050565b73ffffffffffffffffffffffffffffffffffffffff811633146109ff576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610980828261102c565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610a3381610ee3565b610a3b6110eb565b50565b610a46610ea0565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e4610a7081610ee3565b610a78610eed565b6004547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0a9190611409565b610b149087611422565b1115610b4c576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1e458bee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201879052604482018490527f00000000000000000000000000000000000000000000000000000000000000001690631e458bee90606401600060405180830381600087803b158015610c0357600080fd5b505af1158015610c17573d6000803e3d6000fd5b50506040517f5131ab5900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169250635131ab599150610cb5907f0000000000000000000000000000000000000000000000000000000000000000908a908a908a908a906004016114a5565b600060405180830381600087803b158015610ccf57600080fd5b505af1158015610ce3573d6000803e3d6000fd5b505050508573ffffffffffffffffffffffffffffffffffffffff167f7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced86868660405161074e93929190611502565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e4610d5b81610ee3565b610d63610eed565b60048290556040518281527f7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c9060200160405180910390a15050565b610da7610eed565b6040517f79cc6790000000000000000000000000000000000000000000000000000000008152336004820152602481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906379cc679090604401600060405180830381600087803b158015610e3557600080fd5b505af1158015610761573d6000803e3d6000fd5b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610e7381610ee3565b610a3b611168565b600082815260026020526040902060010154610e9681610ee3565b6109aa838361102c565b600260005403610edc576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b610a3b81336111c1565b60015460ff1615610f2a576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600082815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff1661102457600083815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610fc23390565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610455565b506000610455565b600082815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff161561102457600083815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610455565b6110f3611251565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b611170610eed565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2583361113e565b600082815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1661124d576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526024810183905260440160405180910390fd5b5050565b60015460ff16610f2a576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006020828403121561129f57600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146112cf57600080fd5b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146112fa57600080fd5b919050565b60008060008060006080868803121561131757600080fd5b611320866112d6565b945060208601359350604086013567ffffffffffffffff81111561134357600080fd5b8601601f8101881361135457600080fd5b803567ffffffffffffffff81111561136b57600080fd5b88602082840101111561137d57600080fd5b959894975060200195606001359392505050565b6000806000606084860312156113a657600080fd5b6113af846112d6565b95602085013595506040909401359392505050565b6000602082840312156113d657600080fd5b5035919050565b600080604083850312156113f057600080fd5b82359150611400602084016112d6565b90509250929050565b60006020828403121561141b57600080fd5b5051919050565b80820180821115610455577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff851660208201528360408201526080606082015260006114f760808301848661145c565b979650505050505050565b83815260406020820152600061151c60408301848661145c565b9594505050505056fea2646970667358221220c864e28878a70f2d629a9a8bcc8540adbc24308f0bdca4bb9f799c9b08a4b8fc64736f6c634300081a00336080604052348015600f57600080fd5b506001600055610d3a806100246000396000f3fe6080604052600436106100635760003560e01c8063c513169111610040578063c5131691146100c1578063e04d4f97146100e1578063f05b6abf146100f457005b8063357fc5a21461006c5780636ed701691461008c5780638fcaa0b5146100a157005b3661006a57005b005b34801561007857600080fd5b5061006a6100873660046106c0565b610114565b34801561009857600080fd5b5061006a6101aa565b3480156100ad57600080fd5b5061006a6100bc3660046106fc565b6101df565b3480156100cd57600080fd5b5061006a6100dc3660046106c0565b61021e565b61006a6100ef366004610895565b6102f9565b34801561010057600080fd5b5061006a61010f366004610981565b61033d565b61011c610372565b61013e73ffffffffffffffffffffffffffffffffffffffff83163383866103b5565b604080513381526020810185905273ffffffffffffffffffffffffffffffffffffffff848116828401528316606082015290517f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af609181900360800190a16101a56001600055565b505050565b6040513381527fbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a09060200160405180910390a1565b7f0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa33838360405161021293929190610a6b565b60405180910390a15050565b610226610372565b6000610233600285610ad5565b90508060000361026f576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61029173ffffffffffffffffffffffffffffffffffffffff84163384846103b5565b604080513381526020810183905273ffffffffffffffffffffffffffffffffffffffff858116828401528416606082015290517f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af609181900360800190a1506101a56001600055565b7f1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa3334858585604051610330959493929190610b7e565b60405180910390a1505050565b7f74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146338484846040516103309493929190610c08565b6002600054036103ae576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017905261044a908590610450565b50505050565b600061047273ffffffffffffffffffffffffffffffffffffffff8416836104eb565b905080516000141580156104975750808060200190518101906104959190610ccb565b155b156101a5576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024015b60405180910390fd5b60606104f983836000610500565b9392505050565b60608147101561053e576040517fcd7860590000000000000000000000000000000000000000000000000000000081523060048201526024016104e2565b6000808573ffffffffffffffffffffffffffffffffffffffff1684866040516105679190610ce8565b60006040518083038185875af1925050503d80600081146105a4576040519150601f19603f3d011682016040523d82523d6000602084013e6105a9565b606091505b50915091506105b98683836105c3565b9695505050505050565b6060826105d8576105d382610652565b6104f9565b81511580156105fc575073ffffffffffffffffffffffffffffffffffffffff84163b155b1561064b576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016104e2565b50806104f9565b8051156106625780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b803573ffffffffffffffffffffffffffffffffffffffff811681146106bb57600080fd5b919050565b6000806000606084860312156106d557600080fd5b833592506106e560208501610697565b91506106f360408501610697565b90509250925092565b6000806020838503121561070f57600080fd5b823567ffffffffffffffff81111561072657600080fd5b8301601f8101851361073757600080fd5b803567ffffffffffffffff81111561074e57600080fd5b85602082840101111561076057600080fd5b6020919091019590945092505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156107e6576107e6610770565b604052919050565b600082601f8301126107ff57600080fd5b813567ffffffffffffffff81111561081957610819610770565b61084a60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160161079f565b81815284602083860101111561085f57600080fd5b816020850160208301376000918101602001919091529392505050565b801515811461069457600080fd5b80356106bb8161087c565b6000806000606084860312156108aa57600080fd5b833567ffffffffffffffff8111156108c157600080fd5b6108cd868287016107ee565b9350506020840135915060408401356108e58161087c565b809150509250925092565b600067ffffffffffffffff82111561090a5761090a610770565b5060051b60200190565b600082601f83011261092557600080fd5b8135610938610933826108f0565b61079f565b8082825260208201915060208360051b86010192508583111561095a57600080fd5b602085015b8381101561097757803583526020928301920161095f565b5095945050505050565b60008060006060848603121561099657600080fd5b833567ffffffffffffffff8111156109ad57600080fd5b8401601f810186136109be57600080fd5b80356109cc610933826108f0565b8082825260208201915060208360051b8501019250888311156109ee57600080fd5b602084015b83811015610a3057803567ffffffffffffffff811115610a1257600080fd5b610a218b6020838901016107ee565b845250602092830192016109f3565b509550505050602084013567ffffffffffffffff811115610a5057600080fd5b610a5c86828701610914565b9250506106f36040850161088a565b73ffffffffffffffffffffffffffffffffffffffff8416815260406020820152816040820152818360608301376000818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b600082610b0b577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60005b83811015610b2b578181015183820152602001610b13565b50506000910152565b60008151808452610b4c816020860160208601610b10565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b73ffffffffffffffffffffffffffffffffffffffff8616815284602082015260a060408201526000610bb360a0830186610b34565b6060830194909452509015156080909101529392505050565b600081518084526020840193506020830160005b82811015610bfe578151865260209586019590910190600101610be0565b5093949350505050565b60006080820173ffffffffffffffffffffffffffffffffffffffff871683526080602084015280865180835260a08501915060a08160051b86010192506020880160005b82811015610c9b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60878603018452610c86858351610b34565b94506020938401939190910190600101610c4c565b505050508281036040840152610cb18186610bcc565b915050610cc2606083018415159052565b95945050505050565b600060208284031215610cdd57600080fd5b81516104f98161087c565b60008251610cfa818460208701610b10565b919091019291505056fea2646970667358221220556072e1abafc3c4063b8cce832228b4f309b93726aaa6a6dfab20cb880c6d1864736f6c634300081a0033a2646970667358221220ab47a8df273b8e4c91a38c4269035bd99a4d4c25cf8bd7f63c607b59dcb202b964736f6c634300081a0033", +} + +// 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/pkg/contracts/prototypes/evm/gatewayevmupgradetest.sol/gatewayevmupgradetest.go b/v2/pkg/gatewayevmupgradetest.sol/gatewayevmupgradetest.go similarity index 55% rename from pkg/contracts/prototypes/evm/gatewayevmupgradetest.sol/gatewayevmupgradetest.go rename to v2/pkg/gatewayevmupgradetest.sol/gatewayevmupgradetest.go index b45457cd..cf426760 100644 --- a/pkg/contracts/prototypes/evm/gatewayevmupgradetest.sol/gatewayevmupgradetest.go +++ b/v2/pkg/gatewayevmupgradetest.sol/gatewayevmupgradetest.go @@ -31,8 +31,8 @@ var ( // GatewayEVMUpgradeTestMetaData contains all meta data concerning the GatewayEVMUpgradeTest contract. var GatewayEVMUpgradeTestMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ApprovalFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CustodyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DepositFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExecutionFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientERC20Amount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientETHAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"Call\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Executed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ExecutedV2\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ExecutedWithERC20\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Reverted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"RevertedWithERC20\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"call\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"custody\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"depositAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"depositAndCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"executeRevert\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"executeWithERC20\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tssAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_zetaToken\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"revertWithERC20\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_zetaConnector\",\"type\":\"address\"}],\"name\":\"setConnector\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_custody\",\"type\":\"address\"}],\"name\":\"setCustody\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tssAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zetaConnector\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zetaToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x60a06040523073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b81525034801561004657600080fd5b5060805160601c613f1861008160003960008181610ab501528181610b4401528181610eae01528181610f3d01526113800152613f186000f3fe6080604052600436106101355760003560e01c806357bec62f116100ab578063ae7a3a6f1161006f578063ae7a3a6f146103a2578063b8969bd4146103cb578063dda79b75146103f4578063f2fde38b1461041f578063f340fa0114610448578063f45346dc1461046457610135565b806357bec62f146102e15780635b1125911461030c578063715018a6146103375780638c6f037f1461034e5780638da5cb5b1461037757610135565b806335c018db116100fd57806335c018db146102035780633659cfe61461021f578063485cc955146102485780634f1ef286146102715780635131ab591461028d57806352d1902d146102b657610135565b806310188aef1461013a5780631b8b921d146101635780631cff79cd1461018c57806321e093b1146101bc57806329c59b5d146101e7575b600080fd5b34801561014657600080fd5b50610161600480360381019061015c9190612dfc565b61048d565b005b34801561016f57600080fd5b5061018a60048036038101906101859190612ef1565b6105c0565b005b6101a660048036038101906101a19190612ef1565b61062c565b6040516101b391906135a7565b60405180910390f35b3480156101c857600080fd5b506101d1610721565b6040516101de91906134c4565b60405180910390f35b61020160048036038101906101fc9190612ef1565b610747565b005b61021d60048036038101906102189190612ef1565b6108c1565b005b34801561022b57600080fd5b5061024660048036038101906102419190612dfc565b610ab3565b005b34801561025457600080fd5b5061026f600480360381019061026a9190612e29565b610c3c565b005b61028b60048036038101906102869190612f51565b610eac565b005b34801561029957600080fd5b506102b460048036038101906102af9190612e69565b610fe9565b005b3480156102c257600080fd5b506102cb61137c565b6040516102d89190613568565b60405180910390f35b3480156102ed57600080fd5b506102f6611435565b60405161030391906134c4565b60405180910390f35b34801561031857600080fd5b5061032161145b565b60405161032e91906134c4565b60405180910390f35b34801561034357600080fd5b5061034c611481565b005b34801561035a57600080fd5b5061037560048036038101906103709190613000565b611495565b005b34801561038357600080fd5b5061038c61154d565b60405161039991906134c4565b60405180910390f35b3480156103ae57600080fd5b506103c960048036038101906103c49190612dfc565b611577565b005b3480156103d757600080fd5b506103f260048036038101906103ed9190612e69565b6116aa565b005b34801561040057600080fd5b506104096118e0565b60405161041691906134c4565b60405180910390f35b34801561042b57600080fd5b5061044660048036038101906104419190612dfc565b611906565b005b610462600480360381019061045d9190612dfc565b61198a565b005b34801561047057600080fd5b5061048b60048036038101906104869190612fad565b611afe565b005b600073ffffffffffffffffffffffffffffffffffffffff1660fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610515576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561057c576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060fd60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3848460405161061f929190613583565b60405180910390a3505050565b606060fc60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106b5576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006106c2858585611bb0565b90508473ffffffffffffffffffffffffffffffffffffffff167f373df382b9c587826f3de13f16d67f8d99f28ee947fc0924c6ef2d6d2c7e854634868660405161070e9392919061385d565b60405180910390a2809150509392505050565b60fe60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000341415610782576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060fc60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16346040516107ca906134af565b60006040518083038185875af1925050503d8060008114610807576040519150601f19603f3d011682016040523d82523d6000602084013e61080c565b606091505b5050905060001515811515141561084f576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a434600087876040516108b394939291906137e1565b60405180910390a350505050565b60fc60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610948576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808473ffffffffffffffffffffffffffffffffffffffff163460405161096f906134af565b60006040518083038185875af1925050503d80600081146109ac576040519150601f19603f3d011682016040523d82523d6000602084013e6109b1565b606091505b5091509150816109ed576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff16638fcaa0b585856040518363ffffffff1660e01b8152600401610a28929190613583565b600060405180830381600087803b158015610a4257600080fd5b505af1158015610a56573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff167fd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c348686604051610aa49392919061385d565b60405180910390a25050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610b42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3990613626565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610b81611c67565b73ffffffffffffffffffffffffffffffffffffffff1614610bd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bce90613646565b60405180910390fd5b610be081611cbe565b610c3981600067ffffffffffffffff811115610bff57610bfe613a1e565b5b6040519080825280601f01601f191660200182016040528015610c315781602001600182028036833780820191505090505b506000611cc9565b50565b60008060019054906101000a900460ff16159050808015610c6d5750600160008054906101000a900460ff1660ff16105b80610c9a5750610c7c30611e46565b158015610c995750600160008054906101000a900460ff1660ff16145b5b610cd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd0906136c6565b60405180910390fd5b60016000806101000a81548160ff021916908360ff1602179055508015610d16576001600060016101000a81548160ff0219169083151502179055505b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610d7d5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15610db4576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610dbc611e69565b610dc4611ec2565b610dcc611f13565b8260fc60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160fe60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508015610ea75760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986001604051610e9e91906135c9565b60405180910390a15b505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610f3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3290613626565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610f7a611c67565b73ffffffffffffffffffffffffffffffffffffffff1614610fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc790613646565b60405180910390fd5b610fd982611cbe565b610fe582826001611cc9565b5050565b610ff1611f6c565b60fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561109d575060fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b156110d4576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600083141561110f576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111198585611fbc565b61114f576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff1663095ea7b385856040518363ffffffff1660e01b815260040161118a92919061353f565b602060405180830381600087803b1580156111a457600080fd5b505af11580156111b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111dc9190613088565b611212576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061121f858484611bb0565b905061122b8686611fbc565b611261576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161129c91906134c4565b60206040518083038186803b1580156112b457600080fd5b505afa1580156112c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ec91906130e2565b90506000811115611302576113018782612054565b5b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b73828787876040516113639392919061385d565b60405180910390a3505061137561223e565b5050505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161461140c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140390613686565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b905090565b60fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60fc60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611489612248565b61149360006122c6565b565b60008414156114d0576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6114db33848661238c565b8473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a48686868660405161153e94939291906137e1565b60405180910390a35050505050565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff1660fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115ff576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611666576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060fb60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6116b2611f6c565b60fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561175e575060fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15611795576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008314156117d0576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6117fb84848773ffffffffffffffffffffffffffffffffffffffff166125a69092919063ffffffff16565b8373ffffffffffffffffffffffffffffffffffffffff16638fcaa0b583836040518363ffffffff1660e01b8152600401611836929190613583565b600060405180830381600087803b15801561185057600080fd5b505af1158015611864573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda78585856040516118c99392919061385d565b60405180910390a36118d961223e565b5050505050565b60fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61190e612248565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561197e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197590613606565b60405180910390fd5b611987816122c6565b50565b60003414156119c5576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060fc60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1634604051611a0d906134af565b60006040518083038185875af1925050503d8060008114611a4a576040519150601f19603f3d011682016040523d82523d6000602084013e611a4f565b606091505b50509050600015158115151415611a92576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4346000604051611af2929190613821565b60405180910390a35050565b6000821415611b39576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611b4433828461238c565b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a48484604051611ba3929190613821565b60405180910390a3505050565b60606000808573ffffffffffffffffffffffffffffffffffffffff16348686604051611bdd92919061347f565b60006040518083038185875af1925050503d8060008114611c1a576040519150601f19603f3d011682016040523d82523d6000602084013e611c1f565b606091505b509150915081611c5b576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80925050509392505050565b6000611c957f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61262c565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611cc6612248565b50565b611cf57f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914360001b612636565b60000160009054906101000a900460ff1615611d1957611d1483612640565b611e41565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611d5f57600080fd5b505afa925050508015611d9057506040513d601f19601f82011682018060405250810190611d8d91906130b5565b60015b611dcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc6906136e6565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b8114611e34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2b906136a6565b60405180910390fd5b50611e408383836126f9565b5b505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16611eb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eaf90613766565b60405180910390fd5b611ec0612725565b565b600060019054906101000a900460ff16611f11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0890613766565b60405180910390fd5b565b600060019054906101000a900460ff16611f62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5990613766565b60405180910390fd5b611f6a612786565b565b600260c9541415611fb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa9906137a6565b60405180910390fd5b600260c981905550565b60008273ffffffffffffffffffffffffffffffffffffffff1663095ea7b38360006040518363ffffffff1660e01b8152600401611ffa929190613516565b602060405180830381600087803b15801561201457600080fd5b505af1158015612028573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061204c9190613088565b905092915050565b60fe60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156121ec578173ffffffffffffffffffffffffffffffffffffffff1663095ea7b360fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161210792919061353f565b602060405180830381600087803b15801561212157600080fd5b505af1158015612135573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121599190613088565b5060fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663743e0c9b826040518263ffffffff1660e01b81526004016121b591906137c6565b600060405180830381600087803b1580156121cf57600080fd5b505af11580156121e3573d6000803e3d6000fd5b5050505061223a565b61223960fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff166125a69092919063ffffffff16565b5b5050565b600160c981905550565b6122506127df565b73ffffffffffffffffffffffffffffffffffffffff1661226e61154d565b73ffffffffffffffffffffffffffffffffffffffff16146122c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122bb90613726565b60405180910390fd5b565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60fe60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156125515761240f8330838573ffffffffffffffffffffffffffffffffffffffff166127e7909392919063ffffffff16565b8173ffffffffffffffffffffffffffffffffffffffff1663095ea7b360fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161246c92919061353f565b602060405180830381600087803b15801561248657600080fd5b505af115801561249a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124be9190613088565b5060fd60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663743e0c9b826040518263ffffffff1660e01b815260040161251a91906137c6565b600060405180830381600087803b15801561253457600080fd5b505af1158015612548573d6000803e3d6000fd5b505050506125a1565b6125a08360fb60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16838573ffffffffffffffffffffffffffffffffffffffff166127e7909392919063ffffffff16565b5b505050565b6126278363a9059cbb60e01b84846040516024016125c592919061353f565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612870565b505050565b6000819050919050565b6000819050919050565b61264981611e46565b612688576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267f90613706565b60405180910390fd5b806126b57f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61262c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61270283612937565b60008251118061270f5750805b156127205761271e8383612986565b505b505050565b600060019054906101000a900460ff16612774576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276b90613766565b60405180910390fd5b61278461277f6127df565b6122c6565b565b600060019054906101000a900460ff166127d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127cc90613766565b60405180910390fd5b600160c981905550565b600033905090565b61286a846323b872dd60e01b858585604051602401612808939291906134df565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612870565b50505050565b60006128d2826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166129b39092919063ffffffff16565b905060008151111561293257808060200190518101906128f29190613088565b612931576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161292890613786565b60405180910390fd5b5b505050565b61294081612640565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b60606129ab8383604051806060016040528060278152602001613ebc602791396129cb565b905092915050565b60606129c28484600085612a51565b90509392505050565b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516129f59190613498565b600060405180830381855af49150503d8060008114612a30576040519150601f19603f3d011682016040523d82523d6000602084013e612a35565b606091505b5091509150612a4686838387612b1e565b925050509392505050565b606082471015612a96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a8d90613666565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051612abf9190613498565b60006040518083038185875af1925050503d8060008114612afc576040519150601f19603f3d011682016040523d82523d6000602084013e612b01565b606091505b5091509150612b1287838387612b94565b92505050949350505050565b60608315612b8157600083511415612b7957612b3985611e46565b612b78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6f90613746565b60405180910390fd5b5b829050612b8c565b612b8b8383612c0a565b5b949350505050565b60608315612bf757600083511415612bef57612baf85612c5a565b612bee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612be590613746565b60405180910390fd5b5b829050612c02565b612c018383612c7d565b5b949350505050565b600082511115612c1d5781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c5191906135e4565b60405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600082511115612c905781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cc491906135e4565b60405180910390fd5b6000612ce0612cdb846138b4565b61388f565b905082815260208101848484011115612cfc57612cfb613a5c565b5b612d078482856139ab565b509392505050565b600081359050612d1e81613e5f565b92915050565b600081519050612d3381613e76565b92915050565b600081519050612d4881613e8d565b92915050565b60008083601f840112612d6457612d63613a52565b5b8235905067ffffffffffffffff811115612d8157612d80613a4d565b5b602083019150836001820283011115612d9d57612d9c613a57565b5b9250929050565b600082601f830112612db957612db8613a52565b5b8135612dc9848260208601612ccd565b91505092915050565b600081359050612de181613ea4565b92915050565b600081519050612df681613ea4565b92915050565b600060208284031215612e1257612e11613a66565b5b6000612e2084828501612d0f565b91505092915050565b60008060408385031215612e4057612e3f613a66565b5b6000612e4e85828601612d0f565b9250506020612e5f85828601612d0f565b9150509250929050565b600080600080600060808688031215612e8557612e84613a66565b5b6000612e9388828901612d0f565b9550506020612ea488828901612d0f565b9450506040612eb588828901612dd2565b935050606086013567ffffffffffffffff811115612ed657612ed5613a61565b5b612ee288828901612d4e565b92509250509295509295909350565b600080600060408486031215612f0a57612f09613a66565b5b6000612f1886828701612d0f565b935050602084013567ffffffffffffffff811115612f3957612f38613a61565b5b612f4586828701612d4e565b92509250509250925092565b60008060408385031215612f6857612f67613a66565b5b6000612f7685828601612d0f565b925050602083013567ffffffffffffffff811115612f9757612f96613a61565b5b612fa385828601612da4565b9150509250929050565b600080600060608486031215612fc657612fc5613a66565b5b6000612fd486828701612d0f565b9350506020612fe586828701612dd2565b9250506040612ff686828701612d0f565b9150509250925092565b60008060008060006080868803121561301c5761301b613a66565b5b600061302a88828901612d0f565b955050602061303b88828901612dd2565b945050604061304c88828901612d0f565b935050606086013567ffffffffffffffff81111561306d5761306c613a61565b5b61307988828901612d4e565b92509250509295509295909350565b60006020828403121561309e5761309d613a66565b5b60006130ac84828501612d24565b91505092915050565b6000602082840312156130cb576130ca613a66565b5b60006130d984828501612d39565b91505092915050565b6000602082840312156130f8576130f7613a66565b5b600061310684828501612de7565b91505092915050565b61311881613928565b82525050565b61312781613946565b82525050565b600061313983856138fb565b93506131468385846139ab565b61314f83613a6b565b840190509392505050565b6000613166838561390c565b93506131738385846139ab565b82840190509392505050565b600061318a826138e5565b61319481856138fb565b93506131a48185602086016139ba565b6131ad81613a6b565b840191505092915050565b60006131c3826138e5565b6131cd818561390c565b93506131dd8185602086016139ba565b80840191505092915050565b6131f281613987565b82525050565b61320181613999565b82525050565b6000613212826138f0565b61321c8185613917565b935061322c8185602086016139ba565b61323581613a6b565b840191505092915050565b600061324d602683613917565b915061325882613a7c565b604082019050919050565b6000613270602c83613917565b915061327b82613acb565b604082019050919050565b6000613293602c83613917565b915061329e82613b1a565b604082019050919050565b60006132b6602683613917565b91506132c182613b69565b604082019050919050565b60006132d9603883613917565b91506132e482613bb8565b604082019050919050565b60006132fc602983613917565b915061330782613c07565b604082019050919050565b600061331f602e83613917565b915061332a82613c56565b604082019050919050565b6000613342602e83613917565b915061334d82613ca5565b604082019050919050565b6000613365602d83613917565b915061337082613cf4565b604082019050919050565b6000613388602083613917565b915061339382613d43565b602082019050919050565b60006133ab6000836138fb565b91506133b682613d6c565b600082019050919050565b60006133ce60008361390c565b91506133d982613d6c565b600082019050919050565b60006133f1601d83613917565b91506133fc82613d6f565b602082019050919050565b6000613414602b83613917565b915061341f82613d98565b604082019050919050565b6000613437602a83613917565b915061344282613de7565b604082019050919050565b600061345a601f83613917565b915061346582613e36565b602082019050919050565b61347981613970565b82525050565b600061348c82848661315a565b91508190509392505050565b60006134a482846131b8565b915081905092915050565b60006134ba826133c1565b9150819050919050565b60006020820190506134d9600083018461310f565b92915050565b60006060820190506134f4600083018661310f565b613501602083018561310f565b61350e6040830184613470565b949350505050565b600060408201905061352b600083018561310f565b61353860208301846131e9565b9392505050565b6000604082019050613554600083018561310f565b6135616020830184613470565b9392505050565b600060208201905061357d600083018461311e565b92915050565b6000602082019050818103600083015261359e81848661312d565b90509392505050565b600060208201905081810360008301526135c1818461317f565b905092915050565b60006020820190506135de60008301846131f8565b92915050565b600060208201905081810360008301526135fe8184613207565b905092915050565b6000602082019050818103600083015261361f81613240565b9050919050565b6000602082019050818103600083015261363f81613263565b9050919050565b6000602082019050818103600083015261365f81613286565b9050919050565b6000602082019050818103600083015261367f816132a9565b9050919050565b6000602082019050818103600083015261369f816132cc565b9050919050565b600060208201905081810360008301526136bf816132ef565b9050919050565b600060208201905081810360008301526136df81613312565b9050919050565b600060208201905081810360008301526136ff81613335565b9050919050565b6000602082019050818103600083015261371f81613358565b9050919050565b6000602082019050818103600083015261373f8161337b565b9050919050565b6000602082019050818103600083015261375f816133e4565b9050919050565b6000602082019050818103600083015261377f81613407565b9050919050565b6000602082019050818103600083015261379f8161342a565b9050919050565b600060208201905081810360008301526137bf8161344d565b9050919050565b60006020820190506137db6000830184613470565b92915050565b60006060820190506137f66000830187613470565b613803602083018661310f565b818103604083015261381681848661312d565b905095945050505050565b60006060820190506138366000830185613470565b613843602083018461310f565b81810360408301526138548161339e565b90509392505050565b60006040820190506138726000830186613470565b818103602083015261388581848661312d565b9050949350505050565b60006138996138aa565b90506138a582826139ed565b919050565b6000604051905090565b600067ffffffffffffffff8211156138cf576138ce613a1e565b5b6138d882613a6b565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061393382613950565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061399282613970565b9050919050565b60006139a48261397a565b9050919050565b82818337600083830152505050565b60005b838110156139d85780820151818401526020810190506139bd565b838111156139e7576000848401525b50505050565b6139f682613a6b565b810181811067ffffffffffffffff82111715613a1557613a14613a1e565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f64656c656761746563616c6c0000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f6163746976652070726f78790000000000000000000000000000000000000000602082015250565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f555550535570677261646561626c653a206d757374206e6f742062652063616c60008201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000602082015250565b7f45524331393637557067726164653a20756e737570706f727465642070726f7860008201527f6961626c65555549440000000000000000000000000000000000000000000000602082015250565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f45524331393637557067726164653a206e657720696d706c656d656e7461746960008201527f6f6e206973206e6f742055555053000000000000000000000000000000000000602082015250565b7f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60008201527f6f74206120636f6e747261637400000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b613e6881613928565b8114613e7357600080fd5b50565b613e7f8161393a565b8114613e8a57600080fd5b50565b613e9681613946565b8114613ea157600080fd5b50565b613ead81613970565b8114613eb857600080fd5b5056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d431fcc4399349f48c7db34c81b6c68de55fb20be12bb7fc941bdb48c9369ed464736f6c63430008070033", + ABI: "[{\"type\":\"constructor\",\"inputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"ASSET_HANDLER_ROLE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"DEFAULT_ADMIN_ROLE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"PAUSER_ROLE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"TSS_ROLE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"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\":\"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\":\"getRoleAdmin\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"grantRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"hasRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_tssAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_zetaToken\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_admin\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"proxiableUUID\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"callerConfirmation\",\"type\":\"address\",\"internalType\":\"address\"}],\"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\":\"revokeRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"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\":\"supportsInterface\",\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\",\"internalType\":\"bytes4\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"tssAddress\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[],\"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\":\"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\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":false,\"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\":\"RoleAdminChanged\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"previousAdminRole\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"newAdminRole\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RoleGranted\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RoleRevoked\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"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\":\"AccessControlBadConfirmation\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"AccessControlUnauthorizedAccount\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"neededRole\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"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\":\"EnforcedPause\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExecutionFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExpectedPause\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"FailedInnerCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientERC20Amount\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientETHAmount\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidInitialization\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotInitializing\",\"inputs\":[]},{\"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: "0x60a06040523060805234801561001457600080fd5b5061001d610022565b6100d4565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100725760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100d15780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612d526100fd60003960008181611ab101528181611ada0152611f250152612d526000f3fe6080604052600436106101e35760003560e01c80635c975abb11610102578063ae7a3a6f11610095578063dda79b7511610064578063dda79b751461062e578063e63ab1e91461064e578063f340fa0114610682578063f45346dc1461069557600080fd5b8063ae7a3a6f146105ae578063b8969bd4146105ce578063c0c53b8b146105ee578063d547741f1461060e57600080fd5b806391d14854116100d157806391d14854146104b7578063a217fddf1461051c578063a783c78914610531578063ad3cb1cc1461056557600080fd5b80635c975abb146104175780635d62c8601461044e5780638456cb59146104825780638c6f037f1461049757600080fd5b806335c018db1161017a5780635131ab59116101495780635131ab59146103a257806352d1902d146103c257806357bec62f146103d75780635b112591146103f757600080fd5b806335c018db1461034757806336568abe1461035a5780633f4ba83a1461037a5780634f1ef2861461038f57600080fd5b806321e093b1116101b657806321e093b11461027f578063248a9ca3146102b757806329c59b5d146103145780632f2ff15d1461032757600080fd5b806301ffc9a7146101e857806310188aef1461021d5780631b8b921d1461023f5780631cff79cd1461025f575b600080fd5b3480156101f457600080fd5b506102086102033660046127c5565b6106b5565b60405190151581526020015b60405180910390f35b34801561022957600080fd5b5061023d610238366004612823565b61074e565b005b34801561024b57600080fd5b5061023d61025a366004612887565b610842565b61027261026d366004612887565b610894565b6040516102149190612948565b34801561028b57600080fd5b5060035461029f906001600160a01b031681565b6040516001600160a01b039091168152602001610214565b3480156102c357600080fd5b506103066102d236600461295b565b60009081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b604051908152602001610214565b61023d610322366004612887565b61091d565b34801561033357600080fd5b5061023d610342366004612974565b610a42565b61023d610355366004612887565b610a8c565b34801561036657600080fd5b5061023d610375366004612974565b610c0b565b34801561038657600080fd5b5061023d610c5c565b61023d61039d3660046129cf565b610c91565b3480156103ae57600080fd5b5061023d6103bd366004612ad6565b610cb0565b3480156103ce57600080fd5b50610306610f85565b3480156103e357600080fd5b5060025461029f906001600160a01b031681565b34801561040357600080fd5b5060015461029f906001600160a01b031681565b34801561042357600080fd5b507fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff16610208565b34801561045a57600080fd5b506103067f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b981565b34801561048e57600080fd5b5061023d610fb4565b3480156104a357600080fd5b5061023d6104b2366004612b45565b610fe6565b3480156104c357600080fd5b506102086104d2366004612974565b60009182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408084206001600160a01b0393909316845291905290205460ff1690565b34801561052857600080fd5b50610306600081565b34801561053d57600080fd5b506103067f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb81565b34801561057157600080fd5b506102726040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b3480156105ba57600080fd5b5061023d6105c9366004612823565b611083565b3480156105da57600080fd5b5061023d6105e9366004612ad6565b611177565b3480156105fa57600080fd5b5061023d610609366004612b97565b6112e9565b34801561061a57600080fd5b5061023d610629366004612974565b61159e565b34801561063a57600080fd5b5060005461029f906001600160a01b031681565b34801561065a57600080fd5b506103067f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b61023d610690366004612823565b6115e2565b3480156106a157600080fd5b5061023d6106b0366004612bda565b611707565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061074857507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6000610759816117b2565b6002546001600160a01b03161561079c576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166107dc576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108067f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b9836117bc565b5050600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b826001600160a01b0316336001600160a01b03167f2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde38484604051610887929190612c56565b60405180910390a3505050565b60607f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb6108c0816117b2565b60006108cd8686866118a9565b9050856001600160a01b03167f373df382b9c587826f3de13f16d67f8d99f28ee947fc0924c6ef2d6d2c7e854634878760405161090c93929190612c72565b60405180910390a295945050505050565b34600003610957576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040516000916001600160a01b03169034908381818185875af1925050503d80600081146109a4576040519150601f19603f3d011682016040523d82523d6000602084013e6109a9565b606091505b50909150508015156000036109ea576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b836001600160a01b0316336001600160a01b03167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a43460008787604051610a349493929190612c8c565b60405180910390a350505050565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610a7c816117b2565b610a8683836117bc565b50505050565b7f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb610ab6816117b2565b600080856001600160a01b03163460405160006040518083038185875af1925050503d8060008114610b04576040519150601f19603f3d011682016040523d82523d6000602084013e610b09565b606091505b509150915081610b45576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f8fcaa0b50000000000000000000000000000000000000000000000000000000081526001600160a01b03871690638fcaa0b590610b8c9088908890600401612c56565b600060405180830381600087803b158015610ba657600080fd5b505af1158015610bba573d6000803e3d6000fd5b50505050856001600160a01b03167fd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c348787604051610bfb93929190612c72565b60405180910390a2505050505050565b6001600160a01b0381163314610c4d576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c578282611952565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610c86816117b2565b610c8e611a16565b50565b610c99611aa6565b610ca282611b78565b610cac8282611b83565b5050565b610cb8611ca7565b7f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b9610ce2816117b2565b83600003610d1c576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d268686611d28565b610d5c576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301526024820186905287169063095ea7b3906044016020604051808303816000875af1158015610dc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de89190612cb5565b610e1e576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610e2b8685856118a9565b9050610e378787611d28565b610e6d576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038916906370a0823190602401602060405180830381865afa158015610ecd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef19190612cd7565b90508015610f0357610f038882611db8565b866001600160a01b0316886001600160a01b03167f29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382888888604051610f4a93929190612c72565b60405180910390a3505050610f7e60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050505050565b6000610f8f611f1a565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610fde816117b2565b610c8e611f7c565b83600003611020576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61102b338486611ff5565b846001600160a01b0316336001600160a01b03167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4868686866040516110749493929190612c8c565b60405180910390a35050505050565b600061108e816117b2565b6000546001600160a01b0316156110d1576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038216611111576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61113b7f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b9836117bc565b5050600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b61117f611ca7565b7f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b96111a9816117b2565b836000036111e3576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111f76001600160a01b0387168686612149565b6040517f8fcaa0b50000000000000000000000000000000000000000000000000000000081526001600160a01b03861690638fcaa0b59061123e9086908690600401612c56565b600060405180830381600087803b15801561125857600080fd5b505af115801561126c573d6000803e3d6000fd5b50505050846001600160a01b0316866001600160a01b03167f723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda78686866040516112b793929190612c72565b60405180910390a350610f7e60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156113345750825b905060008267ffffffffffffffff1660011480156113515750303b155b90508115801561135f575080155b15611396576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156113f75784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6001600160a01b038816158061141457506001600160a01b038716155b1561144b576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6114536121bd565b61145b6121c5565b6114636121bd565b61146b6121d5565b6114766000876117bc565b506114a17f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a876117bc565b50600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038a161790556114ff7f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb896117bc565b50600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03891617905583156115945784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680060205260409020600101546115d8816117b2565b610a868383611952565b3460000361161c576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040516000916001600160a01b03169034908381818185875af1925050503d8060008114611669576040519150601f19603f3d011682016040523d82523d6000602084013e61166e565b606091505b50909150508015156000036116af576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408051348152600060208201819052606082840181905282015290516001600160a01b0384169133917f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a49181900360800190a35050565b81600003611741576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61174c338284611ff5565b826001600160a01b0316336001600160a01b03167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a484846040516108879291909182526001600160a01b0316602082015260606040820181905260009082015260800190565b610c8e81336121e5565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff1661189f576000848152602082815260408083206001600160a01b0387168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556118553390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610748565b6000915050610748565b6060600080856001600160a01b03163486866040516118c9929190612cf0565b60006040518083038185875af1925050503d8060008114611906576040519150601f19603f3d011682016040523d82523d6000602084013e61190b565b606091505b509150915081611947576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9150505b9392505050565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff161561189f576000848152602082815260408083206001600160a01b038716808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610748565b611a1e612272565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480611b3f57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611b337f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b15611b76576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6000610cac816117b2565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611bfb575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252611bf891810190612cd7565b60015b611c41576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114611c9d576040517faa1d49a400000000000000000000000000000000000000000000000000000000815260048101829052602401611c38565b610c5783836122cd565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0080547ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01611d22576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60029055565b6040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b038281166004830152600060248301819052919084169063095ea7b3906044016020604051808303816000875af1158015611d94573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194b9190612cb5565b6003546001600160a01b0390811690831603611eda576002546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152602481018390529083169063095ea7b3906044016020604051808303816000875af1158015611e3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e5e9190612cb5565b506002546040517f743e0c9b000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b039091169063743e0c9b90602401600060405180830381600087803b158015611ebe57600080fd5b505af1158015611ed2573d6000803e3d6000fd5b505050505050565b600054610cac906001600160a01b03848116911683612149565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611b76576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611f84612323565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833611a88565b6003546001600160a01b039081169083160361212d576120206001600160a01b03831684308461237f565b6002546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152602481018390529083169063095ea7b3906044016020604051808303816000875af115801561208c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b09190612cb5565b506002546040517f743e0c9b000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b039091169063743e0c9b90602401600060405180830381600087803b15801561211057600080fd5b505af1158015612124573d6000803e3d6000fd5b50505050505050565b600054610c57906001600160a01b03848116918691168461237f565b6040516001600160a01b03838116602483015260448201839052610c5791859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506123b8565b611b76612434565b6121cd612434565b611b7661249b565b6121dd612434565b611b766124a3565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038516845290915290205460ff16610cac576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401611c38565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff16611b76576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6122d6826124f4565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561231b57610c57828261259c565b610cac612612565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff1615611b76576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040516001600160a01b038481166024830152838116604483015260648201839052610a869186918216906323b872dd90608401612176565b60006123cd6001600160a01b0384168361264a565b905080516000141580156123f25750808060200190518101906123f09190612cb5565b155b15610c57576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401611c38565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff16611b76576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611ef4612434565b6124ab612434565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b806001600160a01b03163b600003612543576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b0382166004820152602401611c38565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516125b99190612d00565b600060405180830381855af49150503d80600081146125f4576040519150601f19603f3d011682016040523d82523d6000602084013e6125f9565b606091505b5091509150612609858383612658565b95945050505050565b3415611b76576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606061194b838360006126cd565b60608261266d5761266882612783565b61194b565b815115801561268457506001600160a01b0384163b155b156126c6576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401611c38565b508061194b565b60608147101561270b576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401611c38565b600080856001600160a01b031684866040516127279190612d00565b60006040518083038185875af1925050503d8060008114612764576040519150601f19603f3d011682016040523d82523d6000602084013e612769565b606091505b5091509150612779868383612658565b9695505050505050565b8051156127935780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000602082840312156127d757600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461194b57600080fd5b80356001600160a01b038116811461281e57600080fd5b919050565b60006020828403121561283557600080fd5b61194b82612807565b60008083601f84011261285057600080fd5b50813567ffffffffffffffff81111561286857600080fd5b60208301915083602082850101111561288057600080fd5b9250929050565b60008060006040848603121561289c57600080fd5b6128a584612807565b9250602084013567ffffffffffffffff8111156128c157600080fd5b6128cd8682870161283e565b9497909650939450505050565b60005b838110156128f55781810151838201526020016128dd565b50506000910152565b600081518084526129168160208601602086016128da565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061194b60208301846128fe565b60006020828403121561296d57600080fd5b5035919050565b6000806040838503121561298757600080fd5b8235915061299760208401612807565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156129e257600080fd5b6129eb83612807565b9150602083013567ffffffffffffffff811115612a0757600080fd5b8301601f81018513612a1857600080fd5b803567ffffffffffffffff811115612a3257612a326129a0565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff82111715612a9e57612a9e6129a0565b604052818152828201602001871015612ab657600080fd5b816020840160208301376000602083830101528093505050509250929050565b600080600080600060808688031215612aee57600080fd5b612af786612807565b9450612b0560208701612807565b935060408601359250606086013567ffffffffffffffff811115612b2857600080fd5b612b348882890161283e565b969995985093965092949392505050565b600080600080600060808688031215612b5d57600080fd5b612b6686612807565b945060208601359350612b7b60408701612807565b9250606086013567ffffffffffffffff811115612b2857600080fd5b600080600060608486031215612bac57600080fd5b612bb584612807565b9250612bc360208501612807565b9150612bd160408501612807565b90509250925092565b600080600060608486031215612bef57600080fd5b612bf884612807565b925060208401359150612bd160408501612807565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b602081526000612c6a602083018486612c0d565b949350505050565b838152604060208201526000612609604083018486612c0d565b8481526001600160a01b0384166020820152606060408201526000612779606083018486612c0d565b600060208284031215612cc757600080fd5b8151801515811461194b57600080fd5b600060208284031215612ce957600080fd5b5051919050565b8183823760009101908152919050565b60008251612d128184602087016128da565b919091019291505056fea2646970667358221220e0d221e2700a741409740f6a05e6ac8e799e50b3e2a6e75b5173b33a31fa502464736f6c634300081a0033", } // GatewayEVMUpgradeTestABI is the input ABI used to generate the binding from. @@ -202,6 +202,161 @@ func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactorRaw) Transact(opts return _GatewayEVMUpgradeTest.Contract.contract.Transact(opts, method, params...) } +// ASSETHANDLERROLE is a free data retrieval call binding the contract method 0x5d62c860. +// +// Solidity: function ASSET_HANDLER_ROLE() view returns(bytes32) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestCaller) ASSETHANDLERROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _GatewayEVMUpgradeTest.contract.Call(opts, &out, "ASSET_HANDLER_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// ASSETHANDLERROLE is a free data retrieval call binding the contract method 0x5d62c860. +// +// Solidity: function ASSET_HANDLER_ROLE() view returns(bytes32) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestSession) ASSETHANDLERROLE() ([32]byte, error) { + return _GatewayEVMUpgradeTest.Contract.ASSETHANDLERROLE(&_GatewayEVMUpgradeTest.CallOpts) +} + +// ASSETHANDLERROLE is a free data retrieval call binding the contract method 0x5d62c860. +// +// Solidity: function ASSET_HANDLER_ROLE() view returns(bytes32) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestCallerSession) ASSETHANDLERROLE() ([32]byte, error) { + return _GatewayEVMUpgradeTest.Contract.ASSETHANDLERROLE(&_GatewayEVMUpgradeTest.CallOpts) +} + +// DEFAULTADMINROLE is a free data retrieval call binding the contract method 0xa217fddf. +// +// Solidity: function DEFAULT_ADMIN_ROLE() view returns(bytes32) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestCaller) DEFAULTADMINROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _GatewayEVMUpgradeTest.contract.Call(opts, &out, "DEFAULT_ADMIN_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// DEFAULTADMINROLE is a free data retrieval call binding the contract method 0xa217fddf. +// +// Solidity: function DEFAULT_ADMIN_ROLE() view returns(bytes32) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestSession) DEFAULTADMINROLE() ([32]byte, error) { + return _GatewayEVMUpgradeTest.Contract.DEFAULTADMINROLE(&_GatewayEVMUpgradeTest.CallOpts) +} + +// DEFAULTADMINROLE is a free data retrieval call binding the contract method 0xa217fddf. +// +// Solidity: function DEFAULT_ADMIN_ROLE() view returns(bytes32) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestCallerSession) DEFAULTADMINROLE() ([32]byte, error) { + return _GatewayEVMUpgradeTest.Contract.DEFAULTADMINROLE(&_GatewayEVMUpgradeTest.CallOpts) +} + +// PAUSERROLE is a free data retrieval call binding the contract method 0xe63ab1e9. +// +// Solidity: function PAUSER_ROLE() view returns(bytes32) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestCaller) PAUSERROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _GatewayEVMUpgradeTest.contract.Call(opts, &out, "PAUSER_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// PAUSERROLE is a free data retrieval call binding the contract method 0xe63ab1e9. +// +// Solidity: function PAUSER_ROLE() view returns(bytes32) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestSession) PAUSERROLE() ([32]byte, error) { + return _GatewayEVMUpgradeTest.Contract.PAUSERROLE(&_GatewayEVMUpgradeTest.CallOpts) +} + +// PAUSERROLE is a free data retrieval call binding the contract method 0xe63ab1e9. +// +// Solidity: function PAUSER_ROLE() view returns(bytes32) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestCallerSession) PAUSERROLE() ([32]byte, error) { + return _GatewayEVMUpgradeTest.Contract.PAUSERROLE(&_GatewayEVMUpgradeTest.CallOpts) +} + +// TSSROLE is a free data retrieval call binding the contract method 0xa783c789. +// +// Solidity: function TSS_ROLE() view returns(bytes32) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestCaller) TSSROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _GatewayEVMUpgradeTest.contract.Call(opts, &out, "TSS_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// TSSROLE is a free data retrieval call binding the contract method 0xa783c789. +// +// Solidity: function TSS_ROLE() view returns(bytes32) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestSession) TSSROLE() ([32]byte, error) { + return _GatewayEVMUpgradeTest.Contract.TSSROLE(&_GatewayEVMUpgradeTest.CallOpts) +} + +// TSSROLE is a free data retrieval call binding the contract method 0xa783c789. +// +// Solidity: function TSS_ROLE() view returns(bytes32) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestCallerSession) TSSROLE() ([32]byte, error) { + return _GatewayEVMUpgradeTest.Contract.TSSROLE(&_GatewayEVMUpgradeTest.CallOpts) +} + +// 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) @@ -233,35 +388,97 @@ func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestCallerSession) Custody() (com return _GatewayEVMUpgradeTest.Contract.Custody(&_GatewayEVMUpgradeTest.CallOpts) } -// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. // -// Solidity: function owner() view returns(address) -func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestCaller) Owner(opts *bind.CallOpts) (common.Address, error) { +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestCaller) GetRoleAdmin(opts *bind.CallOpts, role [32]byte) ([32]byte, error) { var out []interface{} - err := _GatewayEVMUpgradeTest.contract.Call(opts, &out, "owner") + err := _GatewayEVMUpgradeTest.contract.Call(opts, &out, "getRoleAdmin", role) if err != nil { - return *new(common.Address), err + return *new([32]byte), err } - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. +// +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestSession) GetRoleAdmin(role [32]byte) ([32]byte, error) { + return _GatewayEVMUpgradeTest.Contract.GetRoleAdmin(&_GatewayEVMUpgradeTest.CallOpts, role) +} + +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. +// +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestCallerSession) GetRoleAdmin(role [32]byte) ([32]byte, error) { + return _GatewayEVMUpgradeTest.Contract.GetRoleAdmin(&_GatewayEVMUpgradeTest.CallOpts, role) +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestCaller) HasRole(opts *bind.CallOpts, role [32]byte, account common.Address) (bool, error) { + var out []interface{} + err := _GatewayEVMUpgradeTest.contract.Call(opts, &out, "hasRole", role, account) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestSession) HasRole(role [32]byte, account common.Address) (bool, error) { + return _GatewayEVMUpgradeTest.Contract.HasRole(&_GatewayEVMUpgradeTest.CallOpts, role, account) +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestCallerSession) HasRole(role [32]byte, account common.Address) (bool, error) { + return _GatewayEVMUpgradeTest.Contract.HasRole(&_GatewayEVMUpgradeTest.CallOpts, role, account) +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestCaller) Paused(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _GatewayEVMUpgradeTest.contract.Call(opts, &out, "paused") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) return out0, err } -// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// Paused is a free data retrieval call binding the contract method 0x5c975abb. // -// Solidity: function owner() view returns(address) -func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestSession) Owner() (common.Address, error) { - return _GatewayEVMUpgradeTest.Contract.Owner(&_GatewayEVMUpgradeTest.CallOpts) +// Solidity: function paused() view returns(bool) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestSession) Paused() (bool, error) { + return _GatewayEVMUpgradeTest.Contract.Paused(&_GatewayEVMUpgradeTest.CallOpts) } -// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// Paused is a free data retrieval call binding the contract method 0x5c975abb. // -// Solidity: function owner() view returns(address) -func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestCallerSession) Owner() (common.Address, error) { - return _GatewayEVMUpgradeTest.Contract.Owner(&_GatewayEVMUpgradeTest.CallOpts) +// Solidity: function paused() view returns(bool) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestCallerSession) Paused() (bool, error) { + return _GatewayEVMUpgradeTest.Contract.Paused(&_GatewayEVMUpgradeTest.CallOpts) } // ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d. @@ -295,6 +512,37 @@ func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestCallerSession) ProxiableUUID( return _GatewayEVMUpgradeTest.Contract.ProxiableUUID(&_GatewayEVMUpgradeTest.CallOpts) } +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestCaller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) { + var out []interface{} + err := _GatewayEVMUpgradeTest.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 (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestSession) SupportsInterface(interfaceId [4]byte) (bool, error) { + return _GatewayEVMUpgradeTest.Contract.SupportsInterface(&_GatewayEVMUpgradeTest.CallOpts, interfaceId) +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestCallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) { + return _GatewayEVMUpgradeTest.Contract.SupportsInterface(&_GatewayEVMUpgradeTest.CallOpts, interfaceId) +} + // TssAddress is a free data retrieval call binding the contract method 0x5b112591. // // Solidity: function tssAddress() view returns(address) @@ -556,46 +804,88 @@ func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactorSession) ExecuteWit return _GatewayEVMUpgradeTest.Contract.ExecuteWithERC20(&_GatewayEVMUpgradeTest.TransactOpts, token, to, amount, data) } -// Initialize is a paid mutator transaction binding the contract method 0x485cc955. +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactor) GrantRole(opts *bind.TransactOpts, role [32]byte, account common.Address) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.contract.Transact(opts, "grantRole", role, account) +} + +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestSession) GrantRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.GrantRole(&_GatewayEVMUpgradeTest.TransactOpts, role, account) +} + +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactorSession) GrantRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.GrantRole(&_GatewayEVMUpgradeTest.TransactOpts, role, account) +} + +// Initialize is a paid mutator transaction binding the contract method 0xc0c53b8b. +// +// Solidity: function initialize(address _tssAddress, address _zetaToken, address _admin) returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactor) Initialize(opts *bind.TransactOpts, _tssAddress common.Address, _zetaToken common.Address, _admin common.Address) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.contract.Transact(opts, "initialize", _tssAddress, _zetaToken, _admin) +} + +// Initialize is a paid mutator transaction binding the contract method 0xc0c53b8b. // -// 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) +// Solidity: function initialize(address _tssAddress, address _zetaToken, address _admin) returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestSession) Initialize(_tssAddress common.Address, _zetaToken common.Address, _admin common.Address) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.Initialize(&_GatewayEVMUpgradeTest.TransactOpts, _tssAddress, _zetaToken, _admin) } -// Initialize is a paid mutator transaction binding the contract method 0x485cc955. +// Initialize is a paid mutator transaction binding the contract method 0xc0c53b8b. // -// 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) +// Solidity: function initialize(address _tssAddress, address _zetaToken, address _admin) returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactorSession) Initialize(_tssAddress common.Address, _zetaToken common.Address, _admin common.Address) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.Initialize(&_GatewayEVMUpgradeTest.TransactOpts, _tssAddress, _zetaToken, _admin) } -// Initialize is a paid mutator transaction binding the contract method 0x485cc955. +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. // -// 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) +// Solidity: function pause() returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactor) Pause(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.contract.Transact(opts, "pause") } -// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. // -// Solidity: function renounceOwnership() returns() -func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { - return _GatewayEVMUpgradeTest.contract.Transact(opts, "renounceOwnership") +// Solidity: function pause() returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestSession) Pause() (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.Pause(&_GatewayEVMUpgradeTest.TransactOpts) } -// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. // -// Solidity: function renounceOwnership() returns() -func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestSession) RenounceOwnership() (*types.Transaction, error) { - return _GatewayEVMUpgradeTest.Contract.RenounceOwnership(&_GatewayEVMUpgradeTest.TransactOpts) +// Solidity: function pause() returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactorSession) Pause() (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.Pause(&_GatewayEVMUpgradeTest.TransactOpts) } -// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. // -// Solidity: function renounceOwnership() returns() -func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactorSession) RenounceOwnership() (*types.Transaction, error) { - return _GatewayEVMUpgradeTest.Contract.RenounceOwnership(&_GatewayEVMUpgradeTest.TransactOpts) +// Solidity: function renounceRole(bytes32 role, address callerConfirmation) returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactor) RenounceRole(opts *bind.TransactOpts, role [32]byte, callerConfirmation common.Address) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.contract.Transact(opts, "renounceRole", role, callerConfirmation) +} + +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. +// +// Solidity: function renounceRole(bytes32 role, address callerConfirmation) returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestSession) RenounceRole(role [32]byte, callerConfirmation common.Address) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.RenounceRole(&_GatewayEVMUpgradeTest.TransactOpts, role, callerConfirmation) +} + +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. +// +// Solidity: function renounceRole(bytes32 role, address callerConfirmation) returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactorSession) RenounceRole(role [32]byte, callerConfirmation common.Address) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.RenounceRole(&_GatewayEVMUpgradeTest.TransactOpts, role, callerConfirmation) } // RevertWithERC20 is a paid mutator transaction binding the contract method 0xb8969bd4. @@ -619,6 +909,27 @@ func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactorSession) RevertWith return _GatewayEVMUpgradeTest.Contract.RevertWithERC20(&_GatewayEVMUpgradeTest.TransactOpts, token, to, amount, data) } +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactor) RevokeRole(opts *bind.TransactOpts, role [32]byte, account common.Address) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.contract.Transact(opts, "revokeRole", role, account) +} + +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestSession) RevokeRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.RevokeRole(&_GatewayEVMUpgradeTest.TransactOpts, role, account) +} + +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactorSession) RevokeRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.RevokeRole(&_GatewayEVMUpgradeTest.TransactOpts, role, account) +} + // SetConnector is a paid mutator transaction binding the contract method 0x10188aef. // // Solidity: function setConnector(address _zetaConnector) returns() @@ -661,46 +972,25 @@ func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactorSession) SetCustody 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) -} - -// UpgradeTo is a paid mutator transaction binding the contract method 0x3659cfe6. +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. // -// Solidity: function upgradeTo(address newImplementation) returns() -func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactor) UpgradeTo(opts *bind.TransactOpts, newImplementation common.Address) (*types.Transaction, error) { - return _GatewayEVMUpgradeTest.contract.Transact(opts, "upgradeTo", newImplementation) +// Solidity: function unpause() returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactor) Unpause(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.contract.Transact(opts, "unpause") } -// UpgradeTo is a paid mutator transaction binding the contract method 0x3659cfe6. +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. // -// Solidity: function upgradeTo(address newImplementation) returns() -func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestSession) UpgradeTo(newImplementation common.Address) (*types.Transaction, error) { - return _GatewayEVMUpgradeTest.Contract.UpgradeTo(&_GatewayEVMUpgradeTest.TransactOpts, newImplementation) +// Solidity: function unpause() returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestSession) Unpause() (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.Unpause(&_GatewayEVMUpgradeTest.TransactOpts) } -// UpgradeTo is a paid mutator transaction binding the contract method 0x3659cfe6. +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. // -// Solidity: function upgradeTo(address newImplementation) returns() -func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactorSession) UpgradeTo(newImplementation common.Address) (*types.Transaction, error) { - return _GatewayEVMUpgradeTest.Contract.UpgradeTo(&_GatewayEVMUpgradeTest.TransactOpts, newImplementation) +// Solidity: function unpause() returns() +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactorSession) Unpause() (*types.Transaction, error) { + return _GatewayEVMUpgradeTest.Contract.Unpause(&_GatewayEVMUpgradeTest.TransactOpts) } // UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286. @@ -724,9 +1014,9 @@ func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestTransactorSession) UpgradeToA return _GatewayEVMUpgradeTest.Contract.UpgradeToAndCall(&_GatewayEVMUpgradeTest.TransactOpts, newImplementation, data) } -// GatewayEVMUpgradeTestAdminChangedIterator is returned from FilterAdminChanged and is used to iterate over the raw logs and unpacked data for AdminChanged events raised by the GatewayEVMUpgradeTest contract. -type GatewayEVMUpgradeTestAdminChangedIterator struct { - Event *GatewayEVMUpgradeTestAdminChanged // Event containing the contract specifics and raw log +// 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 @@ -740,7 +1030,7 @@ type GatewayEVMUpgradeTestAdminChangedIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *GatewayEVMUpgradeTestAdminChangedIterator) Next() bool { +func (it *GatewayEVMUpgradeTestCallIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -749,7 +1039,7 @@ func (it *GatewayEVMUpgradeTestAdminChangedIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(GatewayEVMUpgradeTestAdminChanged) + it.Event = new(GatewayEVMUpgradeTestCall) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -764,7 +1054,7 @@ func (it *GatewayEVMUpgradeTestAdminChangedIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(GatewayEVMUpgradeTestAdminChanged) + it.Event = new(GatewayEVMUpgradeTestCall) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -780,42 +1070,61 @@ func (it *GatewayEVMUpgradeTestAdminChangedIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *GatewayEVMUpgradeTestAdminChangedIterator) Error() error { +func (it *GatewayEVMUpgradeTestCallIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *GatewayEVMUpgradeTestAdminChangedIterator) Close() error { +func (it *GatewayEVMUpgradeTestCallIterator) Close() error { it.sub.Unsubscribe() return nil } -// GatewayEVMUpgradeTestAdminChanged represents a AdminChanged event raised by the GatewayEVMUpgradeTest contract. -type GatewayEVMUpgradeTestAdminChanged struct { - PreviousAdmin common.Address - NewAdmin common.Address - Raw types.Log // Blockchain specific contextual infos +// 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 } -// FilterAdminChanged is a free log retrieval operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f. +// FilterCall is a free log retrieval operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. // -// Solidity: event AdminChanged(address previousAdmin, address newAdmin) -func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) FilterAdminChanged(opts *bind.FilterOpts) (*GatewayEVMUpgradeTestAdminChangedIterator, error) { +// 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, "AdminChanged") + logs, sub, err := _GatewayEVMUpgradeTest.contract.FilterLogs(opts, "Call", senderRule, receiverRule) if err != nil { return nil, err } - return &GatewayEVMUpgradeTestAdminChangedIterator{contract: _GatewayEVMUpgradeTest.contract, event: "AdminChanged", logs: logs, sub: sub}, nil + return &GatewayEVMUpgradeTestCallIterator{contract: _GatewayEVMUpgradeTest.contract, event: "Call", logs: logs, sub: sub}, nil } -// WatchAdminChanged is a free log subscription operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f. +// WatchCall is a free log subscription operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. // -// Solidity: event AdminChanged(address previousAdmin, address newAdmin) -func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchAdminChanged(opts *bind.WatchOpts, sink chan<- *GatewayEVMUpgradeTestAdminChanged) (event.Subscription, error) { +// 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, "AdminChanged") + logs, sub, err := _GatewayEVMUpgradeTest.contract.WatchLogs(opts, "Call", senderRule, receiverRule) if err != nil { return nil, err } @@ -825,8 +1134,8 @@ func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchAdminChanged(o select { case log := <-logs: // New log arrived, parse the event and forward to the user - event := new(GatewayEVMUpgradeTestAdminChanged) - if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "AdminChanged", log); err != nil { + event := new(GatewayEVMUpgradeTestCall) + if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "Call", log); err != nil { return err } event.Raw = log @@ -847,21 +1156,21 @@ func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchAdminChanged(o }), nil } -// ParseAdminChanged is a log parse operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f. +// ParseCall is a log parse operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. // -// Solidity: event AdminChanged(address previousAdmin, address newAdmin) -func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) ParseAdminChanged(log types.Log) (*GatewayEVMUpgradeTestAdminChanged, error) { - event := new(GatewayEVMUpgradeTestAdminChanged) - if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "AdminChanged", log); err != nil { +// 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 } -// GatewayEVMUpgradeTestBeaconUpgradedIterator is returned from FilterBeaconUpgraded and is used to iterate over the raw logs and unpacked data for BeaconUpgraded events raised by the GatewayEVMUpgradeTest contract. -type GatewayEVMUpgradeTestBeaconUpgradedIterator struct { - Event *GatewayEVMUpgradeTestBeaconUpgraded // Event containing the contract specifics and raw log +// 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 @@ -875,7 +1184,7 @@ type GatewayEVMUpgradeTestBeaconUpgradedIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *GatewayEVMUpgradeTestBeaconUpgradedIterator) Next() bool { +func (it *GatewayEVMUpgradeTestDepositIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -884,7 +1193,7 @@ func (it *GatewayEVMUpgradeTestBeaconUpgradedIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(GatewayEVMUpgradeTestBeaconUpgraded) + it.Event = new(GatewayEVMUpgradeTestDeposit) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -899,7 +1208,7 @@ func (it *GatewayEVMUpgradeTestBeaconUpgradedIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(GatewayEVMUpgradeTestBeaconUpgraded) + it.Event = new(GatewayEVMUpgradeTestDeposit) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -915,51 +1224,63 @@ func (it *GatewayEVMUpgradeTestBeaconUpgradedIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *GatewayEVMUpgradeTestBeaconUpgradedIterator) Error() error { +func (it *GatewayEVMUpgradeTestDepositIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *GatewayEVMUpgradeTestBeaconUpgradedIterator) Close() error { +func (it *GatewayEVMUpgradeTestDepositIterator) Close() error { it.sub.Unsubscribe() return nil } -// GatewayEVMUpgradeTestBeaconUpgraded represents a BeaconUpgraded event raised by the GatewayEVMUpgradeTest contract. -type GatewayEVMUpgradeTestBeaconUpgraded struct { - Beacon common.Address - Raw types.Log // Blockchain specific contextual infos +// 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 } -// FilterBeaconUpgraded is a free log retrieval operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e. +// FilterDeposit is a free log retrieval operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. // -// Solidity: event BeaconUpgraded(address indexed beacon) -func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) FilterBeaconUpgraded(opts *bind.FilterOpts, beacon []common.Address) (*GatewayEVMUpgradeTestBeaconUpgradedIterator, error) { +// 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 beaconRule []interface{} - for _, beaconItem := range beacon { - beaconRule = append(beaconRule, beaconItem) + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) } - - logs, sub, err := _GatewayEVMUpgradeTest.contract.FilterLogs(opts, "BeaconUpgraded", beaconRule) + 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 &GatewayEVMUpgradeTestBeaconUpgradedIterator{contract: _GatewayEVMUpgradeTest.contract, event: "BeaconUpgraded", logs: logs, sub: sub}, nil + return &GatewayEVMUpgradeTestDepositIterator{contract: _GatewayEVMUpgradeTest.contract, event: "Deposit", logs: logs, sub: sub}, nil } -// WatchBeaconUpgraded is a free log subscription operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e. +// WatchDeposit is a free log subscription operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. // -// Solidity: event BeaconUpgraded(address indexed beacon) -func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchBeaconUpgraded(opts *bind.WatchOpts, sink chan<- *GatewayEVMUpgradeTestBeaconUpgraded, beacon []common.Address) (event.Subscription, error) { +// 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 beaconRule []interface{} - for _, beaconItem := range beacon { - beaconRule = append(beaconRule, beaconItem) + 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, "BeaconUpgraded", beaconRule) + logs, sub, err := _GatewayEVMUpgradeTest.contract.WatchLogs(opts, "Deposit", senderRule, receiverRule) if err != nil { return nil, err } @@ -969,8 +1290,8 @@ func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchBeaconUpgraded select { case log := <-logs: // New log arrived, parse the event and forward to the user - event := new(GatewayEVMUpgradeTestBeaconUpgraded) - if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "BeaconUpgraded", log); err != nil { + event := new(GatewayEVMUpgradeTestDeposit) + if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "Deposit", log); err != nil { return err } event.Raw = log @@ -991,21 +1312,21 @@ func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchBeaconUpgraded }), nil } -// ParseBeaconUpgraded is a log parse operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e. +// ParseDeposit is a log parse operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. // -// Solidity: event BeaconUpgraded(address indexed beacon) -func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) ParseBeaconUpgraded(log types.Log) (*GatewayEVMUpgradeTestBeaconUpgraded, error) { - event := new(GatewayEVMUpgradeTestBeaconUpgraded) - if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "BeaconUpgraded", log); err != nil { +// 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 } -// 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 +// 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 @@ -1019,7 +1340,7 @@ type GatewayEVMUpgradeTestCallIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more 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 { +func (it *GatewayEVMUpgradeTestExecutedIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -1028,7 +1349,7 @@ func (it *GatewayEVMUpgradeTestCallIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(GatewayEVMUpgradeTestCall) + it.Event = new(GatewayEVMUpgradeTestExecuted) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1043,7 +1364,7 @@ func (it *GatewayEVMUpgradeTestCallIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(GatewayEVMUpgradeTestCall) + it.Event = new(GatewayEVMUpgradeTestExecuted) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1059,61 +1380,199 @@ func (it *GatewayEVMUpgradeTestCallIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *GatewayEVMUpgradeTestCallIterator) Error() error { +func (it *GatewayEVMUpgradeTestExecutedIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *GatewayEVMUpgradeTestCallIterator) Close() error { +func (it *GatewayEVMUpgradeTestExecutedIterator) 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 +// 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 } -// FilterCall is a free log retrieval operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. +// FilterExecuted is a free log retrieval operation binding the contract event 0xcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f. // -// 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) { +// Solidity: event Executed(address indexed destination, uint256 value, bytes data) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) FilterExecuted(opts *bind.FilterOpts, destination []common.Address) (*GatewayEVMUpgradeTestExecutedIterator, error) { - var senderRule []interface{} - for _, senderItem := range sender { - senderRule = append(senderRule, senderItem) + var destinationRule []interface{} + for _, destinationItem := range destination { + destinationRule = append(destinationRule, destinationItem) } - var receiverRule []interface{} - for _, receiverItem := range receiver { - receiverRule = append(receiverRule, receiverItem) + + 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 +} - logs, sub, err := _GatewayEVMUpgradeTest.contract.FilterLogs(opts, "Call", senderRule, receiverRule) +// 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 &GatewayEVMUpgradeTestCallIterator{contract: _GatewayEVMUpgradeTest.contract, event: "Call", logs: logs, sub: sub}, nil + return event.NewSubscription(func(quit <-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 } -// WatchCall is a free log subscription operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. +// ParseExecuted is a log parse operation binding the contract event 0xcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f. // -// 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) { +// 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 +} - var senderRule []interface{} - for _, senderItem := range sender { - senderRule = append(senderRule, senderItem) +// 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 } - var receiverRule []interface{} - for _, receiverItem := range receiver { - receiverRule = append(receiverRule, receiverItem) + // 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 - logs, sub, err := _GatewayEVMUpgradeTest.contract.WatchLogs(opts, "Call", senderRule, receiverRule) + case err := <-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 } @@ -1123,8 +1582,8 @@ func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchCall(opts *bin 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 { + event := new(GatewayEVMUpgradeTestExecutedV2) + if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "ExecutedV2", log); err != nil { return err } event.Raw = log @@ -1145,21 +1604,21 @@ func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchCall(opts *bin }), nil } -// ParseCall is a log parse operation binding the contract event 0x2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3. +// ParseExecutedV2 is a log parse operation binding the contract event 0x373df382b9c587826f3de13f16d67f8d99f28ee947fc0924c6ef2d6d2c7e8546. // -// 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 { +// 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 } -// 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 +// 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 @@ -1173,7 +1632,7 @@ type GatewayEVMUpgradeTestDepositIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more 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 { +func (it *GatewayEVMUpgradeTestExecutedWithERC20Iterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -1182,7 +1641,7 @@ func (it *GatewayEVMUpgradeTestDepositIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(GatewayEVMUpgradeTestDeposit) + it.Event = new(GatewayEVMUpgradeTestExecutedWithERC20) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1197,7 +1656,7 @@ func (it *GatewayEVMUpgradeTestDepositIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(GatewayEVMUpgradeTestDeposit) + it.Event = new(GatewayEVMUpgradeTestExecutedWithERC20) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1213,63 +1672,62 @@ func (it *GatewayEVMUpgradeTestDepositIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *GatewayEVMUpgradeTestDepositIterator) Error() error { +func (it *GatewayEVMUpgradeTestExecutedWithERC20Iterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *GatewayEVMUpgradeTestDepositIterator) Close() error { +func (it *GatewayEVMUpgradeTestExecutedWithERC20Iterator) 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 +// 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 } -// FilterDeposit is a free log retrieval operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. +// FilterExecutedWithERC20 is a free log retrieval operation binding the contract event 0x29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382. // -// 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) { +// 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 senderRule []interface{} - for _, senderItem := range sender { - senderRule = append(senderRule, senderItem) + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) } - var receiverRule []interface{} - for _, receiverItem := range receiver { - receiverRule = append(receiverRule, receiverItem) + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) } - logs, sub, err := _GatewayEVMUpgradeTest.contract.FilterLogs(opts, "Deposit", senderRule, receiverRule) + logs, sub, err := _GatewayEVMUpgradeTest.contract.FilterLogs(opts, "ExecutedWithERC20", tokenRule, toRule) if err != nil { return nil, err } - return &GatewayEVMUpgradeTestDepositIterator{contract: _GatewayEVMUpgradeTest.contract, event: "Deposit", logs: logs, sub: sub}, nil + return &GatewayEVMUpgradeTestExecutedWithERC20Iterator{contract: _GatewayEVMUpgradeTest.contract, event: "ExecutedWithERC20", logs: logs, sub: sub}, nil } -// WatchDeposit is a free log subscription operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. +// WatchExecutedWithERC20 is a free log subscription operation binding the contract event 0x29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382. // -// 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) { +// 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 senderRule []interface{} - for _, senderItem := range sender { - senderRule = append(senderRule, senderItem) + var tokenRule []interface{} + for _, tokenItem := range token { + tokenRule = append(tokenRule, tokenItem) } - var receiverRule []interface{} - for _, receiverItem := range receiver { - receiverRule = append(receiverRule, receiverItem) + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) } - logs, sub, err := _GatewayEVMUpgradeTest.contract.WatchLogs(opts, "Deposit", senderRule, receiverRule) + logs, sub, err := _GatewayEVMUpgradeTest.contract.WatchLogs(opts, "ExecutedWithERC20", tokenRule, toRule) if err != nil { return nil, err } @@ -1279,8 +1737,8 @@ func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchDeposit(opts * 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 { + event := new(GatewayEVMUpgradeTestExecutedWithERC20) + if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "ExecutedWithERC20", log); err != nil { return err } event.Raw = log @@ -1301,21 +1759,21 @@ func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchDeposit(opts * }), nil } -// ParseDeposit is a log parse operation binding the contract event 0x2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4. +// ParseExecutedWithERC20 is a log parse operation binding the contract event 0x29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382. // -// 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 { +// 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 } -// 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 +// 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 @@ -1329,7 +1787,7 @@ type GatewayEVMUpgradeTestExecutedIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more 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 { +func (it *GatewayEVMUpgradeTestInitializedIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -1338,7 +1796,7 @@ func (it *GatewayEVMUpgradeTestExecutedIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(GatewayEVMUpgradeTestExecuted) + it.Event = new(GatewayEVMUpgradeTestInitialized) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1353,7 +1811,7 @@ func (it *GatewayEVMUpgradeTestExecutedIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(GatewayEVMUpgradeTestExecuted) + it.Event = new(GatewayEVMUpgradeTestInitialized) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1369,53 +1827,175 @@ func (it *GatewayEVMUpgradeTestExecutedIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *GatewayEVMUpgradeTestExecutedIterator) Error() error { +func (it *GatewayEVMUpgradeTestInitializedIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *GatewayEVMUpgradeTestExecutedIterator) Close() error { +func (it *GatewayEVMUpgradeTestInitializedIterator) 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 +// GatewayEVMUpgradeTestInitialized represents a Initialized event raised by the GatewayEVMUpgradeTest contract. +type GatewayEVMUpgradeTestInitialized struct { + Version uint64 + Raw types.Log // Blockchain specific contextual infos } -// FilterExecuted is a free log retrieval operation binding the contract event 0xcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f. +// FilterInitialized is a free log retrieval operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. // -// Solidity: event Executed(address indexed destination, uint256 value, bytes data) -func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) FilterExecuted(opts *bind.FilterOpts, destination []common.Address) (*GatewayEVMUpgradeTestExecutedIterator, error) { +// Solidity: event Initialized(uint64 version) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) FilterInitialized(opts *bind.FilterOpts) (*GatewayEVMUpgradeTestInitializedIterator, error) { - var destinationRule []interface{} - for _, destinationItem := range destination { - destinationRule = append(destinationRule, destinationItem) + 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 +} - logs, sub, err := _GatewayEVMUpgradeTest.contract.FilterLogs(opts, "Executed", destinationRule) +// 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 +} + +// GatewayEVMUpgradeTestPausedIterator is returned from FilterPaused and is used to iterate over the raw logs and unpacked data for Paused events raised by the GatewayEVMUpgradeTest contract. +type GatewayEVMUpgradeTestPausedIterator struct { + Event *GatewayEVMUpgradeTestPaused // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayEVMUpgradeTestPausedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUpgradeTestPaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayEVMUpgradeTestPaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayEVMUpgradeTestPausedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayEVMUpgradeTestPausedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayEVMUpgradeTestPaused represents a Paused event raised by the GatewayEVMUpgradeTest contract. +type GatewayEVMUpgradeTestPaused struct { + Account common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterPaused is a free log retrieval operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. +// +// Solidity: event Paused(address account) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) FilterPaused(opts *bind.FilterOpts) (*GatewayEVMUpgradeTestPausedIterator, error) { + + logs, sub, err := _GatewayEVMUpgradeTest.contract.FilterLogs(opts, "Paused") if err != nil { return nil, err } - return &GatewayEVMUpgradeTestExecutedIterator{contract: _GatewayEVMUpgradeTest.contract, event: "Executed", logs: logs, sub: sub}, nil + return &GatewayEVMUpgradeTestPausedIterator{contract: _GatewayEVMUpgradeTest.contract, event: "Paused", logs: logs, sub: sub}, nil } -// WatchExecuted is a free log subscription operation binding the contract event 0xcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f. +// WatchPaused is a free log subscription operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. // -// 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) - } +// Solidity: event Paused(address account) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchPaused(opts *bind.WatchOpts, sink chan<- *GatewayEVMUpgradeTestPaused) (event.Subscription, error) { - logs, sub, err := _GatewayEVMUpgradeTest.contract.WatchLogs(opts, "Executed", destinationRule) + logs, sub, err := _GatewayEVMUpgradeTest.contract.WatchLogs(opts, "Paused") if err != nil { return nil, err } @@ -1425,8 +2005,8 @@ func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchExecuted(opts 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 { + event := new(GatewayEVMUpgradeTestPaused) + if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "Paused", log); err != nil { return err } event.Raw = log @@ -1447,21 +2027,21 @@ func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchExecuted(opts }), nil } -// ParseExecuted is a log parse operation binding the contract event 0xcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f. +// ParsePaused is a log parse operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. // -// 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 { +// Solidity: event Paused(address account) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) ParsePaused(log types.Log) (*GatewayEVMUpgradeTestPaused, error) { + event := new(GatewayEVMUpgradeTestPaused) + if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "Paused", 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 +// 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 @@ -1475,7 +2055,7 @@ type GatewayEVMUpgradeTestExecutedV2Iterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more 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 { +func (it *GatewayEVMUpgradeTestRevertedIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -1484,7 +2064,7 @@ func (it *GatewayEVMUpgradeTestExecutedV2Iterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(GatewayEVMUpgradeTestExecutedV2) + it.Event = new(GatewayEVMUpgradeTestReverted) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1499,7 +2079,7 @@ func (it *GatewayEVMUpgradeTestExecutedV2Iterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(GatewayEVMUpgradeTestExecutedV2) + it.Event = new(GatewayEVMUpgradeTestReverted) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1515,53 +2095,53 @@ func (it *GatewayEVMUpgradeTestExecutedV2Iterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *GatewayEVMUpgradeTestExecutedV2Iterator) Error() error { +func (it *GatewayEVMUpgradeTestRevertedIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *GatewayEVMUpgradeTestExecutedV2Iterator) Close() error { +func (it *GatewayEVMUpgradeTestRevertedIterator) Close() error { it.sub.Unsubscribe() return nil } -// GatewayEVMUpgradeTestExecutedV2 represents a ExecutedV2 event raised by the GatewayEVMUpgradeTest contract. -type GatewayEVMUpgradeTestExecutedV2 struct { +// 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 } -// FilterExecutedV2 is a free log retrieval operation binding the contract event 0x373df382b9c587826f3de13f16d67f8d99f28ee947fc0924c6ef2d6d2c7e8546. +// FilterReverted is a free log retrieval operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. // -// Solidity: event ExecutedV2(address indexed destination, uint256 value, bytes data) -func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) FilterExecutedV2(opts *bind.FilterOpts, destination []common.Address) (*GatewayEVMUpgradeTestExecutedV2Iterator, error) { +// 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, "ExecutedV2", destinationRule) + logs, sub, err := _GatewayEVMUpgradeTest.contract.FilterLogs(opts, "Reverted", destinationRule) if err != nil { return nil, err } - return &GatewayEVMUpgradeTestExecutedV2Iterator{contract: _GatewayEVMUpgradeTest.contract, event: "ExecutedV2", logs: logs, sub: sub}, nil + return &GatewayEVMUpgradeTestRevertedIterator{contract: _GatewayEVMUpgradeTest.contract, event: "Reverted", logs: logs, sub: sub}, nil } -// WatchExecutedV2 is a free log subscription operation binding the contract event 0x373df382b9c587826f3de13f16d67f8d99f28ee947fc0924c6ef2d6d2c7e8546. +// WatchReverted is a free log subscription operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. // -// 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) { +// 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, "ExecutedV2", destinationRule) + logs, sub, err := _GatewayEVMUpgradeTest.contract.WatchLogs(opts, "Reverted", destinationRule) if err != nil { return nil, err } @@ -1571,8 +2151,8 @@ func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchExecutedV2(opt 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 { + event := new(GatewayEVMUpgradeTestReverted) + if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "Reverted", log); err != nil { return err } event.Raw = log @@ -1593,21 +2173,21 @@ func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchExecutedV2(opt }), nil } -// ParseExecutedV2 is a log parse operation binding the contract event 0x373df382b9c587826f3de13f16d67f8d99f28ee947fc0924c6ef2d6d2c7e8546. +// ParseReverted is a log parse operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. // -// 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 { +// 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 } -// 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 +// 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 @@ -1621,7 +2201,7 @@ type GatewayEVMUpgradeTestExecutedWithERC20Iterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more 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 { +func (it *GatewayEVMUpgradeTestRevertedWithERC20Iterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -1630,7 +2210,7 @@ func (it *GatewayEVMUpgradeTestExecutedWithERC20Iterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(GatewayEVMUpgradeTestExecutedWithERC20) + it.Event = new(GatewayEVMUpgradeTestRevertedWithERC20) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1645,7 +2225,7 @@ func (it *GatewayEVMUpgradeTestExecutedWithERC20Iterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(GatewayEVMUpgradeTestExecutedWithERC20) + it.Event = new(GatewayEVMUpgradeTestRevertedWithERC20) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1661,19 +2241,19 @@ func (it *GatewayEVMUpgradeTestExecutedWithERC20Iterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *GatewayEVMUpgradeTestExecutedWithERC20Iterator) Error() error { +func (it *GatewayEVMUpgradeTestRevertedWithERC20Iterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *GatewayEVMUpgradeTestExecutedWithERC20Iterator) Close() error { +func (it *GatewayEVMUpgradeTestRevertedWithERC20Iterator) Close() error { it.sub.Unsubscribe() return nil } -// GatewayEVMUpgradeTestExecutedWithERC20 represents a ExecutedWithERC20 event raised by the GatewayEVMUpgradeTest contract. -type GatewayEVMUpgradeTestExecutedWithERC20 struct { +// GatewayEVMUpgradeTestRevertedWithERC20 represents a RevertedWithERC20 event raised by the GatewayEVMUpgradeTest contract. +type GatewayEVMUpgradeTestRevertedWithERC20 struct { Token common.Address To common.Address Amount *big.Int @@ -1681,10 +2261,10 @@ type GatewayEVMUpgradeTestExecutedWithERC20 struct { Raw types.Log // Blockchain specific contextual infos } -// FilterExecutedWithERC20 is a free log retrieval operation binding the contract event 0x29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382. +// FilterRevertedWithERC20 is a free log retrieval operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. // -// 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) { +// 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 { @@ -1695,17 +2275,17 @@ func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) FilterExecutedWithE toRule = append(toRule, toItem) } - logs, sub, err := _GatewayEVMUpgradeTest.contract.FilterLogs(opts, "ExecutedWithERC20", tokenRule, toRule) + logs, sub, err := _GatewayEVMUpgradeTest.contract.FilterLogs(opts, "RevertedWithERC20", tokenRule, toRule) if err != nil { return nil, err } - return &GatewayEVMUpgradeTestExecutedWithERC20Iterator{contract: _GatewayEVMUpgradeTest.contract, event: "ExecutedWithERC20", logs: logs, sub: sub}, nil + return &GatewayEVMUpgradeTestRevertedWithERC20Iterator{contract: _GatewayEVMUpgradeTest.contract, event: "RevertedWithERC20", logs: logs, sub: sub}, nil } -// WatchExecutedWithERC20 is a free log subscription operation binding the contract event 0x29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382. +// WatchRevertedWithERC20 is a free log subscription operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. // -// 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) { +// 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 { @@ -1716,7 +2296,7 @@ func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchExecutedWithER toRule = append(toRule, toItem) } - logs, sub, err := _GatewayEVMUpgradeTest.contract.WatchLogs(opts, "ExecutedWithERC20", tokenRule, toRule) + logs, sub, err := _GatewayEVMUpgradeTest.contract.WatchLogs(opts, "RevertedWithERC20", tokenRule, toRule) if err != nil { return nil, err } @@ -1726,8 +2306,8 @@ func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchExecutedWithER 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 { + event := new(GatewayEVMUpgradeTestRevertedWithERC20) + if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "RevertedWithERC20", log); err != nil { return err } event.Raw = log @@ -1748,21 +2328,21 @@ func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchExecutedWithER }), nil } -// ParseExecutedWithERC20 is a log parse operation binding the contract event 0x29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382. +// ParseRevertedWithERC20 is a log parse operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. // -// 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 { +// 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 } -// 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 +// GatewayEVMUpgradeTestRoleAdminChangedIterator is returned from FilterRoleAdminChanged and is used to iterate over the raw logs and unpacked data for RoleAdminChanged events raised by the GatewayEVMUpgradeTest contract. +type GatewayEVMUpgradeTestRoleAdminChangedIterator struct { + Event *GatewayEVMUpgradeTestRoleAdminChanged // Event containing the contract specifics and raw log contract *bind.BoundContract // Generic contract to use for unpacking event data event string // Event name to use for unpacking event data @@ -1776,7 +2356,7 @@ type GatewayEVMUpgradeTestInitializedIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more 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 { +func (it *GatewayEVMUpgradeTestRoleAdminChangedIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -1785,7 +2365,7 @@ func (it *GatewayEVMUpgradeTestInitializedIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(GatewayEVMUpgradeTestInitialized) + it.Event = new(GatewayEVMUpgradeTestRoleAdminChanged) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1800,7 +2380,7 @@ func (it *GatewayEVMUpgradeTestInitializedIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(GatewayEVMUpgradeTestInitialized) + it.Event = new(GatewayEVMUpgradeTestRoleAdminChanged) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1816,41 +2396,69 @@ func (it *GatewayEVMUpgradeTestInitializedIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *GatewayEVMUpgradeTestInitializedIterator) Error() error { +func (it *GatewayEVMUpgradeTestRoleAdminChangedIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *GatewayEVMUpgradeTestInitializedIterator) Close() error { +func (it *GatewayEVMUpgradeTestRoleAdminChangedIterator) Close() error { it.sub.Unsubscribe() return nil } -// GatewayEVMUpgradeTestInitialized represents a Initialized event raised by the GatewayEVMUpgradeTest contract. -type GatewayEVMUpgradeTestInitialized struct { - Version uint8 - Raw types.Log // Blockchain specific contextual infos +// GatewayEVMUpgradeTestRoleAdminChanged represents a RoleAdminChanged event raised by the GatewayEVMUpgradeTest contract. +type GatewayEVMUpgradeTestRoleAdminChanged struct { + Role [32]byte + PreviousAdminRole [32]byte + NewAdminRole [32]byte + Raw types.Log // Blockchain specific contextual infos } -// FilterInitialized is a free log retrieval operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. +// FilterRoleAdminChanged is a free log retrieval operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. // -// Solidity: event Initialized(uint8 version) -func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) FilterInitialized(opts *bind.FilterOpts) (*GatewayEVMUpgradeTestInitializedIterator, error) { +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) FilterRoleAdminChanged(opts *bind.FilterOpts, role [][32]byte, previousAdminRole [][32]byte, newAdminRole [][32]byte) (*GatewayEVMUpgradeTestRoleAdminChangedIterator, error) { - logs, sub, err := _GatewayEVMUpgradeTest.contract.FilterLogs(opts, "Initialized") + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var previousAdminRoleRule []interface{} + for _, previousAdminRoleItem := range previousAdminRole { + previousAdminRoleRule = append(previousAdminRoleRule, previousAdminRoleItem) + } + var newAdminRoleRule []interface{} + for _, newAdminRoleItem := range newAdminRole { + newAdminRoleRule = append(newAdminRoleRule, newAdminRoleItem) + } + + logs, sub, err := _GatewayEVMUpgradeTest.contract.FilterLogs(opts, "RoleAdminChanged", roleRule, previousAdminRoleRule, newAdminRoleRule) if err != nil { return nil, err } - return &GatewayEVMUpgradeTestInitializedIterator{contract: _GatewayEVMUpgradeTest.contract, event: "Initialized", logs: logs, sub: sub}, nil + return &GatewayEVMUpgradeTestRoleAdminChangedIterator{contract: _GatewayEVMUpgradeTest.contract, event: "RoleAdminChanged", logs: logs, sub: sub}, nil } -// WatchInitialized is a free log subscription operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. +// WatchRoleAdminChanged is a free log subscription operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. // -// Solidity: event Initialized(uint8 version) -func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *GatewayEVMUpgradeTestInitialized) (event.Subscription, error) { +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchRoleAdminChanged(opts *bind.WatchOpts, sink chan<- *GatewayEVMUpgradeTestRoleAdminChanged, role [][32]byte, previousAdminRole [][32]byte, newAdminRole [][32]byte) (event.Subscription, error) { - logs, sub, err := _GatewayEVMUpgradeTest.contract.WatchLogs(opts, "Initialized") + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var previousAdminRoleRule []interface{} + for _, previousAdminRoleItem := range previousAdminRole { + previousAdminRoleRule = append(previousAdminRoleRule, previousAdminRoleItem) + } + var newAdminRoleRule []interface{} + for _, newAdminRoleItem := range newAdminRole { + newAdminRoleRule = append(newAdminRoleRule, newAdminRoleItem) + } + + logs, sub, err := _GatewayEVMUpgradeTest.contract.WatchLogs(opts, "RoleAdminChanged", roleRule, previousAdminRoleRule, newAdminRoleRule) if err != nil { return nil, err } @@ -1860,8 +2468,8 @@ func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchInitialized(op 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 { + event := new(GatewayEVMUpgradeTestRoleAdminChanged) + if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "RoleAdminChanged", log); err != nil { return err } event.Raw = log @@ -1882,21 +2490,21 @@ func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchInitialized(op }), nil } -// ParseInitialized is a log parse operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. +// ParseRoleAdminChanged is a log parse operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. // -// Solidity: event Initialized(uint8 version) -func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) ParseInitialized(log types.Log) (*GatewayEVMUpgradeTestInitialized, error) { - event := new(GatewayEVMUpgradeTestInitialized) - if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "Initialized", log); err != nil { +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) ParseRoleAdminChanged(log types.Log) (*GatewayEVMUpgradeTestRoleAdminChanged, error) { + event := new(GatewayEVMUpgradeTestRoleAdminChanged) + if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "RoleAdminChanged", 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 +// GatewayEVMUpgradeTestRoleGrantedIterator is returned from FilterRoleGranted and is used to iterate over the raw logs and unpacked data for RoleGranted events raised by the GatewayEVMUpgradeTest contract. +type GatewayEVMUpgradeTestRoleGrantedIterator struct { + Event *GatewayEVMUpgradeTestRoleGranted // Event containing the contract specifics and raw log contract *bind.BoundContract // Generic contract to use for unpacking event data event string // Event name to use for unpacking event data @@ -1910,7 +2518,7 @@ type GatewayEVMUpgradeTestOwnershipTransferredIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more 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 { +func (it *GatewayEVMUpgradeTestRoleGrantedIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -1919,7 +2527,7 @@ func (it *GatewayEVMUpgradeTestOwnershipTransferredIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(GatewayEVMUpgradeTestOwnershipTransferred) + it.Event = new(GatewayEVMUpgradeTestRoleGranted) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1934,7 +2542,7 @@ func (it *GatewayEVMUpgradeTestOwnershipTransferredIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(GatewayEVMUpgradeTestOwnershipTransferred) + it.Event = new(GatewayEVMUpgradeTestRoleGranted) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -1950,60 +2558,69 @@ func (it *GatewayEVMUpgradeTestOwnershipTransferredIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *GatewayEVMUpgradeTestOwnershipTransferredIterator) Error() error { +func (it *GatewayEVMUpgradeTestRoleGrantedIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *GatewayEVMUpgradeTestOwnershipTransferredIterator) Close() error { +func (it *GatewayEVMUpgradeTestRoleGrantedIterator) 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 +// GatewayEVMUpgradeTestRoleGranted represents a RoleGranted event raised by the GatewayEVMUpgradeTest contract. +type GatewayEVMUpgradeTestRoleGranted struct { + Role [32]byte + Account common.Address + Sender common.Address + Raw types.Log // Blockchain specific contextual infos } -// FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// FilterRoleGranted is a free log retrieval operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. // -// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) -func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*GatewayEVMUpgradeTestOwnershipTransferredIterator, error) { +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) FilterRoleGranted(opts *bind.FilterOpts, role [][32]byte, account []common.Address, sender []common.Address) (*GatewayEVMUpgradeTestRoleGrantedIterator, error) { - var previousOwnerRule []interface{} - for _, previousOwnerItem := range previousOwner { - previousOwnerRule = append(previousOwnerRule, previousOwnerItem) + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) } - var newOwnerRule []interface{} - for _, newOwnerItem := range newOwner { - newOwnerRule = append(newOwnerRule, newOwnerItem) + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) } - logs, sub, err := _GatewayEVMUpgradeTest.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + logs, sub, err := _GatewayEVMUpgradeTest.contract.FilterLogs(opts, "RoleGranted", roleRule, accountRule, senderRule) if err != nil { return nil, err } - return &GatewayEVMUpgradeTestOwnershipTransferredIterator{contract: _GatewayEVMUpgradeTest.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil + return &GatewayEVMUpgradeTestRoleGrantedIterator{contract: _GatewayEVMUpgradeTest.contract, event: "RoleGranted", logs: logs, sub: sub}, nil } -// WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// WatchRoleGranted is a free log subscription operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. // -// 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) { +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchRoleGranted(opts *bind.WatchOpts, sink chan<- *GatewayEVMUpgradeTestRoleGranted, role [][32]byte, account []common.Address, sender []common.Address) (event.Subscription, error) { - var previousOwnerRule []interface{} - for _, previousOwnerItem := range previousOwner { - previousOwnerRule = append(previousOwnerRule, previousOwnerItem) + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) } - var newOwnerRule []interface{} - for _, newOwnerItem := range newOwner { - newOwnerRule = append(newOwnerRule, newOwnerItem) + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) } - logs, sub, err := _GatewayEVMUpgradeTest.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + logs, sub, err := _GatewayEVMUpgradeTest.contract.WatchLogs(opts, "RoleGranted", roleRule, accountRule, senderRule) if err != nil { return nil, err } @@ -2013,8 +2630,8 @@ func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchOwnershipTrans 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 { + event := new(GatewayEVMUpgradeTestRoleGranted) + if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "RoleGranted", log); err != nil { return err } event.Raw = log @@ -2035,21 +2652,21 @@ func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchOwnershipTrans }), nil } -// ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// ParseRoleGranted is a log parse operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. // -// 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 { +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) ParseRoleGranted(log types.Log) (*GatewayEVMUpgradeTestRoleGranted, error) { + event := new(GatewayEVMUpgradeTestRoleGranted) + if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "RoleGranted", 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 +// GatewayEVMUpgradeTestRoleRevokedIterator is returned from FilterRoleRevoked and is used to iterate over the raw logs and unpacked data for RoleRevoked events raised by the GatewayEVMUpgradeTest contract. +type GatewayEVMUpgradeTestRoleRevokedIterator struct { + Event *GatewayEVMUpgradeTestRoleRevoked // Event containing the contract specifics and raw log contract *bind.BoundContract // Generic contract to use for unpacking event data event string // Event name to use for unpacking event data @@ -2063,7 +2680,7 @@ type GatewayEVMUpgradeTestRevertedIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more 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 { +func (it *GatewayEVMUpgradeTestRoleRevokedIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -2072,7 +2689,7 @@ func (it *GatewayEVMUpgradeTestRevertedIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(GatewayEVMUpgradeTestReverted) + it.Event = new(GatewayEVMUpgradeTestRoleRevoked) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -2087,7 +2704,7 @@ func (it *GatewayEVMUpgradeTestRevertedIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(GatewayEVMUpgradeTestReverted) + it.Event = new(GatewayEVMUpgradeTestRoleRevoked) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -2103,53 +2720,69 @@ func (it *GatewayEVMUpgradeTestRevertedIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *GatewayEVMUpgradeTestRevertedIterator) Error() error { +func (it *GatewayEVMUpgradeTestRoleRevokedIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *GatewayEVMUpgradeTestRevertedIterator) Close() error { +func (it *GatewayEVMUpgradeTestRoleRevokedIterator) 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 +// GatewayEVMUpgradeTestRoleRevoked represents a RoleRevoked event raised by the GatewayEVMUpgradeTest contract. +type GatewayEVMUpgradeTestRoleRevoked struct { + Role [32]byte + Account common.Address + Sender common.Address + Raw types.Log // Blockchain specific contextual infos } -// FilterReverted is a free log retrieval operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. +// FilterRoleRevoked is a free log retrieval operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. // -// Solidity: event Reverted(address indexed destination, uint256 value, bytes data) -func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) FilterReverted(opts *bind.FilterOpts, destination []common.Address) (*GatewayEVMUpgradeTestRevertedIterator, error) { +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) FilterRoleRevoked(opts *bind.FilterOpts, role [][32]byte, account []common.Address, sender []common.Address) (*GatewayEVMUpgradeTestRoleRevokedIterator, error) { - var destinationRule []interface{} - for _, destinationItem := range destination { - destinationRule = append(destinationRule, destinationItem) + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) } - logs, sub, err := _GatewayEVMUpgradeTest.contract.FilterLogs(opts, "Reverted", destinationRule) + logs, sub, err := _GatewayEVMUpgradeTest.contract.FilterLogs(opts, "RoleRevoked", roleRule, accountRule, senderRule) if err != nil { return nil, err } - return &GatewayEVMUpgradeTestRevertedIterator{contract: _GatewayEVMUpgradeTest.contract, event: "Reverted", logs: logs, sub: sub}, nil + return &GatewayEVMUpgradeTestRoleRevokedIterator{contract: _GatewayEVMUpgradeTest.contract, event: "RoleRevoked", logs: logs, sub: sub}, nil } -// WatchReverted is a free log subscription operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. +// WatchRoleRevoked is a free log subscription operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. // -// 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) { +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchRoleRevoked(opts *bind.WatchOpts, sink chan<- *GatewayEVMUpgradeTestRoleRevoked, role [][32]byte, account []common.Address, sender []common.Address) (event.Subscription, error) { - var destinationRule []interface{} - for _, destinationItem := range destination { - destinationRule = append(destinationRule, destinationItem) + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) } - logs, sub, err := _GatewayEVMUpgradeTest.contract.WatchLogs(opts, "Reverted", destinationRule) + logs, sub, err := _GatewayEVMUpgradeTest.contract.WatchLogs(opts, "RoleRevoked", roleRule, accountRule, senderRule) if err != nil { return nil, err } @@ -2159,8 +2792,8 @@ func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchReverted(opts 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 { + event := new(GatewayEVMUpgradeTestRoleRevoked) + if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "RoleRevoked", log); err != nil { return err } event.Raw = log @@ -2181,21 +2814,21 @@ func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchReverted(opts }), nil } -// ParseReverted is a log parse operation binding the contract event 0xd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c. +// ParseRoleRevoked is a log parse operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. // -// 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 { +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) ParseRoleRevoked(log types.Log) (*GatewayEVMUpgradeTestRoleRevoked, error) { + event := new(GatewayEVMUpgradeTestRoleRevoked) + if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "RoleRevoked", 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 +// GatewayEVMUpgradeTestUnpausedIterator is returned from FilterUnpaused and is used to iterate over the raw logs and unpacked data for Unpaused events raised by the GatewayEVMUpgradeTest contract. +type GatewayEVMUpgradeTestUnpausedIterator struct { + Event *GatewayEVMUpgradeTestUnpaused // Event containing the contract specifics and raw log contract *bind.BoundContract // Generic contract to use for unpacking event data event string // Event name to use for unpacking event data @@ -2209,7 +2842,7 @@ type GatewayEVMUpgradeTestRevertedWithERC20Iterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more 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 { +func (it *GatewayEVMUpgradeTestUnpausedIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -2218,7 +2851,7 @@ func (it *GatewayEVMUpgradeTestRevertedWithERC20Iterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(GatewayEVMUpgradeTestRevertedWithERC20) + it.Event = new(GatewayEVMUpgradeTestUnpaused) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -2233,7 +2866,7 @@ func (it *GatewayEVMUpgradeTestRevertedWithERC20Iterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(GatewayEVMUpgradeTestRevertedWithERC20) + it.Event = new(GatewayEVMUpgradeTestUnpaused) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -2249,62 +2882,41 @@ func (it *GatewayEVMUpgradeTestRevertedWithERC20Iterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *GatewayEVMUpgradeTestRevertedWithERC20Iterator) Error() error { +func (it *GatewayEVMUpgradeTestUnpausedIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *GatewayEVMUpgradeTestRevertedWithERC20Iterator) Close() error { +func (it *GatewayEVMUpgradeTestUnpausedIterator) 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 +// GatewayEVMUpgradeTestUnpaused represents a Unpaused event raised by the GatewayEVMUpgradeTest contract. +type GatewayEVMUpgradeTestUnpaused struct { + Account common.Address + Raw types.Log // Blockchain specific contextual infos } -// FilterRevertedWithERC20 is a free log retrieval operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. +// FilterUnpaused is a free log retrieval operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. // -// 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) - } +// Solidity: event Unpaused(address account) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) FilterUnpaused(opts *bind.FilterOpts) (*GatewayEVMUpgradeTestUnpausedIterator, error) { - logs, sub, err := _GatewayEVMUpgradeTest.contract.FilterLogs(opts, "RevertedWithERC20", tokenRule, toRule) + logs, sub, err := _GatewayEVMUpgradeTest.contract.FilterLogs(opts, "Unpaused") if err != nil { return nil, err } - return &GatewayEVMUpgradeTestRevertedWithERC20Iterator{contract: _GatewayEVMUpgradeTest.contract, event: "RevertedWithERC20", logs: logs, sub: sub}, nil + return &GatewayEVMUpgradeTestUnpausedIterator{contract: _GatewayEVMUpgradeTest.contract, event: "Unpaused", logs: logs, sub: sub}, nil } -// WatchRevertedWithERC20 is a free log subscription operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. +// WatchUnpaused is a free log subscription operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. // -// 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) - } +// Solidity: event Unpaused(address account) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchUnpaused(opts *bind.WatchOpts, sink chan<- *GatewayEVMUpgradeTestUnpaused) (event.Subscription, error) { - logs, sub, err := _GatewayEVMUpgradeTest.contract.WatchLogs(opts, "RevertedWithERC20", tokenRule, toRule) + logs, sub, err := _GatewayEVMUpgradeTest.contract.WatchLogs(opts, "Unpaused") if err != nil { return nil, err } @@ -2314,8 +2926,8 @@ func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchRevertedWithER 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 { + event := new(GatewayEVMUpgradeTestUnpaused) + if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "Unpaused", log); err != nil { return err } event.Raw = log @@ -2336,12 +2948,12 @@ func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) WatchRevertedWithER }), nil } -// ParseRevertedWithERC20 is a log parse operation binding the contract event 0x723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda7. +// ParseUnpaused is a log parse operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. // -// 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 { +// Solidity: event Unpaused(address account) +func (_GatewayEVMUpgradeTest *GatewayEVMUpgradeTestFilterer) ParseUnpaused(log types.Log) (*GatewayEVMUpgradeTestUnpaused, error) { + event := new(GatewayEVMUpgradeTestUnpaused) + if err := _GatewayEVMUpgradeTest.contract.UnpackLog(event, "Unpaused", log); err != nil { return nil, err } event.Raw = log diff --git a/v2/pkg/gatewayevmzevm.t.sol/gatewayevmzevmtest.go b/v2/pkg/gatewayevmzevm.t.sol/gatewayevmzevmtest.go new file mode 100644 index 00000000..50ea2350 --- /dev/null +++ b/v2/pkg/gatewayevmzevm.t.sol/gatewayevmzevmtest.go @@ -0,0 +1,5566 @@ +// 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\":\"chainId\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"},{\"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\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"chainId\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"},{\"name\":\"receiver\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"zrc20\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"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\":\"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: "0x6080604052600c8054600160ff199182168117909255601f80549091169091179055348015602c57600080fd5b50620105c6806200003e6000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c806385226c81116100b2578063b5508aa911610081578063d7a525fc11610066578063d7a525fc146101ec578063e20c9f71146101f4578063fa7626d4146101fc57600080fd5b8063b5508aa9146101cc578063ba414fa6146101d457600080fd5b806385226c8114610192578063916a17c6146101a75780639683c695146101bc578063b0464fdc146101c457600080fd5b80633f7286f4116100ee5780633f7286f414610165578063524744131461016d57806366d9a9a0146101755780636ff15ccc1461018a57600080fd5b80630a9254e4146101205780631ed7831c1461012a5780632ade3880146101485780633e5e3c231461015d575b600080fd5b610128610209565b005b61013261118d565b60405161013f9190617944565b60405180910390f35b6101506111ef565b60405161013f91906179e0565b610132611331565b610132611391565b6101286113f1565b61017d611c4e565b60405161013f9190617b46565b610128611dd0565b61019a6125e8565b60405161013f9190617be4565b6101af6126b8565b60405161013f9190617c5b565b6101286127b3565b6101af612d2f565b61019a612e2a565b6101dc612efa565b604051901515815260200161013f565b610128612fce565b6101326136b0565b601f546101dc9060ff1681565b602680547fffffffffffffffffffffffff00000000000000000000000000000000000000009081163017909155602780548216611234179055602880548216615678179055602e805490911661432117905560405161026790617829565b60408082526004908201527f746573740000000000000000000000000000000000000000000000000000000060608201526080602082018190526003908201527f54544b000000000000000000000000000000000000000000000000000000000060a082015260c001604051809103906000f0801580156102ec573d6000803e3d6000fd5b50602380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905560405161033190617829565b604080825260049082018190527f7a6574610000000000000000000000000000000000000000000000000000000060608301526080602083018190528201527f5a4554410000000000000000000000000000000000000000000000000000000060a082015260c001604051809103906000f0801580156103b5573d6000803e3d6000fd5b50602480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283169081178255604080518082018252600e81527f4761746577617945564d2e736f6c0000000000000000000000000000000000006020820152602854602654925190861694810194909452604484019290925290921660648201526104a6919060840160408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc0c53b8b00000000000000000000000000000000000000000000000000000000179052613710565b601f80547fffffffffffffffffffffff0000000000000000000000000000000000000000ff166101006001600160a01b0393841681029190911791829055602080549190920483167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560285460265460405192939182169291169061053290617837565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103906000f08015801561056e573d6000803e3d6000fd5b50602180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392831617905560205460245460285460265460405193851694928316939183169216906105c990617845565b6001600160a01b039485168152928416602084015290831660408301529091166060820152608001604051809103906000f08015801561060d573d6000803e3d6000fd5b50602280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283161790556028546040517fc88a5e6d00000000000000000000000000000000000000000000000000000000815291166004820152670de0b6b3a76400006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d90604401600060405180830381600087803b1580156106b957600080fd5b505af11580156106cd573d6000803e3d6000fd5b50506026546040517f06447d560000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d569150602401600060405180830381600087803b15801561074357600080fd5b505af1158015610757573d6000803e3d6000fd5b50506020546021546040517fae7a3a6f0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201529116925063ae7a3a6f9150602401600060405180830381600087803b1580156107bd57600080fd5b505af11580156107d1573d6000803e3d6000fd5b50506020546022546040517f10188aef0000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152911692506310188aef9150602401600060405180830381600087803b15801561083757600080fd5b505af115801561084b573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156108ad57600080fd5b505af11580156108c1573d6000803e3d6000fd5b50506023546026546040517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152620f42406024820152911692506340c10f199150604401600060405180830381600087803b15801561093057600080fd5b505af1158015610944573d6000803e3d6000fd5b50506023546021546040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201526207a12060248201529116925063a9059cbb91506044016020604051808303816000875af11580156109b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109dc9190617cf2565b506040516109e990617853565b604051809103906000f080158015610a05573d6000803e3d6000fd5b50602580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03928316179055604080518082018252600f81527f476174657761795a45564d2e736f6c0000000000000000000000000000000000602082015260248054602e54935190851691810191909152919092166044820152610aee919060640160408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f485cc95500000000000000000000000000000000000000000000000000000000179052613710565b602980546001600160a01b03929092167fffffffffffffffffffffffff00000000000000000000000000000000000000009283168117909155602a80549092168117909155604051610b3f90617861565b6001600160a01b039091168152602001604051809103906000f080158015610b6b573d6000803e3d6000fd5b50602b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03929092169190911790556040517f06447d5600000000000000000000000000000000000000000000000000000000815273735b14bb79463307aacbed86daf3322b1e6226ab6004820181905290737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d5690602401600060405180830381600087803b158015610c2057600080fd5b505af1158015610c34573d6000803e3d6000fd5b505050506000806000604051610c499061786f565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103906000f080158015610c85573d6000803e3d6000fd5b50602c80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03928316908117909155602a54604051601293600193600093849391921690610cdb9061787d565b610cea96959493929190617d14565b604051809103906000f080158015610d06573d6000803e3d6000fd5b50602d80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03928316908117909155602c546040517fee2815ba0000000000000000000000000000000000000000000000000000000081526001600482015260248101929092529091169063ee2815ba90604401600060405180830381600087803b158015610d9d57600080fd5b505af1158015610db1573d6000803e3d6000fd5b5050602c546040517fa7cb050700000000000000000000000000000000000000000000000000000000815260016004820181905260248201526001600160a01b03909116925063a7cb05079150604401600060405180830381600087803b158015610e1b57600080fd5b505af1158015610e2f573d6000803e3d6000fd5b5050602d54602e546040517f47e7ef240000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152620f42406024820152911692506347e7ef2491506044016020604051808303816000875af1158015610ea3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec79190617cf2565b50602d54602b546040517f47e7ef240000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152620f424060248201529116906347e7ef24906044016020604051808303816000875af1158015610f38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5c9190617cf2565b507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610fbb57600080fd5b505af1158015610fcf573d6000803e3d6000fd5b5050602e546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063ca669fa79150602401600060405180830381600087803b15801561104557600080fd5b505af1158015611059573d6000803e3d6000fd5b5050602d54602a546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152620f424060248201529116925063095ea7b391506044016020604051808303816000875af11580156110cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f19190617cf2565b506028546040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152670de0b6b3a76400006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d90604401600060405180830381600087803b15801561117257600080fd5b505af1158015611186573d6000803e3d6000fd5b5050505050565b606060168054806020026020016040519081016040528092919081815260200182805480156111e557602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116111c7575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020016000905b8282101561132857600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101561131157838290600052602060002001805461128490617e09565b80601f01602080910402602001604051908101604052809291908181526020018280546112b090617e09565b80156112fd5780601f106112d2576101008083540402835291602001916112fd565b820191906000526020600020905b8154815290600101906020018083116112e057829003601f168201915b505050505081526020019060010190611265565b505050508152505081526020019060010190611213565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156111e5576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116111c7575050505050905090565b606060178054806020026020016040519081016040528092919081815260200182805480156111e5576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116111c7575050505050905090565b604080518082018252600681527f48656c6c6f2100000000000000000000000000000000000000000000000000006020820152602d54602b5492517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0393841660048201529192602a92600192670de0b6b3a7640000926000929116906370a0823190602401602060405180830381865afa15801561149d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c19190617e56565b6040519091506000907fe04d4f9700000000000000000000000000000000000000000000000000000000906114fe90889088908890602401617e6f565b60408051601f19818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909516949094179093526025549051919350600092611597926001600160a01b03909216910160609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f1981840301815290829052602d546115c892620f4240916001600160a01b0316908690602401617e99565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7993c1e000000000000000000000000000000000000000000000000000000000179052602a5490517ff30c7ba3000000000000000000000000000000000000000000000000000000008152919250737109709ecfa91a80626ff3989d68f67f5b1dd12d9163f30c7ba391611685916001600160a01b0391909116906000908690600401617ed8565b600060405180830381600087803b15801561169f57600080fd5b505af11580156116b3573d6000803e3d6000fd5b5050602e546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063ca669fa79150602401600060405180830381600087803b15801561172957600080fd5b505af115801561173d573d6000803e3d6000fd5b5050602b5460255460405160609190911b6bffffffffffffffffffffffff191660208201526001600160a01b039091169250630abd8905915060340160408051601f1981840301815290829052602d547fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1683526117d792620f4240916001600160a01b0316908d908d908d90600401617f00565b600060405180830381600087803b1580156117f157600080fd5b505af1158015611805573d6000803e3d6000fd5b50506020546040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b03909116600482015260248101879052737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c88a5e6d9150604401600060405180830381600087803b15801561188257600080fd5b505af1158015611896573d6000803e3d6000fd5b50506025546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b15801561192857600080fd5b505af115801561193c573d6000803e3d6000fd5b50506020546040517f1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa935061198592506001600160a01b039091169087908b908b908b90617f55565b60405180910390a16020546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b158015611a1b57600080fd5b505af1158015611a2f573d6000803e3d6000fd5b50506025546040516001600160a01b0390911692507fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f9150611a749087908690617f96565b60405180910390a26028546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b158015611aee57600080fd5b505af1158015611b02573d6000803e3d6000fd5b50506020546025546040517f1cff79cd0000000000000000000000000000000000000000000000000000000081526001600160a01b039283169450631cff79cd93508892611b569216908790600401617faf565b60006040518083038185885af1158015611b74573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f19168201604052611b9d91908101906180b9565b50602d54602b546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260009291909116906370a0823190602401602060405180830381865afa158015611c08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c2c9190617e56565b9050611c4481611c3f620f42408761811d565b61372f565b5050505050505050565b6060601b805480602002602001604051908101604052809291908181526020016000905b828210156113285783829060005260206000209060020201604051806040016040529081600082018054611ca590617e09565b80601f0160208091040260200160405190810160405280929190818152602001828054611cd190617e09565b8015611d1e5780601f10611cf357610100808354040283529160200191611d1e565b820191906000526020600020905b815481529060010190602001808311611d0157829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015611db857602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411611d655790505b50505050508152505081526020019060010190611c72565b604080518082018252600681527f48656c6c6f21000000000000000000000000000000000000000000000000000060208201529051602a90600190670de0b6b3a7640000906000907fe04d4f970000000000000000000000000000000000000000000000000000000090611e4c90879087908790602401617e6f565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009490941693909317909252602a5491517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b0390921660848301529150737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b158015611f3b57600080fd5b505af1158015611f4f573d6000803e3d6000fd5b5050602e5460255460405160609190911b6bffffffffffffffffffffffff19166020820152600093506001600160a01b0390911691507fde19dbe881cc0aeeb6e73ce19ac7b5ca695e6be8a076e3eb42292005a7fec1b59060340160408051601f19818403018152828252602d547f4d8943bb000000000000000000000000000000000000000000000000000000008452915190926001600160a01b0390921691620f4240916000918491634d8943bb916004808201926020929091908290030181865afa158015612025573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120499190617e56565b8860405161205c96959493929190618130565b60405180910390a3602e546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b1580156120d657600080fd5b505af11580156120ea573d6000803e3d6000fd5b5050602a5460255460405160609190911b6bffffffffffffffffffffffff191660208201526001600160a01b039091169250637993c1e0915060340160408051601f1981840301815290829052602d547fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16835261218092620f4240916001600160a01b0316908790600401618183565b600060405180830381600087803b15801561219a57600080fd5b505af11580156121ae573d6000803e3d6000fd5b5050602d54602e546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260009450911691506370a0823190602401602060405180830381865afa15801561221a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061223e9190617e56565b905061224b81600061372f565b6020546040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b03909116600482015260248101849052737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d90604401600060405180830381600087803b1580156122c457600080fd5b505af11580156122d8573d6000803e3d6000fd5b50506025546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b15801561236a57600080fd5b505af115801561237e573d6000803e3d6000fd5b50506020546040517f1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa93506123c792506001600160a01b039091169086908a908a908a90617f55565b60405180910390a16020546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b15801561245d57600080fd5b505af1158015612471573d6000803e3d6000fd5b50506025546040516001600160a01b0390911692507fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f91506124b69086908690617f96565b60405180910390a26028546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b15801561253057600080fd5b505af1158015612544573d6000803e3d6000fd5b50506020546025546040517f1cff79cd0000000000000000000000000000000000000000000000000000000081526001600160a01b039283169450631cff79cd935087926125989216908790600401617faf565b60006040518083038185885af11580156125b6573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f191682016040526125df91908101906180b9565b50505050505050565b6060601a805480602002602001604051908101604052809291908181526020016000905b8282101561132857838290600052602060002001805461262b90617e09565b80601f016020809104026020016040519081016040528092919081815260200182805461265790617e09565b80156126a45780601f10612679576101008083540402835291602001916126a4565b820191906000526020600020905b81548152906001019060200180831161268757829003601f168201915b50505050508152602001906001019061260c565b6060601d805480602002602001604051908101604052809291908181526020016000905b828210156113285760008481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801561279b57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116127485790505b505050505081525050815260200190600101906126dc565b604080518082018252600681527f48656c6c6f21000000000000000000000000000000000000000000000000000060208201529051602a90600190670de0b6b3a76400009082906000907fe04d4f97000000000000000000000000000000000000000000000000000000009061283190889088908690602401617e6f565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009490941693909317909252602e5491517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b0390921660048301529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b15801561290457600080fd5b505af1158015612918573d6000803e3d6000fd5b5050602a546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b1580156129aa57600080fd5b505af11580156129be573d6000803e3d6000fd5b5050602e5460255460405160609190911b6bffffffffffffffffffffffff191660208201528593506001600160a01b0390911691507f5322ffbbf9261ff1f8138247942d2b03b28717141ef0a0dd080fc4be9c4e78d39060340160408051601f1981840301815290829052612a349186906181bd565b60405180910390a3602a5460255460405160609190911b6bffffffffffffffffffffffff191660208201526001600160a01b0390911690635d40e1789060340160405160208183030381529060405284846040518463ffffffff1660e01b8152600401612aa3939291906181e2565b600060405180830381600087803b158015612abd57600080fd5b505af1158015612ad1573d6000803e3d6000fd5b50506020546040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b03909116600482015260248101869052737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c88a5e6d9150604401600060405180830381600087803b158015612b4e57600080fd5b505af1158015612b62573d6000803e3d6000fd5b50506020546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b158015612bf457600080fd5b505af1158015612c08573d6000803e3d6000fd5b50506025546040516001600160a01b0390911692507fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f9150612c4d9086908590617f96565b60405180910390a26028546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b158015612cc757600080fd5b505af1158015612cdb573d6000803e3d6000fd5b50506020546025546040517f1cff79cd0000000000000000000000000000000000000000000000000000000081526001600160a01b039283169450631cff79cd935087926125989216908690600401617faf565b6060601c805480602002602001604051908101604052809291908181526020016000905b828210156113285760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015612e1257602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411612dbf5790505b50505050508152505081526020019060010190612d53565b60606019805480602002602001604051908101604052809291908181526020016000905b82821015611328578382906000526020600020018054612e6d90617e09565b80601f0160208091040260200160405190810160405280929190818152602001828054612e9990617e09565b8015612ee65780601f10612ebb57610100808354040283529160200191612ee6565b820191906000526020600020905b815481529060010190602001808311612ec957829003601f168201915b505050505081526020019060010190612e4e565b60085460009060ff1615612f12575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c65640000000000000000000000000000000000000000000000000000602483015260009163667f9d7090604401602060405180830381865afa158015612fa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fc79190617e56565b1415905090565b604080518082018252600681527f48656c6c6f21000000000000000000000000000000000000000000000000000060208201529051602a90600190670de0b6b3a76400009082906000907fe04d4f97000000000000000000000000000000000000000000000000000000009061304c90889088908690602401617e6f565b60408051601f19818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009095169490941790935260255490519193506000926130e5926001600160a01b03909216910160609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f198184030181529082905261310691859085906024016181e2565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f5d40e17800000000000000000000000000000000000000000000000000000000179052602a5490517ff30c7ba3000000000000000000000000000000000000000000000000000000008152919250737109709ecfa91a80626ff3989d68f67f5b1dd12d9163f30c7ba3916131c3916001600160a01b0391909116906000908690600401617ed8565b600060405180830381600087803b1580156131dd57600080fd5b505af11580156131f1573d6000803e3d6000fd5b5050602e546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063ca669fa79150602401600060405180830381600087803b15801561326757600080fd5b505af115801561327b573d6000803e3d6000fd5b5050602b5460255460405160609190911b6bffffffffffffffffffffffff191660208201526001600160a01b03909116925063865b36f69150603401604051602081830303815290604052858a8a8a6040518663ffffffff1660e01b81526004016132ea95949392919061820d565b600060405180830381600087803b15801561330457600080fd5b505af1158015613318573d6000803e3d6000fd5b50506020546040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b03909116600482015260248101879052737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c88a5e6d9150604401600060405180830381600087803b15801561339557600080fd5b505af11580156133a9573d6000803e3d6000fd5b50506025546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b15801561343b57600080fd5b505af115801561344f573d6000803e3d6000fd5b50506020546040517f1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa935061349892506001600160a01b039091169087908b908b908b90617f55565b60405180910390a16020546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b15801561352e57600080fd5b505af1158015613542573d6000803e3d6000fd5b50506025546040516001600160a01b0390911692507fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f91506135879087908690617f96565b60405180910390a26028546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b15801561360157600080fd5b505af1158015613615573d6000803e3d6000fd5b50506020546025546040517f1cff79cd0000000000000000000000000000000000000000000000000000000081526001600160a01b039283169450631cff79cd935088926136699216908790600401617faf565b60006040518083038185885af1158015613687573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f19168201604052611c4491908101906180b9565b606060158054806020026020016040519081016040528092919081815260200182805480156111e5576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116111c7575050505050905090565b600061371a61788b565b6137258484836137b6565b9150505b92915050565b6040517f98296c540000000000000000000000000000000000000000000000000000000081526004810183905260248101829052737109709ecfa91a80626ff3989d68f67f5b1dd12d906398296c549060440160006040518083038186803b15801561379a57600080fd5b505afa1580156137ae573d6000803e3d6000fd5b505050505050565b6000806137c38584613831565b90506138266040518060400160405280601d81526020017f4552433139363750726f78792e736f6c3a4552433139363750726f78790000008152508286604051602001613811929190617faf565b6040516020818303038152906040528561383d565b9150505b9392505050565b600061382a838361386b565b60c081015151600090156138615761385a84848460c00151613886565b905061382a565b61385a8484613a2c565b60006138778383613b17565b61382a8383602001518461383d565b600080613891613b27565b9050600061389f8683613bfa565b905060006138b682606001518360200151856140a0565b905060006138c6838389896142b2565b905060006138d38261512f565b602081015181519192509060030b15613946578982604001516040516020016138fd929190618252565b60408051601f19818403018152908290527f08c379a000000000000000000000000000000000000000000000000000000000825261393d916004016182d3565b60405180910390fd5b60006139896040518060400160405280601581526020017f4465706c6f79656420746f20616464726573733a2000000000000000000000008152508360016152fe565b6040517fc6ce059d000000000000000000000000000000000000000000000000000000008152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c6ce059d906139dc9084906004016182d3565b602060405180830381865afa1580156139f9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a1d91906182e6565b9b9a5050505050505050505050565b6040517f8d1cc9250000000000000000000000000000000000000000000000000000000081526000908190737109709ecfa91a80626ff3989d68f67f5b1dd12d90638d1cc92590613a819087906004016182d3565b600060405180830381865afa158015613a9e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613ac691908101906180b9565b90506000613af48285604051602001613ae092919061830f565b6040516020818303038152906040526154fe565b90506001600160a01b0381166137255784846040516020016138fd92919061833e565b613b2382826000615511565b5050565b604080518082018252600381527f6f75740000000000000000000000000000000000000000000000000000000000602082015290517fd145736c000000000000000000000000000000000000000000000000000000008152606091737109709ecfa91a80626ff3989d68f67f5b1dd12d91829063d145736c90613bae9084906004016183e9565b600060405180830381865afa158015613bcb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613bf39190810190618430565b9250505090565b613c2c6040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d9050613c776040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b613c8085615614565b60208201526000613c90866159f9565b90506000836001600160a01b031663d930a0e66040518163ffffffff1660e01b8152600401600060405180830381865afa158015613cd2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613cfa9190810190618430565b86838560200151604051602001613d149493929190618479565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291506000906001600160a01b038616906360f9bb1190613d6c9085906004016182d3565b600060405180830381865afa158015613d89573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613db19190810190618430565b6040517fdb4235f60000000000000000000000000000000000000000000000000000000081529091506001600160a01b0386169063db4235f690613df990849060040161857d565b602060405180830381865afa158015613e16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e3a9190617cf2565b613e4f57816040516020016138fd91906185cf565b6040517f49c4fac80000000000000000000000000000000000000000000000000000000081526001600160a01b038616906349c4fac890613e94908490600401618661565b600060405180830381865afa158015613eb1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613ed99190810190618430565b84526040517fdb4235f60000000000000000000000000000000000000000000000000000000081526001600160a01b0386169063db4235f690613f209084906004016186b3565b602060405180830381865afa158015613f3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f619190617cf2565b15613ff6576040517f49c4fac80000000000000000000000000000000000000000000000000000000081526001600160a01b038616906349c4fac890613fab9084906004016186b3565b600060405180830381865afa158015613fc8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613ff09190810190618430565b60408501525b846001600160a01b03166349c4fac882866000015160405160200161401b9190618705565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016140479291906181bd565b600060405180830381865afa158015614064573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261408c9190810190618430565b606085015250608083015250949350505050565b60408051600480825260a0820190925260609160009190816020015b60608152602001906001900390816140bc5790505090506040518060400160405280600481526020017f67726570000000000000000000000000000000000000000000000000000000008152508160008151811061411c5761411c618771565b60200260200101819052506040518060400160405280600381526020017f2d726c00000000000000000000000000000000000000000000000000000000008152508160018151811061417057614170618771565b60200260200101819052508460405160200161418c91906187a0565b604051602081830303815290604052816002815181106141ae576141ae618771565b6020026020010181905250826040516020016141ca919061880c565b604051602081830303815290604052816003815181106141ec576141ec618771565b602002602001018190525060006142028261512f565b602080820151604080518082018252600581527f2e6a736f6e00000000000000000000000000000000000000000000000000000081850190815282518084018452600080825290860152825180840190935290518252928101929092529192506142939060408051808201825260008082526020918201528151808301909252845182528085019082015290615c7c565b6142a857856040516020016138fd919061884d565b9695505050505050565b60a0810151604080518082018252600080825260209182015281518083019092528251808352928101910152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9015614302565b511590565b614476578260200151156143be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605860248201527f54686520606c6963656e73655479706560206f7074696f6e2063616e6e6f742060448201527f62652075736564207768656e207468652060736b6970566572696679536f757260648201527f6365436f646560206f7074696f6e206973206074727565600000000000000000608482015260a40161393d565b8260c0015115614476576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605360248201527f54686520606c6963656e73655479706560206f7074696f6e2063616e6e6f742060448201527f62652075736564207768656e207468652060736b69704c6963656e736554797060648201527f6560206f7074696f6e2069732060747275656000000000000000000000000000608482015260a40161393d565b6040805160ff8082526120008201909252600091816020015b606081526020019060019003908161448f57905050905060006040518060400160405280600381526020017f6e707800000000000000000000000000000000000000000000000000000000008152508282806144ea906188de565b935060ff16815181106144ff576144ff618771565b60200260200101819052506040518060400160405280600d81526020017f302e302e312d616c7068612e370000000000000000000000000000000000000081525060405160200161455091906188fd565b60405160208183030381529060405282828061456b906188de565b935060ff168151811061458057614580618771565b60200260200101819052506040518060400160405280600681526020017f6465706c6f7900000000000000000000000000000000000000000000000000008152508282806145cd906188de565b935060ff16815181106145e2576145e2618771565b60200260200101819052506040518060400160405280600e81526020017f2d2d636f6e74726163744e616d6500000000000000000000000000000000000081525082828061462f906188de565b935060ff168151811061464457614644618771565b60200260200101819052508760200151828280614660906188de565b935060ff168151811061467557614675618771565b60200260200101819052506040518060400160405280600e81526020017f2d2d636f6e7472616374506174680000000000000000000000000000000000008152508282806146c2906188de565b935060ff16815181106146d7576146d7618771565b6020908102919091010152875182826146ef816188de565b935060ff168151811061470457614704618771565b60200260200101819052506040518060400160405280600981526020017f2d2d636861696e49640000000000000000000000000000000000000000000000815250828280614751906188de565b935060ff168151811061476657614766618771565b602002602001018190525061477a46615cdd565b8282614785816188de565b935060ff168151811061479a5761479a618771565b60200260200101819052506040518060400160405280600f81526020017f2d2d6275696c64496e666f46696c6500000000000000000000000000000000008152508282806147e7906188de565b935060ff16815181106147fc576147fc618771565b602002602001018190525086828280614814906188de565b935060ff168151811061482957614829618771565b60209081029190910101528551156149505760408051808201909152601581527f2d2d636f6e7374727563746f7242797465636f646500000000000000000000006020820152828261487a816188de565b935060ff168151811061488f5761488f618771565b60209081029190910101526040517f71aad10d0000000000000000000000000000000000000000000000000000000081526001600160a01b038416906371aad10d906148df9089906004016182d3565b600060405180830381865afa1580156148fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526149249190810190618430565b828261492f816188de565b935060ff168151811061494457614944618771565b60200260200101819052505b846020015115614a205760408051808201909152601281527f2d2d766572696679536f75726365436f6465000000000000000000000000000060208201528282614999816188de565b935060ff16815181106149ae576149ae618771565b60200260200101819052506040518060400160405280600581526020017f66616c73650000000000000000000000000000000000000000000000000000008152508282806149fb906188de565b935060ff1681518110614a1057614a10618771565b6020026020010181905250614be7565b614a586142fd8660a0015160408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b614aeb5760408051808201909152600d81527f2d2d6c6963656e7365547970650000000000000000000000000000000000000060208201528282614a9b816188de565b935060ff1681518110614ab057614ab0618771565b60200260200101819052508460a00151604051602001614ad091906187a0565b6040516020818303038152906040528282806149fb906188de565b8460c00151158015614b2e575060408089015181518083018352600080825260209182015282518084019093528151835290810190820152614b2c90511590565b155b15614be75760408051808201909152600d81527f2d2d6c6963656e7365547970650000000000000000000000000000000000000060208201528282614b72816188de565b935060ff1681518110614b8757614b87618771565b6020026020010181905250614b9b88615d7d565b604051602001614bab91906187a0565b604051602081830303815290604052828280614bc6906188de565b935060ff1681518110614bdb57614bdb618771565b60200260200101819052505b60408086015181518083018352600080825260209182015282518084019093528151835290810190820152614c1b90511590565b614cb05760408051808201909152600b81527f2d2d72656c61796572496400000000000000000000000000000000000000000060208201528282614c5e816188de565b935060ff1681518110614c7357614c73618771565b60200260200101819052508460400151828280614c8f906188de565b935060ff1681518110614ca457614ca4618771565b60200260200101819052505b606085015115614dd15760408051808201909152600681527f2d2d73616c74000000000000000000000000000000000000000000000000000060208201528282614cf9816188de565b935060ff1681518110614d0e57614d0e618771565b602090810291909101015260608501516040517fb11a19e800000000000000000000000000000000000000000000000000000000815260048101919091526001600160a01b0384169063b11a19e890602401600060405180830381865afa158015614d7d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052614da59190810190618430565b8282614db0816188de565b935060ff1681518110614dc557614dc5618771565b60200260200101819052505b60e08501515115614e785760408051808201909152600a81527f2d2d6761734c696d69740000000000000000000000000000000000000000000060208201528282614e1b816188de565b935060ff1681518110614e3057614e30618771565b6020026020010181905250614e4c8560e0015160000151615cdd565b8282614e57816188de565b935060ff1681518110614e6c57614e6c618771565b60200260200101819052505b60e08501516020015115614f225760408051808201909152600a81527f2d2d67617350726963650000000000000000000000000000000000000000000060208201528282614ec5816188de565b935060ff1681518110614eda57614eda618771565b6020026020010181905250614ef68560e0015160200151615cdd565b8282614f01816188de565b935060ff1681518110614f1657614f16618771565b60200260200101819052505b60e08501516040015115614fcc5760408051808201909152600e81527f2d2d6d617846656550657247617300000000000000000000000000000000000060208201528282614f6f816188de565b935060ff1681518110614f8457614f84618771565b6020026020010181905250614fa08560e0015160400151615cdd565b8282614fab816188de565b935060ff1681518110614fc057614fc0618771565b60200260200101819052505b60e085015160600151156150765760408051808201909152601681527f2d2d6d61785072696f726974794665655065724761730000000000000000000060208201528282615019816188de565b935060ff168151811061502e5761502e618771565b602002602001018190525061504a8560e0015160600151615cdd565b8282615055816188de565b935060ff168151811061506a5761506a618771565b60200260200101819052505b60008160ff1667ffffffffffffffff81111561509457615094617fd1565b6040519080825280602002602001820160405280156150c757816020015b60608152602001906001900390816150b25790505b50905060005b8260ff168160ff16101561512057838160ff16815181106150f0576150f0618771565b6020026020010151828260ff168151811061510d5761510d618771565b60209081029190910101526001016150cd565b5093505050505b949350505050565b6151566040518060600160405280600060030b815260200160608152602001606081525090565b60408051808201825260048082527f6261736800000000000000000000000000000000000000000000000000000000602083015291517fd145736c000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d92600091849163d145736c916151dc91869101618968565b600060405180830381865afa1580156151f9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526152219190810190618430565b9050600061522f868361686c565b90506000846001600160a01b031663f45c1ce7836040518263ffffffff1660e01b815260040161525f9190617be4565b6000604051808303816000875af115801561527e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526152a691908101906189af565b805190915060030b158015906152bf5750602081015151155b80156152ce5750604081015151155b156142a857816000815181106152e6576152e6618771565b60200260200101516040516020016138fd9190618a65565b606060006153338560408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b60408051808201825260008082526020918201528151808301909252865182528087019082015290915061536a9082905b906169c1565b156154c75760006153e7826153e1846153db6153ad8a60408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b6040805180820182526000808252602091820152815180830190925282518252918201519181019190915290565b906169e8565b90616a4a565b604080518082018252600181527f0a000000000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015290915061544b9082906169c1565b156154b557604080518082018252600181527f0a00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526154b2905b8290616acf565b90505b6154be81616af5565b9250505061382a565b82156154e05784846040516020016138fd929190618c51565b505060408051602081019091526000815261382a565b509392505050565b6000808251602084016000f09392505050565b8160a001511561552057505050565b600061552d848484616b5e565b9050600061553a8261512f565b602081015181519192509060030b1580156155d65750604080518082018252600781527f5355434345535300000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526155d690604080518082018252600080825260209182015281518083019092528451825280850190820152615364565b156155e357505050505050565b604082015151156156035781604001516040516020016138fd9190618cf8565b806040516020016138fd9190618d56565b606060006156498360408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600481527f2e736f6c00000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201529091506156ae905b8290615c7c565b1561571d57604080518082018252600481527f2e736f6c000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261382a906157189083906170f9565b616af5565b604080518082018252600181527f3a000000000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261577f905b8290617183565b60010361584c57604080518082018252600181527f3a00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526157e5906154ab565b50604080518082018252600181527f3a000000000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261382a90615718905b8390616acf565b604080518082018252600581527f2e6a736f6e000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526158ab906156a7565b156159e257604080518082018252600181527f2f0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082018190528451808601909552925184528301529061591390839061721d565b905060008160018351615926919061811d565b8151811061593657615936618771565b602002602001015190506159d96157186159ac6040518060400160405280600581526020017f2e6a736f6e00000000000000000000000000000000000000000000000000000081525060408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600080825260209182015281518083019092528551825280860190820152906170f9565b95945050505050565b826040516020016138fd9190618dc1565b50919050565b60606000615a2e8360408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600481527f2e736f6c0000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152909150615a90906156a7565b15615a9e5761382a81616af5565b604080518082018252600181527f3a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615afd90615778565b600103615b6757604080518082018252600181527f3a000000000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261382a9061571890615845565b604080518082018252600581527f2e6a736f6e00000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615bc6906156a7565b156159e257604080518082018252600181527f2f00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820181905284518086019095529251845283015290615c2e90839061721d565b9050600181511115615c6a578060028251615c49919061811d565b81518110615c5957615c59618771565b602002602001015192505050919050565b50826040516020016138fd9190618dc1565b805182516000911115615c9157506000613729565b81518351602085015160009291615ca791618e9f565b615cb1919061811d565b905082602001518103615cc8576001915050613729565b82516020840151819020912014905092915050565b60606000615cea836172c2565b600101905060008167ffffffffffffffff811115615d0a57615d0a617fd1565b6040519080825280601f01601f191660200182016040528015615d34576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084615d3e57509392505050565b604081810151815180830183526000808252602091820181905283518085018552835181529282018383015283518085018552600a81527f554e4c4943454e5345440000000000000000000000000000000000000000000081840190815285518087018752838152840192909252845180860190955251845290830152606091615e09905b82906173a4565b15615e4957505060408051808201909152600481527f4e6f6e65000000000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600981527f556e6c6963656e7365000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615ea890615e02565b15615ee857505060408051808201909152600981527f556e6c6963656e736500000000000000000000000000000000000000000000006020820152919050565b604080518082018252600381527f4d4954000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615f4790615e02565b15615f8757505060408051808201909152600381527f4d495400000000000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f47504c2d322e302d6f6e6c79000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615fe690615e02565b8061604b5750604080518082018252601081527f47504c2d322e302d6f722d6c61746572000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261604b90615e02565b1561608b57505060408051808201909152600981527f474e552047504c763200000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f47504c2d332e302d6f6e6c790000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526160ea90615e02565b8061614f5750604080518082018252601081527f47504c2d332e302d6f722d6c61746572000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261614f90615e02565b1561618f57505060408051808201909152600981527f474e552047504c763300000000000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4c47504c2d322e312d6f6e6c7900000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526161ee90615e02565b806162535750604080518082018252601181527f4c47504c2d322e312d6f722d6c617465720000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261625390615e02565b1561629357505060408051808201909152600c81527f474e55204c47504c76322e3100000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4c47504c2d332e302d6f6e6c7900000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526162f290615e02565b806163575750604080518082018252601181527f4c47504c2d332e302d6f722d6c617465720000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261635790615e02565b1561639757505060408051808201909152600a81527f474e55204c47504c7633000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f4253442d322d436c617573650000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526163f690615e02565b1561643657505060408051808201909152600c81527f4253442d322d436c6175736500000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f4253442d332d436c6175736500000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261649590615e02565b156164d557505060408051808201909152600c81527f4253442d332d436c6175736500000000000000000000000000000000000000006020820152919050565b604080518082018252600781527f4d504c2d322e30000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261653490615e02565b1561657457505060408051808201909152600781527f4d504c2d322e30000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600781527f4f534c2d332e3000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526165d390615e02565b1561661357505060408051808201909152600781527f4f534c2d332e30000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600a81527f4170616368652d322e30000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261667290615e02565b156166b257505060408051808201909152600a81527f4170616368652d322e30000000000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4147504c2d332e302d6f6e6c79000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261671190615e02565b806167765750604080518082018252601181527f4147504c2d332e302d6f722d6c617465720000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261677690615e02565b156167b657505060408051808201909152600a81527f474e55204147504c7633000000000000000000000000000000000000000000006020820152919050565b604080518082018252600881527f4255534c2d312e310000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261681590615e02565b1561685557505060408051808201909152600781527f42534c20312e31000000000000000000000000000000000000000000000000006020820152919050565b604080840151845191516138fd9290602001618eb2565b60608060005b84518110156168f7578185828151811061688e5761688e618771565b60200260200101516040516020016168a792919061830f565b6040516020818303038152906040529150600185516168c6919061811d565b81146168ef57816040516020016168dd919061901b565b60405160208183030381529060405291505b600101616872565b5060408051600380825260808201909252600091816020015b6060815260200190600190039081616910579050509050838160008151811061693b5761693b618771565b60200260200101819052506040518060400160405280600281526020017f2d630000000000000000000000000000000000000000000000000000000000008152508160018151811061698f5761698f618771565b602002602001018190525081816002815181106169ae576169ae618771565b6020908102919091010152949350505050565b60208083015183518351928401516000936169df92918491906173b8565b14159392505050565b60408051808201909152600080825260208201526000616a1a84600001518560200151856000015186602001516174c9565b9050836020015181616a2c919061811d565b84518590616a3b90839061811d565b90525060208401525090919050565b6040805180820190915260008082526020820152815183511015616a6f575081613729565b6020808301519084015160019114616a965750815160208481015190840151829020919020145b8015616ac757825184518590616aad90839061811d565b9052508251602085018051616ac3908390618e9f565b9052505b509192915050565b6040805180820190915260008082526020820152616aee8383836175e9565b5092915050565b60606000826000015167ffffffffffffffff811115616b1657616b16617fd1565b6040519080825280601f01601f191660200182016040528015616b40576020820181803683370190505b5090506000602082019050616aee8185602001518660000151617694565b60606000616b6a613b27565b6040805160ff808252612000820190925291925060009190816020015b6060815260200190600190039081616b8757905050905060006040518060400160405280600381526020017f6e70780000000000000000000000000000000000000000000000000000000000815250828280616be2906188de565b935060ff1681518110616bf757616bf7618771565b60200260200101819052506040518060400160405280600781526020017f5e312e33322e3300000000000000000000000000000000000000000000000000815250604051602001616c48919061905c565b604051602081830303815290604052828280616c63906188de565b935060ff1681518110616c7857616c78618771565b60200260200101819052506040518060400160405280600881526020017f76616c6964617465000000000000000000000000000000000000000000000000815250828280616cc5906188de565b935060ff1681518110616cda57616cda618771565b602002602001018190525082604051602001616cf6919061880c565b604051602081830303815290604052828280616d11906188de565b935060ff1681518110616d2657616d26618771565b60200260200101819052506040518060400160405280600a81526020017f2d2d636f6e747261637400000000000000000000000000000000000000000000815250828280616d73906188de565b935060ff1681518110616d8857616d88618771565b6020026020010181905250616d9d878461770e565b8282616da8816188de565b935060ff1681518110616dbd57616dbd618771565b602090810291909101015285515115616e695760408051808201909152600b81527f2d2d7265666572656e636500000000000000000000000000000000000000000060208201528282616e0f816188de565b935060ff1681518110616e2457616e24618771565b6020026020010181905250616e3d86600001518461770e565b8282616e48816188de565b935060ff1681518110616e5d57616e5d618771565b60200260200101819052505b856080015115616ed75760408051808201909152601881527f2d2d756e73616665536b697053746f72616765436865636b000000000000000060208201528282616eb2816188de565b935060ff1681518110616ec757616ec7618771565b6020026020010181905250616f3d565b8415616f3d5760408051808201909152601281527f2d2d726571756972655265666572656e6365000000000000000000000000000060208201528282616f1c816188de565b935060ff1681518110616f3157616f31618771565b60200260200101819052505b60408601515115616fd95760408051808201909152600d81527f2d2d756e73616665416c6c6f770000000000000000000000000000000000000060208201528282616f87816188de565b935060ff1681518110616f9c57616f9c618771565b60200260200101819052508560400151828280616fb8906188de565b935060ff1681518110616fcd57616fcd618771565b60200260200101819052505b8560600151156170435760408051808201909152601481527f2d2d756e73616665416c6c6f7752656e616d657300000000000000000000000060208201528282617022816188de565b935060ff168151811061703757617037618771565b60200260200101819052505b60008160ff1667ffffffffffffffff81111561706157617061617fd1565b60405190808252806020026020018201604052801561709457816020015b606081526020019060019003908161707f5790505b50905060005b8260ff168160ff1610156170ed57838160ff16815181106170bd576170bd618771565b6020026020010151828260ff16815181106170da576170da618771565b602090810291909101015260010161709a565b50979650505050505050565b604080518082019091526000808252602082015281518351101561711e575081613729565b8151835160208501516000929161713491618e9f565b61713e919061811d565b6020840151909150600190821461715f575082516020840151819020908220145b801561717a5783518551869061717690839061811d565b9052505b50929392505050565b60008082600001516171a785600001518660200151866000015187602001516174c9565b6171b19190618e9f565b90505b835160208501516171c59190618e9f565b8111616aee57816171d5816190a1565b925050826000015161720c8560200151836171f0919061811d565b86516171fc919061811d565b83866000015187602001516174c9565b6172169190618e9f565b90506171b4565b6060600061722b8484617183565b617236906001618e9f565b67ffffffffffffffff81111561724e5761724e617fd1565b60405190808252806020026020018201604052801561728157816020015b606081526020019060019003908161726c5790505b50905060005b81518110156154f65761729d6157188686616acf565b8282815181106172af576172af618771565b6020908102919091010152600101617287565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061730b577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310617337576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061735557662386f26fc10000830492506010015b6305f5e100831061736d576305f5e100830492506008015b612710831061738157612710830492506004015b60648310617393576064830492506002015b600a83106137295760010192915050565b60006173b0838361774e565b159392505050565b6000808584116174bf576020841161746b57600084156174035760016173df86602061811d565b6173ea9060086190bb565b6173f59060026191b9565b6173ff919061811d565b1990505b83518116856174128989618e9f565b61741c919061811d565b805190935082165b8181146174565787841161743e5787945050505050615127565b83617448816191c5565b945050828451169050617424565b6174608785618e9f565b945050505050615127565b838320617478858861811d565b6174829087618e9f565b91505b8582106174bd578482208082036174aa576174a08684618e9f565b9350505050615127565b6174b560018461811d565b925050617485565b505b5092949350505050565b600083818685116175d4576020851161758357600085156175155760016174f187602061811d565b6174fc9060086190bb565b6175079060026191b9565b617511919061811d565b1990505b845181166000876175268b8b618e9f565b617530919061811d565b855190915083165b8281146175755781861061755d576175508b8b618e9f565b9650505050505050615127565b85617567816190a1565b965050838651169050617538565b859650505050505050615127565b508383206000905b617595868961811d565b82116175d2578583208082036175b15783945050505050615127565b6175bc600185618e9f565b93505081806175ca906190a1565b92505061758b565b505b6175de8787618e9f565b979650505050505050565b6040805180820190915260008082526020820152600061761b85600001518660200151866000015187602001516174c9565b602080870180519186019190915251909150617637908261811d565b83528451602086015161764a9190618e9f565b8103617659576000855261768b565b835183516176679190618e9f565b8551869061767690839061811d565b90525083516176859082618e9f565b60208601525b50909392505050565b602081106176cc57815183526176ab602084618e9f565b92506176b8602083618e9f565b91506176c560208261811d565b9050617694565b60001981156176fb5760016176e283602061811d565b6176ee906101006191b9565b6176f8919061811d565b90505b9151835183169219169190911790915250565b6060600061771c8484613bfa565b8051602080830151604051939450617736939091016191dc565b60405160208183030381529060405291505092915050565b8151815160009190811115617761575081515b6020808501519084015160005b8381101561781a57825182518082146177ea5760001960208710156177c95760018461779b89602061811d565b6177a59190618e9f565b6177b09060086190bb565b6177bb9060026191b9565b6177c5919061811d565b1990505b81811683821681810391146177e75797506137299650505050505050565b50505b6177f5602086618e9f565b9450617802602085618e9f565b935050506020816178139190618e9f565b905061776e565b50845186516142a89190619234565b610c9f806200925583390190565b6113e28062009ef483390190565b61182a806200b2d683390190565b610d5e806200cb0083390190565b61080c806200d85e83390190565b610b3f806200e06a83390190565b6119e8806200eba983390190565b6040518060e001604052806060815260200160608152602001606081526020016000151581526020016000151581526020016000151581526020016178ce6178d3565b905290565b604051806101000160405280600015158152602001600015158152602001606081526020016000801916815260200160608152602001606081526020016000151581526020016178ce6040518060800160405280600081526020016000815260200160008152602001600081525090565b602080825282518282018190526000918401906040840190835b818110156179855783516001600160a01b031683526020938401939092019160010161795e565b509095945050505050565b60005b838110156179ab578181015183820152602001617993565b50506000910152565b600081518084526179cc816020860160208601617990565b601f01601f19169290920160200192915050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015617adc577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452815180516001600160a01b03168652602090810151604082880181905281519088018190529101906060600582901b88018101919088019060005b81811015617ac2577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08a8503018352617aac8486516179b4565b6020958601959094509290920191600101617a72565b509197505050602094850194929092019150600101617a08565b50929695505050505050565b600081518084526020840193506020830160005b82811015617b3c5781517fffffffff0000000000000000000000000000000000000000000000000000000016865260209586019590910190600101617afc565b5093949350505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015617adc577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08786030184528151805160408752617bb260408801826179b4565b9050602082015191508681036020880152617bcd8183617ae8565b965050506020938401939190910190600101617b6e565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015617adc577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452617c468583516179b4565b94506020938401939190910190600101617c0c565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015617adc577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc087860301845281516001600160a01b0381511686526020810151905060406020870152617cdc6040870182617ae8565b9550506020938401939190910190600101617c83565b600060208284031215617d0457600080fd5b8151801515811461382a57600080fd5b610100815260056101008201527f544f4b454e000000000000000000000000000000000000000000000000000000610120820152610140602082015260036101408201527f544b4e000000000000000000000000000000000000000000000000000000000061016082015260006101808201905060ff8816604083015286606083015260038610617dce577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8560808301528460a0830152617def60c08301856001600160a01b03169052565b6001600160a01b03831660e0830152979650505050505050565b600181811c90821680617e1d57607f821691505b6020821081036159f3577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060208284031215617e6857600080fd5b5051919050565b606081526000617e8260608301866179b4565b602083019490945250901515604090910152919050565b608081526000617eac60808301876179b4565b62ffffff861660208401526001600160a01b038516604084015282810360608401526175de81856179b4565b6001600160a01b03841681528260208201526060604082015260006159d960608301846179b4565b60c081526000617f1360c08301896179b4565b8760208401526001600160a01b03871660408401528281036060840152617f3a81876179b4565b6080840195909552505090151560a090910152949350505050565b6001600160a01b038616815284602082015260a060408201526000617f7d60a08301866179b4565b6060830194909452509015156080909101529392505050565b82815260406020820152600061512760408301846179b4565b6001600160a01b038316815260406020820152600061512760408301846179b4565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171561802357618023617fd1565b60405290565b60008067ffffffffffffffff84111561804457618044617fd1565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff8211171561807357618073617fd1565b60405283815290508082840185101561808b57600080fd5b6154f6846020830185617990565b600082601f8301126180aa57600080fd5b61382a83835160208501618029565b6000602082840312156180cb57600080fd5b815167ffffffffffffffff8111156180e257600080fd5b61372584828501618099565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115613729576137296180ee565b60c08152600061814360c08301896179b4565b6001600160a01b038816602084015286604084015285606084015284608084015282810360a084015261817681856179b4565b9998505050505050505050565b60808152600061819660808301876179b4565b8560208401526001600160a01b038516604084015282810360608401526175de81856179b4565b6040815260006181d060408301856179b4565b828103602084015261382681856179b4565b6060815260006181f560608301866179b4565b84602084015282810360408401526142a881856179b4565b60a08152600061822060a08301886179b4565b866020840152828103604084015261823881876179b4565b606084019590955250509015156080909101529392505050565b7f4661696c656420746f206465706c6f7920636f6e74726163742000000000000081526000835161828a81601a850160208801617990565b7f3a20000000000000000000000000000000000000000000000000000000000000601a9184019182015283516182c781601c840160208801617990565b01601c01949350505050565b60208152600061382a60208301846179b4565b6000602082840312156182f857600080fd5b81516001600160a01b038116811461382a57600080fd5b60008351618321818460208801617990565b835190830190618335818360208801617990565b01949350505050565b7f4661696c656420746f206465706c6f7920636f6e74726163742000000000000081526000835161837681601a850160208801617990565b7f207573696e6720636f6e7374727563746f722064617461202200000000000000601a9184019182015283516183b3816033840160208801617990565b7f220000000000000000000000000000000000000000000000000000000000000060339290910191820152603401949350505050565b60408152600b60408201527f464f554e4452595f4f5554000000000000000000000000000000000000000000606082015260806020820152600061382a60808301846179b4565b60006020828403121561844257600080fd5b815167ffffffffffffffff81111561845957600080fd5b8201601f8101841361846a57600080fd5b61372584825160208401618029565b6000855161848b818460208a01617990565b7f2f0000000000000000000000000000000000000000000000000000000000000090830190815285516184c5816001840160208a01617990565b7f2f00000000000000000000000000000000000000000000000000000000000000600192909101918201528451618503816002840160208901617990565b6001818301019150507f2f0000000000000000000000000000000000000000000000000000000000000060018201528351618545816002840160208801617990565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600292909101918201526007019695505050505050565b60408152600061859060408301846179b4565b8281036020840152600481527f2e6173740000000000000000000000000000000000000000000000000000000060208201526040810191505092915050565b7f436f756c64206e6f742066696e642041535420696e206172746966616374200081526000825161860781601f850160208701617990565b7f2e205365742060617374203d20747275656020696e20666f756e6472792e746f601f9390910192830152507f6d6c000000000000000000000000000000000000000000000000000000000000603f820152604101919050565b60408152600061867460408301846179b4565b8281036020840152601181527f2e6173742e6162736f6c7574655061746800000000000000000000000000000060208201526040810191505092915050565b6040815260006186c660408301846179b4565b8281036020840152600c81527f2e6173742e6c6963656e7365000000000000000000000000000000000000000060208201526040810191505092915050565b7f2e6d657461646174612e736f75726365732e5b2700000000000000000000000081526000825161873d816014850160208701617990565b7f275d2e6b656363616b32353600000000000000000000000000000000000000006014939091019283015250602001919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f22000000000000000000000000000000000000000000000000000000000000008152600082516187d8816001850160208701617990565b7f22000000000000000000000000000000000000000000000000000000000000006001939091019283015250600201919050565b6000825161881e818460208701617990565b7f2f6275696c642d696e666f000000000000000000000000000000000000000000920191825250600b01919050565b7f436f756c64206e6f742066696e64206275696c642d696e666f2066696c65207781527f697468206d61746368696e6720736f7572636520636f6465206861736820666f60208201527f7220636f6e7472616374200000000000000000000000000000000000000000006040820152600082516188d181604b850160208701617990565b91909101604b0192915050565b600060ff821660ff81036188f4576188f46180ee565b60010192915050565b7f406f70656e7a657070656c696e2f646566656e6465722d6465706c6f792d636c81527f69656e742d636c6940000000000000000000000000000000000000000000000060208201526000825161895b816029850160208701617990565b9190910160290192915050565b60408152601660408201527f4f50454e5a455050454c494e5f424153485f5041544800000000000000000000606082015260806020820152600061382a60808301846179b4565b6000602082840312156189c157600080fd5b815167ffffffffffffffff8111156189d857600080fd5b8201606081850312156189ea57600080fd5b6189f2618000565b81518060030b8114618a0357600080fd5b8152602082015167ffffffffffffffff811115618a1f57600080fd5b618a2b86828501618099565b602083015250604082015167ffffffffffffffff811115618a4b57600080fd5b618a5786828501618099565b604083015250949350505050565b7f4661696c656420746f2072756e206261736820636f6d6d616e6420776974682081527f2200000000000000000000000000000000000000000000000000000000000000602082015260008251618ac3816021850160208701617990565b7f222e20496620796f7520617265207573696e672057696e646f77732c2073657460219390910192830152507f20746865204f50454e5a455050454c494e5f424153485f5041544820656e766960418201527f726f6e6d656e74207661726961626c6520746f207468652066756c6c7920717560618201527f616c69666965642070617468206f66207468652062617368206578656375746160818201527f626c652e20466f72206578616d706c652c20696620796f75206172652075736960a18201527f6e672047697420666f722057696e646f77732c206164642074686520666f6c6c60c18201527f6f77696e67206c696e6520696e20746865202e656e762066696c65206f66207960e18201527f6f75722070726f6a65637420287573696e6720666f727761726420736c6173686101018201527f6573293a0a4f50454e5a455050454c494e5f424153485f504154483d22433a2f6101218201527f50726f6772616d2046696c65732f4769742f62696e2f6261736822000000000061014182015261015c01919050565b7f4661696c656420746f2066696e64206c696e652077697468207072656669782081527f2700000000000000000000000000000000000000000000000000000000000000602082015260008351618caf816021850160208801617990565b7f2720696e206f75747075743a20000000000000000000000000000000000000006021918401918201528351618cec81602e840160208801617990565b01602e01949350505050565b7f4661696c656420746f2072756e2075706772616465207361666574792076616c81527f69646174696f6e3a20000000000000000000000000000000000000000000000060208201526000825161895b816029850160208701617990565b7f55706772616465207361666574792076616c69646174696f6e206661696c656481527f3a0a000000000000000000000000000000000000000000000000000000000000602082015260008251618db4816022850160208701617990565b9190910160220192915050565b7f436f6e7472616374206e616d6520000000000000000000000000000000000000815260008251618df981600e850160208701617990565b7f206d75737420626520696e2074686520666f726d6174204d79436f6e74726163600e9390910192830152507f742e736f6c3a4d79436f6e7472616374206f72204d79436f6e74726163742e73602e8201527f6f6c206f72206f75742f4d79436f6e74726163742e736f6c2f4d79436f6e7472604e8201527f6163742e6a736f6e000000000000000000000000000000000000000000000000606e820152607601919050565b80820180821115613729576137296180ee565b7f53504458206c6963656e7365206964656e746966696572200000000000000000815260008351618eea816018850160208801617990565b7f20696e20000000000000000000000000000000000000000000000000000000006018918401918201528351618f2781601c840160208801617990565b7f20646f6573206e6f74206c6f6f6b206c696b65206120737570706f7274656420601c92909101918201527f6c6963656e736520666f7220626c6f636b206578706c6f726572207665726966603c8201527f69636174696f6e2e205573652074686520606c6963656e73655479706560206f605c8201527f7074696f6e20746f20737065636966792061206c6963656e736520747970652c607c8201527f206f7220736574207468652060736b69704c6963656e73655479706560206f70609c8201527f74696f6e20746f2060747275656020746f20736b69702e00000000000000000060bc82015260d301949350505050565b6000825161902d818460208701617990565b7f2000000000000000000000000000000000000000000000000000000000000000920191825250600101919050565b7f406f70656e7a657070656c696e2f75706772616465732d636f7265400000000081526000825161909481601c850160208701617990565b91909101601c0192915050565b600060001982036190b4576190b46180ee565b5060010190565b8082028115828204841417613729576137296180ee565b6001815b600184111561910d578085048111156190f1576190f16180ee565b60018416156190ff57908102905b60019390931c9280026190d6565b935093915050565b60008261912457506001613729565b8161913157506000613729565b816001811461914757600281146191515761916d565b6001915050613729565b60ff841115619162576191626180ee565b50506001821b613729565b5060208310610133831016604e8410600b8410161715619190575081810a613729565b61919d60001984846190d2565b80600019048211156191b1576191b16180ee565b029392505050565b600061382a8383619115565b6000816191d4576191d46180ee565b506000190190565b600083516191ee818460208801617990565b7f3a000000000000000000000000000000000000000000000000000000000000009083019081528351619228816001840160208801617990565b01600101949350505050565b8181036000831280158383131683831282161715616aee57616aee6180ee56fe608060405234801561001057600080fd5b50604051610c9f380380610c9f83398101604081905261002f9161010d565b8181600361003d83826101ff565b50600461004a82826101ff565b50505050506102bd565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261007b57600080fd5b81516001600160401b0381111561009457610094610054565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100c2576100c2610054565b6040528181528382016020018510156100da57600080fd5b60005b828110156100f9576020818601810151838301820152016100dd565b506000918101602001919091529392505050565b6000806040838503121561012057600080fd5b82516001600160401b0381111561013657600080fd5b6101428582860161006a565b602085015190935090506001600160401b0381111561016057600080fd5b61016c8582860161006a565b9150509250929050565b600181811c9082168061018a57607f821691505b6020821081036101aa57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156101fa57806000526020600020601f840160051c810160208510156101d75750805b601f840160051c820191505b818110156101f757600081556001016101e3565b50505b505050565b81516001600160401b0381111561021857610218610054565b61022c816102268454610176565b846101b0565b6020601f82116001811461026057600083156102485750848201515b600019600385901b1c1916600184901b1784556101f7565b600084815260208120601f198516915b828110156102905787850151825560209485019460019092019101610270565b50848210156102ae5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b6109d3806102cc6000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c806340c10f191161007657806395d89b411161005b57806395d89b4114610183578063a9059cbb1461018b578063dd62ed3e1461019e57600080fd5b806340c10f191461013857806370a082311461014d57600080fd5b806318160ddd116100a757806318160ddd1461010457806323b872dd14610116578063313ce5671461012957600080fd5b806306fdde03146100c3578063095ea7b3146100e1575b600080fd5b6100cb6101e4565b6040516100d891906107bf565b60405180910390f35b6100f46100ef366004610854565b610276565b60405190151581526020016100d8565b6002545b6040519081526020016100d8565b6100f461012436600461087e565b610290565b604051601281526020016100d8565b61014b610146366004610854565b6102b4565b005b61010861015b3660046108bb565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6100cb6102c2565b6100f4610199366004610854565b6102d1565b6101086101ac3660046108dd565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101f390610910565b80601f016020809104026020016040519081016040528092919081815260200182805461021f90610910565b801561026c5780601f106102415761010080835404028352916020019161026c565b820191906000526020600020905b81548152906001019060200180831161024f57829003601f168201915b5050505050905090565b6000336102848185856102df565b60019150505b92915050565b60003361029e8582856102f1565b6102a98585856103c5565b506001949350505050565b6102be8282610470565b5050565b6060600480546101f390610910565b6000336102848185856103c5565b6102ec83838360016104cc565b505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146103bf57818110156103b0576040517ffb8f41b200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101829052604481018390526064015b60405180910390fd5b6103bf848484840360006104cc565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610415576040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff8216610465576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b6102ec838383610614565b73ffffffffffffffffffffffffffffffffffffffff82166104c0576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b6102be60008383610614565b73ffffffffffffffffffffffffffffffffffffffff841661051c576040517fe602df05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff831661056c576040517f94280d62000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020908152604080832093871683529290522082905580156103bf578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161060691815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff831661064c5780600260008282546106419190610963565b909155506106fe9050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902054818110156106d2576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260248101829052604481018390526064016103a7565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090209082900390555b73ffffffffffffffffffffffffffffffffffffffff821661072757600280548290039055610753565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090208054820190555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107b291815260200190565b60405180910390a3505050565b602081526000825180602084015260005b818110156107ed57602081860181015160408684010152016107d0565b5060006040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461084f57600080fd5b919050565b6000806040838503121561086757600080fd5b6108708361082b565b946020939093013593505050565b60008060006060848603121561089357600080fd5b61089c8461082b565b92506108aa6020850161082b565b929592945050506040919091013590565b6000602082840312156108cd57600080fd5b6108d68261082b565b9392505050565b600080604083850312156108f057600080fd5b6108f98361082b565b91506109076020840161082b565b90509250929050565b600181811c9082168061092457607f821691505b60208210810361095d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b8082018082111561028a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea26469706673582212207e804ca539d49155d2b6bc19268ce22f9f857027c75247d69fb0d56a089c93d464736f6c634300081a0033608060405234801561001057600080fd5b506040516113e23803806113e283398101604081905261002f916101d3565b60016000556002805460ff191690556001600160a01b038316158061005b57506001600160a01b038216155b156100795760405163d92e233d60e01b815260040160405180910390fd5b60028054610100600160a81b0319166101006001600160a01b038681169190910291909117909155600380546001600160a01b0319169184169190911790556100c3600082610122565b506100ee7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a82610122565b506101197f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e483610122565b50505050610216565b60008281526001602090815260408083206001600160a01b038516845290915281205460ff166101ad5760008381526001602081815260408084206001600160a01b0387168086529252808420805460ff19169093179092559051339286917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45060016101b1565b5060005b92915050565b80516001600160a01b03811681146101ce57600080fd5b919050565b6000806000606084860312156101e857600080fd5b6101f1846101b7565b92506101ff602085016101b7565b915061020d604085016101b7565b90509250925092565b6111bd806102256000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c80635c975abb116100b2578063a217fddf11610081578063d547741f11610066578063d547741f146102c2578063d9caed12146102d5578063e63ab1e9146102e857600080fd5b8063a217fddf146102a7578063c8a02362146102af57600080fd5b80635c975abb146102275780638456cb591461023257806385f438c11461023a57806391d148541461026157600080fd5b80632f2ff15d116100ee5780632f2ff15d146101d957806336568abe146101ec5780633f4ba83a146101ff5780635b1125911461020757600080fd5b806301ffc9a714610120578063116191b61461014857806321fc65f214610192578063248a9ca3146101a7575b600080fd5b61013361012e366004610ee3565b61030f565b60405190151581526020015b60405180910390f35b60025461016d90610100900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161013f565b6101a56101a0366004610f4e565b6103a8565b005b6101cb6101b5366004610feb565b6000908152600160208190526040909120015490565b60405190815260200161013f565b6101a56101e7366004611004565b61051d565b6101a56101fa366004611004565b610549565b6101a56105a7565b60035461016d9073ffffffffffffffffffffffffffffffffffffffff1681565b60025460ff16610133565b6101a56105dc565b6101cb7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e481565b61013361026f366004611004565b600091825260016020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b6101cb600081565b6101a56102bd366004610f4e565b61060e565b6101a56102d0366004611004565b610769565b6101a56102e3366004611030565b61078f565b6101cb7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806103a257507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6103b061085c565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e46103da8161089f565b6103e26108a9565b60025461040e9073ffffffffffffffffffffffffffffffffffffffff88811691610100900416866108e8565b6002546040517f5131ab5900000000000000000000000000000000000000000000000000000000815261010090910473ffffffffffffffffffffffffffffffffffffffff1690635131ab599061047090899089908990899089906004016110b6565b600060405180830381600087803b15801561048a57600080fd5b505af115801561049e573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e86868660405161050393929190611113565b60405180910390a3506105166001600055565b5050505050565b600082815260016020819052604090912001546105398161089f565b6105438383610975565b50505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610598576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105a28282610a40565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6105d18161089f565b6105d9610aff565b50565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6106068161089f565b6105d9610b7c565b61061661085c565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e46106408161089f565b6106486108a9565b6002546106749073ffffffffffffffffffffffffffffffffffffffff88811691610100900416866108e8565b6002546040517fb8969bd400000000000000000000000000000000000000000000000000000000815261010090910473ffffffffffffffffffffffffffffffffffffffff169063b8969bd4906106d690899089908990899089906004016110b6565b600060405180830381600087803b1580156106f057600080fd5b505af1158015610704573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c886868660405161050393929190611113565b600082815260016020819052604090912001546107858161089f565b6105438383610a40565b61079761085c565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e46107c18161089f565b6107c96108a9565b6107ea73ffffffffffffffffffffffffffffffffffffffff851684846108e8565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb8460405161084991815260200190565b60405180910390a3506105a26001600055565b600260005403610898576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b6105d98133610bd7565b60025460ff16156108e6576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526105a2908490610c68565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff16610a3857600083815260016020818152604080842073ffffffffffffffffffffffffffffffffffffffff8716808652925280842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169093179092559051339286917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45060016103a2565b5060006103a2565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff1615610a3857600083815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016103a2565b610b07610cfe565b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b610b846108a9565b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610b523390565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610c64576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602481018390526044015b60405180910390fd5b5050565b6000610c8a73ffffffffffffffffffffffffffffffffffffffff841683610d3a565b90508051600014158015610caf575080806020019051810190610cad9190611136565b155b156105a2576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602401610c5b565b60025460ff166108e6576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060610d4883836000610d4f565b9392505050565b606081471015610d8d576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610c5b565b6000808573ffffffffffffffffffffffffffffffffffffffff168486604051610db69190611158565b60006040518083038185875af1925050503d8060008114610df3576040519150601f19603f3d011682016040523d82523d6000602084013e610df8565b606091505b5091509150610e08868383610e12565b9695505050505050565b606082610e2757610e2282610ea1565b610d48565b8151158015610e4b575073ffffffffffffffffffffffffffffffffffffffff84163b155b15610e9a576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610c5b565b5080610d48565b805115610eb15780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060208284031215610ef557600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610d4857600080fd5b803573ffffffffffffffffffffffffffffffffffffffff81168114610f4957600080fd5b919050565b600080600080600060808688031215610f6657600080fd5b610f6f86610f25565b9450610f7d60208701610f25565b935060408601359250606086013567ffffffffffffffff811115610fa057600080fd5b8601601f81018813610fb157600080fd5b803567ffffffffffffffff811115610fc857600080fd5b886020828401011115610fda57600080fd5b959894975092955050506020019190565b600060208284031215610ffd57600080fd5b5035919050565b6000806040838503121561101757600080fd5b8235915061102760208401610f25565b90509250929050565b60008060006060848603121561104557600080fd5b61104e84610f25565b925061105c60208501610f25565b929592945050506040919091013590565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff8516602082015283604082015260806060820152600061110860808301848661106d565b979650505050505050565b83815260406020820152600061112d60408301848661106d565b95945050505050565b60006020828403121561114857600080fd5b81518015158114610d4857600080fd5b6000825160005b81811015611179576020818601810151858301520161115f565b50600092019182525091905056fea2646970667358221220f228501fb7798406cf58c84b1f7af446926eecd69943c0a6760dfd0c5550e2ff64736f6c634300081a003360c060405260001960045534801561001657600080fd5b5060405161182a38038061182a833981016040819052610035916101fb565b60016000819055805460ff19169055838383836001600160a01b038416158061006557506001600160a01b038316155b8061007757506001600160a01b038216155b156100955760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0384811660805283811660a052600380546001600160a01b0319169184169190911790556100cb60008261012f565b506100f67f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e48361012f565b506101217f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8261012f565b50505050505050505061024f565b60008281526002602090815260408083206001600160a01b038516845290915281205460ff166101d55760008381526002602090815260408083206001600160a01b03861684529091529020805460ff1916600117905561018d3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016101d9565b5060005b92915050565b80516001600160a01b03811681146101f657600080fd5b919050565b6000806000806080858703121561021157600080fd5b61021a856101df565b9350610228602086016101df565b9250610236604086016101df565b9150610244606086016101df565b905092959194509250565b60805160a05161155b6102cf6000396000818161021d0152818161049a015281816105dc015281816106a2015281816107a7015281816108c901528181610a7d01528181610bbf01528181610c850152610ddc0152600081816101d1015281816105a60152818161067301528181610b890152610c56015261155b6000f3fe608060405234801561001057600080fd5b50600436106101775760003560e01c80635c975abb116100d857806385f438c11161008c578063d547741f11610066578063d547741f1461037f578063d5abeb0114610392578063e63ab1e91461039b57600080fd5b806385f438c11461030a57806391d1485414610331578063a217fddf1461037757600080fd5b80636f8b44b0116100bd5780636f8b44b0146102dc578063743e0c9b146102ef5780638456cb591461030257600080fd5b80635c975abb146102be5780635e3e9fef146102c957600080fd5b8063248a9ca31161012f57806336568abe1161011457806336568abe146102835780633f4ba83a146102965780635b1125911461029e57600080fd5b8063248a9ca31461023f5780632f2ff15d1461027057600080fd5b8063106e629011610160578063106e6290146101b9578063116191b6146101cc57806321e093b11461021857600080fd5b806301ffc9a71461017c57806302d5c899146101a4575b600080fd5b61018f61018a36600461128d565b6103c2565b60405190151581526020015b60405180910390f35b6101b76101b23660046112ff565b61045b565b005b6101b76101c7366004611391565b610768565b6101f37f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161019b565b6101f37f000000000000000000000000000000000000000000000000000000000000000081565b61026261024d3660046113c4565b60009081526002602052604090206001015490565b60405190815260200161019b565b6101b761027e3660046113dd565b610985565b6101b76102913660046113dd565b6109b0565b6101b7610a09565b6003546101f39073ffffffffffffffffffffffffffffffffffffffff1681565b60015460ff1661018f565b6101b76102d73660046112ff565b610a3e565b6101b76102ea3660046113c4565b610d31565b6101b76102fd3660046113c4565b610d9f565b6101b7610e49565b6102627f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e481565b61018f61033f3660046113dd565b600091825260026020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b610262600081565b6101b761038d3660046113dd565b610e7b565b61026260045481565b6102627f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061045557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b610463610ea0565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e461048d81610ee3565b610495610eed565b6004547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610503573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105279190611409565b6105319087611422565b1115610569576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1e458bee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201879052604482018490527f00000000000000000000000000000000000000000000000000000000000000001690631e458bee90606401600060405180830381600087803b15801561062057600080fd5b505af1158015610634573d6000803e3d6000fd5b50506040517fb8969bd400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016925063b8969bd491506106d2907f0000000000000000000000000000000000000000000000000000000000000000908a908a908a908a906004016114a5565b600060405180830381600087803b1580156106ec57600080fd5b505af1158015610700573d6000803e3d6000fd5b505050508573ffffffffffffffffffffffffffffffffffffffff167fba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe86868660405161074e93929190611502565b60405180910390a2506107616001600055565b5050505050565b610770610ea0565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e461079a81610ee3565b6107a2610eed565b6004547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610810573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108349190611409565b61083e9085611422565b1115610876576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1e458bee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015260248201859052604482018490527f00000000000000000000000000000000000000000000000000000000000000001690631e458bee90606401600060405180830381600087803b15801561090d57600080fd5b505af1158015610921573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243648460405161096d91815260200190565b60405180910390a2506109806001600055565b505050565b6000828152600260205260409020600101546109a081610ee3565b6109aa8383610f2c565b50505050565b73ffffffffffffffffffffffffffffffffffffffff811633146109ff576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610980828261102c565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610a3381610ee3565b610a3b6110eb565b50565b610a46610ea0565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e4610a7081610ee3565b610a78610eed565b6004547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0a9190611409565b610b149087611422565b1115610b4c576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1e458bee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201879052604482018490527f00000000000000000000000000000000000000000000000000000000000000001690631e458bee90606401600060405180830381600087803b158015610c0357600080fd5b505af1158015610c17573d6000803e3d6000fd5b50506040517f5131ab5900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169250635131ab599150610cb5907f0000000000000000000000000000000000000000000000000000000000000000908a908a908a908a906004016114a5565b600060405180830381600087803b158015610ccf57600080fd5b505af1158015610ce3573d6000803e3d6000fd5b505050508573ffffffffffffffffffffffffffffffffffffffff167f7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced86868660405161074e93929190611502565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e4610d5b81610ee3565b610d63610eed565b60048290556040518281527f7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c9060200160405180910390a15050565b610da7610eed565b6040517f79cc6790000000000000000000000000000000000000000000000000000000008152336004820152602481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906379cc679090604401600060405180830381600087803b158015610e3557600080fd5b505af1158015610761573d6000803e3d6000fd5b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610e7381610ee3565b610a3b611168565b600082815260026020526040902060010154610e9681610ee3565b6109aa838361102c565b600260005403610edc576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b610a3b81336111c1565b60015460ff1615610f2a576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600082815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff1661102457600083815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610fc23390565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610455565b506000610455565b600082815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff161561102457600083815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610455565b6110f3611251565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b611170610eed565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2583361113e565b600082815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1661124d576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526024810183905260440160405180910390fd5b5050565b60015460ff16610f2a576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006020828403121561129f57600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146112cf57600080fd5b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146112fa57600080fd5b919050565b60008060008060006080868803121561131757600080fd5b611320866112d6565b945060208601359350604086013567ffffffffffffffff81111561134357600080fd5b8601601f8101881361135457600080fd5b803567ffffffffffffffff81111561136b57600080fd5b88602082840101111561137d57600080fd5b959894975060200195606001359392505050565b6000806000606084860312156113a657600080fd5b6113af846112d6565b95602085013595506040909401359392505050565b6000602082840312156113d657600080fd5b5035919050565b600080604083850312156113f057600080fd5b82359150611400602084016112d6565b90509250929050565b60006020828403121561141b57600080fd5b5051919050565b80820180821115610455577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff851660208201528360408201526080606082015260006114f760808301848661145c565b979650505050505050565b83815260406020820152600061151c60408301848661145c565b9594505050505056fea2646970667358221220c864e28878a70f2d629a9a8bcc8540adbc24308f0bdca4bb9f799c9b08a4b8fc64736f6c634300081a00336080604052348015600f57600080fd5b506001600055610d3a806100246000396000f3fe6080604052600436106100635760003560e01c8063c513169111610040578063c5131691146100c1578063e04d4f97146100e1578063f05b6abf146100f457005b8063357fc5a21461006c5780636ed701691461008c5780638fcaa0b5146100a157005b3661006a57005b005b34801561007857600080fd5b5061006a6100873660046106c0565b610114565b34801561009857600080fd5b5061006a6101aa565b3480156100ad57600080fd5b5061006a6100bc3660046106fc565b6101df565b3480156100cd57600080fd5b5061006a6100dc3660046106c0565b61021e565b61006a6100ef366004610895565b6102f9565b34801561010057600080fd5b5061006a61010f366004610981565b61033d565b61011c610372565b61013e73ffffffffffffffffffffffffffffffffffffffff83163383866103b5565b604080513381526020810185905273ffffffffffffffffffffffffffffffffffffffff848116828401528316606082015290517f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af609181900360800190a16101a56001600055565b505050565b6040513381527fbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a09060200160405180910390a1565b7f0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa33838360405161021293929190610a6b565b60405180910390a15050565b610226610372565b6000610233600285610ad5565b90508060000361026f576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61029173ffffffffffffffffffffffffffffffffffffffff84163384846103b5565b604080513381526020810183905273ffffffffffffffffffffffffffffffffffffffff858116828401528416606082015290517f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af609181900360800190a1506101a56001600055565b7f1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa3334858585604051610330959493929190610b7e565b60405180910390a1505050565b7f74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146338484846040516103309493929190610c08565b6002600054036103ae576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017905261044a908590610450565b50505050565b600061047273ffffffffffffffffffffffffffffffffffffffff8416836104eb565b905080516000141580156104975750808060200190518101906104959190610ccb565b155b156101a5576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024015b60405180910390fd5b60606104f983836000610500565b9392505050565b60608147101561053e576040517fcd7860590000000000000000000000000000000000000000000000000000000081523060048201526024016104e2565b6000808573ffffffffffffffffffffffffffffffffffffffff1684866040516105679190610ce8565b60006040518083038185875af1925050503d80600081146105a4576040519150601f19603f3d011682016040523d82523d6000602084013e6105a9565b606091505b50915091506105b98683836105c3565b9695505050505050565b6060826105d8576105d382610652565b6104f9565b81511580156105fc575073ffffffffffffffffffffffffffffffffffffffff84163b155b1561064b576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016104e2565b50806104f9565b8051156106625780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b803573ffffffffffffffffffffffffffffffffffffffff811681146106bb57600080fd5b919050565b6000806000606084860312156106d557600080fd5b833592506106e560208501610697565b91506106f360408501610697565b90509250925092565b6000806020838503121561070f57600080fd5b823567ffffffffffffffff81111561072657600080fd5b8301601f8101851361073757600080fd5b803567ffffffffffffffff81111561074e57600080fd5b85602082840101111561076057600080fd5b6020919091019590945092505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156107e6576107e6610770565b604052919050565b600082601f8301126107ff57600080fd5b813567ffffffffffffffff81111561081957610819610770565b61084a60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160161079f565b81815284602083860101111561085f57600080fd5b816020850160208301376000918101602001919091529392505050565b801515811461069457600080fd5b80356106bb8161087c565b6000806000606084860312156108aa57600080fd5b833567ffffffffffffffff8111156108c157600080fd5b6108cd868287016107ee565b9350506020840135915060408401356108e58161087c565b809150509250925092565b600067ffffffffffffffff82111561090a5761090a610770565b5060051b60200190565b600082601f83011261092557600080fd5b8135610938610933826108f0565b61079f565b8082825260208201915060208360051b86010192508583111561095a57600080fd5b602085015b8381101561097757803583526020928301920161095f565b5095945050505050565b60008060006060848603121561099657600080fd5b833567ffffffffffffffff8111156109ad57600080fd5b8401601f810186136109be57600080fd5b80356109cc610933826108f0565b8082825260208201915060208360051b8501019250888311156109ee57600080fd5b602084015b83811015610a3057803567ffffffffffffffff811115610a1257600080fd5b610a218b6020838901016107ee565b845250602092830192016109f3565b509550505050602084013567ffffffffffffffff811115610a5057600080fd5b610a5c86828701610914565b9250506106f36040850161088a565b73ffffffffffffffffffffffffffffffffffffffff8416815260406020820152816040820152818360608301376000818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b600082610b0b577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60005b83811015610b2b578181015183820152602001610b13565b50506000910152565b60008151808452610b4c816020860160208601610b10565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b73ffffffffffffffffffffffffffffffffffffffff8616815284602082015260a060408201526000610bb360a0830186610b34565b6060830194909452509015156080909101529392505050565b600081518084526020840193506020830160005b82811015610bfe578151865260209586019590910190600101610be0565b5093949350505050565b60006080820173ffffffffffffffffffffffffffffffffffffffff871683526080602084015280865180835260a08501915060a08160051b86010192506020880160005b82811015610c9b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60878603018452610c86858351610b34565b94506020938401939190910190600101610c4c565b505050508281036040840152610cb18186610bcc565b915050610cc2606083018415159052565b95945050505050565b600060208284031215610cdd57600080fd5b81516104f98161087c565b60008251610cfa818460208701610b10565b919091019291505056fea2646970667358221220556072e1abafc3c4063b8cce832228b4f309b93726aaa6a6dfab20cb880c6d1864736f6c634300081a00336080604052348015600f57600080fd5b5060405161080c38038061080c833981016040819052602c916050565b600080546001600160a01b0319166001600160a01b0392909216919091179055607e565b600060208284031215606157600080fd5b81516001600160a01b0381168114607757600080fd5b9392505050565b61077f8061008d6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630abd890514610046578063116191b61461005b578063865b36f6146100a4575b600080fd5b6100596100543660046104c4565b6100b7565b005b60005461007b9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100596100b236600461057f565b6102af565b60008383836040516024016100ce93929190610674565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe04d4f970000000000000000000000000000000000000000000000000000000017905260005490517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201526024810189905291925086169063095ea7b3906044016020604051808303816000875af11580156101be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e2919061069e565b610218576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000546040517f7993c1e000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690637993c1e090610274908a908a908a9087906004016106c2565b600060405180830381600087803b15801561028e57600080fd5b505af11580156102a2573d6000803e3d6000fd5b5050505050505050505050565b60008383836040516024016102c693929190610674565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe04d4f970000000000000000000000000000000000000000000000000000000017905260005490517f5d40e17800000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff1690635d40e1789061039690899089908690600401610714565b600060405180830381600087803b1580156103b057600080fd5b505af11580156103c4573d6000803e3d6000fd5b50505050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261041057600080fd5b81356020830160008067ffffffffffffffff841115610431576104316103d0565b506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85018116603f0116810181811067ffffffffffffffff8211171561047e5761047e6103d0565b60405283815290508082840187101561049657600080fd5b838360208301376000602085830101528094505050505092915050565b80151581146104c157600080fd5b50565b60008060008060008060c087890312156104dd57600080fd5b863567ffffffffffffffff8111156104f457600080fd5b61050089828a016103ff565b96505060208701359450604087013573ffffffffffffffffffffffffffffffffffffffff8116811461053157600080fd5b9350606087013567ffffffffffffffff81111561054d57600080fd5b61055989828a016103ff565b9350506080870135915060a0870135610571816104b3565b809150509295509295509295565b600080600080600060a0868803121561059757600080fd5b853567ffffffffffffffff8111156105ae57600080fd5b6105ba888289016103ff565b95505060208601359350604086013567ffffffffffffffff8111156105de57600080fd5b6105ea888289016103ff565b935050606086013591506080860135610602816104b3565b809150509295509295909350565b6000815180845260005b818110156106365760208185018101518683018201520161061a565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6060815260006106876060830186610610565b602083019490945250901515604090910152919050565b6000602082840312156106b057600080fd5b81516106bb816104b3565b9392505050565b6080815260006106d56080830187610610565b85602084015273ffffffffffffffffffffffffffffffffffffffff8516604084015282810360608401526107098185610610565b979650505050505050565b6060815260006107276060830186610610565b846020840152828103604084015261073f8185610610565b969550505050505056fea2646970667358221220ddb6d6c4d104fc6d2f5c6ce9a1d66252fca95b7b25d839de654d81d453d176e464736f6c634300081a0033608060405234801561001057600080fd5b50604051610b3f380380610b3f83398101604081905261002f916100b9565b600380546001600160a01b038086166001600160a01b0319928316179092556004805485841690831617905560058054928416929091169190911790556040517f80699e81136d69cb8367ad52a994e25c722a86da654b561d0c14b61a777e7ac590600090a15050506100fc565b80516001600160a01b03811681146100b457600080fd5b919050565b6000806000606084860312156100ce57600080fd5b6100d78461009d565b92506100e56020850161009d565b91506100f36040850161009d565b90509250925092565b610a348061010b6000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c806397770dff11610081578063d7fd7afb1161005b578063d7fd7afb146101f2578063d936a01214610220578063ee2815ba1461024057600080fd5b806397770dff146101b9578063a7cb0507146101cc578063c63585cc146101df57600080fd5b8063513a9c05116100b2578063513a9c0514610143578063569541b914610179578063842da36d1461019957600080fd5b80630be15547146100ce5780633c669d551461012e575b600080fd5b6101046100dc36600461071e565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61014161013c366004610760565b610253565b005b61010461015136600461071e565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6003546101049073ffffffffffffffffffffffffffffffffffffffff1681565b6005546101049073ffffffffffffffffffffffffffffffffffffffff1681565b6101416101c73660046107fd565b6103a0565b6101416101da36600461081f565b610419565b6101046101ed366004610841565b610467565b61021261020036600461071e565b60006020819052908152604090205481565b604051908152602001610125565b6004546101049073ffffffffffffffffffffffffffffffffffffffff1681565b61014161024e366004610884565b61059c565b604080516080810182526000606082019081528152336020820152468183015290517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87811660048301526024820186905286169063a9059cbb906044016020604051808303816000875af11580156102e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030b91906108b0565b506040517fde43156e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87169063de43156e90610366908490899089908990899060040161091b565b600060405180830381600087803b15801561038057600080fd5b505af1158015610394573d6000803e3d6000fd5b50505050505050505050565b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fdba79d534382d1a8ae108e4c8ecb27c6ae42ab8b91d44eedf88bd329f3868d5e9060200160405180910390a150565b6000828152602081815260409182902083905581518481529081018390527f49f492222906ac486c3c1401fa545626df1f0c0e5a77a05597ea2ed66af9850d91015b60405180910390a15050565b60008060006104768585610620565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606084811b8216602084015283901b166034820152919350915086906048016040516020818303038152906040528051906020012060405160200161055c9291907fff00000000000000000000000000000000000000000000000000000000000000815260609290921b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016600183015260158201527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f603582015260550190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101209695505050505050565b60008281526001602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85169081179091558251858152918201527fd1b36d30f6248e97c473b4d1348ca164a4ef6759022f54a58ec200326c39c45d910161045b565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610688576040517fcb1e7cfe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16106106c25782846106c5565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff8216610717576040517f78b507da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b60006020828403121561073057600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461075b57600080fd5b919050565b60008060008060006080868803121561077857600080fd5b61078186610737565b945061078f60208701610737565b935060408601359250606086013567ffffffffffffffff8111156107b257600080fd5b8601601f810188136107c357600080fd5b803567ffffffffffffffff8111156107da57600080fd5b8860208284010111156107ec57600080fd5b959894975092955050506020019190565b60006020828403121561080f57600080fd5b61081882610737565b9392505050565b6000806040838503121561083257600080fd5b50508035926020909101359150565b60008060006060848603121561085657600080fd5b61085f84610737565b925061086d60208501610737565b915061087b60408501610737565b90509250925092565b6000806040838503121561089757600080fd5b823591506108a760208401610737565b90509250929050565b6000602082840312156108c257600080fd5b8151801515811461081857600080fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60808152600086516060608084015280518060e085015260005b81811015610953576020818401810151610100878401015201610935565b5060008482016101000152602089015173ffffffffffffffffffffffffffffffffffffffff811660a0860152601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168401915050604088015160c084015273ffffffffffffffffffffffffffffffffffffffff871660208401528560408401526101008382030160608401526109f2610100820185876108d2565b9897505050505050505056fea2646970667358221220fbd69f8a6a30bdc247946500ad2bb4f7e9f585a260ef649595b89d427fb12f2064736f6c634300081a003360c060405234801561001057600080fd5b506040516119e83803806119e883398101604081905261002f916101db565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461006357604051632b2add3d60e01b815260040160405180910390fd5b600761006f898261032d565b50600861007c888261032d565b506009805460ff191660ff881617905560808590528360028111156100a3576100a36103eb565b60a08160028111156100b7576100b76103eb565b905250600292909255600080546001600160a01b039283166001600160a01b03199182161790915560018054929093169116179055506104019350505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261011e57600080fd5b81516001600160401b03811115610137576101376100f7565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610165576101656100f7565b60405281815283820160200185101561017d57600080fd5b60005b8281101561019c57602081860181015183830182015201610180565b506000918101602001919091529392505050565b8051600381106101bf57600080fd5b919050565b80516001600160a01b03811681146101bf57600080fd5b600080600080600080600080610100898b0312156101f857600080fd5b88516001600160401b0381111561020e57600080fd5b61021a8b828c0161010d565b60208b015190995090506001600160401b0381111561023857600080fd5b6102448b828c0161010d565b975050604089015160ff8116811461025b57600080fd5b60608a0151909650945061027160808a016101b0565b60a08a0151909450925061028760c08a016101c4565b915061029560e08a016101c4565b90509295985092959890939650565b600181811c908216806102b857607f821691505b6020821081036102d857634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561032857806000526020600020601f840160051c810160208510156103055750805b601f840160051c820191505b818110156103255760008155600101610311565b50505b505050565b81516001600160401b03811115610346576103466100f7565b61035a8161035484546102a4565b846102de565b6020601f82116001811461038e57600083156103765750848201515b600019600385901b1c1916600184901b178455610325565b600084815260208120601f198516915b828110156103be578785015182556020948501946001909201910161039e565b50848210156103dc5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b600052602160045260246000fd5b60805160a0516115b461043460003960006102f30152600081816102c4015281816109430152610a4901526115b46000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c806385e1f4d0116100e3578063d9eeebed1161008c578063eddeb12311610066578063eddeb123146103f7578063f2441b321461040a578063f687d12a1461042a57600080fd5b8063d9eeebed1461035d578063dd62ed3e14610391578063e2f535b8146103d757600080fd5b8063a9059cbb116100bd578063a9059cbb14610322578063c701262614610335578063c835d7cc1461034857600080fd5b806385e1f4d0146102bf57806395d89b41146102e6578063a3413d03146102ee57600080fd5b8063313ce5671161014557806347e7ef241161011f57806347e7ef241461026d5780634d8943bb1461028057806370a082311461028957600080fd5b8063313ce567146102055780633ce4a5bc1461021a57806342966c681461025a57600080fd5b8063095ea7b311610176578063095ea7b3146101c757806318160ddd146101ea57806323b872dd146101f257600080fd5b806306fdde0314610192578063091d2788146101b0575b600080fd5b61019a61043d565b6040516101a79190611193565b60405180910390f35b6101b960025481565b6040519081526020016101a7565b6101da6101d53660046111d2565b6104cf565b60405190151581526020016101a7565b6006546101b9565b6101da6102003660046111fe565b6104e6565b60095460405160ff90911681526020016101a7565b61023573735b14bb79463307aacbed86daf3322b1e6226ab81565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a7565b6101da61026836600461123f565b61057d565b6101da61027b3660046111d2565b610591565b6101b960035481565b6101b9610297366004611258565b73ffffffffffffffffffffffffffffffffffffffff1660009081526004602052604090205490565b6101b97f000000000000000000000000000000000000000000000000000000000000000081565b61019a6106e5565b6103157f000000000000000000000000000000000000000000000000000000000000000081565b6040516101a79190611275565b6101da6103303660046111d2565b6106f4565b6101da6103433660046112e5565b610701565b61035b610356366004611258565b610850565b005b610365610917565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526020830191909152016101a7565b6101b961039f3660046113dd565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020908152604080832093909416825291909152205490565b6001546102359073ffffffffffffffffffffffffffffffffffffffff1681565b61035b61040536600461123f565b610b35565b6000546102359073ffffffffffffffffffffffffffffffffffffffff1681565b61035b61043836600461123f565b610bb7565b60606007805461044c90611416565b80601f016020809104026020016040519081016040528092919081815260200182805461047890611416565b80156104c55780601f1061049a576101008083540402835291602001916104c5565b820191906000526020600020905b8154815290600101906020018083116104a857829003601f168201915b5050505050905090565b60006104dc338484610c39565b5060015b92915050565b60006104f3848484610d42565b73ffffffffffffffffffffffffffffffffffffffff841660009081526005602090815260408083203384529091529020548281101561055e576040517f10bad14700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610572853361056d8685611498565b610c39565b506001949350505050565b60006105893383610efd565b506001919050565b60003373735b14bb79463307aacbed86daf3322b1e6226ab148015906105cf575060005473ffffffffffffffffffffffffffffffffffffffff163314155b80156105f3575060015473ffffffffffffffffffffffffffffffffffffffff163314155b1561062a576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610634838361103f565b6040517f735b14bb79463307aacbed86daf3322b1e6226ab000000000000000000000000602082015273ffffffffffffffffffffffffffffffffffffffff8416907f67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab390603401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526106d49186906114ab565b60405180910390a250600192915050565b60606008805461044c90611416565b60006104dc338484610d42565b600080600061070e610917565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273735b14bb79463307aacbed86daf3322b1e6226ab602482015260448101829052919350915073ffffffffffffffffffffffffffffffffffffffff8316906323b872dd906064016020604051808303816000875af11580156107a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c491906114cd565b6107fa576040517f0a7cd6d600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108043385610efd565b60035460405133917f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d9559161083d918991899187916114ef565b60405180910390a2506001949350505050565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461089d576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae906020015b60405180910390a150565b600080546040517f0be155470000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000060048201528291829173ffffffffffffffffffffffffffffffffffffffff90911690630be1554790602401602060405180830381865afa1580156109aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ce919061151e565b905073ffffffffffffffffffffffffffffffffffffffff8116610a1d576040517f78fff39600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080546040517fd7fd7afb0000000000000000000000000000000000000000000000000000000081527f0000000000000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff9091169063d7fd7afb90602401602060405180830381865afa158015610aac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad0919061153b565b905080600003610b0c576040517fe661aed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060035460025483610b1f9190611554565b610b29919061156b565b92959294509192505050565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610b82576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60038190556040518181527fef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f9060200161090c565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610c04576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028190556040518181527fff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a9060200161090c565b73ffffffffffffffffffffffffffffffffffffffff8316610c86576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610cd3576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316610d8f576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610ddc576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff831660009081526004602052604090205481811015610e3c576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e468282611498565b73ffffffffffffffffffffffffffffffffffffffff8086166000908152600460205260408082209390935590851681529081208054849290610e8990849061156b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610eef91815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff8216610f4a576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081526004602052604090205481811015610faa576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fb48282611498565b73ffffffffffffffffffffffffffffffffffffffff841660009081526004602052604081209190915560068054849290610fef908490611498565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610d35565b73ffffffffffffffffffffffffffffffffffffffff821661108c576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806006600082825461109e919061156b565b909155505073ffffffffffffffffffffffffffffffffffffffff8216600090815260046020526040812080548392906110d890849061156b565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6000815180845260005b8181101561115557602081850181015186830182015201611139565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006111a6602083018461112f565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff811681146111cf57600080fd5b50565b600080604083850312156111e557600080fd5b82356111f0816111ad565b946020939093013593505050565b60008060006060848603121561121357600080fd5b833561121e816111ad565b9250602084013561122e816111ad565b929592945050506040919091013590565b60006020828403121561125157600080fd5b5035919050565b60006020828403121561126a57600080fd5b81356111a6816111ad565b60208101600383106112b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156112f857600080fd5b823567ffffffffffffffff81111561130f57600080fd5b8301601f8101851361132057600080fd5b803567ffffffffffffffff81111561133a5761133a6112b6565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff821117156113a6576113a66112b6565b6040528181528282016020018710156113be57600080fd5b8160208401602083013760006020928201830152969401359450505050565b600080604083850312156113f057600080fd5b82356113fb816111ad565b9150602083013561140b816111ad565b809150509250929050565b600181811c9082168061142a57607f821691505b602082108103611463577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156104e0576104e0611469565b6040815260006114be604083018561112f565b90508260208301529392505050565b6000602082840312156114df57600080fd5b815180151581146111a657600080fd5b608081526000611502608083018761112f565b6020830195909552506040810192909252606090910152919050565b60006020828403121561153057600080fd5b81516111a6816111ad565b60006020828403121561154d57600080fd5b5051919050565b80820281158282048414176104e0576104e0611469565b808201808211156104e0576104e061146956fea264697066735822122062e8c81bc642fb8e9a1eaabde5abdece7e58510051b4aa2bee706dc57435041764736f6c634300081a0033a2646970667358221220d49d6a6accb8bf72157d03d327cb4f98b0346f2cd9283cb572dde3ee0071dc7364736f6c634300081a0033", +} + +// 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 + ChainId *big.Int + Receiver []byte + Message []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterCall0 is a free log retrieval operation binding the contract event 0x5322ffbbf9261ff1f8138247942d2b03b28717141ef0a0dd080fc4be9c4e78d3. +// +// Solidity: event Call(address indexed sender, uint256 indexed chainId, bytes receiver, bytes message) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) FilterCall0(opts *bind.FilterOpts, sender []common.Address, chainId []*big.Int) (*GatewayEVMZEVMTestCall0Iterator, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var chainIdRule []interface{} + for _, chainIdItem := range chainId { + chainIdRule = append(chainIdRule, chainIdItem) + } + + logs, sub, err := _GatewayEVMZEVMTest.contract.FilterLogs(opts, "Call0", senderRule, chainIdRule) + 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 0x5322ffbbf9261ff1f8138247942d2b03b28717141ef0a0dd080fc4be9c4e78d3. +// +// Solidity: event Call(address indexed sender, uint256 indexed chainId, bytes receiver, bytes message) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) WatchCall0(opts *bind.WatchOpts, sink chan<- *GatewayEVMZEVMTestCall0, sender []common.Address, chainId []*big.Int) (event.Subscription, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var chainIdRule []interface{} + for _, chainIdItem := range chainId { + chainIdRule = append(chainIdRule, chainIdItem) + } + + logs, sub, err := _GatewayEVMZEVMTest.contract.WatchLogs(opts, "Call0", senderRule, chainIdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-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 0x5322ffbbf9261ff1f8138247942d2b03b28717141ef0a0dd080fc4be9c4e78d3. +// +// Solidity: event Call(address indexed sender, uint256 indexed chainId, 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 { + Sender common.Address + ChainId *big.Int + Receiver []byte + Zrc20 common.Address + 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 0xde19dbe881cc0aeeb6e73ce19ac7b5ca695e6be8a076e3eb42292005a7fec1b5. +// +// Solidity: event Withdrawal(address indexed sender, uint256 indexed chainId, bytes receiver, address zrc20, uint256 value, uint256 gasfee, uint256 protocolFlatFee, bytes message) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) FilterWithdrawal(opts *bind.FilterOpts, sender []common.Address, chainId []*big.Int) (*GatewayEVMZEVMTestWithdrawalIterator, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var chainIdRule []interface{} + for _, chainIdItem := range chainId { + chainIdRule = append(chainIdRule, chainIdItem) + } + + logs, sub, err := _GatewayEVMZEVMTest.contract.FilterLogs(opts, "Withdrawal", senderRule, chainIdRule) + 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 0xde19dbe881cc0aeeb6e73ce19ac7b5ca695e6be8a076e3eb42292005a7fec1b5. +// +// Solidity: event Withdrawal(address indexed sender, uint256 indexed chainId, bytes receiver, address zrc20, uint256 value, uint256 gasfee, uint256 protocolFlatFee, bytes message) +func (_GatewayEVMZEVMTest *GatewayEVMZEVMTestFilterer) WatchWithdrawal(opts *bind.WatchOpts, sink chan<- *GatewayEVMZEVMTestWithdrawal, sender []common.Address, chainId []*big.Int) (event.Subscription, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var chainIdRule []interface{} + for _, chainIdItem := range chainId { + chainIdRule = append(chainIdRule, chainIdItem) + } + + logs, sub, err := _GatewayEVMZEVMTest.contract.WatchLogs(opts, "Withdrawal", senderRule, chainIdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-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 0xde19dbe881cc0aeeb6e73ce19ac7b5ca695e6be8a076e3eb42292005a7fec1b5. +// +// Solidity: event Withdrawal(address indexed sender, uint256 indexed chainId, bytes receiver, address zrc20, 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..299c694c --- /dev/null +++ b/v2/pkg/gatewayzevm.sol/gatewayzevm.go @@ -0,0 +1,2272 @@ +// 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\":\"DEFAULT_ADMIN_ROLE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"FUNGIBLE_MODULE_ADDRESS\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"PAUSER_ROLE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"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\":\"chainId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"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\":\"getRoleAdmin\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"grantRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"hasRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_zetaToken\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_admin\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"proxiableUUID\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"callerConfirmation\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"revokeRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"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\":\"unpause\",\"inputs\":[],\"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\"},{\"name\":\"chainId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"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\":\"withdrawAndCall\",\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"chainId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"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\":\"chainId\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"},{\"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\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RoleAdminChanged\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"previousAdminRole\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"newAdminRole\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RoleGranted\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RoleRevoked\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":false,\"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\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"chainId\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"},{\"name\":\"receiver\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"zrc20\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"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\":\"AccessControlBadConfirmation\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"AccessControlUnauthorizedAccount\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"neededRole\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"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\":\"EnforcedPause\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExpectedPause\",\"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\":\"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: "0x60a06040523060805234801561001457600080fd5b5061001d610022565b6100d4565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100725760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100d15780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612d416100fd60003960008181611e7201528181611e9b01526120530152612d416000f3fe6080604052600436106101bb5760003560e01c80635af65967116100ec578063a217fddf1161008a578063c39aca3711610064578063c39aca3714610600578063d547741f14610620578063e63ab1e914610640578063f45346dc1461067457600080fd5b8063a217fddf14610575578063ad3cb1cc1461058a578063bcf7f32b146105e057600080fd5b80637993c1e0116100c65780637993c1e0146104bb57806380bd3d03146104db5780638456cb59146104fb57806391d148541461051057600080fd5b80635af65967146104445780635c975abb146104645780635d40e1781461049b57600080fd5b806336568abe11610159578063441a3e7011610133578063441a3e70146103dc578063485cc955146103fc5780634f1ef2861461041c57806352d1902d1461042f57600080fd5b806336568abe1461037f5780633ce4a5bc1461039f5780633f4ba83a146103c757600080fd5b806321e093b11161019557806321e093b1146102aa578063248a9ca3146102e25780632f2ff15d1461033f578063309f50041461035f57600080fd5b806301ffc9a714610235578063135390f91461026a57806321501a951461028a57600080fd5b36610230576101c8610694565b6000546001600160a01b031633148015906101f757503373735b14bb79463307aacbed86daf3322b1e6226ab14155b1561022e576040517f229930b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b005b600080fd5b34801561024157600080fd5b50610255610250366004612531565b6106f2565b60405190151581526020015b60405180910390f35b34801561027657600080fd5b5061022e610285366004612647565b61078b565b34801561029657600080fd5b5061022e6102a5366004612703565b610884565b3480156102b657600080fd5b506000546102ca906001600160a01b031681565b6040516001600160a01b039091168152602001610261565b3480156102ee57600080fd5b506103316102fd36600461278f565b60009081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b604051908152602001610261565b34801561034b57600080fd5b5061022e61035a3660046127a8565b6109d7565b34801561036b57600080fd5b5061022e61037a3660046127d8565b610a21565b34801561038b57600080fd5b5061022e61039a3660046127a8565b610afd565b3480156103ab57600080fd5b506102ca73735b14bb79463307aacbed86daf3322b1e6226ab81565b3480156103d357600080fd5b5061022e610b49565b3480156103e857600080fd5b5061022e6103f7366004612876565b610b7e565b34801561040857600080fd5b5061022e610417366004612898565b610c61565b61022e61042a3660046128c6565b610ea3565b34801561043b57600080fd5b50610331610ebe565b34801561045057600080fd5b5061022e61045f3660046127d8565b610eed565b34801561047057600080fd5b507fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff16610255565b3480156104a757600080fd5b5061022e6104b6366004612916565b611086565b3480156104c757600080fd5b5061022e6104d636600461298b565b611105565b3480156104e757600080fd5b5061022e6104f63660046129c6565b611204565b34801561050757600080fd5b5061022e6112b6565b34801561051c57600080fd5b5061025561052b3660046127a8565b60009182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408084206001600160a01b0393909316845291905290205460ff1690565b34801561058157600080fd5b50610331600081565b34801561059657600080fd5b506105d36040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6040516102619190612a51565b3480156105ec57600080fd5b5061022e6105fb3660046127d8565b6112e8565b34801561060c57600080fd5b5061022e61061b3660046127d8565b61138a565b34801561062c57600080fd5b5061022e61063b3660046127a8565b611523565b34801561064c57600080fd5b506103317f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b34801561068057600080fd5b5061022e61068f366004612a64565b611567565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff16156106f0576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061078557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6107936116b2565b61079b610694565b60006107a78383611733565b90506000336001600160a01b03167fde19dbe881cc0aeeb6e73ce19ac7b5ca695e6be8a076e3eb42292005a7fec1b586858786886001600160a01b0316634d8943bb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610818573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083c9190612a9b565b60405161084d959493929190612ab4565b60405180910390a35061087f60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b505050565b3373735b14bb79463307aacbed86daf3322b1e6226ab146108d1576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108d9610694565b6001600160a01b03831673735b14bb79463307aacbed86daf3322b1e6226ab148061090c57506001600160a01b03831630145b15610943576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61094d8484611a26565b6000546040517fde43156e0000000000000000000000000000000000000000000000000000000081526001600160a01b038086169263de43156e9261099e928a921690899088908890600401612bd3565b600060405180830381600087803b1580156109b857600080fd5b505af11580156109cc573d6000803e3d6000fd5b505050505050505050565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610a1181611bf4565b610a1b8383611bfe565b50505050565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610a6e576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a76610694565b6040517f69582bee0000000000000000000000000000000000000000000000000000000081526001600160a01b038416906369582bee90610ac39089908990899088908890600401612bd3565b600060405180830381600087803b158015610add57600080fd5b505af1158015610af1573d6000803e3d6000fd5b50505050505050505050565b6001600160a01b0381163314610b3f576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61087f8282611ceb565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610b7381611bf4565b610b7b611daf565b50565b610b866116b2565b610b8e610694565b610bac8273735b14bb79463307aacbed86daf3322b1e6226ab611a26565b6040517f735b14bb79463307aacbed86daf3322b1e6226ab0000000000000000000000006020820152819033907fde19dbe881cc0aeeb6e73ce19ac7b5ca695e6be8a076e3eb42292005a7fec1b59060340160408051601f198184030181529082905260008054610c2c936001600160a01b039091169189918190612ab4565b60405180910390a3610c5d60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff16600081158015610cac5750825b905060008267ffffffffffffffff166001148015610cc95750303b155b905081158015610cd7575080155b15610d0e576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001660011785558315610d6f5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6001600160a01b038716610daf576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610db7611e3f565b610dbf611e3f565b610dc7611e47565b610dcf611e57565b610dda600087611bfe565b50610e057f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a87611bfe565b50600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0389161790558315610e9a5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b610eab611e67565b610eb482611f37565b610c5d8282611f42565b6000610ec8612048565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610f3a576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f42610694565b6001600160a01b03831673735b14bb79463307aacbed86daf3322b1e6226ab1480610f7557506001600160a01b03831630145b15610fac576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f47e7ef240000000000000000000000000000000000000000000000000000000081526001600160a01b038481166004830152602482018690528616906347e7ef24906044016020604051808303816000875af1158015611014573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110389190612c1a565b506040517f69582bee0000000000000000000000000000000000000000000000000000000081526001600160a01b038416906369582bee90610ac39089908990899088908890600401612bd3565b61108e6116b2565b611096610694565b82336001600160a01b03167f5322ffbbf9261ff1f8138247942d2b03b28717141ef0a0dd080fc4be9c4e78d38685856040516110d493929190612c3c565b60405180910390a3610a1b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b61110d6116b2565b611115610694565b60006111218585611733565b90506000336001600160a01b03167fde19dbe881cc0aeeb6e73ce19ac7b5ca695e6be8a076e3eb42292005a7fec1b5888789868a6001600160a01b0316634d8943bb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611192573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b69190612a9b565b8a8a6040516111cb9796959493929190612c6c565b60405180910390a3506111fd60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050505050565b61120c6116b2565b611214610694565b6112328473735b14bb79463307aacbed86daf3322b1e6226ab611a26565b6040517f735b14bb79463307aacbed86daf3322b1e6226ab0000000000000000000000006020820152839033907fde19dbe881cc0aeeb6e73ce19ac7b5ca695e6be8a076e3eb42292005a7fec1b59060340160408051601f1981840301815290829052600080546110d4936001600160a01b03909116918b9181908b908b90612c6c565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6112e081611bf4565b610b7b6120aa565b3373735b14bb79463307aacbed86daf3322b1e6226ab14611335576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61133d610694565b6040517fde43156e0000000000000000000000000000000000000000000000000000000081526001600160a01b0384169063de43156e90610ac39089908990899088908890600401612bd3565b3373735b14bb79463307aacbed86daf3322b1e6226ab146113d7576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113df610694565b6001600160a01b03831673735b14bb79463307aacbed86daf3322b1e6226ab148061141257506001600160a01b03831630145b15611449576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f47e7ef240000000000000000000000000000000000000000000000000000000081526001600160a01b038481166004830152602482018690528616906347e7ef24906044016020604051808303816000875af11580156114b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d59190612c1a565b506040517fde43156e0000000000000000000000000000000000000000000000000000000081526001600160a01b0384169063de43156e90610ac39089908990899088908890600401612bd3565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015461155d81611bf4565b610a1b8383611ceb565b3373735b14bb79463307aacbed86daf3322b1e6226ab146115b4576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6115bc610694565b6001600160a01b03811673735b14bb79463307aacbed86daf3322b1e6226ab14806115ef57506001600160a01b03811630145b15611626576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f47e7ef240000000000000000000000000000000000000000000000000000000081526001600160a01b038281166004830152602482018490528416906347e7ef24906044016020604051808303816000875af115801561168e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1b9190612c1a565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0080547ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0161172d576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60029055565b6000806000836001600160a01b031663d9eeebed6040518163ffffffff1660e01b81526004016040805180830381865afa158015611775573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117999190612cc1565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273735b14bb79463307aacbed86daf3322b1e6226ab60248201526044810182905291935091506001600160a01b038316906323b872dd906064016020604051808303816000875af115801561181e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118429190612c1a565b611878576040517f0a7cd6d600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018690526001600160a01b038516906323b872dd906064016020604051808303816000875af11580156118e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119089190612c1a565b61193e576040517f4dd9ee8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f42966c68000000000000000000000000000000000000000000000000000000008152600481018690526001600160a01b038516906342966c68906024016020604051808303816000875af115801561199e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119c29190612c1a565b6119f8576040517f2c77e05c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b949350505050565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6000546040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018490526001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015611a96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aba9190612c1a565b611af0576040517fc7ffc47b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000546040517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018490526001600160a01b0390911690632e1a7d4d90602401600060405180830381600087803b158015611b4f57600080fd5b505af1158015611b63573d6000803e3d6000fd5b505050506000816001600160a01b03168360405160006040518083038185875af1925050503d8060008114611bb4576040519150601f19603f3d011682016040523d82523d6000602084013e611bb9565b606091505b505090508061087f576040517fc7ffc47b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b7b8133612123565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff16611ce1576000848152602082815260408083206001600160a01b0387168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055611c973390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610785565b6000915050610785565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff1615611ce1576000848152602082815260408083206001600160a01b038716808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610785565b611db76121b0565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b6106f061220b565b611e4f61220b565b6106f0612272565b611e5f61220b565b6106f06122c3565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480611f0057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611ef47f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b156106f0576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610c5d81611bf4565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611f9c575060408051601f3d908101601f19168201909252611f9991810190612a9b565b60015b611fe2576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc811461203e576040517faa1d49a400000000000000000000000000000000000000000000000000000000815260048101829052602401611fd9565b61087f83836122cb565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106f0576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6120b2610694565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833611e21565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038516845290915290205460ff16610c5d576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401611fd9565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff166106f0576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166106f0576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61227a61220b565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b611a0061220b565b6122d482612321565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156123195761087f82826123c9565b610c5d61243f565b806001600160a01b03163b600003612370576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b0382166004820152602401611fd9565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516123e69190612cef565b600060405180830381855af49150503d8060008114612421576040519150601f19603f3d011682016040523d82523d6000602084013e612426565b606091505b5091509150612436858383612477565b95945050505050565b34156106f0576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608261248c57612487826124ef565b6124e8565b81511580156124a357506001600160a01b0384163b155b156124e5576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401611fd9565b50805b9392505050565b8051156124ff5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006020828403121561254357600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146124e857600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f8301126125b357600080fd5b813567ffffffffffffffff8111156125cd576125cd612573565b604051601f19603f601f19601f8501160116810181811067ffffffffffffffff821117156125fd576125fd612573565b60405281815283820160200185101561261557600080fd5b816020850160208301376000918101602001919091529392505050565b6001600160a01b0381168114610b7b57600080fd5b60008060006060848603121561265c57600080fd5b833567ffffffffffffffff81111561267357600080fd5b61267f868287016125a2565b93505060208401359150604084013561269781612632565b809150509250925092565b6000606082840312156126b457600080fd5b50919050565b60008083601f8401126126cc57600080fd5b50813567ffffffffffffffff8111156126e457600080fd5b6020830191508360208285010111156126fc57600080fd5b9250929050565b60008060008060006080868803121561271b57600080fd5b853567ffffffffffffffff81111561273257600080fd5b61273e888289016126a2565b95505060208601359350604086013561275681612632565b9250606086013567ffffffffffffffff81111561277257600080fd5b61277e888289016126ba565b969995985093965092949392505050565b6000602082840312156127a157600080fd5b5035919050565b600080604083850312156127bb57600080fd5b8235915060208301356127cd81612632565b809150509250929050565b60008060008060008060a087890312156127f157600080fd5b863567ffffffffffffffff81111561280857600080fd5b61281489828a016126a2565b965050602087013561282581612632565b945060408701359350606087013561283c81612632565b9250608087013567ffffffffffffffff81111561285857600080fd5b61286489828a016126ba565b979a9699509497509295939492505050565b6000806040838503121561288957600080fd5b50508035926020909101359150565b600080604083850312156128ab57600080fd5b82356128b681612632565b915060208301356127cd81612632565b600080604083850312156128d957600080fd5b82356128e481612632565b9150602083013567ffffffffffffffff81111561290057600080fd5b61290c858286016125a2565b9150509250929050565b6000806000806060858703121561292c57600080fd5b843567ffffffffffffffff81111561294357600080fd5b61294f878288016125a2565b94505060208501359250604085013567ffffffffffffffff81111561297357600080fd5b61297f878288016126ba565b95989497509550505050565b6000806000806000608086880312156129a357600080fd5b853567ffffffffffffffff8111156129ba57600080fd5b61273e888289016125a2565b600080600080606085870312156129dc57600080fd5b8435935060208501359250604085013567ffffffffffffffff81111561297357600080fd5b60005b83811015612a1c578181015183820152602001612a04565b50506000910152565b60008151808452612a3d816020860160208601612a01565b601f01601f19169290920160200192915050565b6020815260006124e86020830184612a25565b600080600060608486031215612a7957600080fd5b8335612a8481612632565b925060208401359150604084013561269781612632565b600060208284031215612aad57600080fd5b5051919050565b60c081526000612ac760c0830188612a25565b6001600160a01b038716602084015285604084015284606084015283608084015282810360a084015260008152602081019150509695505050505050565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b600081357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1833603018112612b6457600080fd5b820160208101903567ffffffffffffffff811115612b8157600080fd5b803603821315612b9057600080fd5b60608552612ba2606086018284612b05565b9150506020830135612bb381612632565b6001600160a01b0316602085015260409283013592909301919091525090565b608081526000612be66080830188612b30565b6001600160a01b03871660208401528560408401528281036060840152612c0e818587612b05565b98975050505050505050565b600060208284031215612c2c57600080fd5b815180151581146124e857600080fd5b604081526000612c4f6040830186612a25565b8281036020840152612c62818587612b05565b9695505050505050565b60c081526000612c7f60c083018a612a25565b6001600160a01b038916602084015287604084015286606084015285608084015282810360a0840152612cb3818587612b05565b9a9950505050505050505050565b60008060408385031215612cd457600080fd5b8251612cdf81612632565b6020939093015192949293505050565b60008251612d01818460208701612a01565b919091019291505056fea2646970667358221220d3c04e4efcbf4c2321bdb921767d68b27240d29d07d2982f0f334bad40c04c5664736f6c634300081a0033", +} + +// 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...) +} + +// DEFAULTADMINROLE is a free data retrieval call binding the contract method 0xa217fddf. +// +// Solidity: function DEFAULT_ADMIN_ROLE() view returns(bytes32) +func (_GatewayZEVM *GatewayZEVMCaller) DEFAULTADMINROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _GatewayZEVM.contract.Call(opts, &out, "DEFAULT_ADMIN_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// DEFAULTADMINROLE is a free data retrieval call binding the contract method 0xa217fddf. +// +// Solidity: function DEFAULT_ADMIN_ROLE() view returns(bytes32) +func (_GatewayZEVM *GatewayZEVMSession) DEFAULTADMINROLE() ([32]byte, error) { + return _GatewayZEVM.Contract.DEFAULTADMINROLE(&_GatewayZEVM.CallOpts) +} + +// DEFAULTADMINROLE is a free data retrieval call binding the contract method 0xa217fddf. +// +// Solidity: function DEFAULT_ADMIN_ROLE() view returns(bytes32) +func (_GatewayZEVM *GatewayZEVMCallerSession) DEFAULTADMINROLE() ([32]byte, error) { + return _GatewayZEVM.Contract.DEFAULTADMINROLE(&_GatewayZEVM.CallOpts) +} + +// 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) +} + +// PAUSERROLE is a free data retrieval call binding the contract method 0xe63ab1e9. +// +// Solidity: function PAUSER_ROLE() view returns(bytes32) +func (_GatewayZEVM *GatewayZEVMCaller) PAUSERROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _GatewayZEVM.contract.Call(opts, &out, "PAUSER_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// PAUSERROLE is a free data retrieval call binding the contract method 0xe63ab1e9. +// +// Solidity: function PAUSER_ROLE() view returns(bytes32) +func (_GatewayZEVM *GatewayZEVMSession) PAUSERROLE() ([32]byte, error) { + return _GatewayZEVM.Contract.PAUSERROLE(&_GatewayZEVM.CallOpts) +} + +// PAUSERROLE is a free data retrieval call binding the contract method 0xe63ab1e9. +// +// Solidity: function PAUSER_ROLE() view returns(bytes32) +func (_GatewayZEVM *GatewayZEVMCallerSession) PAUSERROLE() ([32]byte, error) { + return _GatewayZEVM.Contract.PAUSERROLE(&_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) +} + +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. +// +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_GatewayZEVM *GatewayZEVMCaller) GetRoleAdmin(opts *bind.CallOpts, role [32]byte) ([32]byte, error) { + var out []interface{} + err := _GatewayZEVM.contract.Call(opts, &out, "getRoleAdmin", role) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. +// +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_GatewayZEVM *GatewayZEVMSession) GetRoleAdmin(role [32]byte) ([32]byte, error) { + return _GatewayZEVM.Contract.GetRoleAdmin(&_GatewayZEVM.CallOpts, role) +} + +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. +// +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_GatewayZEVM *GatewayZEVMCallerSession) GetRoleAdmin(role [32]byte) ([32]byte, error) { + return _GatewayZEVM.Contract.GetRoleAdmin(&_GatewayZEVM.CallOpts, role) +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_GatewayZEVM *GatewayZEVMCaller) HasRole(opts *bind.CallOpts, role [32]byte, account common.Address) (bool, error) { + var out []interface{} + err := _GatewayZEVM.contract.Call(opts, &out, "hasRole", role, account) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_GatewayZEVM *GatewayZEVMSession) HasRole(role [32]byte, account common.Address) (bool, error) { + return _GatewayZEVM.Contract.HasRole(&_GatewayZEVM.CallOpts, role, account) +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_GatewayZEVM *GatewayZEVMCallerSession) HasRole(role [32]byte, account common.Address) (bool, error) { + return _GatewayZEVM.Contract.HasRole(&_GatewayZEVM.CallOpts, role, account) +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_GatewayZEVM *GatewayZEVMCaller) Paused(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _GatewayZEVM.contract.Call(opts, &out, "paused") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_GatewayZEVM *GatewayZEVMSession) Paused() (bool, error) { + return _GatewayZEVM.Contract.Paused(&_GatewayZEVM.CallOpts) +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_GatewayZEVM *GatewayZEVMCallerSession) Paused() (bool, error) { + return _GatewayZEVM.Contract.Paused(&_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) +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) +func (_GatewayZEVM *GatewayZEVMCaller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) { + var out []interface{} + err := _GatewayZEVM.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 (_GatewayZEVM *GatewayZEVMSession) SupportsInterface(interfaceId [4]byte) (bool, error) { + return _GatewayZEVM.Contract.SupportsInterface(&_GatewayZEVM.CallOpts, interfaceId) +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) +func (_GatewayZEVM *GatewayZEVMCallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) { + return _GatewayZEVM.Contract.SupportsInterface(&_GatewayZEVM.CallOpts, interfaceId) +} + +// 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 0x5d40e178. +// +// Solidity: function call(bytes receiver, uint256 chainId, bytes message) returns() +func (_GatewayZEVM *GatewayZEVMTransactor) Call(opts *bind.TransactOpts, receiver []byte, chainId *big.Int, message []byte) (*types.Transaction, error) { + return _GatewayZEVM.contract.Transact(opts, "call", receiver, chainId, message) +} + +// Call is a paid mutator transaction binding the contract method 0x5d40e178. +// +// Solidity: function call(bytes receiver, uint256 chainId, bytes message) returns() +func (_GatewayZEVM *GatewayZEVMSession) Call(receiver []byte, chainId *big.Int, message []byte) (*types.Transaction, error) { + return _GatewayZEVM.Contract.Call(&_GatewayZEVM.TransactOpts, receiver, chainId, message) +} + +// Call is a paid mutator transaction binding the contract method 0x5d40e178. +// +// Solidity: function call(bytes receiver, uint256 chainId, bytes message) returns() +func (_GatewayZEVM *GatewayZEVMTransactorSession) Call(receiver []byte, chainId *big.Int, message []byte) (*types.Transaction, error) { + return _GatewayZEVM.Contract.Call(&_GatewayZEVM.TransactOpts, receiver, chainId, 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) +} + +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_GatewayZEVM *GatewayZEVMTransactor) GrantRole(opts *bind.TransactOpts, role [32]byte, account common.Address) (*types.Transaction, error) { + return _GatewayZEVM.contract.Transact(opts, "grantRole", role, account) +} + +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_GatewayZEVM *GatewayZEVMSession) GrantRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _GatewayZEVM.Contract.GrantRole(&_GatewayZEVM.TransactOpts, role, account) +} + +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_GatewayZEVM *GatewayZEVMTransactorSession) GrantRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _GatewayZEVM.Contract.GrantRole(&_GatewayZEVM.TransactOpts, role, account) +} + +// Initialize is a paid mutator transaction binding the contract method 0x485cc955. +// +// Solidity: function initialize(address _zetaToken, address _admin) returns() +func (_GatewayZEVM *GatewayZEVMTransactor) Initialize(opts *bind.TransactOpts, _zetaToken common.Address, _admin common.Address) (*types.Transaction, error) { + return _GatewayZEVM.contract.Transact(opts, "initialize", _zetaToken, _admin) +} + +// Initialize is a paid mutator transaction binding the contract method 0x485cc955. +// +// Solidity: function initialize(address _zetaToken, address _admin) returns() +func (_GatewayZEVM *GatewayZEVMSession) Initialize(_zetaToken common.Address, _admin common.Address) (*types.Transaction, error) { + return _GatewayZEVM.Contract.Initialize(&_GatewayZEVM.TransactOpts, _zetaToken, _admin) +} + +// Initialize is a paid mutator transaction binding the contract method 0x485cc955. +// +// Solidity: function initialize(address _zetaToken, address _admin) returns() +func (_GatewayZEVM *GatewayZEVMTransactorSession) Initialize(_zetaToken common.Address, _admin common.Address) (*types.Transaction, error) { + return _GatewayZEVM.Contract.Initialize(&_GatewayZEVM.TransactOpts, _zetaToken, _admin) +} + +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. +// +// Solidity: function pause() returns() +func (_GatewayZEVM *GatewayZEVMTransactor) Pause(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVM.contract.Transact(opts, "pause") +} + +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. +// +// Solidity: function pause() returns() +func (_GatewayZEVM *GatewayZEVMSession) Pause() (*types.Transaction, error) { + return _GatewayZEVM.Contract.Pause(&_GatewayZEVM.TransactOpts) +} + +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. +// +// Solidity: function pause() returns() +func (_GatewayZEVM *GatewayZEVMTransactorSession) Pause() (*types.Transaction, error) { + return _GatewayZEVM.Contract.Pause(&_GatewayZEVM.TransactOpts) +} + +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. +// +// Solidity: function renounceRole(bytes32 role, address callerConfirmation) returns() +func (_GatewayZEVM *GatewayZEVMTransactor) RenounceRole(opts *bind.TransactOpts, role [32]byte, callerConfirmation common.Address) (*types.Transaction, error) { + return _GatewayZEVM.contract.Transact(opts, "renounceRole", role, callerConfirmation) +} + +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. +// +// Solidity: function renounceRole(bytes32 role, address callerConfirmation) returns() +func (_GatewayZEVM *GatewayZEVMSession) RenounceRole(role [32]byte, callerConfirmation common.Address) (*types.Transaction, error) { + return _GatewayZEVM.Contract.RenounceRole(&_GatewayZEVM.TransactOpts, role, callerConfirmation) +} + +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. +// +// Solidity: function renounceRole(bytes32 role, address callerConfirmation) returns() +func (_GatewayZEVM *GatewayZEVMTransactorSession) RenounceRole(role [32]byte, callerConfirmation common.Address) (*types.Transaction, error) { + return _GatewayZEVM.Contract.RenounceRole(&_GatewayZEVM.TransactOpts, role, callerConfirmation) +} + +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_GatewayZEVM *GatewayZEVMTransactor) RevokeRole(opts *bind.TransactOpts, role [32]byte, account common.Address) (*types.Transaction, error) { + return _GatewayZEVM.contract.Transact(opts, "revokeRole", role, account) +} + +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_GatewayZEVM *GatewayZEVMSession) RevokeRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _GatewayZEVM.Contract.RevokeRole(&_GatewayZEVM.TransactOpts, role, account) +} + +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_GatewayZEVM *GatewayZEVMTransactorSession) RevokeRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _GatewayZEVM.Contract.RevokeRole(&_GatewayZEVM.TransactOpts, role, account) +} + +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. +// +// Solidity: function unpause() returns() +func (_GatewayZEVM *GatewayZEVMTransactor) Unpause(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVM.contract.Transact(opts, "unpause") +} + +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. +// +// Solidity: function unpause() returns() +func (_GatewayZEVM *GatewayZEVMSession) Unpause() (*types.Transaction, error) { + return _GatewayZEVM.Contract.Unpause(&_GatewayZEVM.TransactOpts) +} + +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. +// +// Solidity: function unpause() returns() +func (_GatewayZEVM *GatewayZEVMTransactorSession) Unpause() (*types.Transaction, error) { + return _GatewayZEVM.Contract.Unpause(&_GatewayZEVM.TransactOpts) +} + +// 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 0x441a3e70. +// +// Solidity: function withdraw(uint256 amount, uint256 chainId) returns() +func (_GatewayZEVM *GatewayZEVMTransactor) Withdraw0(opts *bind.TransactOpts, amount *big.Int, chainId *big.Int) (*types.Transaction, error) { + return _GatewayZEVM.contract.Transact(opts, "withdraw0", amount, chainId) +} + +// Withdraw0 is a paid mutator transaction binding the contract method 0x441a3e70. +// +// Solidity: function withdraw(uint256 amount, uint256 chainId) returns() +func (_GatewayZEVM *GatewayZEVMSession) Withdraw0(amount *big.Int, chainId *big.Int) (*types.Transaction, error) { + return _GatewayZEVM.Contract.Withdraw0(&_GatewayZEVM.TransactOpts, amount, chainId) +} + +// Withdraw0 is a paid mutator transaction binding the contract method 0x441a3e70. +// +// Solidity: function withdraw(uint256 amount, uint256 chainId) returns() +func (_GatewayZEVM *GatewayZEVMTransactorSession) Withdraw0(amount *big.Int, chainId *big.Int) (*types.Transaction, error) { + return _GatewayZEVM.Contract.Withdraw0(&_GatewayZEVM.TransactOpts, amount, chainId) +} + +// WithdrawAndCall 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) WithdrawAndCall(opts *bind.TransactOpts, receiver []byte, amount *big.Int, zrc20 common.Address, message []byte) (*types.Transaction, error) { + return _GatewayZEVM.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 (_GatewayZEVM *GatewayZEVMSession) WithdrawAndCall(receiver []byte, amount *big.Int, zrc20 common.Address, message []byte) (*types.Transaction, error) { + return _GatewayZEVM.Contract.WithdrawAndCall(&_GatewayZEVM.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 (_GatewayZEVM *GatewayZEVMTransactorSession) WithdrawAndCall(receiver []byte, amount *big.Int, zrc20 common.Address, message []byte) (*types.Transaction, error) { + return _GatewayZEVM.Contract.WithdrawAndCall(&_GatewayZEVM.TransactOpts, receiver, amount, zrc20, message) +} + +// WithdrawAndCall0 is a paid mutator transaction binding the contract method 0x80bd3d03. +// +// Solidity: function withdrawAndCall(uint256 amount, uint256 chainId, bytes message) returns() +func (_GatewayZEVM *GatewayZEVMTransactor) WithdrawAndCall0(opts *bind.TransactOpts, amount *big.Int, chainId *big.Int, message []byte) (*types.Transaction, error) { + return _GatewayZEVM.contract.Transact(opts, "withdrawAndCall0", amount, chainId, message) +} + +// WithdrawAndCall0 is a paid mutator transaction binding the contract method 0x80bd3d03. +// +// Solidity: function withdrawAndCall(uint256 amount, uint256 chainId, bytes message) returns() +func (_GatewayZEVM *GatewayZEVMSession) WithdrawAndCall0(amount *big.Int, chainId *big.Int, message []byte) (*types.Transaction, error) { + return _GatewayZEVM.Contract.WithdrawAndCall0(&_GatewayZEVM.TransactOpts, amount, chainId, message) +} + +// WithdrawAndCall0 is a paid mutator transaction binding the contract method 0x80bd3d03. +// +// Solidity: function withdrawAndCall(uint256 amount, uint256 chainId, bytes message) returns() +func (_GatewayZEVM *GatewayZEVMTransactorSession) WithdrawAndCall0(amount *big.Int, chainId *big.Int, message []byte) (*types.Transaction, error) { + return _GatewayZEVM.Contract.WithdrawAndCall0(&_GatewayZEVM.TransactOpts, amount, chainId, 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 + ChainId *big.Int + Receiver []byte + Message []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterCall is a free log retrieval operation binding the contract event 0x5322ffbbf9261ff1f8138247942d2b03b28717141ef0a0dd080fc4be9c4e78d3. +// +// Solidity: event Call(address indexed sender, uint256 indexed chainId, bytes receiver, bytes message) +func (_GatewayZEVM *GatewayZEVMFilterer) FilterCall(opts *bind.FilterOpts, sender []common.Address, chainId []*big.Int) (*GatewayZEVMCallIterator, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var chainIdRule []interface{} + for _, chainIdItem := range chainId { + chainIdRule = append(chainIdRule, chainIdItem) + } + + logs, sub, err := _GatewayZEVM.contract.FilterLogs(opts, "Call", senderRule, chainIdRule) + 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 0x5322ffbbf9261ff1f8138247942d2b03b28717141ef0a0dd080fc4be9c4e78d3. +// +// Solidity: event Call(address indexed sender, uint256 indexed chainId, bytes receiver, bytes message) +func (_GatewayZEVM *GatewayZEVMFilterer) WatchCall(opts *bind.WatchOpts, sink chan<- *GatewayZEVMCall, sender []common.Address, chainId []*big.Int) (event.Subscription, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var chainIdRule []interface{} + for _, chainIdItem := range chainId { + chainIdRule = append(chainIdRule, chainIdItem) + } + + logs, sub, err := _GatewayZEVM.contract.WatchLogs(opts, "Call", senderRule, chainIdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-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 0x5322ffbbf9261ff1f8138247942d2b03b28717141ef0a0dd080fc4be9c4e78d3. +// +// Solidity: event Call(address indexed sender, uint256 indexed chainId, 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 +} + +// GatewayZEVMPausedIterator is returned from FilterPaused and is used to iterate over the raw logs and unpacked data for Paused events raised by the GatewayZEVM contract. +type GatewayZEVMPausedIterator struct { + Event *GatewayZEVMPaused // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMPausedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMPaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMPaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMPausedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMPausedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMPaused represents a Paused event raised by the GatewayZEVM contract. +type GatewayZEVMPaused struct { + Account common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterPaused is a free log retrieval operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. +// +// Solidity: event Paused(address account) +func (_GatewayZEVM *GatewayZEVMFilterer) FilterPaused(opts *bind.FilterOpts) (*GatewayZEVMPausedIterator, error) { + + logs, sub, err := _GatewayZEVM.contract.FilterLogs(opts, "Paused") + if err != nil { + return nil, err + } + return &GatewayZEVMPausedIterator{contract: _GatewayZEVM.contract, event: "Paused", logs: logs, sub: sub}, nil +} + +// WatchPaused is a free log subscription operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. +// +// Solidity: event Paused(address account) +func (_GatewayZEVM *GatewayZEVMFilterer) WatchPaused(opts *bind.WatchOpts, sink chan<- *GatewayZEVMPaused) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVM.contract.WatchLogs(opts, "Paused") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMPaused) + if err := _GatewayZEVM.contract.UnpackLog(event, "Paused", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParsePaused is a log parse operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. +// +// Solidity: event Paused(address account) +func (_GatewayZEVM *GatewayZEVMFilterer) ParsePaused(log types.Log) (*GatewayZEVMPaused, error) { + event := new(GatewayZEVMPaused) + if err := _GatewayZEVM.contract.UnpackLog(event, "Paused", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMRoleAdminChangedIterator is returned from FilterRoleAdminChanged and is used to iterate over the raw logs and unpacked data for RoleAdminChanged events raised by the GatewayZEVM contract. +type GatewayZEVMRoleAdminChangedIterator struct { + Event *GatewayZEVMRoleAdminChanged // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMRoleAdminChangedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMRoleAdminChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMRoleAdminChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMRoleAdminChangedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMRoleAdminChangedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMRoleAdminChanged represents a RoleAdminChanged event raised by the GatewayZEVM contract. +type GatewayZEVMRoleAdminChanged struct { + Role [32]byte + PreviousAdminRole [32]byte + NewAdminRole [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRoleAdminChanged is a free log retrieval operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. +// +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_GatewayZEVM *GatewayZEVMFilterer) FilterRoleAdminChanged(opts *bind.FilterOpts, role [][32]byte, previousAdminRole [][32]byte, newAdminRole [][32]byte) (*GatewayZEVMRoleAdminChangedIterator, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var previousAdminRoleRule []interface{} + for _, previousAdminRoleItem := range previousAdminRole { + previousAdminRoleRule = append(previousAdminRoleRule, previousAdminRoleItem) + } + var newAdminRoleRule []interface{} + for _, newAdminRoleItem := range newAdminRole { + newAdminRoleRule = append(newAdminRoleRule, newAdminRoleItem) + } + + logs, sub, err := _GatewayZEVM.contract.FilterLogs(opts, "RoleAdminChanged", roleRule, previousAdminRoleRule, newAdminRoleRule) + if err != nil { + return nil, err + } + return &GatewayZEVMRoleAdminChangedIterator{contract: _GatewayZEVM.contract, event: "RoleAdminChanged", logs: logs, sub: sub}, nil +} + +// WatchRoleAdminChanged is a free log subscription operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. +// +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_GatewayZEVM *GatewayZEVMFilterer) WatchRoleAdminChanged(opts *bind.WatchOpts, sink chan<- *GatewayZEVMRoleAdminChanged, role [][32]byte, previousAdminRole [][32]byte, newAdminRole [][32]byte) (event.Subscription, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var previousAdminRoleRule []interface{} + for _, previousAdminRoleItem := range previousAdminRole { + previousAdminRoleRule = append(previousAdminRoleRule, previousAdminRoleItem) + } + var newAdminRoleRule []interface{} + for _, newAdminRoleItem := range newAdminRole { + newAdminRoleRule = append(newAdminRoleRule, newAdminRoleItem) + } + + logs, sub, err := _GatewayZEVM.contract.WatchLogs(opts, "RoleAdminChanged", roleRule, previousAdminRoleRule, newAdminRoleRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMRoleAdminChanged) + if err := _GatewayZEVM.contract.UnpackLog(event, "RoleAdminChanged", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRoleAdminChanged is a log parse operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. +// +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_GatewayZEVM *GatewayZEVMFilterer) ParseRoleAdminChanged(log types.Log) (*GatewayZEVMRoleAdminChanged, error) { + event := new(GatewayZEVMRoleAdminChanged) + if err := _GatewayZEVM.contract.UnpackLog(event, "RoleAdminChanged", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMRoleGrantedIterator is returned from FilterRoleGranted and is used to iterate over the raw logs and unpacked data for RoleGranted events raised by the GatewayZEVM contract. +type GatewayZEVMRoleGrantedIterator struct { + Event *GatewayZEVMRoleGranted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMRoleGrantedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMRoleGranted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMRoleGranted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMRoleGrantedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMRoleGrantedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMRoleGranted represents a RoleGranted event raised by the GatewayZEVM contract. +type GatewayZEVMRoleGranted struct { + Role [32]byte + Account common.Address + Sender common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRoleGranted is a free log retrieval operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. +// +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_GatewayZEVM *GatewayZEVMFilterer) FilterRoleGranted(opts *bind.FilterOpts, role [][32]byte, account []common.Address, sender []common.Address) (*GatewayZEVMRoleGrantedIterator, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _GatewayZEVM.contract.FilterLogs(opts, "RoleGranted", roleRule, accountRule, senderRule) + if err != nil { + return nil, err + } + return &GatewayZEVMRoleGrantedIterator{contract: _GatewayZEVM.contract, event: "RoleGranted", logs: logs, sub: sub}, nil +} + +// WatchRoleGranted is a free log subscription operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. +// +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_GatewayZEVM *GatewayZEVMFilterer) WatchRoleGranted(opts *bind.WatchOpts, sink chan<- *GatewayZEVMRoleGranted, role [][32]byte, account []common.Address, sender []common.Address) (event.Subscription, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _GatewayZEVM.contract.WatchLogs(opts, "RoleGranted", roleRule, accountRule, 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(GatewayZEVMRoleGranted) + if err := _GatewayZEVM.contract.UnpackLog(event, "RoleGranted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRoleGranted is a log parse operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. +// +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_GatewayZEVM *GatewayZEVMFilterer) ParseRoleGranted(log types.Log) (*GatewayZEVMRoleGranted, error) { + event := new(GatewayZEVMRoleGranted) + if err := _GatewayZEVM.contract.UnpackLog(event, "RoleGranted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMRoleRevokedIterator is returned from FilterRoleRevoked and is used to iterate over the raw logs and unpacked data for RoleRevoked events raised by the GatewayZEVM contract. +type GatewayZEVMRoleRevokedIterator struct { + Event *GatewayZEVMRoleRevoked // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMRoleRevokedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMRoleRevoked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMRoleRevoked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMRoleRevokedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMRoleRevokedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMRoleRevoked represents a RoleRevoked event raised by the GatewayZEVM contract. +type GatewayZEVMRoleRevoked struct { + Role [32]byte + Account common.Address + Sender common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRoleRevoked is a free log retrieval operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. +// +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_GatewayZEVM *GatewayZEVMFilterer) FilterRoleRevoked(opts *bind.FilterOpts, role [][32]byte, account []common.Address, sender []common.Address) (*GatewayZEVMRoleRevokedIterator, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _GatewayZEVM.contract.FilterLogs(opts, "RoleRevoked", roleRule, accountRule, senderRule) + if err != nil { + return nil, err + } + return &GatewayZEVMRoleRevokedIterator{contract: _GatewayZEVM.contract, event: "RoleRevoked", logs: logs, sub: sub}, nil +} + +// WatchRoleRevoked is a free log subscription operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. +// +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_GatewayZEVM *GatewayZEVMFilterer) WatchRoleRevoked(opts *bind.WatchOpts, sink chan<- *GatewayZEVMRoleRevoked, role [][32]byte, account []common.Address, sender []common.Address) (event.Subscription, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _GatewayZEVM.contract.WatchLogs(opts, "RoleRevoked", roleRule, accountRule, 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(GatewayZEVMRoleRevoked) + if err := _GatewayZEVM.contract.UnpackLog(event, "RoleRevoked", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRoleRevoked is a log parse operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. +// +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_GatewayZEVM *GatewayZEVMFilterer) ParseRoleRevoked(log types.Log) (*GatewayZEVMRoleRevoked, error) { + event := new(GatewayZEVMRoleRevoked) + if err := _GatewayZEVM.contract.UnpackLog(event, "RoleRevoked", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// GatewayZEVMUnpausedIterator is returned from FilterUnpaused and is used to iterate over the raw logs and unpacked data for Unpaused events raised by the GatewayZEVM contract. +type GatewayZEVMUnpausedIterator struct { + Event *GatewayZEVMUnpaused // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *GatewayZEVMUnpausedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMUnpaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(GatewayZEVMUnpaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *GatewayZEVMUnpausedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *GatewayZEVMUnpausedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// GatewayZEVMUnpaused represents a Unpaused event raised by the GatewayZEVM contract. +type GatewayZEVMUnpaused struct { + Account common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUnpaused is a free log retrieval operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. +// +// Solidity: event Unpaused(address account) +func (_GatewayZEVM *GatewayZEVMFilterer) FilterUnpaused(opts *bind.FilterOpts) (*GatewayZEVMUnpausedIterator, error) { + + logs, sub, err := _GatewayZEVM.contract.FilterLogs(opts, "Unpaused") + if err != nil { + return nil, err + } + return &GatewayZEVMUnpausedIterator{contract: _GatewayZEVM.contract, event: "Unpaused", logs: logs, sub: sub}, nil +} + +// WatchUnpaused is a free log subscription operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. +// +// Solidity: event Unpaused(address account) +func (_GatewayZEVM *GatewayZEVMFilterer) WatchUnpaused(opts *bind.WatchOpts, sink chan<- *GatewayZEVMUnpaused) (event.Subscription, error) { + + logs, sub, err := _GatewayZEVM.contract.WatchLogs(opts, "Unpaused") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(GatewayZEVMUnpaused) + if err := _GatewayZEVM.contract.UnpackLog(event, "Unpaused", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseUnpaused is a log parse operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. +// +// Solidity: event Unpaused(address account) +func (_GatewayZEVM *GatewayZEVMFilterer) ParseUnpaused(log types.Log) (*GatewayZEVMUnpaused, error) { + event := new(GatewayZEVMUnpaused) + if err := _GatewayZEVM.contract.UnpackLog(event, "Unpaused", 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 { + Sender common.Address + ChainId *big.Int + Receiver []byte + Zrc20 common.Address + 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 0xde19dbe881cc0aeeb6e73ce19ac7b5ca695e6be8a076e3eb42292005a7fec1b5. +// +// Solidity: event Withdrawal(address indexed sender, uint256 indexed chainId, bytes receiver, address zrc20, uint256 value, uint256 gasfee, uint256 protocolFlatFee, bytes message) +func (_GatewayZEVM *GatewayZEVMFilterer) FilterWithdrawal(opts *bind.FilterOpts, sender []common.Address, chainId []*big.Int) (*GatewayZEVMWithdrawalIterator, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var chainIdRule []interface{} + for _, chainIdItem := range chainId { + chainIdRule = append(chainIdRule, chainIdItem) + } + + logs, sub, err := _GatewayZEVM.contract.FilterLogs(opts, "Withdrawal", senderRule, chainIdRule) + 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 0xde19dbe881cc0aeeb6e73ce19ac7b5ca695e6be8a076e3eb42292005a7fec1b5. +// +// Solidity: event Withdrawal(address indexed sender, uint256 indexed chainId, bytes receiver, address zrc20, uint256 value, uint256 gasfee, uint256 protocolFlatFee, bytes message) +func (_GatewayZEVM *GatewayZEVMFilterer) WatchWithdrawal(opts *bind.WatchOpts, sink chan<- *GatewayZEVMWithdrawal, sender []common.Address, chainId []*big.Int) (event.Subscription, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var chainIdRule []interface{} + for _, chainIdItem := range chainId { + chainIdRule = append(chainIdRule, chainIdItem) + } + + logs, sub, err := _GatewayZEVM.contract.WatchLogs(opts, "Withdrawal", senderRule, chainIdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-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 0xde19dbe881cc0aeeb6e73ce19ac7b5ca695e6be8a076e3eb42292005a7fec1b5. +// +// Solidity: event Withdrawal(address indexed sender, uint256 indexed chainId, bytes receiver, address zrc20, 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..47caa611 --- /dev/null +++ b/v2/pkg/gatewayzevm.t.sol/gatewayzevminboundtest.go @@ -0,0 +1,4078 @@ +// 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\":\"chainId\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"},{\"name\":\"receiver\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"message\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Withdrawal\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"chainId\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"},{\"name\":\"receiver\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"zrc20\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"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: "0x6080604052600c8054600160ff199182168117909255601f80549091169091179055348015602c57600080fd5b5061cc988061003c6000396000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c806385226c81116100d8578063ba414fa61161008c578063ea37902f11610066578063ea37902f1461027b578063fa7626d414610283578063fbc611c81461029057600080fd5b8063ba414fa614610253578063dde7e9671461026b578063e20c9f711461027357600080fd5b8063b0464fdc116100bd578063b0464fdc1461023b578063b5508aa914610243578063b7f058361461024b57600080fd5b806385226c8114610211578063916a17c61461022657600080fd5b80632ade38801161013a5780635006fd80116101145780635006fd80146101ec5780635d72228f146101f457806366d9a9a0146101fc57600080fd5b80632ade3880146101c75780633e5e3c23146101dc5780633f7286f4146101e457600080fd5b806318a4cfdc1161016b57806318a4cfdc146101995780631e63d2b9146101a15780631ed7831c146101a957600080fd5b80630a9254e4146101875780631238212c14610191575b600080fd5b61018f610298565b005b61018f610d05565b61018f6110ce565b61018f611523565b6101b161190f565b6040516101be9190617938565b60405180910390f35b6101cf611971565b6040516101be91906179d4565b6101b1611ab3565b6101b1611b13565b61018f611b73565b61018f61200a565b610204612359565b6040516101be9190617b3a565b6102196124db565b6040516101be9190617bd8565b61022e6125ab565b6040516101be9190617c4f565b61022e6126a6565b6102196127a1565b61018f612871565b61025b612aae565b60405190151581526020016101be565b61018f612b82565b6101b1612fab565b61018f61300b565b601f5461025b9060ff1681565b61018f6133c7565b602580547fffffffffffffffffffffffff00000000000000000000000000000000000000009081163017909155602680549091166112341790556040516102de9061784b565b604051809103906000f0801580156102fa573d6000803e3d6000fd5b50602280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03928316908117909155604080518082018252600f81527f476174657761795a45564d2e736f6c0000000000000000000000000000000000602082015260255491516024810193909352921660448201526103de919060640160408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f485cc9550000000000000000000000000000000000000000000000000000000017905261373a565b601f80547fffffffffffffffffffffff0000000000000000000000000000000000000000ff166101006001600160a01b039384168102919091179182905560208054919092049092167fffffffffffffffffffffffff000000000000000000000000000000000000000090921682178155604080517f3ce4a5bc0000000000000000000000000000000000000000000000000000000081529051633ce4a5bc926004808401939192918290030181865afa1580156104a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c49190617ce6565b602780547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905560405161050890617858565b604051809103906000f080158015610524573d6000803e3d6000fd5b50602480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283161781556027546040517f06447d5600000000000000000000000000000000000000000000000000000000815292166004830152737109709ecfa91a80626ff3989d68f67f5b1dd12d916306447d569101600060405180830381600087803b1580156105c057600080fd5b505af11580156105d4573d6000803e3d6000fd5b5050505060008060006040516105e990617865565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103906000f080158015610625573d6000803e3d6000fd5b50602380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392831690811790915560205460405160129360019384936000939192169061067b90617872565b61068a96959493929190617d0f565b604051809103906000f0801580156106a6573d6000803e3d6000fd5b50602180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283169081179091556023546040517fee2815ba0000000000000000000000000000000000000000000000000000000081526001600482015260248101929092529091169063ee2815ba90604401600060405180830381600087803b15801561073d57600080fd5b505af1158015610751573d6000803e3d6000fd5b50506023546040517fa7cb050700000000000000000000000000000000000000000000000000000000815260016004820181905260248201526001600160a01b03909116925063a7cb05079150604401600060405180830381600087803b1580156107bb57600080fd5b505af11580156107cf573d6000803e3d6000fd5b50506027546040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152633b9aca006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c88a5e6d9150604401600060405180830381600087803b15801561084f57600080fd5b505af1158015610863573d6000803e3d6000fd5b50505050602260009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0600a6040518263ffffffff1660e01b81526004016000604051808303818588803b1580156108b857600080fd5b505af11580156108cc573d6000803e3d6000fd5b50506022546020546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152600a60248201529116935063095ea7b3925060440190506020604051808303816000875af1158015610940573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109649190617e04565b506021546025546040517f47e7ef240000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152620186a060248201529116906347e7ef24906044016020604051808303816000875af11580156109d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f99190617e04565b507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610a5857600080fd5b505af1158015610a6c573d6000803e3d6000fd5b50506025546040517f06447d560000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d569150602401600060405180830381600087803b158015610ae257600080fd5b505af1158015610af6573d6000803e3d6000fd5b50506021546020546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152620186a060248201529116925063095ea7b391506044016020604051808303816000875af1158015610b6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8e9190617e04565b50602260009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0600a6040518263ffffffff1660e01b81526004016000604051808303818588803b158015610be057600080fd5b505af1158015610bf4573d6000803e3d6000fd5b50506022546020546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152600a60248201529116935063095ea7b3925060440190506020604051808303816000875af1158015610c68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8c9190617e04565b507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610ceb57600080fd5b505af1158015610cff573d6000803e3d6000fd5b50505050565b6021546025546040516370a0823160e01b81526001600160a01b03918216600482015260019260009216906370a0823190602401602060405180830381865afa158015610d56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7a9190617e26565b6025546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b158015610def57600080fd5b505af1158015610e03573d6000803e3d6000fd5b50506021546020546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152600060248201529116925063095ea7b391506044016020604051808303816000875af1158015610e75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e999190617e04565b506026546040516001600160a01b03909116602482015260009060440160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f84fae7600000000000000000000000000000000000000000000000000000000017905280517ff48448140000000000000000000000000000000000000000000000000000000081529051919250737109709ecfa91a80626ff3989d68f67f5b1dd12d9163f48448149160048082019260009290919082900301818387803b158015610f7557600080fd5b505af1158015610f89573d6000803e3d6000fd5b50506020805460265460405160609190911b6bffffffffffffffffffffffff1916928101929092526001600160a01b03169250637993c1e0915060340160408051601f19818403018152908290526021547fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16835261101d9288916001600160a01b0316908790600401617e3f565b600060405180830381600087803b15801561103757600080fd5b505af115801561104b573d6000803e3d6000fd5b50506021546025546040516370a0823160e01b81526001600160a01b03918216600482015260009450911691506370a0823190602401602060405180830381865afa15801561109e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c29190617e26565b9050610cff8382613759565b6022546025546040516370a0823160e01b81526001600160a01b03918216600482015260019260009216906370a0823190602401602060405180830381865afa15801561111f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111439190617e26565b6022546020546040516370a0823160e01b81526001600160a01b0391821660048201529293506000929116906370a0823190602401602060405180830381865afa158015611195573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b99190617e26565b6027546026546040516001600160a01b03918216602482015292935016319060009060440160408051601f19818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f84fae760000000000000000000000000000000000000000000000000000000001790525490517f81bad6f30000000000000000000000000000000000000000000000000000000081526001600482018190526024820181905260448201819052606482018190526001600160a01b03909216608482015291925090737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b1580156112c857600080fd5b505af11580156112dc573d6000803e3d6000fd5b505060255460275460405160609190911b6bffffffffffffffffffffffff191660208201528493506001600160a01b0390911691507fde19dbe881cc0aeeb6e73ce19ac7b5ca695e6be8a076e3eb42292005a7fec1b59060340160408051601f1981840301815290829052602254611368926001600160a01b03909116908c9060009081908b90617e79565b60405180910390a36020546040517f80bd3d030000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906380bd3d03906113bd90899085908790600401617ecc565b600060405180830381600087803b1580156113d757600080fd5b505af11580156113eb573d6000803e3d6000fd5b50506022546025546040516370a0823160e01b81526001600160a01b03918216600482015260009450911691506370a0823190602401602060405180830381865afa15801561143e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114629190617e26565b9050611478611472600188617f1a565b82613759565b6022546020546040516370a0823160e01b81526001600160a01b03918216600482015260009291909116906370a0823190602401602060405180830381865afa1580156114c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ed9190617e26565b90506114f98682613759565b611519611507866001617f2d565b6027546001600160a01b031631613759565b5050505050505050565b6021546025546040516370a0823160e01b81526001600160a01b03918216600482015260019260009216906370a0823190602401602060405180830381865afa158015611574573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115989190617e26565b6026546040516001600160a01b03909116602482015290915060009060440160408051601f19818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f84fae760000000000000000000000000000000000000000000000000000000001790525490517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b15801561169e57600080fd5b505af11580156116b2573d6000803e3d6000fd5b505060255460265460405160609190911b6bffffffffffffffffffffffff19166020820152600093506001600160a01b0390911691507fde19dbe881cc0aeeb6e73ce19ac7b5ca695e6be8a076e3eb42292005a7fec1b59060340160408051601f198184030181528282526021547f4d8943bb000000000000000000000000000000000000000000000000000000008452915190926001600160a01b039092169189916000918491634d8943bb916004808201926020929091908290030181865afa158015611785573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a99190617e26565b886040516117bc96959493929190617e79565b60405180910390a3602080546026546040516001600160a01b0392831693637993c1e0936118049316910160609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f19818403018152908290526021547fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16835261185b9288916001600160a01b0316908790600401617e3f565b600060405180830381600087803b15801561187557600080fd5b505af1158015611889573d6000803e3d6000fd5b50506021546025546040516370a0823160e01b81526001600160a01b03918216600482015260009450911691506370a0823190602401602060405180830381865afa1580156118dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119009190617e26565b9050610cff6114728585617f1a565b6060601680548060200260200160405190810160405280929190818152602001828054801561196757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611949575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020016000905b82821015611aaa57600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b82821015611a93578382906000526020600020018054611a0690617f40565b80601f0160208091040260200160405190810160405280929190818152602001828054611a3290617f40565b8015611a7f5780601f10611a5457610100808354040283529160200191611a7f565b820191906000526020600020905b815481529060010190602001808311611a6257829003601f168201915b5050505050815260200190600101906119e7565b505050508152505081526020019060010190611995565b50505050905090565b60606018805480602002602001604051908101604052809291908181526020018280548015611967576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311611949575050505050905090565b60606017805480602002602001604051908101604052809291908181526020018280548015611967576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311611949575050505050905090565b6022546025546040516370a0823160e01b81526001600160a01b03918216600482015260019260009216906370a0823190602401602060405180830381865afa158015611bc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611be89190617e26565b6022546020546040516370a0823160e01b81526001600160a01b0391821660048201529293506000929116906370a0823190602401602060405180830381865afa158015611c3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5e9190617e26565b6027546026546040516001600160a01b03918216602482015292935016319060009060440160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f84fae7600000000000000000000000000000000000000000000000000000000017905260255490517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152909150600190737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b158015611d5257600080fd5b505af1158015611d66573d6000803e3d6000fd5b50506022546020546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152600060248201529116925063095ea7b391506044016020604051808303816000875af1158015611dd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dfc9190617e04565b507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b031663f48448146040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611e5b57600080fd5b505af1158015611e6f573d6000803e3d6000fd5b50506020546040517f80bd3d030000000000000000000000000000000000000000000000000000000081526001600160a01b0390911692506380bd3d039150611ec090899085908790600401617ecc565b600060405180830381600087803b158015611eda57600080fd5b505af1158015611eee573d6000803e3d6000fd5b50506022546025546040516370a0823160e01b81526001600160a01b03918216600482015260009450911691506370a0823190602401602060405180830381865afa158015611f41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f659190617e26565b9050611f718682613759565b6022546020546040516370a0823160e01b81526001600160a01b03918216600482015260009291909116906370a0823190602401602060405180830381865afa158015611fc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fe69190617e26565b9050611ff28682613759565b6027546115199086906001600160a01b031631613759565b6021546025546040516370a0823160e01b81526001600160a01b03918216600482015260019260009216906370a0823190602401602060405180830381865afa15801561205b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061207f9190617e26565b6025546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b1580156120f457600080fd5b505af1158015612108573d6000803e3d6000fd5b50506021546020546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152600060248201529116925063095ea7b391506044016020604051808303816000875af115801561217a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061219e9190617e04565b507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b031663f48448146040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156121fd57600080fd5b505af1158015612211573d6000803e3d6000fd5b50506020805460265460405160609190911b6bffffffffffffffffffffffff1916928101929092526001600160a01b0316925063135390f9915060340160408051601f19818403018152908290526021547fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1683526122a39287916001600160a01b031690600401617f8d565b600060405180830381600087803b1580156122bd57600080fd5b505af11580156122d1573d6000803e3d6000fd5b50506021546025546040516370a0823160e01b81526001600160a01b03918216600482015260009450911691506370a0823190602401602060405180830381865afa158015612324573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123489190617e26565b90506123548282613759565b505050565b6060601b805480602002602001604051908101604052809291908181526020016000905b82821015611aaa57838290600052602060002090600202016040518060400160405290816000820180546123b090617f40565b80601f01602080910402602001604051908101604052809291908181526020018280546123dc90617f40565b80156124295780601f106123fe57610100808354040283529160200191612429565b820191906000526020600020905b81548152906001019060200180831161240c57829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156124c357602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116124705790505b5050505050815250508152602001906001019061237d565b6060601a805480602002602001604051908101604052809291908181526020016000905b82821015611aaa57838290600052602060002001805461251e90617f40565b80601f016020809104026020016040519081016040528092919081815260200182805461254a90617f40565b80156125975780601f1061256c57610100808354040283529160200191612597565b820191906000526020600020905b81548152906001019060200180831161257a57829003601f168201915b5050505050815260200190600101906124ff565b6060601d805480602002602001604051908101604052809291908181526020016000905b82821015611aaa5760008481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801561268e57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161263b5790505b505050505081525050815260200190600101906125cf565b6060601c805480602002602001604051908101604052809291908181526020016000905b82821015611aaa5760008481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801561278957602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116127365790505b505050505081525050815260200190600101906126ca565b60606019805480602002602001604051908101604052809291908181526020016000905b82821015611aaa5783829060005260206000200180546127e490617f40565b80601f016020809104026020016040519081016040528092919081815260200182805461281090617f40565b801561285d5780601f106128325761010080835404028352916020019161285d565b820191906000526020600020905b81548152906001019060200180831161284057829003601f168201915b5050505050815260200190600101906127c5565b6026546040516001600160a01b03909116602482015260009060440160408051601f19818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f84fae760000000000000000000000000000000000000000000000000000000001790525490517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b15801561297457600080fd5b505af1158015612988573d6000803e3d6000fd5b505060255460265460405160609190911b6bffffffffffffffffffffffff19166020820152600193508392506001600160a01b03909116907f5322ffbbf9261ff1f8138247942d2b03b28717141ef0a0dd080fc4be9c4e78d39060340160408051601f1981840301815290829052612a01918790617fbf565b60405180910390a3602080546026546040516001600160a01b0392831693635d40e17893612a499316910160609190911b6bffffffffffffffffffffffff1916815260140190565b60405160208183030381529060405283856040518463ffffffff1660e01b8152600401612a7893929190617fe4565b600060405180830381600087803b158015612a9257600080fd5b505af1158015612aa6573d6000803e3d6000fd5b505050505050565b60085460009060ff1615612ac6575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c65640000000000000000000000000000000000000000000000000000602483015260009163667f9d7090604401602060405180830381865afa158015612b57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b7b9190617e26565b1415905090565b6022546025546040516370a0823160e01b81526001600160a01b03918216600482015260019260009216906370a0823190602401602060405180830381865afa158015612bd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bf79190617e26565b6022546020546040516370a0823160e01b81526001600160a01b0391821660048201529293506000929116906370a0823190602401602060405180830381865afa158015612c49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c6d9190617e26565b6027546025546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152929350163190600190737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b158015612ceb57600080fd5b505af1158015612cff573d6000803e3d6000fd5b50506022546020546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152600060248201529116925063095ea7b391506044016020604051808303816000875af1158015612d71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d959190617e04565b507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b031663f48448146040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612df457600080fd5b505af1158015612e08573d6000803e3d6000fd5b50506020546040517f441a3e7000000000000000000000000000000000000000000000000000000000815260048101899052602481018590526001600160a01b03909116925063441a3e709150604401600060405180830381600087803b158015612e7257600080fd5b505af1158015612e86573d6000803e3d6000fd5b50506022546025546040516370a0823160e01b81526001600160a01b03918216600482015260009450911691506370a0823190602401602060405180830381865afa158015612ed9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612efd9190617e26565b9050612f098582613759565b6022546020546040516370a0823160e01b81526001600160a01b03918216600482015260009291909116906370a0823190602401602060405180830381865afa158015612f5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f7e9190617e26565b9050612f8a8582613759565b602754612fa29085906001600160a01b031631613759565b50505050505050565b60606015805480602002602001604051908101604052809291908181526020018280548015611967576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311611949575050505050905090565b6022546025546040516370a0823160e01b81526001600160a01b03918216600482015260019260009216906370a0823190602401602060405180830381865afa15801561305c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130809190617e26565b6022546020546040516370a0823160e01b81526001600160a01b0391821660048201529293506000929116906370a0823190602401602060405180830381865afa1580156130d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130f69190617e26565b6027546020546040517f81bad6f30000000000000000000000000000000000000000000000000000000081526001600482018190526024820181905260448201819052606482018190526001600160a01b0392831660848301529394509116319190737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b15801561319157600080fd5b505af11580156131a5573d6000803e3d6000fd5b505060255460275460405160609190911b6bffffffffffffffffffffffff191660208201528493506001600160a01b0390911691507fde19dbe881cc0aeeb6e73ce19ac7b5ca695e6be8a076e3eb42292005a7fec1b59060340160408051601f198184030181529082905260225461322f926001600160a01b03909116908b90600090819061800f565b60405180910390a36020546040517f441a3e7000000000000000000000000000000000000000000000000000000000815260048101879052602481018390526001600160a01b039091169063441a3e7090604401600060405180830381600087803b15801561329d57600080fd5b505af11580156132b1573d6000803e3d6000fd5b50506022546025546040516370a0823160e01b81526001600160a01b03918216600482015260009450911691506370a0823190602401602060405180830381865afa158015613304573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133289190617e26565b9050613338611472600187617f1a565b6022546020546040516370a0823160e01b81526001600160a01b03918216600482015260009291909116906370a0823190602401602060405180830381865afa158015613389573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133ad9190617e26565b90506133b98582613759565b612fa2611507856001617f2d565b6021546025546040516370a0823160e01b81526001600160a01b03918216600482015260019260009216906370a0823190602401602060405180830381865afa158015613418573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061343c9190617e26565b6020546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b1580156134cd57600080fd5b505af11580156134e1573d6000803e3d6000fd5b505060255460265460405160609190911b6bffffffffffffffffffffffff19166020820152600093506001600160a01b0390911691507fde19dbe881cc0aeeb6e73ce19ac7b5ca695e6be8a076e3eb42292005a7fec1b59060340160408051601f198184030181528282526021547f4d8943bb000000000000000000000000000000000000000000000000000000008452915190926001600160a01b039092169188916000918491634d8943bb916004808201926020929091908290030181865afa1580156135b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135d89190617e26565b6040516135e995949392919061800f565b60405180910390a3602080546026546040516001600160a01b039283169363135390f9936136319316910160609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f19818403018152908290526021547fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1683526136869287916001600160a01b031690600401617f8d565b600060405180830381600087803b1580156136a057600080fd5b505af11580156136b4573d6000803e3d6000fd5b50506021546025546040516370a0823160e01b81526001600160a01b03918216600482015260009450911691506370a0823190602401602060405180830381865afa158015613707573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061372b9190617e26565b90506123546114728484617f1a565b600061374461787f565b61374f8484836137d8565b9150505b92915050565b6040517f98296c540000000000000000000000000000000000000000000000000000000081526004810183905260248101829052737109709ecfa91a80626ff3989d68f67f5b1dd12d906398296c549060440160006040518083038186803b1580156137c457600080fd5b505afa158015612aa6573d6000803e3d6000fd5b6000806137e58584613853565b90506138486040518060400160405280601d81526020017f4552433139363750726f78792e736f6c3a4552433139363750726f78790000008152508286604051602001613833929190618060565b6040516020818303038152906040528561385f565b9150505b9392505050565b600061384c838361388d565b60c081015151600090156138835761387c84848460c001516138a8565b905061384c565b61387c8484613a4e565b60006138998383613b39565b61384c8383602001518461385f565b6000806138b3613b49565b905060006138c18683613c1c565b905060006138d882606001518360200151856140c2565b905060006138e8838389896142d4565b905060006138f582615151565b602081015181519192509060030b156139685789826040015160405160200161391f929190618082565b60408051601f19818403018152908290527f08c379a000000000000000000000000000000000000000000000000000000000825261395f91600401618103565b60405180910390fd5b60006139ab6040518060400160405280601581526020017f4465706c6f79656420746f20616464726573733a200000000000000000000000815250836001615320565b6040517fc6ce059d000000000000000000000000000000000000000000000000000000008152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c6ce059d906139fe908490600401618103565b602060405180830381865afa158015613a1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a3f9190617ce6565b9b9a5050505050505050505050565b6040517f8d1cc9250000000000000000000000000000000000000000000000000000000081526000908190737109709ecfa91a80626ff3989d68f67f5b1dd12d90638d1cc92590613aa3908790600401618103565b600060405180830381865afa158015613ac0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613ae891908101906181fe565b90506000613b168285604051602001613b02929190618233565b604051602081830303815290604052615520565b90506001600160a01b03811661374f57848460405160200161391f929190618262565b613b4582826000615533565b5050565b604080518082018252600381527f6f75740000000000000000000000000000000000000000000000000000000000602082015290517fd145736c000000000000000000000000000000000000000000000000000000008152606091737109709ecfa91a80626ff3989d68f67f5b1dd12d91829063d145736c90613bd090849060040161830d565b600060405180830381865afa158015613bed573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613c159190810190618354565b9250505090565b613c4e6040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d9050613c996040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b613ca285615636565b60208201526000613cb286615a1b565b90506000836001600160a01b031663d930a0e66040518163ffffffff1660e01b8152600401600060405180830381865afa158015613cf4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613d1c9190810190618354565b86838560200151604051602001613d36949392919061839d565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291506000906001600160a01b038616906360f9bb1190613d8e908590600401618103565b600060405180830381865afa158015613dab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613dd39190810190618354565b6040517fdb4235f60000000000000000000000000000000000000000000000000000000081529091506001600160a01b0386169063db4235f690613e1b9084906004016184a1565b602060405180830381865afa158015613e38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e5c9190617e04565b613e71578160405160200161391f91906184f3565b6040517f49c4fac80000000000000000000000000000000000000000000000000000000081526001600160a01b038616906349c4fac890613eb6908490600401618585565b600060405180830381865afa158015613ed3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613efb9190810190618354565b84526040517fdb4235f60000000000000000000000000000000000000000000000000000000081526001600160a01b0386169063db4235f690613f429084906004016185d7565b602060405180830381865afa158015613f5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f839190617e04565b15614018576040517f49c4fac80000000000000000000000000000000000000000000000000000000081526001600160a01b038616906349c4fac890613fcd9084906004016185d7565b600060405180830381865afa158015613fea573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526140129190810190618354565b60408501525b846001600160a01b03166349c4fac882866000015160405160200161403d9190618629565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401614069929190617fbf565b600060405180830381865afa158015614086573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526140ae9190810190618354565b606085015250608083015250949350505050565b60408051600480825260a0820190925260609160009190816020015b60608152602001906001900390816140de5790505090506040518060400160405280600481526020017f67726570000000000000000000000000000000000000000000000000000000008152508160008151811061413e5761413e618695565b60200260200101819052506040518060400160405280600381526020017f2d726c00000000000000000000000000000000000000000000000000000000008152508160018151811061419257614192618695565b6020026020010181905250846040516020016141ae91906186c4565b604051602081830303815290604052816002815181106141d0576141d0618695565b6020026020010181905250826040516020016141ec9190618730565b6040516020818303038152906040528160038151811061420e5761420e618695565b6020026020010181905250600061422482615151565b602080820151604080518082018252600581527f2e6a736f6e00000000000000000000000000000000000000000000000000000081850190815282518084018452600080825290860152825180840190935290518252928101929092529192506142b59060408051808201825260008082526020918201528151808301909252845182528085019082015290615c9e565b6142ca578560405160200161391f9190618771565b9695505050505050565b60a0810151604080518082018252600080825260209182015281518083019092528251808352928101910152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9015614324565b511590565b614498578260200151156143e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605860248201527f54686520606c6963656e73655479706560206f7074696f6e2063616e6e6f742060448201527f62652075736564207768656e207468652060736b6970566572696679536f757260648201527f6365436f646560206f7074696f6e206973206074727565600000000000000000608482015260a40161395f565b8260c0015115614498576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605360248201527f54686520606c6963656e73655479706560206f7074696f6e2063616e6e6f742060448201527f62652075736564207768656e207468652060736b69704c6963656e736554797060648201527f6560206f7074696f6e2069732060747275656000000000000000000000000000608482015260a40161395f565b6040805160ff8082526120008201909252600091816020015b60608152602001906001900390816144b157905050905060006040518060400160405280600381526020017f6e7078000000000000000000000000000000000000000000000000000000000081525082828061450c90618802565b935060ff168151811061452157614521618695565b60200260200101819052506040518060400160405280600d81526020017f302e302e312d616c7068612e37000000000000000000000000000000000000008152506040516020016145729190618821565b60405160208183030381529060405282828061458d90618802565b935060ff16815181106145a2576145a2618695565b60200260200101819052506040518060400160405280600681526020017f6465706c6f7900000000000000000000000000000000000000000000000000008152508282806145ef90618802565b935060ff168151811061460457614604618695565b60200260200101819052506040518060400160405280600e81526020017f2d2d636f6e74726163744e616d6500000000000000000000000000000000000081525082828061465190618802565b935060ff168151811061466657614666618695565b6020026020010181905250876020015182828061468290618802565b935060ff168151811061469757614697618695565b60200260200101819052506040518060400160405280600e81526020017f2d2d636f6e7472616374506174680000000000000000000000000000000000008152508282806146e490618802565b935060ff16815181106146f9576146f9618695565b60209081029190910101528751828261471181618802565b935060ff168151811061472657614726618695565b60200260200101819052506040518060400160405280600981526020017f2d2d636861696e4964000000000000000000000000000000000000000000000081525082828061477390618802565b935060ff168151811061478857614788618695565b602002602001018190525061479c46615cff565b82826147a781618802565b935060ff16815181106147bc576147bc618695565b60200260200101819052506040518060400160405280600f81526020017f2d2d6275696c64496e666f46696c65000000000000000000000000000000000081525082828061480990618802565b935060ff168151811061481e5761481e618695565b60200260200101819052508682828061483690618802565b935060ff168151811061484b5761484b618695565b60209081029190910101528551156149725760408051808201909152601581527f2d2d636f6e7374727563746f7242797465636f646500000000000000000000006020820152828261489c81618802565b935060ff16815181106148b1576148b1618695565b60209081029190910101526040517f71aad10d0000000000000000000000000000000000000000000000000000000081526001600160a01b038416906371aad10d90614901908990600401618103565b600060405180830381865afa15801561491e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526149469190810190618354565b828261495181618802565b935060ff168151811061496657614966618695565b60200260200101819052505b846020015115614a425760408051808201909152601281527f2d2d766572696679536f75726365436f64650000000000000000000000000000602082015282826149bb81618802565b935060ff16815181106149d0576149d0618695565b60200260200101819052506040518060400160405280600581526020017f66616c7365000000000000000000000000000000000000000000000000000000815250828280614a1d90618802565b935060ff1681518110614a3257614a32618695565b6020026020010181905250614c09565b614a7a61431f8660a0015160408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b614b0d5760408051808201909152600d81527f2d2d6c6963656e7365547970650000000000000000000000000000000000000060208201528282614abd81618802565b935060ff1681518110614ad257614ad2618695565b60200260200101819052508460a00151604051602001614af291906186c4565b604051602081830303815290604052828280614a1d90618802565b8460c00151158015614b50575060408089015181518083018352600080825260209182015282518084019093528151835290810190820152614b4e90511590565b155b15614c095760408051808201909152600d81527f2d2d6c6963656e7365547970650000000000000000000000000000000000000060208201528282614b9481618802565b935060ff1681518110614ba957614ba9618695565b6020026020010181905250614bbd88615d9f565b604051602001614bcd91906186c4565b604051602081830303815290604052828280614be890618802565b935060ff1681518110614bfd57614bfd618695565b60200260200101819052505b60408086015181518083018352600080825260209182015282518084019093528151835290810190820152614c3d90511590565b614cd25760408051808201909152600b81527f2d2d72656c61796572496400000000000000000000000000000000000000000060208201528282614c8081618802565b935060ff1681518110614c9557614c95618695565b60200260200101819052508460400151828280614cb190618802565b935060ff1681518110614cc657614cc6618695565b60200260200101819052505b606085015115614df35760408051808201909152600681527f2d2d73616c74000000000000000000000000000000000000000000000000000060208201528282614d1b81618802565b935060ff1681518110614d3057614d30618695565b602090810291909101015260608501516040517fb11a19e800000000000000000000000000000000000000000000000000000000815260048101919091526001600160a01b0384169063b11a19e890602401600060405180830381865afa158015614d9f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052614dc79190810190618354565b8282614dd281618802565b935060ff1681518110614de757614de7618695565b60200260200101819052505b60e08501515115614e9a5760408051808201909152600a81527f2d2d6761734c696d69740000000000000000000000000000000000000000000060208201528282614e3d81618802565b935060ff1681518110614e5257614e52618695565b6020026020010181905250614e6e8560e0015160000151615cff565b8282614e7981618802565b935060ff1681518110614e8e57614e8e618695565b60200260200101819052505b60e08501516020015115614f445760408051808201909152600a81527f2d2d67617350726963650000000000000000000000000000000000000000000060208201528282614ee781618802565b935060ff1681518110614efc57614efc618695565b6020026020010181905250614f188560e0015160200151615cff565b8282614f2381618802565b935060ff1681518110614f3857614f38618695565b60200260200101819052505b60e08501516040015115614fee5760408051808201909152600e81527f2d2d6d617846656550657247617300000000000000000000000000000000000060208201528282614f9181618802565b935060ff1681518110614fa657614fa6618695565b6020026020010181905250614fc28560e0015160400151615cff565b8282614fcd81618802565b935060ff1681518110614fe257614fe2618695565b60200260200101819052505b60e085015160600151156150985760408051808201909152601681527f2d2d6d61785072696f72697479466565506572476173000000000000000000006020820152828261503b81618802565b935060ff168151811061505057615050618695565b602002602001018190525061506c8560e0015160600151615cff565b828261507781618802565b935060ff168151811061508c5761508c618695565b60200260200101819052505b60008160ff1667ffffffffffffffff8111156150b6576150b6618116565b6040519080825280602002602001820160405280156150e957816020015b60608152602001906001900390816150d45790505b50905060005b8260ff168160ff16101561514257838160ff168151811061511257615112618695565b6020026020010151828260ff168151811061512f5761512f618695565b60209081029190910101526001016150ef565b5093505050505b949350505050565b6151786040518060600160405280600060030b815260200160608152602001606081525090565b60408051808201825260048082527f6261736800000000000000000000000000000000000000000000000000000000602083015291517fd145736c000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d92600091849163d145736c916151fe9186910161888c565b600060405180830381865afa15801561521b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526152439190810190618354565b90506000615251868361688e565b90506000846001600160a01b031663f45c1ce7836040518263ffffffff1660e01b81526004016152819190617bd8565b6000604051808303816000875af11580156152a0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526152c891908101906188d3565b805190915060030b158015906152e15750602081015151155b80156152f05750604081015151155b156142ca578160008151811061530857615308618695565b602002602001015160405160200161391f9190618989565b606060006153558560408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b60408051808201825260008082526020918201528151808301909252865182528087019082015290915061538c9082905b906169e3565b156154e957600061540982615403846153fd6153cf8a60408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b6040805180820182526000808252602091820152815180830190925282518252918201519181019190915290565b90616a0a565b90616a6c565b604080518082018252600181527f0a000000000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015290915061546d9082906169e3565b156154d757604080518082018252600181527f0a00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526154d4905b8290616af1565b90505b6154e081616b17565b9250505061384c565b821561550257848460405160200161391f929190618b75565b505060408051602081019091526000815261384c565b509392505050565b6000808251602084016000f09392505050565b8160a001511561554257505050565b600061554f848484616b80565b9050600061555c82615151565b602081015181519192509060030b1580156155f85750604080518082018252600781527f5355434345535300000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526155f890604080518082018252600080825260209182015281518083019092528451825280850190820152615386565b1561560557505050505050565b6040820151511561562557816040015160405160200161391f9190618c1c565b8060405160200161391f9190618c7a565b6060600061566b8360408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600481527f2e736f6c00000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201529091506156d0905b8290615c9e565b1561573f57604080518082018252600481527f2e736f6c000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261384c9061573a90839061711b565b616b17565b604080518082018252600181527f3a00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526157a1905b82906171a5565b60010361586e57604080518082018252600181527f3a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615807906154cd565b50604080518082018252600181527f3a000000000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261384c9061573a905b8390616af1565b604080518082018252600581527f2e6a736f6e000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526158cd906156c9565b15615a0457604080518082018252600181527f2f0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082018190528451808601909552925184528301529061593590839061723f565b9050600081600183516159489190617f1a565b8151811061595857615958618695565b602002602001015190506159fb61573a6159ce6040518060400160405280600581526020017f2e6a736f6e00000000000000000000000000000000000000000000000000000081525060408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b6040805180820182526000808252602091820152815180830190925285518252808601908201529061711b565b95945050505050565b8260405160200161391f9190618ce5565b50919050565b60606000615a508360408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600481527f2e736f6c0000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152909150615ab2906156c9565b15615ac05761384c81616b17565b604080518082018252600181527f3a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615b1f9061579a565b600103615b8957604080518082018252600181527f3a000000000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261384c9061573a90615867565b604080518082018252600581527f2e6a736f6e00000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615be8906156c9565b15615a0457604080518082018252600181527f2f00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820181905284518086019095529251845283015290615c5090839061723f565b9050600181511115615c8c578060028251615c6b9190617f1a565b81518110615c7b57615c7b618695565b602002602001015192505050919050565b508260405160200161391f9190618ce5565b805182516000911115615cb357506000613753565b81518351602085015160009291615cc991617f2d565b615cd39190617f1a565b905082602001518103615cea576001915050613753565b82516020840151819020912014905092915050565b60606000615d0c836172e4565b600101905060008167ffffffffffffffff811115615d2c57615d2c618116565b6040519080825280601f01601f191660200182016040528015615d56576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084615d6057509392505050565b604081810151815180830183526000808252602091820181905283518085018552835181529282018383015283518085018552600a81527f554e4c4943454e5345440000000000000000000000000000000000000000000081840190815285518087018752838152840192909252845180860190955251845290830152606091615e2b905b82906173c6565b15615e6b57505060408051808201909152600481527f4e6f6e65000000000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600981527f556e6c6963656e7365000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615eca90615e24565b15615f0a57505060408051808201909152600981527f556e6c6963656e736500000000000000000000000000000000000000000000006020820152919050565b604080518082018252600381527f4d4954000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615f6990615e24565b15615fa957505060408051808201909152600381527f4d495400000000000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f47504c2d322e302d6f6e6c7900000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261600890615e24565b8061606d5750604080518082018252601081527f47504c2d322e302d6f722d6c61746572000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261606d90615e24565b156160ad57505060408051808201909152600981527f474e552047504c763200000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f47504c2d332e302d6f6e6c7900000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261610c90615e24565b806161715750604080518082018252601081527f47504c2d332e302d6f722d6c61746572000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261617190615e24565b156161b157505060408051808201909152600981527f474e552047504c763300000000000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4c47504c2d322e312d6f6e6c79000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261621090615e24565b806162755750604080518082018252601181527f4c47504c2d322e312d6f722d6c617465720000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261627590615e24565b156162b557505060408051808201909152600c81527f474e55204c47504c76322e3100000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4c47504c2d332e302d6f6e6c79000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261631490615e24565b806163795750604080518082018252601181527f4c47504c2d332e302d6f722d6c617465720000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261637990615e24565b156163b957505060408051808201909152600a81527f474e55204c47504c7633000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f4253442d322d436c6175736500000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261641890615e24565b1561645857505060408051808201909152600c81527f4253442d322d436c6175736500000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f4253442d332d436c617573650000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526164b790615e24565b156164f757505060408051808201909152600c81527f4253442d332d436c6175736500000000000000000000000000000000000000006020820152919050565b604080518082018252600781527f4d504c2d322e30000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261655690615e24565b1561659657505060408051808201909152600781527f4d504c2d322e30000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600781527f4f534c2d332e3000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526165f590615e24565b1561663557505060408051808201909152600781527f4f534c2d332e30000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600a81527f4170616368652d322e30000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261669490615e24565b156166d457505060408051808201909152600a81527f4170616368652d322e30000000000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4147504c2d332e302d6f6e6c79000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261673390615e24565b806167985750604080518082018252601181527f4147504c2d332e302d6f722d6c617465720000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261679890615e24565b156167d857505060408051808201909152600a81527f474e55204147504c7633000000000000000000000000000000000000000000006020820152919050565b604080518082018252600881527f4255534c2d312e310000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261683790615e24565b1561687757505060408051808201909152600781527f42534c20312e31000000000000000000000000000000000000000000000000006020820152919050565b6040808401518451915161391f9290602001618dc3565b60608060005b845181101561691957818582815181106168b0576168b0618695565b60200260200101516040516020016168c9929190618233565b6040516020818303038152906040529150600185516168e89190617f1a565b811461691157816040516020016168ff9190618f2c565b60405160208183030381529060405291505b600101616894565b5060408051600380825260808201909252600091816020015b6060815260200190600190039081616932579050509050838160008151811061695d5761695d618695565b60200260200101819052506040518060400160405280600281526020017f2d63000000000000000000000000000000000000000000000000000000000000815250816001815181106169b1576169b1618695565b602002602001018190525081816002815181106169d0576169d0618695565b6020908102919091010152949350505050565b6020808301518351835192840151600093616a0192918491906173da565b14159392505050565b60408051808201909152600080825260208201526000616a3c84600001518560200151856000015186602001516174eb565b9050836020015181616a4e9190617f1a565b84518590616a5d908390617f1a565b90525060208401525090919050565b6040805180820190915260008082526020820152815183511015616a91575081613753565b6020808301519084015160019114616ab85750815160208481015190840151829020919020145b8015616ae957825184518590616acf908390617f1a565b9052508251602085018051616ae5908390617f2d565b9052505b509192915050565b6040805180820190915260008082526020820152616b1083838361760b565b5092915050565b60606000826000015167ffffffffffffffff811115616b3857616b38618116565b6040519080825280601f01601f191660200182016040528015616b62576020820181803683370190505b5090506000602082019050616b1081856020015186600001516176b6565b60606000616b8c613b49565b6040805160ff808252612000820190925291925060009190816020015b6060815260200190600190039081616ba957905050905060006040518060400160405280600381526020017f6e70780000000000000000000000000000000000000000000000000000000000815250828280616c0490618802565b935060ff1681518110616c1957616c19618695565b60200260200101819052506040518060400160405280600781526020017f5e312e33322e3300000000000000000000000000000000000000000000000000815250604051602001616c6a9190618f6d565b604051602081830303815290604052828280616c8590618802565b935060ff1681518110616c9a57616c9a618695565b60200260200101819052506040518060400160405280600881526020017f76616c6964617465000000000000000000000000000000000000000000000000815250828280616ce790618802565b935060ff1681518110616cfc57616cfc618695565b602002602001018190525082604051602001616d189190618730565b604051602081830303815290604052828280616d3390618802565b935060ff1681518110616d4857616d48618695565b60200260200101819052506040518060400160405280600a81526020017f2d2d636f6e747261637400000000000000000000000000000000000000000000815250828280616d9590618802565b935060ff1681518110616daa57616daa618695565b6020026020010181905250616dbf8784617730565b8282616dca81618802565b935060ff1681518110616ddf57616ddf618695565b602090810291909101015285515115616e8b5760408051808201909152600b81527f2d2d7265666572656e636500000000000000000000000000000000000000000060208201528282616e3181618802565b935060ff1681518110616e4657616e46618695565b6020026020010181905250616e5f866000015184617730565b8282616e6a81618802565b935060ff1681518110616e7f57616e7f618695565b60200260200101819052505b856080015115616ef95760408051808201909152601881527f2d2d756e73616665536b697053746f72616765436865636b000000000000000060208201528282616ed481618802565b935060ff1681518110616ee957616ee9618695565b6020026020010181905250616f5f565b8415616f5f5760408051808201909152601281527f2d2d726571756972655265666572656e6365000000000000000000000000000060208201528282616f3e81618802565b935060ff1681518110616f5357616f53618695565b60200260200101819052505b60408601515115616ffb5760408051808201909152600d81527f2d2d756e73616665416c6c6f770000000000000000000000000000000000000060208201528282616fa981618802565b935060ff1681518110616fbe57616fbe618695565b60200260200101819052508560400151828280616fda90618802565b935060ff1681518110616fef57616fef618695565b60200260200101819052505b8560600151156170655760408051808201909152601481527f2d2d756e73616665416c6c6f7752656e616d65730000000000000000000000006020820152828261704481618802565b935060ff168151811061705957617059618695565b60200260200101819052505b60008160ff1667ffffffffffffffff81111561708357617083618116565b6040519080825280602002602001820160405280156170b657816020015b60608152602001906001900390816170a15790505b50905060005b8260ff168160ff16101561710f57838160ff16815181106170df576170df618695565b6020026020010151828260ff16815181106170fc576170fc618695565b60209081029190910101526001016170bc565b50979650505050505050565b6040805180820190915260008082526020820152815183511015617140575081613753565b8151835160208501516000929161715691617f2d565b6171609190617f1a565b60208401519091506001908214617181575082516020840151819020908220145b801561719c57835185518690617198908390617f1a565b9052505b50929392505050565b60008082600001516171c985600001518660200151866000015187602001516174eb565b6171d39190617f2d565b90505b835160208501516171e79190617f2d565b8111616b1057816171f781618fb2565b925050826000015161722e8560200151836172129190617f1a565b865161721e9190617f1a565b83866000015187602001516174eb565b6172389190617f2d565b90506171d6565b6060600061724d84846171a5565b617258906001617f2d565b67ffffffffffffffff81111561727057617270618116565b6040519080825280602002602001820160405280156172a357816020015b606081526020019060019003908161728e5790505b50905060005b8151811015615518576172bf61573a8686616af1565b8282815181106172d1576172d1618695565b60209081029190910101526001016172a9565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061732d577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310617359576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061737757662386f26fc10000830492506010015b6305f5e100831061738f576305f5e100830492506008015b61271083106173a357612710830492506004015b606483106173b5576064830492506002015b600a83106137535760010192915050565b60006173d28383617770565b159392505050565b6000808584116174e1576020841161748d5760008415617425576001617401866020617f1a565b61740c906008618fcc565b6174179060026190ca565b6174219190617f1a565b1990505b83518116856174348989617f2d565b61743e9190617f1a565b805190935082165b818114617478578784116174605787945050505050615149565b8361746a816190d6565b945050828451169050617446565b6174828785617f2d565b945050505050615149565b83832061749a8588617f1a565b6174a49087617f2d565b91505b8582106174df578482208082036174cc576174c28684617f2d565b9350505050615149565b6174d7600184617f1a565b9250506174a7565b505b5092949350505050565b600083818685116175f657602085116175a55760008515617537576001617513876020617f1a565b61751e906008618fcc565b6175299060026190ca565b6175339190617f1a565b1990505b845181166000876175488b8b617f2d565b6175529190617f1a565b855190915083165b8281146175975781861061757f576175728b8b617f2d565b9650505050505050615149565b8561758981618fb2565b96505083865116905061755a565b859650505050505050615149565b508383206000905b6175b78689617f1a565b82116175f4578583208082036175d35783945050505050615149565b6175de600185617f2d565b93505081806175ec90618fb2565b9250506175ad565b505b6176008787617f2d565b979650505050505050565b6040805180820190915260008082526020820152600061763d85600001518660200151866000015187602001516174eb565b6020808701805191860191909152519091506176599082617f1a565b83528451602086015161766c9190617f2d565b810361767b57600085526176ad565b835183516176899190617f2d565b85518690617698908390617f1a565b90525083516176a79082617f2d565b60208601525b50909392505050565b602081106176ee57815183526176cd602084617f2d565b92506176da602083617f2d565b91506176e7602082617f1a565b90506176b6565b600019811561771d576001617704836020617f1a565b617710906101006190ca565b61771a9190617f1a565b90505b9151835183169219169190911790915250565b6060600061773e8484613c1c565b8051602080830151604051939450617758939091016190ed565b60405160208183030381529060405291505092915050565b8151815160009190811115617783575081515b6020808501519084015160005b8381101561783c578251825180821461780c5760001960208710156177eb576001846177bd896020617f1a565b6177c79190617f2d565b6177d2906008618fcc565b6177dd9060026190ca565b6177e79190617f1a565b1990505b81811683821681810391146178095797506137539650505050505050565b50505b617817602086617f2d565b9450617824602085617f2d565b935050506020816178359190617f2d565b9050617790565b50845186516142ca9190619145565b610b678061916683390190565b61053f80619ccd83390190565b61106f8061a20c83390190565b6119e88061b27b83390190565b6040518060e001604052806060815260200160608152602001606081526020016000151581526020016000151581526020016000151581526020016178c26178c7565b905290565b604051806101000160405280600015158152602001600015158152602001606081526020016000801916815260200160608152602001606081526020016000151581526020016178c26040518060800160405280600081526020016000815260200160008152602001600081525090565b602080825282518282018190526000918401906040840190835b818110156179795783516001600160a01b0316835260209384019390920191600101617952565b509095945050505050565b60005b8381101561799f578181015183820152602001617987565b50506000910152565b600081518084526179c0816020860160208601617984565b601f01601f19169290920160200192915050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015617ad0577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452815180516001600160a01b03168652602090810151604082880181905281519088018190529101906060600582901b88018101919088019060005b81811015617ab6577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08a8503018352617aa08486516179a8565b6020958601959094509290920191600101617a66565b5091975050506020948501949290920191506001016179fc565b50929695505050505050565b600081518084526020840193506020830160005b82811015617b305781517fffffffff0000000000000000000000000000000000000000000000000000000016865260209586019590910190600101617af0565b5093949350505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015617ad0577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08786030184528151805160408752617ba660408801826179a8565b9050602082015191508681036020880152617bc18183617adc565b965050506020938401939190910190600101617b62565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015617ad0577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452617c3a8583516179a8565b94506020938401939190910190600101617c00565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015617ad0577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc087860301845281516001600160a01b0381511686526020810151905060406020870152617cd06040870182617adc565b9550506020938401939190910190600101617c77565b600060208284031215617cf857600080fd5b81516001600160a01b038116811461384c57600080fd5b610100815260056101008201527f544f4b454e000000000000000000000000000000000000000000000000000000610120820152610140602082015260036101408201527f544b4e000000000000000000000000000000000000000000000000000000000061016082015260006101808201905060ff8816604083015286606083015260038610617dc9577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8560808301528460a0830152617dea60c08301856001600160a01b03169052565b6001600160a01b03831660e0830152979650505050505050565b600060208284031215617e1657600080fd5b8151801515811461384c57600080fd5b600060208284031215617e3857600080fd5b5051919050565b608081526000617e5260808301876179a8565b8560208401526001600160a01b0385166040840152828103606084015261760081856179a8565b60c081526000617e8c60c08301896179a8565b6001600160a01b038816602084015286604084015285606084015284608084015282810360a0840152617ebf81856179a8565b9998505050505050505050565b8381528260208201526060604082015260006159fb60608301846179a8565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561375357613753617eeb565b8082018082111561375357613753617eeb565b600181811c90821680617f5457607f821691505b602082108103615a15577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b606081526000617fa060608301866179a8565b90508360208301526001600160a01b0383166040830152949350505050565b604081526000617fd260408301856179a8565b828103602084015261384881856179a8565b606081526000617ff760608301866179a8565b84602084015282810360408401526142ca81856179a8565b60c08152600061802260c08301886179a8565b6001600160a01b038716602084015285604084015284606084015283608084015282810360a084015260008152602081019150509695505050505050565b6001600160a01b038316815260406020820152600061514960408301846179a8565b7f4661696c656420746f206465706c6f7920636f6e7472616374200000000000008152600083516180ba81601a850160208801617984565b7f3a20000000000000000000000000000000000000000000000000000000000000601a9184019182015283516180f781601c840160208801617984565b01601c01949350505050565b60208152600061384c60208301846179a8565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171561816857618168618116565b60405290565b60008067ffffffffffffffff84111561818957618189618116565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff821117156181b8576181b8618116565b6040528381529050808284018510156181d057600080fd5b615518846020830185617984565b600082601f8301126181ef57600080fd5b61384c8383516020850161816e565b60006020828403121561821057600080fd5b815167ffffffffffffffff81111561822757600080fd5b61374f848285016181de565b60008351618245818460208801617984565b835190830190618259818360208801617984565b01949350505050565b7f4661696c656420746f206465706c6f7920636f6e74726163742000000000000081526000835161829a81601a850160208801617984565b7f207573696e6720636f6e7374727563746f722064617461202200000000000000601a9184019182015283516182d7816033840160208801617984565b7f220000000000000000000000000000000000000000000000000000000000000060339290910191820152603401949350505050565b60408152600b60408201527f464f554e4452595f4f5554000000000000000000000000000000000000000000606082015260806020820152600061384c60808301846179a8565b60006020828403121561836657600080fd5b815167ffffffffffffffff81111561837d57600080fd5b8201601f8101841361838e57600080fd5b61374f8482516020840161816e565b600085516183af818460208a01617984565b7f2f0000000000000000000000000000000000000000000000000000000000000090830190815285516183e9816001840160208a01617984565b7f2f00000000000000000000000000000000000000000000000000000000000000600192909101918201528451618427816002840160208901617984565b6001818301019150507f2f0000000000000000000000000000000000000000000000000000000000000060018201528351618469816002840160208801617984565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600292909101918201526007019695505050505050565b6040815260006184b460408301846179a8565b8281036020840152600481527f2e6173740000000000000000000000000000000000000000000000000000000060208201526040810191505092915050565b7f436f756c64206e6f742066696e642041535420696e206172746966616374200081526000825161852b81601f850160208701617984565b7f2e205365742060617374203d20747275656020696e20666f756e6472792e746f601f9390910192830152507f6d6c000000000000000000000000000000000000000000000000000000000000603f820152604101919050565b60408152600061859860408301846179a8565b8281036020840152601181527f2e6173742e6162736f6c7574655061746800000000000000000000000000000060208201526040810191505092915050565b6040815260006185ea60408301846179a8565b8281036020840152600c81527f2e6173742e6c6963656e7365000000000000000000000000000000000000000060208201526040810191505092915050565b7f2e6d657461646174612e736f75726365732e5b27000000000000000000000000815260008251618661816014850160208701617984565b7f275d2e6b656363616b32353600000000000000000000000000000000000000006014939091019283015250602001919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f22000000000000000000000000000000000000000000000000000000000000008152600082516186fc816001850160208701617984565b7f22000000000000000000000000000000000000000000000000000000000000006001939091019283015250600201919050565b60008251618742818460208701617984565b7f2f6275696c642d696e666f000000000000000000000000000000000000000000920191825250600b01919050565b7f436f756c64206e6f742066696e64206275696c642d696e666f2066696c65207781527f697468206d61746368696e6720736f7572636520636f6465206861736820666f60208201527f7220636f6e7472616374200000000000000000000000000000000000000000006040820152600082516187f581604b850160208701617984565b91909101604b0192915050565b600060ff821660ff810361881857618818617eeb565b60010192915050565b7f406f70656e7a657070656c696e2f646566656e6465722d6465706c6f792d636c81527f69656e742d636c6940000000000000000000000000000000000000000000000060208201526000825161887f816029850160208701617984565b9190910160290192915050565b60408152601660408201527f4f50454e5a455050454c494e5f424153485f5041544800000000000000000000606082015260806020820152600061384c60808301846179a8565b6000602082840312156188e557600080fd5b815167ffffffffffffffff8111156188fc57600080fd5b82016060818503121561890e57600080fd5b618916618145565b81518060030b811461892757600080fd5b8152602082015167ffffffffffffffff81111561894357600080fd5b61894f868285016181de565b602083015250604082015167ffffffffffffffff81111561896f57600080fd5b61897b868285016181de565b604083015250949350505050565b7f4661696c656420746f2072756e206261736820636f6d6d616e6420776974682081527f22000000000000000000000000000000000000000000000000000000000000006020820152600082516189e7816021850160208701617984565b7f222e20496620796f7520617265207573696e672057696e646f77732c2073657460219390910192830152507f20746865204f50454e5a455050454c494e5f424153485f5041544820656e766960418201527f726f6e6d656e74207661726961626c6520746f207468652066756c6c7920717560618201527f616c69666965642070617468206f66207468652062617368206578656375746160818201527f626c652e20466f72206578616d706c652c20696620796f75206172652075736960a18201527f6e672047697420666f722057696e646f77732c206164642074686520666f6c6c60c18201527f6f77696e67206c696e6520696e20746865202e656e762066696c65206f66207960e18201527f6f75722070726f6a65637420287573696e6720666f727761726420736c6173686101018201527f6573293a0a4f50454e5a455050454c494e5f424153485f504154483d22433a2f6101218201527f50726f6772616d2046696c65732f4769742f62696e2f6261736822000000000061014182015261015c01919050565b7f4661696c656420746f2066696e64206c696e652077697468207072656669782081527f2700000000000000000000000000000000000000000000000000000000000000602082015260008351618bd3816021850160208801617984565b7f2720696e206f75747075743a20000000000000000000000000000000000000006021918401918201528351618c1081602e840160208801617984565b01602e01949350505050565b7f4661696c656420746f2072756e2075706772616465207361666574792076616c81527f69646174696f6e3a20000000000000000000000000000000000000000000000060208201526000825161887f816029850160208701617984565b7f55706772616465207361666574792076616c69646174696f6e206661696c656481527f3a0a000000000000000000000000000000000000000000000000000000000000602082015260008251618cd8816022850160208701617984565b9190910160220192915050565b7f436f6e7472616374206e616d6520000000000000000000000000000000000000815260008251618d1d81600e850160208701617984565b7f206d75737420626520696e2074686520666f726d6174204d79436f6e74726163600e9390910192830152507f742e736f6c3a4d79436f6e7472616374206f72204d79436f6e74726163742e73602e8201527f6f6c206f72206f75742f4d79436f6e74726163742e736f6c2f4d79436f6e7472604e8201527f6163742e6a736f6e000000000000000000000000000000000000000000000000606e820152607601919050565b7f53504458206c6963656e7365206964656e746966696572200000000000000000815260008351618dfb816018850160208801617984565b7f20696e20000000000000000000000000000000000000000000000000000000006018918401918201528351618e3881601c840160208801617984565b7f20646f6573206e6f74206c6f6f6b206c696b65206120737570706f7274656420601c92909101918201527f6c6963656e736520666f7220626c6f636b206578706c6f726572207665726966603c8201527f69636174696f6e2e205573652074686520606c6963656e73655479706560206f605c8201527f7074696f6e20746f20737065636966792061206c6963656e736520747970652c607c8201527f206f7220736574207468652060736b69704c6963656e73655479706560206f70609c8201527f74696f6e20746f2060747275656020746f20736b69702e00000000000000000060bc82015260d301949350505050565b60008251618f3e818460208701617984565b7f2000000000000000000000000000000000000000000000000000000000000000920191825250600101919050565b7f406f70656e7a657070656c696e2f75706772616465732d636f72654000000000815260008251618fa581601c850160208701617984565b91909101601c0192915050565b60006000198203618fc557618fc5617eeb565b5060010190565b808202811582820484141761375357613753617eeb565b6001815b600184111561901e5780850481111561900257619002617eeb565b600184161561901057908102905b60019390931c928002618fe7565b935093915050565b60008261903557506001613753565b8161904257506000613753565b816001811461905857600281146190625761907e565b6001915050613753565b60ff84111561907357619073617eeb565b50506001821b613753565b5060208310610133831016604e8410600b84101617156190a1575081810a613753565b6190ae6000198484618fe3565b80600019048211156190c2576190c2617eeb565b029392505050565b600061384c8383619026565b6000816190e5576190e5617eeb565b506000190190565b600083516190ff818460208801617984565b7f3a000000000000000000000000000000000000000000000000000000000000009083019081528351619139816001840160208801617984565b01600101949350505050565b8181036000831280158383131683831282161715616b1057616b10617eeb56fe60c0604052600d60809081526c2bb930b83832b21022ba3432b960991b60a05260009061002c9082610114565b506040805180820190915260048152630ae8aa8960e31b60208201526001906100559082610114565b506002805460ff1916601217905534801561006f57600080fd5b506101d2565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061009f57607f821691505b6020821081036100bf57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561010f57806000526020600020601f840160051c810160208510156100ec5750805b601f840160051c820191505b8181101561010c57600081556001016100f8565b50505b505050565b81516001600160401b0381111561012d5761012d610075565b6101418161013b845461008b565b846100c5565b6020601f821160018114610175576000831561015d5750848201515b600019600385901b1c1916600184901b17845561010c565b600084815260208120601f198516915b828110156101a55787850151825560209485019460019092019101610185565b50848210156101c35786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b610986806101e16000396000f3fe6080604052600436106100c05760003560e01c8063313ce56711610074578063a9059cbb1161004e578063a9059cbb146101fa578063d0e30db01461021a578063dd62ed3e1461022257600080fd5b8063313ce5671461018c57806370a08231146101b857806395d89b41146101e557600080fd5b806318160ddd116100a557806318160ddd1461012f57806323b872dd1461014c5780632e1a7d4d1461016c57600080fd5b806306fdde03146100d4578063095ea7b3146100ff57600080fd5b366100cf576100cd61025a565b005b600080fd5b3480156100e057600080fd5b506100e96102b5565b6040516100f69190610745565b60405180910390f35b34801561010b57600080fd5b5061011f61011a3660046107da565b610343565b60405190151581526020016100f6565b34801561013b57600080fd5b50475b6040519081526020016100f6565b34801561015857600080fd5b5061011f610167366004610804565b6103bd565b34801561017857600080fd5b506100cd610187366004610841565b610647565b34801561019857600080fd5b506002546101a69060ff1681565b60405160ff90911681526020016100f6565b3480156101c457600080fd5b5061013e6101d336600461085a565b60036020526000908152604090205481565b3480156101f157600080fd5b506100e9610724565b34801561020657600080fd5b5061011f6102153660046107da565b610731565b6100cd61025a565b34801561022e57600080fd5b5061013e61023d366004610875565b600460209081526000928352604080842090915290825290205481565b33600090815260036020526040812080543492906102799084906108d7565b909155505060405134815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200160405180910390a2565b600080546102c2906108ea565b80601f01602080910402602001604051908101604052809291908181526020018280546102ee906108ea565b801561033b5780601f106103105761010080835404028352916020019161033b565b820191906000526020600020905b81548152906001019060200180831161031e57829003601f168201915b505050505081565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103ab9086815260200190565b60405180910390a35060015b92915050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526003602052604081205482111561042b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600060248201526044015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff841633148015906104a1575073ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14155b156105605773ffffffffffffffffffffffffffffffffffffffff8416600090815260046020908152604080832033845290915290205482111561051a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260006024820152604401610422565b73ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091528120805484929061055a90849061093d565b90915550505b73ffffffffffffffffffffffffffffffffffffffff84166000908152600360205260408120805484929061059590849061093d565b909155505073ffffffffffffffffffffffffffffffffffffffff8316600090815260036020526040812080548492906105cf9084906108d7565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161063591815260200190565b60405180910390a35060019392505050565b3360009081526003602052604090205481111561069a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260006024820152604401610422565b33600090815260036020526040812080548392906106b990849061093d565b9091555050604051339082156108fc029083906000818181858888f193505050501580156106eb573d6000803e3d6000fd5b5060405181815233907f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b659060200160405180910390a250565b600180546102c2906108ea565b600061073e3384846103bd565b9392505050565b602081526000825180602084015260005b818110156107735760208186018101516040868401015201610756565b5060006040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff811681146107d557600080fd5b919050565b600080604083850312156107ed57600080fd5b6107f6836107b1565b946020939093013593505050565b60008060006060848603121561081957600080fd5b610822846107b1565b9250610830602085016107b1565b929592945050506040919091013590565b60006020828403121561085357600080fd5b5035919050565b60006020828403121561086c57600080fd5b61073e826107b1565b6000806040838503121561088857600080fd5b610891836107b1565b915061089f602084016107b1565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156103b7576103b76108a8565b600181811c908216806108fe57607f821691505b602082108103610937577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b818103818111156103b7576103b76108a856fea264697066735822122008d7fc4e09519c5dd9f356b03596f6829a151d0bc7682533f9ceab4e459f5ee264736f6c634300081a00336080604052348015600f57600080fd5b506105208061001f6000396000f3fe60806040526004361061002a5760003560e01c806369582bee14610033578063de43156e1461005357005b3661003157005b005b34801561003f57600080fd5b5061003161004e3660046101ba565b610073565b34801561005f57600080fd5b5061003161006e3660046101ba565b6100ee565b6060811561008a5761008782840184610273565b90505b7ffdc887992b033668833927e252058e468fac0b6bd196d520f09c61b740e999486100b58780610369565b6100c560408a0160208b016103ce565b896040013533866040516100de969594939291906103f0565b60405180910390a1505050505050565b606081156101055761010282840184610273565b90505b7fcdc8ee677dc5ebe680fb18cebda5e26ba5ea1f0ba504a47e2a9a2ecb476dc98e6100b58780610369565b60006060828403121561014257600080fd5b50919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461016c57600080fd5b919050565b60008083601f84011261018357600080fd5b50813567ffffffffffffffff81111561019b57600080fd5b6020830191508360208285010111156101b357600080fd5b9250929050565b6000806000806000608086880312156101d257600080fd5b853567ffffffffffffffff8111156101e957600080fd5b6101f588828901610130565b95505061020460208701610148565b935060408601359250606086013567ffffffffffffffff81111561022757600080fd5b61023388828901610171565b969995985093965092949392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561028557600080fd5b813567ffffffffffffffff81111561029c57600080fd5b8201601f810184136102ad57600080fd5b803567ffffffffffffffff8111156102c7576102c7610244565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff8211171561033357610333610244565b60405281815282820160200186101561034b57600080fd5b81602084016020830137600091810160200191909152949350505050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261039e57600080fd5b83018035915067ffffffffffffffff8211156103b957600080fd5b6020019150368190038213156101b357600080fd5b6000602082840312156103e057600080fd5b6103e982610148565b9392505050565b60a081528560a0820152858760c0830137600060c0878301015260007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f880116820173ffffffffffffffffffffffffffffffffffffffff8716602084015285604084015273ffffffffffffffffffffffffffffffffffffffff8516606084015260c083820301608084015283518060c083015260005b818110156104a557602081870181015184830160e0015201610488565b50600060e0838301810191909152601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909101019897505050505050505056fea2646970667358221220f4d1ccb9c8450e782e1c77412473fd37637a5c83a2a3272307d8c8bc8e8c7a3364736f6c634300081a003360c060405234801561001057600080fd5b5060405161106f38038061106f83398101604081905261002f916100db565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461006357604051632b2add3d60e01b815260040160405180910390fd5b600380546001600160a01b0319166001600160a01b0385811691909117909155828116608052811660a0526040517f80699e81136d69cb8367ad52a994e25c722a86da654b561d0c14b61a777e7ac590600090a150505061011e565b80516001600160a01b03811681146100d657600080fd5b919050565b6000806000606084860312156100f057600080fd5b6100f9846100bf565b9250610107602085016100bf565b9150610115604085016100bf565b90509250925092565b60805160a051610f2561014a60003960006101e50152600081816102b9015261045b0152610f256000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806397770dff11610097578063c63585cc11610066578063c63585cc14610273578063d7fd7afb14610286578063d936a012146102b4578063ee2815ba146102db57600080fd5b806397770dff1461021a578063a7cb05071461022d578063c39aca3714610240578063c62178ac1461025357600080fd5b8063513a9c05116100d3578063513a9c051461018a578063569541b9146101c0578063842da36d146101e057806391dd645f1461020757600080fd5b80630be15547146100fa5780631f0e251b1461015a5780633ce4a5bc1461016f575b600080fd5b610130610108366004610bd1565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61016d610168366004610c13565b6102ee565b005b61013073735b14bb79463307aacbed86daf3322b1e6226ab81565b610130610198366004610bd1565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6003546101309073ffffffffffffffffffffffffffffffffffffffff1681565b6101307f000000000000000000000000000000000000000000000000000000000000000081565b61016d610215366004610c35565b610402565b61016d610228366004610c13565b610526565b61016d61023b366004610c61565b610633565b61016d61024e366004610c83565b6106ce565b6004546101309073ffffffffffffffffffffffffffffffffffffffff1681565b610130610281366004610d53565b6108cd565b6102a6610294366004610bd1565b60006020819052908152604090205481565b604051908152602001610151565b6101307f000000000000000000000000000000000000000000000000000000000000000081565b61016d6102e9366004610c35565b610a02565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461033b576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116610388576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f3ade88e3922d64780e1bf4460d364c2970b69da813f9c0c07a1c187b5647636c906020015b60405180910390a150565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461044f576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600354600090610497907f00000000000000000000000000000000000000000000000000000000000000009073ffffffffffffffffffffffffffffffffffffffff16846108cd565b60008481526002602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85169081179091558251878152918201529192507f0ecec485166da6139b13bb7e033e9446e2d35348e80ebf1180d4afe2dba1704e910160405180910390a1505050565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610573576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81166105c0576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fdba79d534382d1a8ae108e4c8ecb27c6ae42ab8b91d44eedf88bd329f3868d5e906020016103f7565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610680576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000828152602081815260409182902083905581518481529081018390527f49f492222906ac486c3c1401fa545626df1f0c0e5a77a05597ea2ed66af9850d91015b60405180910390a15050565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461071b576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff831673735b14bb79463307aacbed86daf3322b1e6226ab1480610768575073ffffffffffffffffffffffffffffffffffffffff831630145b1561079f576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f47e7ef2400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018690528616906347e7ef24906044016020604051808303816000875af1158015610814573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108389190610d96565b506040517fde43156e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063de43156e906108939089908990899088908890600401610e01565b600060405180830381600087803b1580156108ad57600080fd5b505af11580156108c1573d6000803e3d6000fd5b50505050505050505050565b60008060006108dc8585610ad3565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606084811b8216602084015283901b16603482015291935091508690604801604051602081830303815290604052805190602001206040516020016109c29291907fff00000000000000000000000000000000000000000000000000000000000000815260609290921b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016600183015260158201527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f603582015260550190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101209695505050505050565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610a4f576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526001602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85169081179091558251858152918201527fd1b36d30f6248e97c473b4d1348ca164a4ef6759022f54a58ec200326c39c45d91016106c2565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610b3b576040517fcb1e7cfe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610b75578284610b78565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff8216610bca576040517f78b507da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b600060208284031215610be357600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610c0e57600080fd5b919050565b600060208284031215610c2557600080fd5b610c2e82610bea565b9392505050565b60008060408385031215610c4857600080fd5b82359150610c5860208401610bea565b90509250929050565b60008060408385031215610c7457600080fd5b50508035926020909101359150565b60008060008060008060a08789031215610c9c57600080fd5b863567ffffffffffffffff811115610cb357600080fd5b87016060818a031215610cc557600080fd5b9550610cd360208801610bea565b945060408701359350610ce860608801610bea565b9250608087013567ffffffffffffffff811115610d0457600080fd5b8701601f81018913610d1557600080fd5b803567ffffffffffffffff811115610d2c57600080fd5b896020828401011115610d3e57600080fd5b60208201935080925050509295509295509295565b600080600060608486031215610d6857600080fd5b610d7184610bea565b9250610d7f60208501610bea565b9150610d8d60408501610bea565b90509250925092565b600060208284031215610da857600080fd5b81518015158114610c2e57600080fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60808152600086357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1883603018112610e3957600080fd5b870160208101903567ffffffffffffffff811115610e5657600080fd5b803603821315610e6557600080fd5b60606080850152610e7a60e085018284610db8565b91505073ffffffffffffffffffffffffffffffffffffffff610e9e60208a01610bea565b1660a0840152604088013560c084015273ffffffffffffffffffffffffffffffffffffffff871660208401528560408401528281036060840152610ee3818587610db8565b9897505050505050505056fea264697066735822122017543d2c8189b581ace78b1ea401266087d4800c1923634417b929e7efd8a9b764736f6c634300081a003360c060405234801561001057600080fd5b506040516119e83803806119e883398101604081905261002f916101db565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461006357604051632b2add3d60e01b815260040160405180910390fd5b600761006f898261032d565b50600861007c888261032d565b506009805460ff191660ff881617905560808590528360028111156100a3576100a36103eb565b60a08160028111156100b7576100b76103eb565b905250600292909255600080546001600160a01b039283166001600160a01b03199182161790915560018054929093169116179055506104019350505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261011e57600080fd5b81516001600160401b03811115610137576101376100f7565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610165576101656100f7565b60405281815283820160200185101561017d57600080fd5b60005b8281101561019c57602081860181015183830182015201610180565b506000918101602001919091529392505050565b8051600381106101bf57600080fd5b919050565b80516001600160a01b03811681146101bf57600080fd5b600080600080600080600080610100898b0312156101f857600080fd5b88516001600160401b0381111561020e57600080fd5b61021a8b828c0161010d565b60208b015190995090506001600160401b0381111561023857600080fd5b6102448b828c0161010d565b975050604089015160ff8116811461025b57600080fd5b60608a0151909650945061027160808a016101b0565b60a08a0151909450925061028760c08a016101c4565b915061029560e08a016101c4565b90509295985092959890939650565b600181811c908216806102b857607f821691505b6020821081036102d857634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561032857806000526020600020601f840160051c810160208510156103055750805b601f840160051c820191505b818110156103255760008155600101610311565b50505b505050565b81516001600160401b03811115610346576103466100f7565b61035a8161035484546102a4565b846102de565b6020601f82116001811461038e57600083156103765750848201515b600019600385901b1c1916600184901b178455610325565b600084815260208120601f198516915b828110156103be578785015182556020948501946001909201910161039e565b50848210156103dc5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b600052602160045260246000fd5b60805160a0516115b461043460003960006102f30152600081816102c4015281816109430152610a4901526115b46000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c806385e1f4d0116100e3578063d9eeebed1161008c578063eddeb12311610066578063eddeb123146103f7578063f2441b321461040a578063f687d12a1461042a57600080fd5b8063d9eeebed1461035d578063dd62ed3e14610391578063e2f535b8146103d757600080fd5b8063a9059cbb116100bd578063a9059cbb14610322578063c701262614610335578063c835d7cc1461034857600080fd5b806385e1f4d0146102bf57806395d89b41146102e6578063a3413d03146102ee57600080fd5b8063313ce5671161014557806347e7ef241161011f57806347e7ef241461026d5780634d8943bb1461028057806370a082311461028957600080fd5b8063313ce567146102055780633ce4a5bc1461021a57806342966c681461025a57600080fd5b8063095ea7b311610176578063095ea7b3146101c757806318160ddd146101ea57806323b872dd146101f257600080fd5b806306fdde0314610192578063091d2788146101b0575b600080fd5b61019a61043d565b6040516101a79190611193565b60405180910390f35b6101b960025481565b6040519081526020016101a7565b6101da6101d53660046111d2565b6104cf565b60405190151581526020016101a7565b6006546101b9565b6101da6102003660046111fe565b6104e6565b60095460405160ff90911681526020016101a7565b61023573735b14bb79463307aacbed86daf3322b1e6226ab81565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a7565b6101da61026836600461123f565b61057d565b6101da61027b3660046111d2565b610591565b6101b960035481565b6101b9610297366004611258565b73ffffffffffffffffffffffffffffffffffffffff1660009081526004602052604090205490565b6101b97f000000000000000000000000000000000000000000000000000000000000000081565b61019a6106e5565b6103157f000000000000000000000000000000000000000000000000000000000000000081565b6040516101a79190611275565b6101da6103303660046111d2565b6106f4565b6101da6103433660046112e5565b610701565b61035b610356366004611258565b610850565b005b610365610917565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526020830191909152016101a7565b6101b961039f3660046113dd565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020908152604080832093909416825291909152205490565b6001546102359073ffffffffffffffffffffffffffffffffffffffff1681565b61035b61040536600461123f565b610b35565b6000546102359073ffffffffffffffffffffffffffffffffffffffff1681565b61035b61043836600461123f565b610bb7565b60606007805461044c90611416565b80601f016020809104026020016040519081016040528092919081815260200182805461047890611416565b80156104c55780601f1061049a576101008083540402835291602001916104c5565b820191906000526020600020905b8154815290600101906020018083116104a857829003601f168201915b5050505050905090565b60006104dc338484610c39565b5060015b92915050565b60006104f3848484610d42565b73ffffffffffffffffffffffffffffffffffffffff841660009081526005602090815260408083203384529091529020548281101561055e576040517f10bad14700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610572853361056d8685611498565b610c39565b506001949350505050565b60006105893383610efd565b506001919050565b60003373735b14bb79463307aacbed86daf3322b1e6226ab148015906105cf575060005473ffffffffffffffffffffffffffffffffffffffff163314155b80156105f3575060015473ffffffffffffffffffffffffffffffffffffffff163314155b1561062a576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610634838361103f565b6040517f735b14bb79463307aacbed86daf3322b1e6226ab000000000000000000000000602082015273ffffffffffffffffffffffffffffffffffffffff8416907f67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab390603401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526106d49186906114ab565b60405180910390a250600192915050565b60606008805461044c90611416565b60006104dc338484610d42565b600080600061070e610917565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273735b14bb79463307aacbed86daf3322b1e6226ab602482015260448101829052919350915073ffffffffffffffffffffffffffffffffffffffff8316906323b872dd906064016020604051808303816000875af11580156107a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c491906114cd565b6107fa576040517f0a7cd6d600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108043385610efd565b60035460405133917f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d9559161083d918991899187916114ef565b60405180910390a2506001949350505050565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461089d576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae906020015b60405180910390a150565b600080546040517f0be155470000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000060048201528291829173ffffffffffffffffffffffffffffffffffffffff90911690630be1554790602401602060405180830381865afa1580156109aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ce919061151e565b905073ffffffffffffffffffffffffffffffffffffffff8116610a1d576040517f78fff39600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080546040517fd7fd7afb0000000000000000000000000000000000000000000000000000000081527f0000000000000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff9091169063d7fd7afb90602401602060405180830381865afa158015610aac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad0919061153b565b905080600003610b0c576040517fe661aed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060035460025483610b1f9190611554565b610b29919061156b565b92959294509192505050565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610b82576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60038190556040518181527fef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f9060200161090c565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610c04576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028190556040518181527fff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a9060200161090c565b73ffffffffffffffffffffffffffffffffffffffff8316610c86576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610cd3576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316610d8f576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610ddc576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff831660009081526004602052604090205481811015610e3c576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e468282611498565b73ffffffffffffffffffffffffffffffffffffffff8086166000908152600460205260408082209390935590851681529081208054849290610e8990849061156b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610eef91815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff8216610f4a576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081526004602052604090205481811015610faa576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fb48282611498565b73ffffffffffffffffffffffffffffffffffffffff841660009081526004602052604081209190915560068054849290610fef908490611498565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610d35565b73ffffffffffffffffffffffffffffffffffffffff821661108c576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806006600082825461109e919061156b565b909155505073ffffffffffffffffffffffffffffffffffffffff8216600090815260046020526040812080548392906110d890849061156b565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6000815180845260005b8181101561115557602081850181015186830182015201611139565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006111a6602083018461112f565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff811681146111cf57600080fd5b50565b600080604083850312156111e557600080fd5b82356111f0816111ad565b946020939093013593505050565b60008060006060848603121561121357600080fd5b833561121e816111ad565b9250602084013561122e816111ad565b929592945050506040919091013590565b60006020828403121561125157600080fd5b5035919050565b60006020828403121561126a57600080fd5b81356111a6816111ad565b60208101600383106112b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156112f857600080fd5b823567ffffffffffffffff81111561130f57600080fd5b8301601f8101851361132057600080fd5b803567ffffffffffffffff81111561133a5761133a6112b6565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff821117156113a6576113a66112b6565b6040528181528282016020018710156113be57600080fd5b8160208401602083013760006020928201830152969401359450505050565b600080604083850312156113f057600080fd5b82356113fb816111ad565b9150602083013561140b816111ad565b809150509250929050565b600181811c9082168061142a57607f821691505b602082108103611463577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156104e0576104e0611469565b6040815260006114be604083018561112f565b90508260208301529392505050565b6000602082840312156114df57600080fd5b815180151581146111a657600080fd5b608081526000611502608083018761112f565b6020830195909552506040810192909252606090910152919050565b60006020828403121561153057600080fd5b81516111a6816111ad565b60006020828403121561154d57600080fd5b5051919050565b80820281158282048414176104e0576104e0611469565b808201808211156104e0576104e061146956fea264697066735822122062e8c81bc642fb8e9a1eaabde5abdece7e58510051b4aa2bee706dc57435041764736f6c634300081a0033a2646970667358221220af8f49670b75519cf2a646a68c6ac25f69644a7a8517dc20436fe53c85c66d7564736f6c634300081a0033", +} + +// 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 + ChainId *big.Int + Receiver []byte + Message []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterCall is a free log retrieval operation binding the contract event 0x5322ffbbf9261ff1f8138247942d2b03b28717141ef0a0dd080fc4be9c4e78d3. +// +// Solidity: event Call(address indexed sender, uint256 indexed chainId, bytes receiver, bytes message) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) FilterCall(opts *bind.FilterOpts, sender []common.Address, chainId []*big.Int) (*GatewayZEVMInboundTestCallIterator, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var chainIdRule []interface{} + for _, chainIdItem := range chainId { + chainIdRule = append(chainIdRule, chainIdItem) + } + + logs, sub, err := _GatewayZEVMInboundTest.contract.FilterLogs(opts, "Call", senderRule, chainIdRule) + 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 0x5322ffbbf9261ff1f8138247942d2b03b28717141ef0a0dd080fc4be9c4e78d3. +// +// Solidity: event Call(address indexed sender, uint256 indexed chainId, bytes receiver, bytes message) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) WatchCall(opts *bind.WatchOpts, sink chan<- *GatewayZEVMInboundTestCall, sender []common.Address, chainId []*big.Int) (event.Subscription, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var chainIdRule []interface{} + for _, chainIdItem := range chainId { + chainIdRule = append(chainIdRule, chainIdItem) + } + + logs, sub, err := _GatewayZEVMInboundTest.contract.WatchLogs(opts, "Call", senderRule, chainIdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-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 0x5322ffbbf9261ff1f8138247942d2b03b28717141ef0a0dd080fc4be9c4e78d3. +// +// Solidity: event Call(address indexed sender, uint256 indexed chainId, 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 { + Sender common.Address + ChainId *big.Int + Receiver []byte + Zrc20 common.Address + 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 0xde19dbe881cc0aeeb6e73ce19ac7b5ca695e6be8a076e3eb42292005a7fec1b5. +// +// Solidity: event Withdrawal(address indexed sender, uint256 indexed chainId, bytes receiver, address zrc20, uint256 value, uint256 gasfee, uint256 protocolFlatFee, bytes message) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) FilterWithdrawal(opts *bind.FilterOpts, sender []common.Address, chainId []*big.Int) (*GatewayZEVMInboundTestWithdrawalIterator, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var chainIdRule []interface{} + for _, chainIdItem := range chainId { + chainIdRule = append(chainIdRule, chainIdItem) + } + + logs, sub, err := _GatewayZEVMInboundTest.contract.FilterLogs(opts, "Withdrawal", senderRule, chainIdRule) + 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 0xde19dbe881cc0aeeb6e73ce19ac7b5ca695e6be8a076e3eb42292005a7fec1b5. +// +// Solidity: event Withdrawal(address indexed sender, uint256 indexed chainId, bytes receiver, address zrc20, uint256 value, uint256 gasfee, uint256 protocolFlatFee, bytes message) +func (_GatewayZEVMInboundTest *GatewayZEVMInboundTestFilterer) WatchWithdrawal(opts *bind.WatchOpts, sink chan<- *GatewayZEVMInboundTestWithdrawal, sender []common.Address, chainId []*big.Int) (event.Subscription, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var chainIdRule []interface{} + for _, chainIdItem := range chainId { + chainIdRule = append(chainIdRule, chainIdItem) + } + + logs, sub, err := _GatewayZEVMInboundTest.contract.WatchLogs(opts, "Withdrawal", senderRule, chainIdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-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 0xde19dbe881cc0aeeb6e73ce19ac7b5ca695e6be8a076e3eb42292005a7fec1b5. +// +// Solidity: event Withdrawal(address indexed sender, uint256 indexed chainId, bytes receiver, address zrc20, 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..a0582622 --- /dev/null +++ b/v2/pkg/gatewayzevm.t.sol/gatewayzevmoutboundtest.go @@ -0,0 +1,4637 @@ +// 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\":\"PAUSER_ROLE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"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\":\"testDepositTogglePause\",\"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\":\"chainId\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"},{\"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\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"chainId\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"},{\"name\":\"receiver\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"zrc20\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"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\":\"AccessControlUnauthorizedAccount\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"neededRole\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"type\":\"error\",\"name\":\"CallerIsNotFungibleModule\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EnforcedPause\",\"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: "0x6080604052600c8054600160ff199182168117909255601f80549091169091179055348015602c57600080fd5b5061df238061003c6000396000f3fe608060405234801561001057600080fd5b50600436106102415760003560e01c80637f924c4e11610145578063c3248272116100bd578063e63ab1e91161008c578063f5a3573311610071578063f5a35733146103cf578063fa7626d4146103d7578063fc79171b146103e457600080fd5b8063e63ab1e914610392578063eba3c49c146103c757600080fd5b8063c324827214610372578063cced12c71461037a578063df690b9a14610382578063e20c9f711461038a57600080fd5b8063aed71d9711610114578063b5508aa9116100f9578063b5508aa91461034a578063ba414fa614610352578063c27253181461036a57600080fd5b8063aed71d971461033a578063b0464fdc1461034257600080fd5b80637f924c4e1461030057806385226c8114610308578063916a17c61461031d57806396d9d8761461033257600080fd5b806331d09956116101d857806344b2a40b116101a7578063597cfeb01161018c578063597cfeb0146102db57806366d9a9a0146102e3578063720b9aa9146102f857600080fd5b806344b2a40b146102cb578063461fc5af146102d357600080fd5b806331d09956146102ab5780633a25c460146102b35780633e5e3c23146102bb5780633f7286f4146102c357600080fd5b80631c785a14116102145780631c785a14146102685780631ed7831c146102705780631fe687971461028e5780632ade38801461029657600080fd5b806309f080da146102465780630a9254e414610250578063104b352214610258578063198d5ca414610260575b600080fd5b61024e6103ec565b005b61024e6105e0565b61024e61104d565b61024e61123f565b61024e6114f9565b610278611e42565b6040516102859190618ba0565b60405180910390f35b61024e611ea4565b61029e6123d3565b6040516102859190618c3c565b61024e612515565b61024e6126d4565b61027861288f565b6102786128ef565b61024e61294f565b61024e612ad7565b61024e612c95565b6102eb61306b565b6040516102859190618da2565b61024e6131ed565b61024e613460565b6103106134b2565b6040516102859190618e40565b610325613582565b6040516102859190618eb7565b61024e61367d565b61024e6137d0565b610325613adc565b610310613bd7565b61035a613ca7565b6040519015158152602001610285565b61024e613d7b565b61024e613f34565b61024e6140ed565b61024e6142d8565b610278614496565b6103b97f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b604051908152602001610285565b61024e6144f6565b61024e6146b4565b601f5461035a9060ff1681565b61024e61486b565b60006040516020016103fd90618f4e565b60408051601f19818403018152606080840183526020805490911b6bffffffffffffffffffffffff191660808501528251808503607401815260948501845284526027546001600160a01b0316908401526001838301528151630618f58760e51b81527f2b2add3d0000000000000000000000000000000000000000000000000000000060048201529151909350737109709ecfa91a80626ff3989d68f67f5b1dd12d9163c31eb0e091602480830192600092919082900301818387803b1580156104c757600080fd5b505af11580156104db573d6000803e3d6000fd5b505060255460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063ca669fa79150602401600060405180830381600087803b15801561053857600080fd5b505af115801561054c573d6000803e3d6000fd5b50506020546021546024546040517f5af659670000000000000000000000000000000000000000000000000000000081526001600160a01b039384169550635af6596794506105aa9387938116926001929116908990600401618fc9565b600060405180830381600087803b1580156105c457600080fd5b505af11580156105d8573d6000803e3d6000fd5b505050505050565b602580547fffffffffffffffffffffffff000000000000000000000000000000000000000090811630179091556026805490911661123417905560405161062690618ab3565b604051809103906000f080158015610642573d6000803e3d6000fd5b50602280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03928316908117909155604080518082018252600f81527f476174657761795a45564d2e736f6c000000000000000000000000000000000060208201526025549151602481019390935292166044820152610726919060640160408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f485cc955000000000000000000000000000000000000000000000000000000001790526149a2565b601f80547fffffffffffffffffffffff0000000000000000000000000000000000000000ff166101006001600160a01b039384168102919091179182905560208054919092049092167fffffffffffffffffffffffff000000000000000000000000000000000000000090921682178155604080517f3ce4a5bc0000000000000000000000000000000000000000000000000000000081529051633ce4a5bc926004808401939192918290030181865afa1580156107e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080c919061901e565b602780547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905560405161085090618ac0565b604051809103906000f08015801561086c573d6000803e3d6000fd5b50602480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283161781556027546040517f06447d5600000000000000000000000000000000000000000000000000000000815292166004830152737109709ecfa91a80626ff3989d68f67f5b1dd12d916306447d569101600060405180830381600087803b15801561090857600080fd5b505af115801561091c573d6000803e3d6000fd5b50505050600080600060405161093190618acd565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103906000f08015801561096d573d6000803e3d6000fd5b50602380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283169081179091556020546040516012936001938493600093919216906109c390618ada565b6109d296959493929190619047565b604051809103906000f0801580156109ee573d6000803e3d6000fd5b50602180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283169081179091556023546040517fee2815ba0000000000000000000000000000000000000000000000000000000081526001600482015260248101929092529091169063ee2815ba90604401600060405180830381600087803b158015610a8557600080fd5b505af1158015610a99573d6000803e3d6000fd5b50506023546040517fa7cb050700000000000000000000000000000000000000000000000000000000815260016004820181905260248201526001600160a01b03909116925063a7cb05079150604401600060405180830381600087803b158015610b0357600080fd5b505af1158015610b17573d6000803e3d6000fd5b50506027546040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152633b9aca006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c88a5e6d9150604401600060405180830381600087803b158015610b9757600080fd5b505af1158015610bab573d6000803e3d6000fd5b50505050602260009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0600a6040518263ffffffff1660e01b81526004016000604051808303818588803b158015610c0057600080fd5b505af1158015610c14573d6000803e3d6000fd5b50506022546020546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152600a60248201529116935063095ea7b3925060440190506020604051808303816000875af1158015610c88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cac919061913c565b506021546025546040517f47e7ef240000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152620186a060248201529116906347e7ef24906044016020604051808303816000875af1158015610d1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d41919061913c565b507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610da057600080fd5b505af1158015610db4573d6000803e3d6000fd5b50506025546040517f06447d560000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d569150602401600060405180830381600087803b158015610e2a57600080fd5b505af1158015610e3e573d6000803e3d6000fd5b50506021546020546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152620186a060248201529116925063095ea7b391506044016020604051808303816000875af1158015610eb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed6919061913c565b50602260009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0600a6040518263ffffffff1660e01b81526004016000604051808303818588803b158015610f2857600080fd5b505af1158015610f3c573d6000803e3d6000fd5b50506022546020546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152600a60248201529116935063095ea7b3925060440190506020604051808303816000875af1158015610fb0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd4919061913c565b507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561103357600080fd5b505af1158015611047573d6000803e3d6000fd5b50505050565b60405160019060009061106290602001618f4e565b60408051601f19818403018152606080840183526020805490911b6bffffffffffffffffffffffff191660808501528251808503607401815260948501845284526027546001600160a01b0316908401526001838301528151630618f58760e51b81527f82d5d76a0000000000000000000000000000000000000000000000000000000060048201529151909350737109709ecfa91a80626ff3989d68f67f5b1dd12d9163c31eb0e091602480830192600092919082900301818387803b15801561112c57600080fd5b505af1158015611140573d6000803e3d6000fd5b505060275460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063ca669fa79150602401600060405180830381600087803b15801561119d57600080fd5b505af11580156111b1573d6000803e3d6000fd5b50506020546027546040517f21501a950000000000000000000000000000000000000000000000000000000081526001600160a01b0392831694506321501a9593506112089286928992911690889060040161915e565b600060405180830381600087803b15801561122257600080fd5b505af1158015611236573d6000803e3d6000fd5b50505050505050565b6021546026546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260019260009216906370a0823190602401602060405180830381865afa1580156112a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112cd9190619198565b90506112da6000826149c1565b60255460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b15801561133357600080fd5b505af1158015611347573d6000803e3d6000fd5b5050604051630618f58760e51b81527f2b2add3d000000000000000000000000000000000000000000000000000000006004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c31eb0e09150602401600060405180830381600087803b1580156113b757600080fd5b505af11580156113cb573d6000803e3d6000fd5b50506020546021546026546040517ff45346dc0000000000000000000000000000000000000000000000000000000081526001600160a01b0392831660048201526024810188905290821660448201529116925063f45346dc9150606401600060405180830381600087803b15801561144357600080fd5b505af1158015611457573d6000803e3d6000fd5b50506021546026546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260009450911691506370a0823190602401602060405180830381865afa1580156114c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e79190619198565b90506114f46000826149c1565b505050565b60275460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b15801561155257600080fd5b505af1158015611566573d6000803e3d6000fd5b5050602754604080516001600160a01b0390921660248301527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60448084019190915281518084039091018152606490920181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe2517d3f00000000000000000000000000000000000000000000000000000000179052517ff28dceb3000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d935063f28dceb3925061165191906004016191b1565b600060405180830381600087803b15801561166b57600080fd5b505af115801561167f573d6000803e3d6000fd5b50505050602060009054906101000a90046001600160a01b03166001600160a01b0316638456cb596040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156116d357600080fd5b505af11580156116e7573d6000803e3d6000fd5b505060275460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063ca669fa79150602401600060405180830381600087803b15801561174457600080fd5b505af1158015611758573d6000803e3d6000fd5b5050602754604080516001600160a01b0390921660248301527f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a60448084019190915281518084039091018152606490920181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe2517d3f00000000000000000000000000000000000000000000000000000000179052517ff28dceb3000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d935063f28dceb3925061184391906004016191b1565b600060405180830381600087803b15801561185d57600080fd5b505af1158015611871573d6000803e3d6000fd5b50505050602060009054906101000a90046001600160a01b03166001600160a01b0316633f4ba83a6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156118c557600080fd5b505af11580156118d9573d6000803e3d6000fd5b505060255460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063ca669fa79150602401600060405180830381600087803b15801561193657600080fd5b505af115801561194a573d6000803e3d6000fd5b50505050602060009054906101000a90046001600160a01b03166001600160a01b0316638456cb596040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561199e57600080fd5b505af11580156119b2573d6000803e3d6000fd5b5050604051630618f58760e51b81527fd93c066500000000000000000000000000000000000000000000000000000000600482015260019250737109709ecfa91a80626ff3989d68f67f5b1dd12d915063c31eb0e090602401600060405180830381600087803b158015611a2557600080fd5b505af1158015611a39573d6000803e3d6000fd5b505060275460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063ca669fa79150602401600060405180830381600087803b158015611a9657600080fd5b505af1158015611aaa573d6000803e3d6000fd5b50506020546021546026546040517ff45346dc0000000000000000000000000000000000000000000000000000000081526001600160a01b0392831660048201526024810187905290821660448201529116925063f45346dc9150606401600060405180830381600087803b158015611b2257600080fd5b505af1158015611b36573d6000803e3d6000fd5b505060255460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063ca669fa79150602401600060405180830381600087803b158015611b9357600080fd5b505af1158015611ba7573d6000803e3d6000fd5b50505050602060009054906101000a90046001600160a01b03166001600160a01b0316633f4ba83a6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611bfb57600080fd5b505af1158015611c0f573d6000803e3d6000fd5b50506021546026546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260009450911691506370a08231906024015b602060405180830381865afa158015611c7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ca09190619198565b9050611cad6000826149c1565b60275460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b158015611d0657600080fd5b505af1158015611d1a573d6000803e3d6000fd5b50506020546021546026546040517ff45346dc0000000000000000000000000000000000000000000000000000000081526001600160a01b0392831660048201526024810188905290821660448201529116925063f45346dc9150606401600060405180830381600087803b158015611d9257600080fd5b505af1158015611da6573d6000803e3d6000fd5b50506021546026546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260009450911691506370a0823190602401602060405180830381865afa158015611e12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e369190619198565b90506114f483826149c1565b60606016805480602002602001604051908101604052809291908181526020018280548015611e9a57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611e7c575b5050505050905090565b6022546027546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260019260009216906370a0823190602401602060405180830381865afa158015611f0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f329190619198565b6022546020546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201529293506000929116906370a0823190602401602060405180830381865afa158015611f9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fc19190619198565b6024546040519192506001600160a01b03163190600090611fe490602001618f4e565b60408051601f19818403018152606080840190925260205490911b6bffffffffffffffffffffffff191660808301529150600090806094810160408051808303601f190181529181529082526027546001600160a01b03908116602084015260019282018390526024805492517f81bad6f300000000000000000000000000000000000000000000000000000000815260048101859052908101849052604481018490526064810193909352166084820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b1580156120d257600080fd5b505af11580156120e6573d6000803e3d6000fd5b5050602080546040517fcdc8ee677dc5ebe680fb18cebda5e26ba5ea1f0ba504a47e2a9a2ecb476dc98e945061214193506001600160a01b03909116910160609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f1981840301815290829052602754602054612171936001600160a01b03928316928c9216906191c4565b60405180910390a160275460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b1580156121d257600080fd5b505af11580156121e6573d6000803e3d6000fd5b50506020546024546040517f21501a950000000000000000000000000000000000000000000000000000000081526001600160a01b0392831694506321501a95935061223d9286928c92911690889060040161915e565b600060405180830381600087803b15801561225757600080fd5b505af115801561226b573d6000803e3d6000fd5b50506022546027546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260009450911691506370a0823190602401602060405180830381865afa1580156122d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122fb9190619198565b905061231061230a8888619266565b826149c1565b6022546020546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260009291909116906370a0823190602401602060405180830381865afa15801561237a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061239e9190619198565b90506123aa86826149c1565b6123c96123b78987619279565b6024546001600160a01b0316316149c1565b5050505050505050565b6060601e805480602002602001604051908101604052809291908181526020016000905b8282101561250c57600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b828210156124f55783829060005260206000200180546124689061928c565b80601f01602080910402602001604051908101604052809291908181526020018280546124949061928c565b80156124e15780601f106124b6576101008083540402835291602001916124e1565b820191906000526020600020905b8154815290600101906020018083116124c457829003601f168201915b505050505081526020019060010190612449565b5050505081525050815260200190600101906123f7565b50505050905090565b600060405160200161252690618f4e565b60408051601f19818403018152606080840183526020805490911b6bffffffffffffffffffffffff191660808501528251808503607401815260948501845284526027546001600160a01b0316908401526001838301528151630618f58760e51b81527f2b2add3d0000000000000000000000000000000000000000000000000000000060048201529151909350737109709ecfa91a80626ff3989d68f67f5b1dd12d9163c31eb0e091602480830192600092919082900301818387803b1580156125f057600080fd5b505af1158015612604573d6000803e3d6000fd5b505060255460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063ca669fa791506024015b600060405180830381600087803b15801561266257600080fd5b505af1158015612676573d6000803e3d6000fd5b50506020546021546024546040517f309f50040000000000000000000000000000000000000000000000000000000081526001600160a01b03938416955063309f500494506105aa9387938116926001929116908990600401618fc9565b6040516001906000906126e990602001618f4e565b60408051601f19818403018152606080840183526020805490911b6bffffffffffffffffffffffff191660808501528251808503607401815260948501845284526027546001600160a01b0316908401526001838301528151630618f58760e51b81527f2b2add3d0000000000000000000000000000000000000000000000000000000060048201529151909350737109709ecfa91a80626ff3989d68f67f5b1dd12d9163c31eb0e091602480830192600092919082900301818387803b1580156127b357600080fd5b505af11580156127c7573d6000803e3d6000fd5b505060255460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063ca669fa79150602401600060405180830381600087803b15801561282457600080fd5b505af1158015612838573d6000803e3d6000fd5b50506020546024546040517f21501a950000000000000000000000000000000000000000000000000000000081526001600160a01b0392831694506321501a9593506112089286928992911690889060040161915e565b60606018805480602002602001604051908101604052809291908181526020018280548015611e9a576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311611e7c575050505050905090565b60606017805480602002602001604051908101604052809291908181526020018280548015611e9a576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311611e7c575050505050905090565b60275460405163ca669fa760e01b81526001600160a01b039091166004820152600190737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b1580156129ab57600080fd5b505af11580156129bf573d6000803e3d6000fd5b5050604051630618f58760e51b81527f82d5d76a000000000000000000000000000000000000000000000000000000006004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c31eb0e09150602401600060405180830381600087803b158015612a2f57600080fd5b505af1158015612a43573d6000803e3d6000fd5b50506020546021546027546040517ff45346dc0000000000000000000000000000000000000000000000000000000081526001600160a01b0392831660048201526024810187905290821660448201529116925063f45346dc91506064015b600060405180830381600087803b158015612abc57600080fd5b505af1158015612ad0573d6000803e3d6000fd5b5050505050565b6000604051602001612ae890618f4e565b60408051601f19818403018152606080840183526020805490911b6bffffffffffffffffffffffff191660808501528251808503607401815260948501845284526027546001600160a01b0316908401526001838301528151630618f58760e51b81527f2b2add3d0000000000000000000000000000000000000000000000000000000060048201529151909350737109709ecfa91a80626ff3989d68f67f5b1dd12d9163c31eb0e091602480830192600092919082900301818387803b158015612bb257600080fd5b505af1158015612bc6573d6000803e3d6000fd5b505060255460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063ca669fa79150602401600060405180830381600087803b158015612c2357600080fd5b505af1158015612c37573d6000803e3d6000fd5b50506020546021546024546040517fc39aca370000000000000000000000000000000000000000000000000000000081526001600160a01b03938416955063c39aca3794506105aa9387938116926001929116908990600401618fc9565b602154602480546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260009391909116916370a082319101602060405180830381865afa158015612cfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d229190619198565b9050612d2f6000826149c1565b6000604051602001612d4090618f4e565b60408051601f19818403018152606080840190925260205490911b6bffffffffffffffffffffffff191660808301529150600090806094810160408051808303601f190181529181529082526027546001600160a01b03908116602084015260019282018390526024805492517f81bad6f300000000000000000000000000000000000000000000000000000000815260048101859052908101849052604481018490526064810193909352166084820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b158015612e2e57600080fd5b505af1158015612e42573d6000803e3d6000fd5b5050602080546040517fcdc8ee677dc5ebe680fb18cebda5e26ba5ea1f0ba504a47e2a9a2ecb476dc98e9450612e9d93506001600160a01b03909116910160609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f1981840301815290829052602754602054612ece936001600160a01b039283169260019216906191c4565b60405180910390a160275460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b158015612f2f57600080fd5b505af1158015612f43573d6000803e3d6000fd5b50506020546021546024546040517fc39aca370000000000000000000000000000000000000000000000000000000081526001600160a01b03938416955063c39aca379450612fa19387938116926001929116908990600401618fc9565b600060405180830381600087803b158015612fbb57600080fd5b505af1158015612fcf573d6000803e3d6000fd5b5050602154602480546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260009550921692506370a082319101602060405180830381865afa15801561303a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061305e9190619198565b90506110476001826149c1565b6060601b805480602002602001604051908101604052809291908181526020016000905b8282101561250c57838290600052602060002090600202016040518060400160405290816000820180546130c29061928c565b80601f01602080910402602001604051908101604052809291908181526020018280546130ee9061928c565b801561313b5780601f106131105761010080835404028352916020019161313b565b820191906000526020600020905b81548152906001019060200180831161311e57829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156131d557602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116131825790505b5050505050815250508152602001906001019061308f565b60006040516020016131fe90618f4e565b60408051601f19818403018152606080840190925260205490911b6bffffffffffffffffffffffff191660808301529150600090806094810160408051808303601f190181529181529082526027546001600160a01b03908116602084015260019282018390526024805492517f81bad6f300000000000000000000000000000000000000000000000000000000815260048101859052908101849052604481018490526064810193909352166084820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b1580156132ec57600080fd5b505af1158015613300573d6000803e3d6000fd5b5050602080546040517fcdc8ee677dc5ebe680fb18cebda5e26ba5ea1f0ba504a47e2a9a2ecb476dc98e945061335b93506001600160a01b03909116910160609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f198184030181529082905260275460205461338c936001600160a01b039283169260019216906191c4565b60405180910390a160275460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa7906024015b600060405180830381600087803b1580156133ee57600080fd5b505af1158015613402573d6000803e3d6000fd5b50506020546021546024546040517fbcf7f32b0000000000000000000000000000000000000000000000000000000081526001600160a01b03938416955063bcf7f32b94506105aa9387938116926001929116908990600401618fc9565b6021546026546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260019260009216906370a0823190602401611c5f565b6060601a805480602002602001604051908101604052809291908181526020016000905b8282101561250c5783829060005260206000200180546134f59061928c565b80601f01602080910402602001604051908101604052809291908181526020018280546135219061928c565b801561356e5780601f106135435761010080835404028352916020019161356e565b820191906000526020600020905b81548152906001019060200180831161355157829003601f168201915b5050505050815260200190600101906134d6565b6060601d805480602002602001604051908101604052809291908181526020016000905b8282101561250c5760008481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801561366557602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116136125790505b505050505081525050815260200190600101906135a6565b60275460405163ca669fa760e01b81526001600160a01b039091166004820152600190737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b1580156136d957600080fd5b505af11580156136ed573d6000803e3d6000fd5b5050604051630618f58760e51b81527f82d5d76a000000000000000000000000000000000000000000000000000000006004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c31eb0e09150602401600060405180830381600087803b15801561375d57600080fd5b505af1158015613771573d6000803e3d6000fd5b50506020546021546040517ff45346dc0000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260248101869052911660448201819052925063f45346dc9150606401612aa2565b602154602480546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260009391909116916370a082319101602060405180830381865afa158015613839573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061385d9190619198565b905061386a6000826149c1565b600060405160200161387b90618f4e565b60408051601f19818403018152606080840190925260205490911b6bffffffffffffffffffffffff191660808301529150600090806094810160408051808303601f190181529181529082526027546001600160a01b03908116602084015260019282018390526024805492517f81bad6f300000000000000000000000000000000000000000000000000000000815260048101859052908101849052604481018490526064810193909352166084820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b15801561396957600080fd5b505af115801561397d573d6000803e3d6000fd5b5050602080546040517ffdc887992b033668833927e252058e468fac0b6bd196d520f09c61b740e9994894506139d893506001600160a01b03909116910160609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f1981840301815290829052602754602054613a09936001600160a01b039283169260019216906191c4565b60405180910390a160275460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b158015613a6a57600080fd5b505af1158015613a7e573d6000803e3d6000fd5b50506020546021546024546040517f5af659670000000000000000000000000000000000000000000000000000000081526001600160a01b039384169550635af659679450612fa19387938116926001929116908990600401618fc9565b6060601c805480602002602001604051908101604052809291908181526020016000905b8282101561250c5760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015613bbf57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411613b6c5790505b50505050508152505081526020019060010190613b00565b60606019805480602002602001604051908101604052809291908181526020016000905b8282101561250c578382906000526020600020018054613c1a9061928c565b80601f0160208091040260200160405190810160405280929190818152602001828054613c469061928c565b8015613c935780601f10613c6857610100808354040283529160200191613c93565b820191906000526020600020905b815481529060010190602001808311613c7657829003601f168201915b505050505081526020019060010190613bfb565b60085460009060ff1615613cbf575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c65640000000000000000000000000000000000000000000000000000602483015260009163667f9d7090604401602060405180830381865afa158015613d50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d749190619198565b1415905090565b6000604051602001613d8c90618f4e565b60408051601f19818403018152606080840183526020805490911b6bffffffffffffffffffffffff191660808501528251808503607401815260948501845284526027546001600160a01b0316908401526001838301528151630618f58760e51b81527f82d5d76a0000000000000000000000000000000000000000000000000000000060048201529151909350737109709ecfa91a80626ff3989d68f67f5b1dd12d9163c31eb0e091602480830192600092919082900301818387803b158015613e5657600080fd5b505af1158015613e6a573d6000803e3d6000fd5b505060275460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063ca669fa79150602401600060405180830381600087803b158015613ec757600080fd5b505af1158015613edb573d6000803e3d6000fd5b50506020546021546040517fc39aca370000000000000000000000000000000000000000000000000000000081526001600160a01b03928316945063c39aca3793506105aa928692169060019086908990600401618fc9565b6000604051602001613f4590618f4e565b60408051601f19818403018152606080840183526020805490911b6bffffffffffffffffffffffff191660808501528251808503607401815260948501845284526027546001600160a01b0316908401526001838301528151630618f58760e51b81527f82d5d76a0000000000000000000000000000000000000000000000000000000060048201529151909350737109709ecfa91a80626ff3989d68f67f5b1dd12d9163c31eb0e091602480830192600092919082900301818387803b15801561400f57600080fd5b505af1158015614023573d6000803e3d6000fd5b505060275460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063ca669fa79150602401600060405180830381600087803b15801561408057600080fd5b505af1158015614094573d6000803e3d6000fd5b50506020546021546040517f5af659670000000000000000000000000000000000000000000000000000000081526001600160a01b039283169450635af6596793506105aa928692169060019086908990600401618fc9565b60006040516020016140fe90618f4e565b60408051601f19818403018152606080840190925260205490911b6bffffffffffffffffffffffff191660808301529150600090806094810160408051808303601f190181529181529082526027546001600160a01b03908116602084015260019282018390526024805492517f81bad6f300000000000000000000000000000000000000000000000000000000815260048101859052908101849052604481018490526064810193909352166084820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b1580156141ec57600080fd5b505af1158015614200573d6000803e3d6000fd5b5050602080546040517ffdc887992b033668833927e252058e468fac0b6bd196d520f09c61b740e99948945061425b93506001600160a01b03909116910160609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f198184030181529082905260275460205461428c936001600160a01b039283169260019216906191c4565b60405180910390a160275460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401612648565b60006040516020016142e990618f4e565b60408051601f19818403018152606080840183526020805490911b6bffffffffffffffffffffffff191660808501528251808503607401815260948501845284526027546001600160a01b0316908401526001838301528151630618f58760e51b81527f82d5d76a0000000000000000000000000000000000000000000000000000000060048201529151909350737109709ecfa91a80626ff3989d68f67f5b1dd12d9163c31eb0e091602480830192600092919082900301818387803b1580156143b357600080fd5b505af11580156143c7573d6000803e3d6000fd5b505060275460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063ca669fa79150602401600060405180830381600087803b15801561442457600080fd5b505af1158015614438573d6000803e3d6000fd5b50506020546021546027546040517fc39aca370000000000000000000000000000000000000000000000000000000081526001600160a01b03938416955063c39aca3794506105aa9387938116926001929116908990600401618fc9565b60606015805480602002602001604051908101604052809291908181526020018280548015611e9a576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311611e7c575050505050905090565b600060405160200161450790618f4e565b60408051601f19818403018152606080840183526020805490911b6bffffffffffffffffffffffff191660808501528251808503607401815260948501845284526027546001600160a01b0316908401526001838301528151630618f58760e51b81527f82d5d76a0000000000000000000000000000000000000000000000000000000060048201529151909350737109709ecfa91a80626ff3989d68f67f5b1dd12d9163c31eb0e091602480830192600092919082900301818387803b1580156145d157600080fd5b505af11580156145e5573d6000803e3d6000fd5b505060275460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063ca669fa79150602401600060405180830381600087803b15801561464257600080fd5b505af1158015614656573d6000803e3d6000fd5b50506020546021546027546040517f5af659670000000000000000000000000000000000000000000000000000000081526001600160a01b039384169550635af6596794506105aa9387938116926001929116908990600401618fc9565b6040516001906000906146c990602001618f4e565b60408051601f19818403018152606080840183526020805490911b6bffffffffffffffffffffffff191660808501528251808503607401815260948501845284526027546001600160a01b0316908401526001838301528151630618f58760e51b81527f82d5d76a0000000000000000000000000000000000000000000000000000000060048201529151909350737109709ecfa91a80626ff3989d68f67f5b1dd12d9163c31eb0e091602480830192600092919082900301818387803b15801561479357600080fd5b505af11580156147a7573d6000803e3d6000fd5b505060275460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063ca669fa79150602401600060405180830381600087803b15801561480457600080fd5b505af1158015614818573d6000803e3d6000fd5b50506020546040517f21501a950000000000000000000000000000000000000000000000000000000081526001600160a01b0390911692506321501a95915061120890849087908590889060040161915e565b600060405160200161487c90618f4e565b60408051601f19818403018152606080840183526020805490911b6bffffffffffffffffffffffff191660808501528251808503607401815260948501845284526027546001600160a01b0316908401526001838301528151630618f58760e51b81527f2b2add3d0000000000000000000000000000000000000000000000000000000060048201529151909350737109709ecfa91a80626ff3989d68f67f5b1dd12d9163c31eb0e091602480830192600092919082900301818387803b15801561494657600080fd5b505af115801561495a573d6000803e3d6000fd5b505060255460405163ca669fa760e01b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063ca669fa791506024016133d4565b60006149ac618ae7565b6149b7848483614a40565b9150505b92915050565b6040517f98296c540000000000000000000000000000000000000000000000000000000081526004810183905260248101829052737109709ecfa91a80626ff3989d68f67f5b1dd12d906398296c549060440160006040518083038186803b158015614a2c57600080fd5b505afa1580156105d8573d6000803e3d6000fd5b600080614a4d8584614abb565b9050614ab06040518060400160405280601d81526020017f4552433139363750726f78792e736f6c3a4552433139363750726f78790000008152508286604051602001614a9b9291906192d9565b60405160208183030381529060405285614ac7565b9150505b9392505050565b6000614ab48383614af5565b60c08101515160009015614aeb57614ae484848460c00151614b10565b9050614ab4565b614ae48484614cb6565b6000614b018383614da1565b614ab483836020015184614ac7565b600080614b1b614db1565b90506000614b298683614e84565b90506000614b40826060015183602001518561532a565b90506000614b508383898961553c565b90506000614b5d826163b9565b602081015181519192509060030b15614bd057898260400151604051602001614b879291906192fb565b60408051601f19818403018152908290527f08c379a0000000000000000000000000000000000000000000000000000000008252614bc7916004016191b1565b60405180910390fd5b6000614c136040518060400160405280601581526020017f4465706c6f79656420746f20616464726573733a200000000000000000000000815250836001616588565b6040517fc6ce059d000000000000000000000000000000000000000000000000000000008152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c6ce059d90614c669084906004016191b1565b602060405180830381865afa158015614c83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614ca7919061901e565b9b9a5050505050505050505050565b6040517f8d1cc9250000000000000000000000000000000000000000000000000000000081526000908190737109709ecfa91a80626ff3989d68f67f5b1dd12d90638d1cc92590614d0b9087906004016191b1565b600060405180830381865afa158015614d28573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052614d509190810190619464565b90506000614d7e8285604051602001614d6a929190619499565b604051602081830303815290604052616788565b90506001600160a01b0381166149b7578484604051602001614b879291906194c8565b614dad8282600061679b565b5050565b604080518082018252600381527f6f75740000000000000000000000000000000000000000000000000000000000602082015290517fd145736c000000000000000000000000000000000000000000000000000000008152606091737109709ecfa91a80626ff3989d68f67f5b1dd12d91829063d145736c90614e38908490600401619573565b600060405180830381865afa158015614e55573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052614e7d91908101906195ba565b9250505090565b614eb66040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d9050614f016040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b614f0a8561689e565b60208201526000614f1a86616c83565b90506000836001600160a01b031663d930a0e66040518163ffffffff1660e01b8152600401600060405180830381865afa158015614f5c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052614f8491908101906195ba565b86838560200151604051602001614f9e9493929190619603565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291506000906001600160a01b038616906360f9bb1190614ff69085906004016191b1565b600060405180830381865afa158015615013573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261503b91908101906195ba565b6040517fdb4235f60000000000000000000000000000000000000000000000000000000081529091506001600160a01b0386169063db4235f690615083908490600401619707565b602060405180830381865afa1580156150a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906150c4919061913c565b6150d95781604051602001614b879190619759565b6040517f49c4fac80000000000000000000000000000000000000000000000000000000081526001600160a01b038616906349c4fac89061511e9084906004016197eb565b600060405180830381865afa15801561513b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261516391908101906195ba565b84526040517fdb4235f60000000000000000000000000000000000000000000000000000000081526001600160a01b0386169063db4235f6906151aa90849060040161983d565b602060405180830381865afa1580156151c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906151eb919061913c565b15615280576040517f49c4fac80000000000000000000000000000000000000000000000000000000081526001600160a01b038616906349c4fac89061523590849060040161983d565b600060405180830381865afa158015615252573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261527a91908101906195ba565b60408501525b846001600160a01b03166349c4fac88286600001516040516020016152a5919061988f565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016152d19291906198fb565b600060405180830381865afa1580156152ee573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261531691908101906195ba565b606085015250608083015250949350505050565b60408051600480825260a0820190925260609160009190816020015b60608152602001906001900390816153465790505090506040518060400160405280600481526020017f6772657000000000000000000000000000000000000000000000000000000000815250816000815181106153a6576153a6619920565b60200260200101819052506040518060400160405280600381526020017f2d726c0000000000000000000000000000000000000000000000000000000000815250816001815181106153fa576153fa619920565b602002602001018190525084604051602001615416919061994f565b6040516020818303038152906040528160028151811061543857615438619920565b60200260200101819052508260405160200161545491906199bb565b6040516020818303038152906040528160038151811061547657615476619920565b6020026020010181905250600061548c826163b9565b602080820151604080518082018252600581527f2e6a736f6e000000000000000000000000000000000000000000000000000000818501908152825180840184526000808252908601528251808401909352905182529281019290925291925061551d9060408051808201825260008082526020918201528151808301909252845182528085019082015290616f06565b6155325785604051602001614b8791906199fc565b9695505050505050565b60a0810151604080518082018252600080825260209182015281518083019092528251808352928101910152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d901561558c565b511590565b61570057826020015115615648576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605860248201527f54686520606c6963656e73655479706560206f7074696f6e2063616e6e6f742060448201527f62652075736564207768656e207468652060736b6970566572696679536f757260648201527f6365436f646560206f7074696f6e206973206074727565600000000000000000608482015260a401614bc7565b8260c0015115615700576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605360248201527f54686520606c6963656e73655479706560206f7074696f6e2063616e6e6f742060448201527f62652075736564207768656e207468652060736b69704c6963656e736554797060648201527f6560206f7074696f6e2069732060747275656000000000000000000000000000608482015260a401614bc7565b6040805160ff8082526120008201909252600091816020015b606081526020019060019003908161571957905050905060006040518060400160405280600381526020017f6e7078000000000000000000000000000000000000000000000000000000000081525082828061577490619a8d565b935060ff168151811061578957615789619920565b60200260200101819052506040518060400160405280600d81526020017f302e302e312d616c7068612e37000000000000000000000000000000000000008152506040516020016157da9190619aac565b6040516020818303038152906040528282806157f590619a8d565b935060ff168151811061580a5761580a619920565b60200260200101819052506040518060400160405280600681526020017f6465706c6f79000000000000000000000000000000000000000000000000000081525082828061585790619a8d565b935060ff168151811061586c5761586c619920565b60200260200101819052506040518060400160405280600e81526020017f2d2d636f6e74726163744e616d650000000000000000000000000000000000008152508282806158b990619a8d565b935060ff16815181106158ce576158ce619920565b602002602001018190525087602001518282806158ea90619a8d565b935060ff16815181106158ff576158ff619920565b60200260200101819052506040518060400160405280600e81526020017f2d2d636f6e74726163745061746800000000000000000000000000000000000081525082828061594c90619a8d565b935060ff168151811061596157615961619920565b60209081029190910101528751828261597981619a8d565b935060ff168151811061598e5761598e619920565b60200260200101819052506040518060400160405280600981526020017f2d2d636861696e496400000000000000000000000000000000000000000000008152508282806159db90619a8d565b935060ff16815181106159f0576159f0619920565b6020026020010181905250615a0446616f67565b8282615a0f81619a8d565b935060ff1681518110615a2457615a24619920565b60200260200101819052506040518060400160405280600f81526020017f2d2d6275696c64496e666f46696c650000000000000000000000000000000000815250828280615a7190619a8d565b935060ff1681518110615a8657615a86619920565b602002602001018190525086828280615a9e90619a8d565b935060ff1681518110615ab357615ab3619920565b6020908102919091010152855115615bda5760408051808201909152601581527f2d2d636f6e7374727563746f7242797465636f6465000000000000000000000060208201528282615b0481619a8d565b935060ff1681518110615b1957615b19619920565b60209081029190910101526040517f71aad10d0000000000000000000000000000000000000000000000000000000081526001600160a01b038416906371aad10d90615b699089906004016191b1565b600060405180830381865afa158015615b86573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052615bae91908101906195ba565b8282615bb981619a8d565b935060ff1681518110615bce57615bce619920565b60200260200101819052505b846020015115615caa5760408051808201909152601281527f2d2d766572696679536f75726365436f6465000000000000000000000000000060208201528282615c2381619a8d565b935060ff1681518110615c3857615c38619920565b60200260200101819052506040518060400160405280600581526020017f66616c7365000000000000000000000000000000000000000000000000000000815250828280615c8590619a8d565b935060ff1681518110615c9a57615c9a619920565b6020026020010181905250615e71565b615ce26155878660a0015160408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b615d755760408051808201909152600d81527f2d2d6c6963656e7365547970650000000000000000000000000000000000000060208201528282615d2581619a8d565b935060ff1681518110615d3a57615d3a619920565b60200260200101819052508460a00151604051602001615d5a919061994f565b604051602081830303815290604052828280615c8590619a8d565b8460c00151158015615db8575060408089015181518083018352600080825260209182015282518084019093528151835290810190820152615db690511590565b155b15615e715760408051808201909152600d81527f2d2d6c6963656e7365547970650000000000000000000000000000000000000060208201528282615dfc81619a8d565b935060ff1681518110615e1157615e11619920565b6020026020010181905250615e2588617007565b604051602001615e35919061994f565b604051602081830303815290604052828280615e5090619a8d565b935060ff1681518110615e6557615e65619920565b60200260200101819052505b60408086015181518083018352600080825260209182015282518084019093528151835290810190820152615ea590511590565b615f3a5760408051808201909152600b81527f2d2d72656c61796572496400000000000000000000000000000000000000000060208201528282615ee881619a8d565b935060ff1681518110615efd57615efd619920565b60200260200101819052508460400151828280615f1990619a8d565b935060ff1681518110615f2e57615f2e619920565b60200260200101819052505b60608501511561605b5760408051808201909152600681527f2d2d73616c74000000000000000000000000000000000000000000000000000060208201528282615f8381619a8d565b935060ff1681518110615f9857615f98619920565b602090810291909101015260608501516040517fb11a19e800000000000000000000000000000000000000000000000000000000815260048101919091526001600160a01b0384169063b11a19e890602401600060405180830381865afa158015616007573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261602f91908101906195ba565b828261603a81619a8d565b935060ff168151811061604f5761604f619920565b60200260200101819052505b60e085015151156161025760408051808201909152600a81527f2d2d6761734c696d697400000000000000000000000000000000000000000000602082015282826160a581619a8d565b935060ff16815181106160ba576160ba619920565b60200260200101819052506160d68560e0015160000151616f67565b82826160e181619a8d565b935060ff16815181106160f6576160f6619920565b60200260200101819052505b60e085015160200151156161ac5760408051808201909152600a81527f2d2d6761735072696365000000000000000000000000000000000000000000006020820152828261614f81619a8d565b935060ff168151811061616457616164619920565b60200260200101819052506161808560e0015160200151616f67565b828261618b81619a8d565b935060ff16815181106161a0576161a0619920565b60200260200101819052505b60e085015160400151156162565760408051808201909152600e81527f2d2d6d6178466565506572476173000000000000000000000000000000000000602082015282826161f981619a8d565b935060ff168151811061620e5761620e619920565b602002602001018190525061622a8560e0015160400151616f67565b828261623581619a8d565b935060ff168151811061624a5761624a619920565b60200260200101819052505b60e085015160600151156163005760408051808201909152601681527f2d2d6d61785072696f7269747946656550657247617300000000000000000000602082015282826162a381619a8d565b935060ff16815181106162b8576162b8619920565b60200260200101819052506162d48560e0015160600151616f67565b82826162df81619a8d565b935060ff16815181106162f4576162f4619920565b60200260200101819052505b60008160ff1667ffffffffffffffff81111561631e5761631e61937c565b60405190808252806020026020018201604052801561635157816020015b606081526020019060019003908161633c5790505b50905060005b8260ff168160ff1610156163aa57838160ff168151811061637a5761637a619920565b6020026020010151828260ff168151811061639757616397619920565b6020908102919091010152600101616357565b5093505050505b949350505050565b6163e06040518060600160405280600060030b815260200160608152602001606081525090565b60408051808201825260048082527f6261736800000000000000000000000000000000000000000000000000000000602083015291517fd145736c000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d92600091849163d145736c9161646691869101619b17565b600060405180830381865afa158015616483573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526164ab91908101906195ba565b905060006164b98683617af6565b90506000846001600160a01b031663f45c1ce7836040518263ffffffff1660e01b81526004016164e99190618e40565b6000604051808303816000875af1158015616508573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526165309190810190619b5e565b805190915060030b158015906165495750602081015151155b80156165585750604081015151155b15615532578160008151811061657057616570619920565b6020026020010151604051602001614b879190619c14565b606060006165bd8560408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b6040805180820182526000808252602091820152815180830190925286518252808701908201529091506165f49082905b90617c4b565b156167515760006166718261666b846166656166378a60408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b6040805180820182526000808252602091820152815180830190925282518252918201519181019190915290565b90617c72565b90617cd4565b604080518082018252600181527f0a00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201529091506166d5908290617c4b565b1561673f57604080518082018252600181527f0a000000000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261673c905b8290617d59565b90505b61674881617d7f565b92505050614ab4565b821561676a578484604051602001614b87929190619e00565b5050604080516020810190915260008152614ab4565b509392505050565b6000808251602084016000f09392505050565b8160a00151156167aa57505050565b60006167b7848484617de8565b905060006167c4826163b9565b602081015181519192509060030b1580156168605750604080518082018252600781527f535543434553530000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152616860906040805180820182526000808252602091820152815180830190925284518252808501908201526165ee565b1561686d57505050505050565b6040820151511561688d578160400151604051602001614b879190619ea7565b80604051602001614b879190619f05565b606060006168d38360408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600481527f2e736f6c0000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152909150616938905b8290616f06565b156169a757604080518082018252600481527f2e736f6c0000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614ab4906169a2908390618383565b617d7f565b604080518082018252600181527f3a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152616a09905b829061840d565b600103616ad657604080518082018252600181527f3a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152616a6f90616735565b50604080518082018252600181527f3a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614ab4906169a2905b8390617d59565b604080518082018252600581527f2e6a736f6e00000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152616b3590616931565b15616c6c57604080518082018252600181527f2f00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820181905284518086019095529251845283015290616b9d9083906184a7565b905060008160018351616bb09190619266565b81518110616bc057616bc0619920565b60200260200101519050616c636169a2616c366040518060400160405280600581526020017f2e6a736f6e00000000000000000000000000000000000000000000000000000081525060408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b60408051808201825260008082526020918201528151808301909252855182528086019082015290618383565b95945050505050565b82604051602001614b879190619f70565b50919050565b60606000616cb88360408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600481527f2e736f6c0000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152909150616d1a90616931565b15616d2857614ab481617d7f565b604080518082018252600181527f3a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152616d8790616a02565b600103616df157604080518082018252600181527f3a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152614ab4906169a290616acf565b604080518082018252600581527f2e6a736f6e00000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152616e5090616931565b15616c6c57604080518082018252600181527f2f00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820181905284518086019095529251845283015290616eb89083906184a7565b9050600181511115616ef4578060028251616ed39190619266565b81518110616ee357616ee3619920565b602002602001015192505050919050565b5082604051602001614b879190619f70565b805182516000911115616f1b575060006149bb565b81518351602085015160009291616f3191619279565b616f3b9190619266565b905082602001518103616f525760019150506149bb565b82516020840151819020912014905092915050565b60606000616f748361854c565b600101905060008167ffffffffffffffff811115616f9457616f9461937c565b6040519080825280601f01601f191660200182016040528015616fbe576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084616fc857509392505050565b604081810151815180830183526000808252602091820181905283518085018552835181529282018383015283518085018552600a81527f554e4c4943454e5345440000000000000000000000000000000000000000000081840190815285518087018752838152840192909252845180860190955251845290830152606091617093905b829061862e565b156170d357505060408051808201909152600481527f4e6f6e65000000000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600981527f556e6c6963656e73650000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526171329061708c565b1561717257505060408051808201909152600981527f556e6c6963656e736500000000000000000000000000000000000000000000006020820152919050565b604080518082018252600381527f4d49540000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526171d19061708c565b1561721157505060408051808201909152600381527f4d495400000000000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f47504c2d322e302d6f6e6c790000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526172709061708c565b806172d55750604080518082018252601081527f47504c2d322e302d6f722d6c6174657200000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526172d59061708c565b1561731557505060408051808201909152600981527f474e552047504c763200000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f47504c2d332e302d6f6e6c790000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526173749061708c565b806173d95750604080518082018252601081527f47504c2d332e302d6f722d6c6174657200000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526173d99061708c565b1561741957505060408051808201909152600981527f474e552047504c763300000000000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4c47504c2d322e312d6f6e6c7900000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526174789061708c565b806174dd5750604080518082018252601181527f4c47504c2d322e312d6f722d6c61746572000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526174dd9061708c565b1561751d57505060408051808201909152600c81527f474e55204c47504c76322e3100000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4c47504c2d332e302d6f6e6c79000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261757c9061708c565b806175e15750604080518082018252601181527f4c47504c2d332e302d6f722d6c61746572000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526175e19061708c565b1561762157505060408051808201909152600a81527f474e55204c47504c7633000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f4253442d322d436c617573650000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526176809061708c565b156176c057505060408051808201909152600c81527f4253442d322d436c6175736500000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f4253442d332d436c6175736500000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261771f9061708c565b1561775f57505060408051808201909152600c81527f4253442d332d436c6175736500000000000000000000000000000000000000006020820152919050565b604080518082018252600781527f4d504c2d322e3000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526177be9061708c565b156177fe57505060408051808201909152600781527f4d504c2d322e30000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600781527f4f534c2d332e30000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261785d9061708c565b1561789d57505060408051808201909152600781527f4f534c2d332e30000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600a81527f4170616368652d322e3000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526178fc9061708c565b1561793c57505060408051808201909152600a81527f4170616368652d322e30000000000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4147504c2d332e302d6f6e6c79000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261799b9061708c565b80617a005750604080518082018252601181527f4147504c2d332e302d6f722d6c6174657200000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152617a009061708c565b15617a4057505060408051808201909152600a81527f474e55204147504c7633000000000000000000000000000000000000000000006020820152919050565b604080518082018252600881527f4255534c2d312e3100000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152617a9f9061708c565b15617adf57505060408051808201909152600781527f42534c20312e31000000000000000000000000000000000000000000000000006020820152919050565b60408084015184519151614b87929060200161a04e565b60608060005b8451811015617b815781858281518110617b1857617b18619920565b6020026020010151604051602001617b31929190619499565b604051602081830303815290604052915060018551617b509190619266565b8114617b795781604051602001617b67919061a1b7565b60405160208183030381529060405291505b600101617afc565b5060408051600380825260808201909252600091816020015b6060815260200190600190039081617b9a5790505090508381600081518110617bc557617bc5619920565b60200260200101819052506040518060400160405280600281526020017f2d6300000000000000000000000000000000000000000000000000000000000081525081600181518110617c1957617c19619920565b60200260200101819052508181600281518110617c3857617c38619920565b6020908102919091010152949350505050565b6020808301518351835192840151600093617c699291849190618642565b14159392505050565b60408051808201909152600080825260208201526000617ca48460000151856020015185600001518660200151618753565b9050836020015181617cb69190619266565b84518590617cc5908390619266565b90525060208401525090919050565b6040805180820190915260008082526020820152815183511015617cf95750816149bb565b6020808301519084015160019114617d205750815160208481015190840151829020919020145b8015617d5157825184518590617d37908390619266565b9052508251602085018051617d4d908390619279565b9052505b509192915050565b6040805180820190915260008082526020820152617d78838383618873565b5092915050565b60606000826000015167ffffffffffffffff811115617da057617da061937c565b6040519080825280601f01601f191660200182016040528015617dca576020820181803683370190505b5090506000602082019050617d78818560200151866000015161891e565b60606000617df4614db1565b6040805160ff808252612000820190925291925060009190816020015b6060815260200190600190039081617e1157905050905060006040518060400160405280600381526020017f6e70780000000000000000000000000000000000000000000000000000000000815250828280617e6c90619a8d565b935060ff1681518110617e8157617e81619920565b60200260200101819052506040518060400160405280600781526020017f5e312e33322e3300000000000000000000000000000000000000000000000000815250604051602001617ed2919061a1f8565b604051602081830303815290604052828280617eed90619a8d565b935060ff1681518110617f0257617f02619920565b60200260200101819052506040518060400160405280600881526020017f76616c6964617465000000000000000000000000000000000000000000000000815250828280617f4f90619a8d565b935060ff1681518110617f6457617f64619920565b602002602001018190525082604051602001617f8091906199bb565b604051602081830303815290604052828280617f9b90619a8d565b935060ff1681518110617fb057617fb0619920565b60200260200101819052506040518060400160405280600a81526020017f2d2d636f6e747261637400000000000000000000000000000000000000000000815250828280617ffd90619a8d565b935060ff168151811061801257618012619920565b60200260200101819052506180278784618998565b828261803281619a8d565b935060ff168151811061804757618047619920565b6020908102919091010152855151156180f35760408051808201909152600b81527f2d2d7265666572656e63650000000000000000000000000000000000000000006020820152828261809981619a8d565b935060ff16815181106180ae576180ae619920565b60200260200101819052506180c7866000015184618998565b82826180d281619a8d565b935060ff16815181106180e7576180e7619920565b60200260200101819052505b8560800151156181615760408051808201909152601881527f2d2d756e73616665536b697053746f72616765436865636b00000000000000006020820152828261813c81619a8d565b935060ff168151811061815157618151619920565b60200260200101819052506181c7565b84156181c75760408051808201909152601281527f2d2d726571756972655265666572656e63650000000000000000000000000000602082015282826181a681619a8d565b935060ff16815181106181bb576181bb619920565b60200260200101819052505b604086015151156182635760408051808201909152600d81527f2d2d756e73616665416c6c6f77000000000000000000000000000000000000006020820152828261821181619a8d565b935060ff168151811061822657618226619920565b6020026020010181905250856040015182828061824290619a8d565b935060ff168151811061825757618257619920565b60200260200101819052505b8560600151156182cd5760408051808201909152601481527f2d2d756e73616665416c6c6f7752656e616d6573000000000000000000000000602082015282826182ac81619a8d565b935060ff16815181106182c1576182c1619920565b60200260200101819052505b60008160ff1667ffffffffffffffff8111156182eb576182eb61937c565b60405190808252806020026020018201604052801561831e57816020015b60608152602001906001900390816183095790505b50905060005b8260ff168160ff16101561837757838160ff168151811061834757618347619920565b6020026020010151828260ff168151811061836457618364619920565b6020908102919091010152600101618324565b50979650505050505050565b60408051808201909152600080825260208201528151835110156183a85750816149bb565b815183516020850151600092916183be91619279565b6183c89190619266565b602084015190915060019082146183e9575082516020840151819020908220145b801561840457835185518690618400908390619266565b9052505b50929392505050565b60008082600001516184318560000151866020015186600001518760200151618753565b61843b9190619279565b90505b8351602085015161844f9190619279565b8111617d78578161845f8161a23d565b925050826000015161849685602001518361847a9190619266565b86516184869190619266565b8386600001518760200151618753565b6184a09190619279565b905061843e565b606060006184b5848461840d565b6184c0906001619279565b67ffffffffffffffff8111156184d8576184d861937c565b60405190808252806020026020018201604052801561850b57816020015b60608152602001906001900390816184f65790505b50905060005b8151811015616780576185276169a28686617d59565b82828151811061853957618539619920565b6020908102919091010152600101618511565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310618595577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106185c1576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106185df57662386f26fc10000830492506010015b6305f5e10083106185f7576305f5e100830492506008015b612710831061860b57612710830492506004015b6064831061861d576064830492506002015b600a83106149bb5760010192915050565b600061863a83836189d8565b159392505050565b60008085841161874957602084116186f5576000841561868d576001618669866020619266565b61867490600861a257565b61867f90600261a355565b6186899190619266565b1990505b835181168561869c8989619279565b6186a69190619266565b805190935082165b8181146186e0578784116186c857879450505050506163b1565b836186d28161a361565b9450508284511690506186ae565b6186ea8785619279565b9450505050506163b1565b8383206187028588619266565b61870c9087619279565b91505b858210618747578482208082036187345761872a8684619279565b93505050506163b1565b61873f600184619266565b92505061870f565b505b5092949350505050565b6000838186851161885e576020851161880d576000851561879f57600161877b876020619266565b61878690600861a257565b61879190600261a355565b61879b9190619266565b1990505b845181166000876187b08b8b619279565b6187ba9190619266565b855190915083165b8281146187ff578186106187e7576187da8b8b619279565b96505050505050506163b1565b856187f18161a23d565b9650508386511690506187c2565b8596505050505050506163b1565b508383206000905b61881f8689619266565b821161885c5785832080820361883b57839450505050506163b1565b618846600185619279565b93505081806188549061a23d565b925050618815565b505b6188688787619279565b979650505050505050565b604080518082019091526000808252602082015260006188a58560000151866020015186600001518760200151618753565b6020808701805191860191909152519091506188c19082619266565b8352845160208601516188d49190619279565b81036188e35760008552618915565b835183516188f19190619279565b85518690618900908390619266565b905250835161890f9082619279565b60208601525b50909392505050565b602081106189565781518352618935602084619279565b9250618942602083619279565b915061894f602082619266565b905061891e565b600019811561898557600161896c836020619266565b6189789061010061a355565b6189829190619266565b90505b9151835183169219169190911790915250565b606060006189a68484614e84565b80516020808301516040519394506189c09390910161a378565b60405160208183030381529060405291505092915050565b81518151600091908111156189eb575081515b6020808501519084015160005b83811015618aa45782518251808214618a74576000196020871015618a5357600184618a25896020619266565b618a2f9190619279565b618a3a90600861a257565b618a4590600261a355565b618a4f9190619266565b1990505b8181168382168181039114618a715797506149bb9650505050505050565b50505b618a7f602086619279565b9450618a8c602085619279565b93505050602081618a9d9190619279565b90506189f8565b5084518651615532919061a3d0565b610b678061a3f183390190565b61053f8061af5883390190565b61106f8061b49783390190565b6119e88061c50683390190565b6040518060e00160405280606081526020016060815260200160608152602001600015158152602001600015158152602001600015158152602001618b2a618b2f565b905290565b60405180610100016040528060001515815260200160001515815260200160608152602001600080191681526020016060815260200160608152602001600015158152602001618b2a6040518060800160405280600081526020016000815260200160008152602001600081525090565b602080825282518282018190526000918401906040840190835b81811015618be15783516001600160a01b0316835260209384019390920191600101618bba565b509095945050505050565b60005b83811015618c07578181015183820152602001618bef565b50506000910152565b60008151808452618c28816020860160208601618bec565b601f01601f19169290920160200192915050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015618d38577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452815180516001600160a01b03168652602090810151604082880181905281519088018190529101906060600582901b88018101919088019060005b81811015618d1e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08a8503018352618d08848651618c10565b6020958601959094509290920191600101618cce565b509197505050602094850194929092019150600101618c64565b50929695505050505050565b600081518084526020840193506020830160005b82811015618d985781517fffffffff0000000000000000000000000000000000000000000000000000000016865260209586019590910190600101618d58565b5093949350505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015618d38577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08786030184528151805160408752618e0e6040880182618c10565b9050602082015191508681036020880152618e298183618d44565b965050506020938401939190910190600101618dca565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015618d38577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452618ea2858351618c10565b94506020938401939190910190600101618e68565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015618d38577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc087860301845281516001600160a01b0381511686526020810151905060406020870152618f386040870182618d44565b9550506020938401939190910190600101618edf565b6020815260006149bb60208301600581527f68656c6c6f000000000000000000000000000000000000000000000000000000602082015260400190565b6000815160608452618fa06060850182618c10565b90506001600160a01b036020840151166020850152604083015160408501528091505092915050565b60a081526000618fdc60a0830188618f8b565b6001600160a01b03871660208401528560408401526001600160a01b038516606084015282810360808401526190128185618c10565b98975050505050505050565b60006020828403121561903057600080fd5b81516001600160a01b0381168114614ab457600080fd5b610100815260056101008201527f544f4b454e000000000000000000000000000000000000000000000000000000610120820152610140602082015260036101408201527f544b4e000000000000000000000000000000000000000000000000000000000061016082015260006101808201905060ff8816604083015286606083015260038610619101577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8560808301528460a083015261912260c08301856001600160a01b03169052565b6001600160a01b03831660e0830152979650505050505050565b60006020828403121561914e57600080fd5b81518015158114614ab457600080fd5b6080815260006191716080830187618f8b565b8560208401526001600160a01b038516604084015282810360608401526188688185618c10565b6000602082840312156191aa57600080fd5b5051919050565b602081526000614ab46020830184618c10565b60a0815260006191d760a0830187618c10565b6001600160a01b03861660208401528460408401526001600160a01b0384166060840152828103608084015261886881600581527f68656c6c6f000000000000000000000000000000000000000000000000000000602082015260400190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156149bb576149bb619237565b808201808211156149bb576149bb619237565b600181811c908216806192a057607f821691505b602082108103616c7d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6001600160a01b03831681526040602082015260006163b16040830184618c10565b7f4661696c656420746f206465706c6f7920636f6e74726163742000000000000081526000835161933381601a850160208801618bec565b7f3a20000000000000000000000000000000000000000000000000000000000000601a91840191820152835161937081601c840160208801618bec565b01601c01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff811182821017156193ce576193ce61937c565b60405290565b60008067ffffffffffffffff8411156193ef576193ef61937c565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff8211171561941e5761941e61937c565b60405283815290508082840185101561943657600080fd5b616780846020830185618bec565b600082601f83011261945557600080fd5b614ab4838351602085016193d4565b60006020828403121561947657600080fd5b815167ffffffffffffffff81111561948d57600080fd5b6149b784828501619444565b600083516194ab818460208801618bec565b8351908301906194bf818360208801618bec565b01949350505050565b7f4661696c656420746f206465706c6f7920636f6e74726163742000000000000081526000835161950081601a850160208801618bec565b7f207573696e6720636f6e7374727563746f722064617461202200000000000000601a91840191820152835161953d816033840160208801618bec565b7f220000000000000000000000000000000000000000000000000000000000000060339290910191820152603401949350505050565b60408152600b60408201527f464f554e4452595f4f55540000000000000000000000000000000000000000006060820152608060208201526000614ab46080830184618c10565b6000602082840312156195cc57600080fd5b815167ffffffffffffffff8111156195e357600080fd5b8201601f810184136195f457600080fd5b6149b7848251602084016193d4565b60008551619615818460208a01618bec565b7f2f00000000000000000000000000000000000000000000000000000000000000908301908152855161964f816001840160208a01618bec565b7f2f0000000000000000000000000000000000000000000000000000000000000060019290910191820152845161968d816002840160208901618bec565b6001818301019150507f2f00000000000000000000000000000000000000000000000000000000000000600182015283516196cf816002840160208801618bec565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600292909101918201526007019695505050505050565b60408152600061971a6040830184618c10565b8281036020840152600481527f2e6173740000000000000000000000000000000000000000000000000000000060208201526040810191505092915050565b7f436f756c64206e6f742066696e642041535420696e206172746966616374200081526000825161979181601f850160208701618bec565b7f2e205365742060617374203d20747275656020696e20666f756e6472792e746f601f9390910192830152507f6d6c000000000000000000000000000000000000000000000000000000000000603f820152604101919050565b6040815260006197fe6040830184618c10565b8281036020840152601181527f2e6173742e6162736f6c7574655061746800000000000000000000000000000060208201526040810191505092915050565b6040815260006198506040830184618c10565b8281036020840152600c81527f2e6173742e6c6963656e7365000000000000000000000000000000000000000060208201526040810191505092915050565b7f2e6d657461646174612e736f75726365732e5b270000000000000000000000008152600082516198c7816014850160208701618bec565b7f275d2e6b656363616b32353600000000000000000000000000000000000000006014939091019283015250602001919050565b60408152600061990e6040830185618c10565b8281036020840152614ab08185618c10565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f2200000000000000000000000000000000000000000000000000000000000000815260008251619987816001850160208701618bec565b7f22000000000000000000000000000000000000000000000000000000000000006001939091019283015250600201919050565b600082516199cd818460208701618bec565b7f2f6275696c642d696e666f000000000000000000000000000000000000000000920191825250600b01919050565b7f436f756c64206e6f742066696e64206275696c642d696e666f2066696c65207781527f697468206d61746368696e6720736f7572636520636f6465206861736820666f60208201527f7220636f6e747261637420000000000000000000000000000000000000000000604082015260008251619a8081604b850160208701618bec565b91909101604b0192915050565b600060ff821660ff8103619aa357619aa3619237565b60010192915050565b7f406f70656e7a657070656c696e2f646566656e6465722d6465706c6f792d636c81527f69656e742d636c69400000000000000000000000000000000000000000000000602082015260008251619b0a816029850160208701618bec565b9190910160290192915050565b60408152601660408201527f4f50454e5a455050454c494e5f424153485f50415448000000000000000000006060820152608060208201526000614ab46080830184618c10565b600060208284031215619b7057600080fd5b815167ffffffffffffffff811115619b8757600080fd5b820160608185031215619b9957600080fd5b619ba16193ab565b81518060030b8114619bb257600080fd5b8152602082015167ffffffffffffffff811115619bce57600080fd5b619bda86828501619444565b602083015250604082015167ffffffffffffffff811115619bfa57600080fd5b619c0686828501619444565b604083015250949350505050565b7f4661696c656420746f2072756e206261736820636f6d6d616e6420776974682081527f2200000000000000000000000000000000000000000000000000000000000000602082015260008251619c72816021850160208701618bec565b7f222e20496620796f7520617265207573696e672057696e646f77732c2073657460219390910192830152507f20746865204f50454e5a455050454c494e5f424153485f5041544820656e766960418201527f726f6e6d656e74207661726961626c6520746f207468652066756c6c7920717560618201527f616c69666965642070617468206f66207468652062617368206578656375746160818201527f626c652e20466f72206578616d706c652c20696620796f75206172652075736960a18201527f6e672047697420666f722057696e646f77732c206164642074686520666f6c6c60c18201527f6f77696e67206c696e6520696e20746865202e656e762066696c65206f66207960e18201527f6f75722070726f6a65637420287573696e6720666f727761726420736c6173686101018201527f6573293a0a4f50454e5a455050454c494e5f424153485f504154483d22433a2f6101218201527f50726f6772616d2046696c65732f4769742f62696e2f6261736822000000000061014182015261015c01919050565b7f4661696c656420746f2066696e64206c696e652077697468207072656669782081527f2700000000000000000000000000000000000000000000000000000000000000602082015260008351619e5e816021850160208801618bec565b7f2720696e206f75747075743a20000000000000000000000000000000000000006021918401918201528351619e9b81602e840160208801618bec565b01602e01949350505050565b7f4661696c656420746f2072756e2075706772616465207361666574792076616c81527f69646174696f6e3a200000000000000000000000000000000000000000000000602082015260008251619b0a816029850160208701618bec565b7f55706772616465207361666574792076616c69646174696f6e206661696c656481527f3a0a000000000000000000000000000000000000000000000000000000000000602082015260008251619f63816022850160208701618bec565b9190910160220192915050565b7f436f6e7472616374206e616d6520000000000000000000000000000000000000815260008251619fa881600e850160208701618bec565b7f206d75737420626520696e2074686520666f726d6174204d79436f6e74726163600e9390910192830152507f742e736f6c3a4d79436f6e7472616374206f72204d79436f6e74726163742e73602e8201527f6f6c206f72206f75742f4d79436f6e74726163742e736f6c2f4d79436f6e7472604e8201527f6163742e6a736f6e000000000000000000000000000000000000000000000000606e820152607601919050565b7f53504458206c6963656e7365206964656e74696669657220000000000000000081526000835161a086816018850160208801618bec565b7f20696e2000000000000000000000000000000000000000000000000000000000601891840191820152835161a0c381601c840160208801618bec565b7f20646f6573206e6f74206c6f6f6b206c696b65206120737570706f7274656420601c92909101918201527f6c6963656e736520666f7220626c6f636b206578706c6f726572207665726966603c8201527f69636174696f6e2e205573652074686520606c6963656e73655479706560206f605c8201527f7074696f6e20746f20737065636966792061206c6963656e736520747970652c607c8201527f206f7220736574207468652060736b69704c6963656e73655479706560206f70609c8201527f74696f6e20746f2060747275656020746f20736b69702e00000000000000000060bc82015260d301949350505050565b6000825161a1c9818460208701618bec565b7f2000000000000000000000000000000000000000000000000000000000000000920191825250600101919050565b7f406f70656e7a657070656c696e2f75706772616465732d636f7265400000000081526000825161a23081601c850160208701618bec565b91909101601c0192915050565b6000600019820361a2505761a250619237565b5060010190565b80820281158282048414176149bb576149bb619237565b6001815b600184111561a2a95780850481111561a28d5761a28d619237565b600184161561a29b57908102905b60019390931c92800261a272565b935093915050565b60008261a2c0575060016149bb565b8161a2cd575060006149bb565b816001811461a2e3576002811461a2ed5761a309565b60019150506149bb565b60ff84111561a2fe5761a2fe619237565b50506001821b6149bb565b5060208310610133831016604e8410600b841016171561a32c575081810a6149bb565b61a339600019848461a26e565b806000190482111561a34d5761a34d619237565b029392505050565b6000614ab4838361a2b1565b60008161a3705761a370619237565b506000190190565b6000835161a38a818460208801618bec565b7f3a00000000000000000000000000000000000000000000000000000000000000908301908152835161a3c4816001840160208801618bec565b01600101949350505050565b8181036000831280158383131683831282161715617d7857617d7861923756fe60c0604052600d60809081526c2bb930b83832b21022ba3432b960991b60a05260009061002c9082610114565b506040805180820190915260048152630ae8aa8960e31b60208201526001906100559082610114565b506002805460ff1916601217905534801561006f57600080fd5b506101d2565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061009f57607f821691505b6020821081036100bf57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561010f57806000526020600020601f840160051c810160208510156100ec5750805b601f840160051c820191505b8181101561010c57600081556001016100f8565b50505b505050565b81516001600160401b0381111561012d5761012d610075565b6101418161013b845461008b565b846100c5565b6020601f821160018114610175576000831561015d5750848201515b600019600385901b1c1916600184901b17845561010c565b600084815260208120601f198516915b828110156101a55787850151825560209485019460019092019101610185565b50848210156101c35786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b610986806101e16000396000f3fe6080604052600436106100c05760003560e01c8063313ce56711610074578063a9059cbb1161004e578063a9059cbb146101fa578063d0e30db01461021a578063dd62ed3e1461022257600080fd5b8063313ce5671461018c57806370a08231146101b857806395d89b41146101e557600080fd5b806318160ddd116100a557806318160ddd1461012f57806323b872dd1461014c5780632e1a7d4d1461016c57600080fd5b806306fdde03146100d4578063095ea7b3146100ff57600080fd5b366100cf576100cd61025a565b005b600080fd5b3480156100e057600080fd5b506100e96102b5565b6040516100f69190610745565b60405180910390f35b34801561010b57600080fd5b5061011f61011a3660046107da565b610343565b60405190151581526020016100f6565b34801561013b57600080fd5b50475b6040519081526020016100f6565b34801561015857600080fd5b5061011f610167366004610804565b6103bd565b34801561017857600080fd5b506100cd610187366004610841565b610647565b34801561019857600080fd5b506002546101a69060ff1681565b60405160ff90911681526020016100f6565b3480156101c457600080fd5b5061013e6101d336600461085a565b60036020526000908152604090205481565b3480156101f157600080fd5b506100e9610724565b34801561020657600080fd5b5061011f6102153660046107da565b610731565b6100cd61025a565b34801561022e57600080fd5b5061013e61023d366004610875565b600460209081526000928352604080842090915290825290205481565b33600090815260036020526040812080543492906102799084906108d7565b909155505060405134815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200160405180910390a2565b600080546102c2906108ea565b80601f01602080910402602001604051908101604052809291908181526020018280546102ee906108ea565b801561033b5780601f106103105761010080835404028352916020019161033b565b820191906000526020600020905b81548152906001019060200180831161031e57829003601f168201915b505050505081565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103ab9086815260200190565b60405180910390a35060015b92915050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526003602052604081205482111561042b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600060248201526044015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff841633148015906104a1575073ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14155b156105605773ffffffffffffffffffffffffffffffffffffffff8416600090815260046020908152604080832033845290915290205482111561051a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260006024820152604401610422565b73ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091528120805484929061055a90849061093d565b90915550505b73ffffffffffffffffffffffffffffffffffffffff84166000908152600360205260408120805484929061059590849061093d565b909155505073ffffffffffffffffffffffffffffffffffffffff8316600090815260036020526040812080548492906105cf9084906108d7565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161063591815260200190565b60405180910390a35060019392505050565b3360009081526003602052604090205481111561069a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260006024820152604401610422565b33600090815260036020526040812080548392906106b990849061093d565b9091555050604051339082156108fc029083906000818181858888f193505050501580156106eb573d6000803e3d6000fd5b5060405181815233907f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b659060200160405180910390a250565b600180546102c2906108ea565b600061073e3384846103bd565b9392505050565b602081526000825180602084015260005b818110156107735760208186018101516040868401015201610756565b5060006040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff811681146107d557600080fd5b919050565b600080604083850312156107ed57600080fd5b6107f6836107b1565b946020939093013593505050565b60008060006060848603121561081957600080fd5b610822846107b1565b9250610830602085016107b1565b929592945050506040919091013590565b60006020828403121561085357600080fd5b5035919050565b60006020828403121561086c57600080fd5b61073e826107b1565b6000806040838503121561088857600080fd5b610891836107b1565b915061089f602084016107b1565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156103b7576103b76108a8565b600181811c908216806108fe57607f821691505b602082108103610937577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b818103818111156103b7576103b76108a856fea264697066735822122008d7fc4e09519c5dd9f356b03596f6829a151d0bc7682533f9ceab4e459f5ee264736f6c634300081a00336080604052348015600f57600080fd5b506105208061001f6000396000f3fe60806040526004361061002a5760003560e01c806369582bee14610033578063de43156e1461005357005b3661003157005b005b34801561003f57600080fd5b5061003161004e3660046101ba565b610073565b34801561005f57600080fd5b5061003161006e3660046101ba565b6100ee565b6060811561008a5761008782840184610273565b90505b7ffdc887992b033668833927e252058e468fac0b6bd196d520f09c61b740e999486100b58780610369565b6100c560408a0160208b016103ce565b896040013533866040516100de969594939291906103f0565b60405180910390a1505050505050565b606081156101055761010282840184610273565b90505b7fcdc8ee677dc5ebe680fb18cebda5e26ba5ea1f0ba504a47e2a9a2ecb476dc98e6100b58780610369565b60006060828403121561014257600080fd5b50919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461016c57600080fd5b919050565b60008083601f84011261018357600080fd5b50813567ffffffffffffffff81111561019b57600080fd5b6020830191508360208285010111156101b357600080fd5b9250929050565b6000806000806000608086880312156101d257600080fd5b853567ffffffffffffffff8111156101e957600080fd5b6101f588828901610130565b95505061020460208701610148565b935060408601359250606086013567ffffffffffffffff81111561022757600080fd5b61023388828901610171565b969995985093965092949392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561028557600080fd5b813567ffffffffffffffff81111561029c57600080fd5b8201601f810184136102ad57600080fd5b803567ffffffffffffffff8111156102c7576102c7610244565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff8211171561033357610333610244565b60405281815282820160200186101561034b57600080fd5b81602084016020830137600091810160200191909152949350505050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261039e57600080fd5b83018035915067ffffffffffffffff8211156103b957600080fd5b6020019150368190038213156101b357600080fd5b6000602082840312156103e057600080fd5b6103e982610148565b9392505050565b60a081528560a0820152858760c0830137600060c0878301015260007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f880116820173ffffffffffffffffffffffffffffffffffffffff8716602084015285604084015273ffffffffffffffffffffffffffffffffffffffff8516606084015260c083820301608084015283518060c083015260005b818110156104a557602081870181015184830160e0015201610488565b50600060e0838301810191909152601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909101019897505050505050505056fea2646970667358221220f4d1ccb9c8450e782e1c77412473fd37637a5c83a2a3272307d8c8bc8e8c7a3364736f6c634300081a003360c060405234801561001057600080fd5b5060405161106f38038061106f83398101604081905261002f916100db565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461006357604051632b2add3d60e01b815260040160405180910390fd5b600380546001600160a01b0319166001600160a01b0385811691909117909155828116608052811660a0526040517f80699e81136d69cb8367ad52a994e25c722a86da654b561d0c14b61a777e7ac590600090a150505061011e565b80516001600160a01b03811681146100d657600080fd5b919050565b6000806000606084860312156100f057600080fd5b6100f9846100bf565b9250610107602085016100bf565b9150610115604085016100bf565b90509250925092565b60805160a051610f2561014a60003960006101e50152600081816102b9015261045b0152610f256000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806397770dff11610097578063c63585cc11610066578063c63585cc14610273578063d7fd7afb14610286578063d936a012146102b4578063ee2815ba146102db57600080fd5b806397770dff1461021a578063a7cb05071461022d578063c39aca3714610240578063c62178ac1461025357600080fd5b8063513a9c05116100d3578063513a9c051461018a578063569541b9146101c0578063842da36d146101e057806391dd645f1461020757600080fd5b80630be15547146100fa5780631f0e251b1461015a5780633ce4a5bc1461016f575b600080fd5b610130610108366004610bd1565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61016d610168366004610c13565b6102ee565b005b61013073735b14bb79463307aacbed86daf3322b1e6226ab81565b610130610198366004610bd1565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6003546101309073ffffffffffffffffffffffffffffffffffffffff1681565b6101307f000000000000000000000000000000000000000000000000000000000000000081565b61016d610215366004610c35565b610402565b61016d610228366004610c13565b610526565b61016d61023b366004610c61565b610633565b61016d61024e366004610c83565b6106ce565b6004546101309073ffffffffffffffffffffffffffffffffffffffff1681565b610130610281366004610d53565b6108cd565b6102a6610294366004610bd1565b60006020819052908152604090205481565b604051908152602001610151565b6101307f000000000000000000000000000000000000000000000000000000000000000081565b61016d6102e9366004610c35565b610a02565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461033b576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116610388576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f3ade88e3922d64780e1bf4460d364c2970b69da813f9c0c07a1c187b5647636c906020015b60405180910390a150565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461044f576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600354600090610497907f00000000000000000000000000000000000000000000000000000000000000009073ffffffffffffffffffffffffffffffffffffffff16846108cd565b60008481526002602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85169081179091558251878152918201529192507f0ecec485166da6139b13bb7e033e9446e2d35348e80ebf1180d4afe2dba1704e910160405180910390a1505050565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610573576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81166105c0576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fdba79d534382d1a8ae108e4c8ecb27c6ae42ab8b91d44eedf88bd329f3868d5e906020016103f7565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610680576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000828152602081815260409182902083905581518481529081018390527f49f492222906ac486c3c1401fa545626df1f0c0e5a77a05597ea2ed66af9850d91015b60405180910390a15050565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461071b576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff831673735b14bb79463307aacbed86daf3322b1e6226ab1480610768575073ffffffffffffffffffffffffffffffffffffffff831630145b1561079f576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f47e7ef2400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018690528616906347e7ef24906044016020604051808303816000875af1158015610814573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108389190610d96565b506040517fde43156e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063de43156e906108939089908990899088908890600401610e01565b600060405180830381600087803b1580156108ad57600080fd5b505af11580156108c1573d6000803e3d6000fd5b50505050505050505050565b60008060006108dc8585610ad3565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606084811b8216602084015283901b16603482015291935091508690604801604051602081830303815290604052805190602001206040516020016109c29291907fff00000000000000000000000000000000000000000000000000000000000000815260609290921b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016600183015260158201527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f603582015260550190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101209695505050505050565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610a4f576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526001602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85169081179091558251858152918201527fd1b36d30f6248e97c473b4d1348ca164a4ef6759022f54a58ec200326c39c45d91016106c2565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610b3b576040517fcb1e7cfe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610b75578284610b78565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff8216610bca576040517f78b507da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b600060208284031215610be357600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610c0e57600080fd5b919050565b600060208284031215610c2557600080fd5b610c2e82610bea565b9392505050565b60008060408385031215610c4857600080fd5b82359150610c5860208401610bea565b90509250929050565b60008060408385031215610c7457600080fd5b50508035926020909101359150565b60008060008060008060a08789031215610c9c57600080fd5b863567ffffffffffffffff811115610cb357600080fd5b87016060818a031215610cc557600080fd5b9550610cd360208801610bea565b945060408701359350610ce860608801610bea565b9250608087013567ffffffffffffffff811115610d0457600080fd5b8701601f81018913610d1557600080fd5b803567ffffffffffffffff811115610d2c57600080fd5b896020828401011115610d3e57600080fd5b60208201935080925050509295509295509295565b600080600060608486031215610d6857600080fd5b610d7184610bea565b9250610d7f60208501610bea565b9150610d8d60408501610bea565b90509250925092565b600060208284031215610da857600080fd5b81518015158114610c2e57600080fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60808152600086357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1883603018112610e3957600080fd5b870160208101903567ffffffffffffffff811115610e5657600080fd5b803603821315610e6557600080fd5b60606080850152610e7a60e085018284610db8565b91505073ffffffffffffffffffffffffffffffffffffffff610e9e60208a01610bea565b1660a0840152604088013560c084015273ffffffffffffffffffffffffffffffffffffffff871660208401528560408401528281036060840152610ee3818587610db8565b9897505050505050505056fea264697066735822122017543d2c8189b581ace78b1ea401266087d4800c1923634417b929e7efd8a9b764736f6c634300081a003360c060405234801561001057600080fd5b506040516119e83803806119e883398101604081905261002f916101db565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461006357604051632b2add3d60e01b815260040160405180910390fd5b600761006f898261032d565b50600861007c888261032d565b506009805460ff191660ff881617905560808590528360028111156100a3576100a36103eb565b60a08160028111156100b7576100b76103eb565b905250600292909255600080546001600160a01b039283166001600160a01b03199182161790915560018054929093169116179055506104019350505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261011e57600080fd5b81516001600160401b03811115610137576101376100f7565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610165576101656100f7565b60405281815283820160200185101561017d57600080fd5b60005b8281101561019c57602081860181015183830182015201610180565b506000918101602001919091529392505050565b8051600381106101bf57600080fd5b919050565b80516001600160a01b03811681146101bf57600080fd5b600080600080600080600080610100898b0312156101f857600080fd5b88516001600160401b0381111561020e57600080fd5b61021a8b828c0161010d565b60208b015190995090506001600160401b0381111561023857600080fd5b6102448b828c0161010d565b975050604089015160ff8116811461025b57600080fd5b60608a0151909650945061027160808a016101b0565b60a08a0151909450925061028760c08a016101c4565b915061029560e08a016101c4565b90509295985092959890939650565b600181811c908216806102b857607f821691505b6020821081036102d857634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561032857806000526020600020601f840160051c810160208510156103055750805b601f840160051c820191505b818110156103255760008155600101610311565b50505b505050565b81516001600160401b03811115610346576103466100f7565b61035a8161035484546102a4565b846102de565b6020601f82116001811461038e57600083156103765750848201515b600019600385901b1c1916600184901b178455610325565b600084815260208120601f198516915b828110156103be578785015182556020948501946001909201910161039e565b50848210156103dc5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b600052602160045260246000fd5b60805160a0516115b461043460003960006102f30152600081816102c4015281816109430152610a4901526115b46000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c806385e1f4d0116100e3578063d9eeebed1161008c578063eddeb12311610066578063eddeb123146103f7578063f2441b321461040a578063f687d12a1461042a57600080fd5b8063d9eeebed1461035d578063dd62ed3e14610391578063e2f535b8146103d757600080fd5b8063a9059cbb116100bd578063a9059cbb14610322578063c701262614610335578063c835d7cc1461034857600080fd5b806385e1f4d0146102bf57806395d89b41146102e6578063a3413d03146102ee57600080fd5b8063313ce5671161014557806347e7ef241161011f57806347e7ef241461026d5780634d8943bb1461028057806370a082311461028957600080fd5b8063313ce567146102055780633ce4a5bc1461021a57806342966c681461025a57600080fd5b8063095ea7b311610176578063095ea7b3146101c757806318160ddd146101ea57806323b872dd146101f257600080fd5b806306fdde0314610192578063091d2788146101b0575b600080fd5b61019a61043d565b6040516101a79190611193565b60405180910390f35b6101b960025481565b6040519081526020016101a7565b6101da6101d53660046111d2565b6104cf565b60405190151581526020016101a7565b6006546101b9565b6101da6102003660046111fe565b6104e6565b60095460405160ff90911681526020016101a7565b61023573735b14bb79463307aacbed86daf3322b1e6226ab81565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a7565b6101da61026836600461123f565b61057d565b6101da61027b3660046111d2565b610591565b6101b960035481565b6101b9610297366004611258565b73ffffffffffffffffffffffffffffffffffffffff1660009081526004602052604090205490565b6101b97f000000000000000000000000000000000000000000000000000000000000000081565b61019a6106e5565b6103157f000000000000000000000000000000000000000000000000000000000000000081565b6040516101a79190611275565b6101da6103303660046111d2565b6106f4565b6101da6103433660046112e5565b610701565b61035b610356366004611258565b610850565b005b610365610917565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526020830191909152016101a7565b6101b961039f3660046113dd565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020908152604080832093909416825291909152205490565b6001546102359073ffffffffffffffffffffffffffffffffffffffff1681565b61035b61040536600461123f565b610b35565b6000546102359073ffffffffffffffffffffffffffffffffffffffff1681565b61035b61043836600461123f565b610bb7565b60606007805461044c90611416565b80601f016020809104026020016040519081016040528092919081815260200182805461047890611416565b80156104c55780601f1061049a576101008083540402835291602001916104c5565b820191906000526020600020905b8154815290600101906020018083116104a857829003601f168201915b5050505050905090565b60006104dc338484610c39565b5060015b92915050565b60006104f3848484610d42565b73ffffffffffffffffffffffffffffffffffffffff841660009081526005602090815260408083203384529091529020548281101561055e576040517f10bad14700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610572853361056d8685611498565b610c39565b506001949350505050565b60006105893383610efd565b506001919050565b60003373735b14bb79463307aacbed86daf3322b1e6226ab148015906105cf575060005473ffffffffffffffffffffffffffffffffffffffff163314155b80156105f3575060015473ffffffffffffffffffffffffffffffffffffffff163314155b1561062a576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610634838361103f565b6040517f735b14bb79463307aacbed86daf3322b1e6226ab000000000000000000000000602082015273ffffffffffffffffffffffffffffffffffffffff8416907f67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab390603401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526106d49186906114ab565b60405180910390a250600192915050565b60606008805461044c90611416565b60006104dc338484610d42565b600080600061070e610917565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273735b14bb79463307aacbed86daf3322b1e6226ab602482015260448101829052919350915073ffffffffffffffffffffffffffffffffffffffff8316906323b872dd906064016020604051808303816000875af11580156107a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c491906114cd565b6107fa576040517f0a7cd6d600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108043385610efd565b60035460405133917f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d9559161083d918991899187916114ef565b60405180910390a2506001949350505050565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461089d576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae906020015b60405180910390a150565b600080546040517f0be155470000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000060048201528291829173ffffffffffffffffffffffffffffffffffffffff90911690630be1554790602401602060405180830381865afa1580156109aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ce919061151e565b905073ffffffffffffffffffffffffffffffffffffffff8116610a1d576040517f78fff39600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080546040517fd7fd7afb0000000000000000000000000000000000000000000000000000000081527f0000000000000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff9091169063d7fd7afb90602401602060405180830381865afa158015610aac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad0919061153b565b905080600003610b0c576040517fe661aed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060035460025483610b1f9190611554565b610b29919061156b565b92959294509192505050565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610b82576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60038190556040518181527fef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f9060200161090c565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610c04576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028190556040518181527fff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a9060200161090c565b73ffffffffffffffffffffffffffffffffffffffff8316610c86576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610cd3576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316610d8f576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610ddc576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff831660009081526004602052604090205481811015610e3c576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e468282611498565b73ffffffffffffffffffffffffffffffffffffffff8086166000908152600460205260408082209390935590851681529081208054849290610e8990849061156b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610eef91815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff8216610f4a576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081526004602052604090205481811015610faa576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fb48282611498565b73ffffffffffffffffffffffffffffffffffffffff841660009081526004602052604081209190915560068054849290610fef908490611498565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610d35565b73ffffffffffffffffffffffffffffffffffffffff821661108c576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806006600082825461109e919061156b565b909155505073ffffffffffffffffffffffffffffffffffffffff8216600090815260046020526040812080548392906110d890849061156b565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6000815180845260005b8181101561115557602081850181015186830182015201611139565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006111a6602083018461112f565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff811681146111cf57600080fd5b50565b600080604083850312156111e557600080fd5b82356111f0816111ad565b946020939093013593505050565b60008060006060848603121561121357600080fd5b833561121e816111ad565b9250602084013561122e816111ad565b929592945050506040919091013590565b60006020828403121561125157600080fd5b5035919050565b60006020828403121561126a57600080fd5b81356111a6816111ad565b60208101600383106112b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156112f857600080fd5b823567ffffffffffffffff81111561130f57600080fd5b8301601f8101851361132057600080fd5b803567ffffffffffffffff81111561133a5761133a6112b6565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff821117156113a6576113a66112b6565b6040528181528282016020018710156113be57600080fd5b8160208401602083013760006020928201830152969401359450505050565b600080604083850312156113f057600080fd5b82356113fb816111ad565b9150602083013561140b816111ad565b809150509250929050565b600181811c9082168061142a57607f821691505b602082108103611463577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156104e0576104e0611469565b6040815260006114be604083018561112f565b90508260208301529392505050565b6000602082840312156114df57600080fd5b815180151581146111a657600080fd5b608081526000611502608083018761112f565b6020830195909552506040810192909252606090910152919050565b60006020828403121561153057600080fd5b81516111a6816111ad565b60006020828403121561154d57600080fd5b5051919050565b80820281158282048414176104e0576104e0611469565b808201808211156104e0576104e061146956fea264697066735822122062e8c81bc642fb8e9a1eaabde5abdece7e58510051b4aa2bee706dc57435041764736f6c634300081a0033a2646970667358221220670d3b300bb5831c5bb424295505189dc316cf58f69dbc6904fbb6cb7e3475d964736f6c634300081a0033", +} + +// 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) +} + +// PAUSERROLE is a free data retrieval call binding the contract method 0xe63ab1e9. +// +// Solidity: function PAUSER_ROLE() view returns(bytes32) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestCaller) PAUSERROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _GatewayZEVMOutboundTest.contract.Call(opts, &out, "PAUSER_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// PAUSERROLE is a free data retrieval call binding the contract method 0xe63ab1e9. +// +// Solidity: function PAUSER_ROLE() view returns(bytes32) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestSession) PAUSERROLE() ([32]byte, error) { + return _GatewayZEVMOutboundTest.Contract.PAUSERROLE(&_GatewayZEVMOutboundTest.CallOpts) +} + +// PAUSERROLE is a free data retrieval call binding the contract method 0xe63ab1e9. +// +// Solidity: function PAUSER_ROLE() view returns(bytes32) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestCallerSession) PAUSERROLE() ([32]byte, error) { + return _GatewayZEVMOutboundTest.Contract.PAUSERROLE(&_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) +} + +// TestDepositTogglePause is a paid mutator transaction binding the contract method 0x1c785a14. +// +// Solidity: function testDepositTogglePause() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactor) TestDepositTogglePause(opts *bind.TransactOpts) (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.contract.Transact(opts, "testDepositTogglePause") +} + +// TestDepositTogglePause is a paid mutator transaction binding the contract method 0x1c785a14. +// +// Solidity: function testDepositTogglePause() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestSession) TestDepositTogglePause() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestDepositTogglePause(&_GatewayZEVMOutboundTest.TransactOpts) +} + +// TestDepositTogglePause is a paid mutator transaction binding the contract method 0x1c785a14. +// +// Solidity: function testDepositTogglePause() returns() +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestTransactorSession) TestDepositTogglePause() (*types.Transaction, error) { + return _GatewayZEVMOutboundTest.Contract.TestDepositTogglePause(&_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 + ChainId *big.Int + Receiver []byte + Message []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterCall is a free log retrieval operation binding the contract event 0x5322ffbbf9261ff1f8138247942d2b03b28717141ef0a0dd080fc4be9c4e78d3. +// +// Solidity: event Call(address indexed sender, uint256 indexed chainId, bytes receiver, bytes message) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) FilterCall(opts *bind.FilterOpts, sender []common.Address, chainId []*big.Int) (*GatewayZEVMOutboundTestCallIterator, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var chainIdRule []interface{} + for _, chainIdItem := range chainId { + chainIdRule = append(chainIdRule, chainIdItem) + } + + logs, sub, err := _GatewayZEVMOutboundTest.contract.FilterLogs(opts, "Call", senderRule, chainIdRule) + 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 0x5322ffbbf9261ff1f8138247942d2b03b28717141ef0a0dd080fc4be9c4e78d3. +// +// Solidity: event Call(address indexed sender, uint256 indexed chainId, bytes receiver, bytes message) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) WatchCall(opts *bind.WatchOpts, sink chan<- *GatewayZEVMOutboundTestCall, sender []common.Address, chainId []*big.Int) (event.Subscription, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var chainIdRule []interface{} + for _, chainIdItem := range chainId { + chainIdRule = append(chainIdRule, chainIdItem) + } + + logs, sub, err := _GatewayZEVMOutboundTest.contract.WatchLogs(opts, "Call", senderRule, chainIdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-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 0x5322ffbbf9261ff1f8138247942d2b03b28717141ef0a0dd080fc4be9c4e78d3. +// +// Solidity: event Call(address indexed sender, uint256 indexed chainId, 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 { + Sender common.Address + ChainId *big.Int + Receiver []byte + Zrc20 common.Address + 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 0xde19dbe881cc0aeeb6e73ce19ac7b5ca695e6be8a076e3eb42292005a7fec1b5. +// +// Solidity: event Withdrawal(address indexed sender, uint256 indexed chainId, bytes receiver, address zrc20, uint256 value, uint256 gasfee, uint256 protocolFlatFee, bytes message) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) FilterWithdrawal(opts *bind.FilterOpts, sender []common.Address, chainId []*big.Int) (*GatewayZEVMOutboundTestWithdrawalIterator, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var chainIdRule []interface{} + for _, chainIdItem := range chainId { + chainIdRule = append(chainIdRule, chainIdItem) + } + + logs, sub, err := _GatewayZEVMOutboundTest.contract.FilterLogs(opts, "Withdrawal", senderRule, chainIdRule) + 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 0xde19dbe881cc0aeeb6e73ce19ac7b5ca695e6be8a076e3eb42292005a7fec1b5. +// +// Solidity: event Withdrawal(address indexed sender, uint256 indexed chainId, bytes receiver, address zrc20, uint256 value, uint256 gasfee, uint256 protocolFlatFee, bytes message) +func (_GatewayZEVMOutboundTest *GatewayZEVMOutboundTestFilterer) WatchWithdrawal(opts *bind.WatchOpts, sink chan<- *GatewayZEVMOutboundTestWithdrawal, sender []common.Address, chainId []*big.Int) (event.Subscription, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var chainIdRule []interface{} + for _, chainIdItem := range chainId { + chainIdRule = append(chainIdRule, chainIdItem) + } + + logs, sub, err := _GatewayZEVMOutboundTest.contract.WatchLogs(opts, "Withdrawal", senderRule, chainIdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-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 0xde19dbe881cc0aeeb6e73ce19ac7b5ca695e6be8a076e3eb42292005a7fec1b5. +// +// Solidity: event Withdrawal(address indexed sender, uint256 indexed chainId, bytes receiver, address zrc20, 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/iaccesscontrol.sol/iaccesscontrol.go b/v2/pkg/iaccesscontrol.sol/iaccesscontrol.go new file mode 100644 index 00000000..556bc52d --- /dev/null +++ b/v2/pkg/iaccesscontrol.sol/iaccesscontrol.go @@ -0,0 +1,792 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package iaccesscontrol + +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 +) + +// IAccessControlMetaData contains all meta data concerning the IAccessControl contract. +var IAccessControlMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"getRoleAdmin\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"grantRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"hasRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"callerConfirmation\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"revokeRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"RoleAdminChanged\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"previousAdminRole\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"newAdminRole\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RoleGranted\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RoleRevoked\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"AccessControlBadConfirmation\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"AccessControlUnauthorizedAccount\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"neededRole\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]}]", +} + +// IAccessControlABI is the input ABI used to generate the binding from. +// Deprecated: Use IAccessControlMetaData.ABI instead. +var IAccessControlABI = IAccessControlMetaData.ABI + +// IAccessControl is an auto generated Go binding around an Ethereum contract. +type IAccessControl struct { + IAccessControlCaller // Read-only binding to the contract + IAccessControlTransactor // Write-only binding to the contract + IAccessControlFilterer // Log filterer for contract events +} + +// IAccessControlCaller is an auto generated read-only Go binding around an Ethereum contract. +type IAccessControlCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IAccessControlTransactor is an auto generated write-only Go binding around an Ethereum contract. +type IAccessControlTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IAccessControlFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type IAccessControlFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IAccessControlSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type IAccessControlSession struct { + Contract *IAccessControl // 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 +} + +// IAccessControlCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type IAccessControlCallerSession struct { + Contract *IAccessControlCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// IAccessControlTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type IAccessControlTransactorSession struct { + Contract *IAccessControlTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IAccessControlRaw is an auto generated low-level Go binding around an Ethereum contract. +type IAccessControlRaw struct { + Contract *IAccessControl // Generic contract binding to access the raw methods on +} + +// IAccessControlCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type IAccessControlCallerRaw struct { + Contract *IAccessControlCaller // Generic read-only contract binding to access the raw methods on +} + +// IAccessControlTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type IAccessControlTransactorRaw struct { + Contract *IAccessControlTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewIAccessControl creates a new instance of IAccessControl, bound to a specific deployed contract. +func NewIAccessControl(address common.Address, backend bind.ContractBackend) (*IAccessControl, error) { + contract, err := bindIAccessControl(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &IAccessControl{IAccessControlCaller: IAccessControlCaller{contract: contract}, IAccessControlTransactor: IAccessControlTransactor{contract: contract}, IAccessControlFilterer: IAccessControlFilterer{contract: contract}}, nil +} + +// NewIAccessControlCaller creates a new read-only instance of IAccessControl, bound to a specific deployed contract. +func NewIAccessControlCaller(address common.Address, caller bind.ContractCaller) (*IAccessControlCaller, error) { + contract, err := bindIAccessControl(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &IAccessControlCaller{contract: contract}, nil +} + +// NewIAccessControlTransactor creates a new write-only instance of IAccessControl, bound to a specific deployed contract. +func NewIAccessControlTransactor(address common.Address, transactor bind.ContractTransactor) (*IAccessControlTransactor, error) { + contract, err := bindIAccessControl(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &IAccessControlTransactor{contract: contract}, nil +} + +// NewIAccessControlFilterer creates a new log filterer instance of IAccessControl, bound to a specific deployed contract. +func NewIAccessControlFilterer(address common.Address, filterer bind.ContractFilterer) (*IAccessControlFilterer, error) { + contract, err := bindIAccessControl(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &IAccessControlFilterer{contract: contract}, nil +} + +// bindIAccessControl binds a generic wrapper to an already deployed contract. +func bindIAccessControl(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := IAccessControlMetaData.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 (_IAccessControl *IAccessControlRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IAccessControl.Contract.IAccessControlCaller.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 (_IAccessControl *IAccessControlRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IAccessControl.Contract.IAccessControlTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IAccessControl *IAccessControlRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IAccessControl.Contract.IAccessControlTransactor.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 (_IAccessControl *IAccessControlCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IAccessControl.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 (_IAccessControl *IAccessControlTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IAccessControl.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IAccessControl *IAccessControlTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IAccessControl.Contract.contract.Transact(opts, method, params...) +} + +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. +// +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_IAccessControl *IAccessControlCaller) GetRoleAdmin(opts *bind.CallOpts, role [32]byte) ([32]byte, error) { + var out []interface{} + err := _IAccessControl.contract.Call(opts, &out, "getRoleAdmin", role) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. +// +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_IAccessControl *IAccessControlSession) GetRoleAdmin(role [32]byte) ([32]byte, error) { + return _IAccessControl.Contract.GetRoleAdmin(&_IAccessControl.CallOpts, role) +} + +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. +// +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_IAccessControl *IAccessControlCallerSession) GetRoleAdmin(role [32]byte) ([32]byte, error) { + return _IAccessControl.Contract.GetRoleAdmin(&_IAccessControl.CallOpts, role) +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_IAccessControl *IAccessControlCaller) HasRole(opts *bind.CallOpts, role [32]byte, account common.Address) (bool, error) { + var out []interface{} + err := _IAccessControl.contract.Call(opts, &out, "hasRole", role, account) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_IAccessControl *IAccessControlSession) HasRole(role [32]byte, account common.Address) (bool, error) { + return _IAccessControl.Contract.HasRole(&_IAccessControl.CallOpts, role, account) +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_IAccessControl *IAccessControlCallerSession) HasRole(role [32]byte, account common.Address) (bool, error) { + return _IAccessControl.Contract.HasRole(&_IAccessControl.CallOpts, role, account) +} + +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_IAccessControl *IAccessControlTransactor) GrantRole(opts *bind.TransactOpts, role [32]byte, account common.Address) (*types.Transaction, error) { + return _IAccessControl.contract.Transact(opts, "grantRole", role, account) +} + +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_IAccessControl *IAccessControlSession) GrantRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _IAccessControl.Contract.GrantRole(&_IAccessControl.TransactOpts, role, account) +} + +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_IAccessControl *IAccessControlTransactorSession) GrantRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _IAccessControl.Contract.GrantRole(&_IAccessControl.TransactOpts, role, account) +} + +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. +// +// Solidity: function renounceRole(bytes32 role, address callerConfirmation) returns() +func (_IAccessControl *IAccessControlTransactor) RenounceRole(opts *bind.TransactOpts, role [32]byte, callerConfirmation common.Address) (*types.Transaction, error) { + return _IAccessControl.contract.Transact(opts, "renounceRole", role, callerConfirmation) +} + +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. +// +// Solidity: function renounceRole(bytes32 role, address callerConfirmation) returns() +func (_IAccessControl *IAccessControlSession) RenounceRole(role [32]byte, callerConfirmation common.Address) (*types.Transaction, error) { + return _IAccessControl.Contract.RenounceRole(&_IAccessControl.TransactOpts, role, callerConfirmation) +} + +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. +// +// Solidity: function renounceRole(bytes32 role, address callerConfirmation) returns() +func (_IAccessControl *IAccessControlTransactorSession) RenounceRole(role [32]byte, callerConfirmation common.Address) (*types.Transaction, error) { + return _IAccessControl.Contract.RenounceRole(&_IAccessControl.TransactOpts, role, callerConfirmation) +} + +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_IAccessControl *IAccessControlTransactor) RevokeRole(opts *bind.TransactOpts, role [32]byte, account common.Address) (*types.Transaction, error) { + return _IAccessControl.contract.Transact(opts, "revokeRole", role, account) +} + +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_IAccessControl *IAccessControlSession) RevokeRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _IAccessControl.Contract.RevokeRole(&_IAccessControl.TransactOpts, role, account) +} + +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_IAccessControl *IAccessControlTransactorSession) RevokeRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _IAccessControl.Contract.RevokeRole(&_IAccessControl.TransactOpts, role, account) +} + +// IAccessControlRoleAdminChangedIterator is returned from FilterRoleAdminChanged and is used to iterate over the raw logs and unpacked data for RoleAdminChanged events raised by the IAccessControl contract. +type IAccessControlRoleAdminChangedIterator struct { + Event *IAccessControlRoleAdminChanged // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IAccessControlRoleAdminChangedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IAccessControlRoleAdminChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IAccessControlRoleAdminChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IAccessControlRoleAdminChangedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IAccessControlRoleAdminChangedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IAccessControlRoleAdminChanged represents a RoleAdminChanged event raised by the IAccessControl contract. +type IAccessControlRoleAdminChanged struct { + Role [32]byte + PreviousAdminRole [32]byte + NewAdminRole [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRoleAdminChanged is a free log retrieval operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. +// +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_IAccessControl *IAccessControlFilterer) FilterRoleAdminChanged(opts *bind.FilterOpts, role [][32]byte, previousAdminRole [][32]byte, newAdminRole [][32]byte) (*IAccessControlRoleAdminChangedIterator, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var previousAdminRoleRule []interface{} + for _, previousAdminRoleItem := range previousAdminRole { + previousAdminRoleRule = append(previousAdminRoleRule, previousAdminRoleItem) + } + var newAdminRoleRule []interface{} + for _, newAdminRoleItem := range newAdminRole { + newAdminRoleRule = append(newAdminRoleRule, newAdminRoleItem) + } + + logs, sub, err := _IAccessControl.contract.FilterLogs(opts, "RoleAdminChanged", roleRule, previousAdminRoleRule, newAdminRoleRule) + if err != nil { + return nil, err + } + return &IAccessControlRoleAdminChangedIterator{contract: _IAccessControl.contract, event: "RoleAdminChanged", logs: logs, sub: sub}, nil +} + +// WatchRoleAdminChanged is a free log subscription operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. +// +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_IAccessControl *IAccessControlFilterer) WatchRoleAdminChanged(opts *bind.WatchOpts, sink chan<- *IAccessControlRoleAdminChanged, role [][32]byte, previousAdminRole [][32]byte, newAdminRole [][32]byte) (event.Subscription, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var previousAdminRoleRule []interface{} + for _, previousAdminRoleItem := range previousAdminRole { + previousAdminRoleRule = append(previousAdminRoleRule, previousAdminRoleItem) + } + var newAdminRoleRule []interface{} + for _, newAdminRoleItem := range newAdminRole { + newAdminRoleRule = append(newAdminRoleRule, newAdminRoleItem) + } + + logs, sub, err := _IAccessControl.contract.WatchLogs(opts, "RoleAdminChanged", roleRule, previousAdminRoleRule, newAdminRoleRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(IAccessControlRoleAdminChanged) + if err := _IAccessControl.contract.UnpackLog(event, "RoleAdminChanged", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRoleAdminChanged is a log parse operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. +// +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_IAccessControl *IAccessControlFilterer) ParseRoleAdminChanged(log types.Log) (*IAccessControlRoleAdminChanged, error) { + event := new(IAccessControlRoleAdminChanged) + if err := _IAccessControl.contract.UnpackLog(event, "RoleAdminChanged", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IAccessControlRoleGrantedIterator is returned from FilterRoleGranted and is used to iterate over the raw logs and unpacked data for RoleGranted events raised by the IAccessControl contract. +type IAccessControlRoleGrantedIterator struct { + Event *IAccessControlRoleGranted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IAccessControlRoleGrantedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IAccessControlRoleGranted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IAccessControlRoleGranted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IAccessControlRoleGrantedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IAccessControlRoleGrantedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IAccessControlRoleGranted represents a RoleGranted event raised by the IAccessControl contract. +type IAccessControlRoleGranted struct { + Role [32]byte + Account common.Address + Sender common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRoleGranted is a free log retrieval operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. +// +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_IAccessControl *IAccessControlFilterer) FilterRoleGranted(opts *bind.FilterOpts, role [][32]byte, account []common.Address, sender []common.Address) (*IAccessControlRoleGrantedIterator, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _IAccessControl.contract.FilterLogs(opts, "RoleGranted", roleRule, accountRule, senderRule) + if err != nil { + return nil, err + } + return &IAccessControlRoleGrantedIterator{contract: _IAccessControl.contract, event: "RoleGranted", logs: logs, sub: sub}, nil +} + +// WatchRoleGranted is a free log subscription operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. +// +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_IAccessControl *IAccessControlFilterer) WatchRoleGranted(opts *bind.WatchOpts, sink chan<- *IAccessControlRoleGranted, role [][32]byte, account []common.Address, sender []common.Address) (event.Subscription, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _IAccessControl.contract.WatchLogs(opts, "RoleGranted", roleRule, accountRule, 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(IAccessControlRoleGranted) + if err := _IAccessControl.contract.UnpackLog(event, "RoleGranted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRoleGranted is a log parse operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. +// +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_IAccessControl *IAccessControlFilterer) ParseRoleGranted(log types.Log) (*IAccessControlRoleGranted, error) { + event := new(IAccessControlRoleGranted) + if err := _IAccessControl.contract.UnpackLog(event, "RoleGranted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IAccessControlRoleRevokedIterator is returned from FilterRoleRevoked and is used to iterate over the raw logs and unpacked data for RoleRevoked events raised by the IAccessControl contract. +type IAccessControlRoleRevokedIterator struct { + Event *IAccessControlRoleRevoked // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IAccessControlRoleRevokedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IAccessControlRoleRevoked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IAccessControlRoleRevoked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IAccessControlRoleRevokedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IAccessControlRoleRevokedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IAccessControlRoleRevoked represents a RoleRevoked event raised by the IAccessControl contract. +type IAccessControlRoleRevoked struct { + Role [32]byte + Account common.Address + Sender common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRoleRevoked is a free log retrieval operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. +// +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_IAccessControl *IAccessControlFilterer) FilterRoleRevoked(opts *bind.FilterOpts, role [][32]byte, account []common.Address, sender []common.Address) (*IAccessControlRoleRevokedIterator, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _IAccessControl.contract.FilterLogs(opts, "RoleRevoked", roleRule, accountRule, senderRule) + if err != nil { + return nil, err + } + return &IAccessControlRoleRevokedIterator{contract: _IAccessControl.contract, event: "RoleRevoked", logs: logs, sub: sub}, nil +} + +// WatchRoleRevoked is a free log subscription operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. +// +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_IAccessControl *IAccessControlFilterer) WatchRoleRevoked(opts *bind.WatchOpts, sink chan<- *IAccessControlRoleRevoked, role [][32]byte, account []common.Address, sender []common.Address) (event.Subscription, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _IAccessControl.contract.WatchLogs(opts, "RoleRevoked", roleRule, accountRule, 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(IAccessControlRoleRevoked) + if err := _IAccessControl.contract.UnpackLog(event, "RoleRevoked", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRoleRevoked is a log parse operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. +// +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_IAccessControl *IAccessControlFilterer) ParseRoleRevoked(log types.Log) (*IAccessControlRoleRevoked, error) { + event := new(IAccessControlRoleRevoked) + if err := _IAccessControl.contract.UnpackLog(event, "RoleRevoked", 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/ierc20custody.sol/ierc20custodyerrors.go b/v2/pkg/ierc20custody.sol/ierc20custodyerrors.go new file mode 100644 index 00000000..5ff40f4f --- /dev/null +++ b/v2/pkg/ierc20custody.sol/ierc20custodyerrors.go @@ -0,0 +1,181 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package ierc20custody + +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 +) + +// IERC20CustodyErrorsMetaData contains all meta data concerning the IERC20CustodyErrors contract. +var IERC20CustodyErrorsMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"error\",\"name\":\"ZeroAddress\",\"inputs\":[]}]", +} + +// IERC20CustodyErrorsABI is the input ABI used to generate the binding from. +// Deprecated: Use IERC20CustodyErrorsMetaData.ABI instead. +var IERC20CustodyErrorsABI = IERC20CustodyErrorsMetaData.ABI + +// IERC20CustodyErrors is an auto generated Go binding around an Ethereum contract. +type IERC20CustodyErrors struct { + IERC20CustodyErrorsCaller // Read-only binding to the contract + IERC20CustodyErrorsTransactor // Write-only binding to the contract + IERC20CustodyErrorsFilterer // Log filterer for contract events +} + +// IERC20CustodyErrorsCaller is an auto generated read-only Go binding around an Ethereum contract. +type IERC20CustodyErrorsCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC20CustodyErrorsTransactor is an auto generated write-only Go binding around an Ethereum contract. +type IERC20CustodyErrorsTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC20CustodyErrorsFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type IERC20CustodyErrorsFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC20CustodyErrorsSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type IERC20CustodyErrorsSession struct { + Contract *IERC20CustodyErrors // 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 +} + +// IERC20CustodyErrorsCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type IERC20CustodyErrorsCallerSession struct { + Contract *IERC20CustodyErrorsCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// IERC20CustodyErrorsTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type IERC20CustodyErrorsTransactorSession struct { + Contract *IERC20CustodyErrorsTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IERC20CustodyErrorsRaw is an auto generated low-level Go binding around an Ethereum contract. +type IERC20CustodyErrorsRaw struct { + Contract *IERC20CustodyErrors // Generic contract binding to access the raw methods on +} + +// IERC20CustodyErrorsCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type IERC20CustodyErrorsCallerRaw struct { + Contract *IERC20CustodyErrorsCaller // Generic read-only contract binding to access the raw methods on +} + +// IERC20CustodyErrorsTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type IERC20CustodyErrorsTransactorRaw struct { + Contract *IERC20CustodyErrorsTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewIERC20CustodyErrors creates a new instance of IERC20CustodyErrors, bound to a specific deployed contract. +func NewIERC20CustodyErrors(address common.Address, backend bind.ContractBackend) (*IERC20CustodyErrors, error) { + contract, err := bindIERC20CustodyErrors(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &IERC20CustodyErrors{IERC20CustodyErrorsCaller: IERC20CustodyErrorsCaller{contract: contract}, IERC20CustodyErrorsTransactor: IERC20CustodyErrorsTransactor{contract: contract}, IERC20CustodyErrorsFilterer: IERC20CustodyErrorsFilterer{contract: contract}}, nil +} + +// NewIERC20CustodyErrorsCaller creates a new read-only instance of IERC20CustodyErrors, bound to a specific deployed contract. +func NewIERC20CustodyErrorsCaller(address common.Address, caller bind.ContractCaller) (*IERC20CustodyErrorsCaller, error) { + contract, err := bindIERC20CustodyErrors(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &IERC20CustodyErrorsCaller{contract: contract}, nil +} + +// NewIERC20CustodyErrorsTransactor creates a new write-only instance of IERC20CustodyErrors, bound to a specific deployed contract. +func NewIERC20CustodyErrorsTransactor(address common.Address, transactor bind.ContractTransactor) (*IERC20CustodyErrorsTransactor, error) { + contract, err := bindIERC20CustodyErrors(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &IERC20CustodyErrorsTransactor{contract: contract}, nil +} + +// NewIERC20CustodyErrorsFilterer creates a new log filterer instance of IERC20CustodyErrors, bound to a specific deployed contract. +func NewIERC20CustodyErrorsFilterer(address common.Address, filterer bind.ContractFilterer) (*IERC20CustodyErrorsFilterer, error) { + contract, err := bindIERC20CustodyErrors(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &IERC20CustodyErrorsFilterer{contract: contract}, nil +} + +// bindIERC20CustodyErrors binds a generic wrapper to an already deployed contract. +func bindIERC20CustodyErrors(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := IERC20CustodyErrorsMetaData.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 (_IERC20CustodyErrors *IERC20CustodyErrorsRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IERC20CustodyErrors.Contract.IERC20CustodyErrorsCaller.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 (_IERC20CustodyErrors *IERC20CustodyErrorsRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IERC20CustodyErrors.Contract.IERC20CustodyErrorsTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IERC20CustodyErrors *IERC20CustodyErrorsRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IERC20CustodyErrors.Contract.IERC20CustodyErrorsTransactor.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 (_IERC20CustodyErrors *IERC20CustodyErrorsCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IERC20CustodyErrors.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 (_IERC20CustodyErrors *IERC20CustodyErrorsTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IERC20CustodyErrors.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IERC20CustodyErrors *IERC20CustodyErrorsTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IERC20CustodyErrors.Contract.contract.Transact(opts, method, params...) +} diff --git a/v2/pkg/ierc20custody.sol/ierc20custodyevents.go b/v2/pkg/ierc20custody.sol/ierc20custodyevents.go new file mode 100644 index 00000000..5777242e --- /dev/null +++ b/v2/pkg/ierc20custody.sol/ierc20custodyevents.go @@ -0,0 +1,645 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package ierc20custody + +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 +) + +// IERC20CustodyEventsMetaData contains all meta data concerning the IERC20CustodyEvents contract. +var IERC20CustodyEventsMetaData = &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}]", +} + +// IERC20CustodyEventsABI is the input ABI used to generate the binding from. +// Deprecated: Use IERC20CustodyEventsMetaData.ABI instead. +var IERC20CustodyEventsABI = IERC20CustodyEventsMetaData.ABI + +// IERC20CustodyEvents is an auto generated Go binding around an Ethereum contract. +type IERC20CustodyEvents struct { + IERC20CustodyEventsCaller // Read-only binding to the contract + IERC20CustodyEventsTransactor // Write-only binding to the contract + IERC20CustodyEventsFilterer // Log filterer for contract events +} + +// IERC20CustodyEventsCaller is an auto generated read-only Go binding around an Ethereum contract. +type IERC20CustodyEventsCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC20CustodyEventsTransactor is an auto generated write-only Go binding around an Ethereum contract. +type IERC20CustodyEventsTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC20CustodyEventsFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type IERC20CustodyEventsFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// IERC20CustodyEventsSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type IERC20CustodyEventsSession struct { + Contract *IERC20CustodyEvents // 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 +} + +// IERC20CustodyEventsCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type IERC20CustodyEventsCallerSession struct { + Contract *IERC20CustodyEventsCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// IERC20CustodyEventsTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type IERC20CustodyEventsTransactorSession struct { + Contract *IERC20CustodyEventsTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// IERC20CustodyEventsRaw is an auto generated low-level Go binding around an Ethereum contract. +type IERC20CustodyEventsRaw struct { + Contract *IERC20CustodyEvents // Generic contract binding to access the raw methods on +} + +// IERC20CustodyEventsCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type IERC20CustodyEventsCallerRaw struct { + Contract *IERC20CustodyEventsCaller // Generic read-only contract binding to access the raw methods on +} + +// IERC20CustodyEventsTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type IERC20CustodyEventsTransactorRaw struct { + Contract *IERC20CustodyEventsTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewIERC20CustodyEvents creates a new instance of IERC20CustodyEvents, bound to a specific deployed contract. +func NewIERC20CustodyEvents(address common.Address, backend bind.ContractBackend) (*IERC20CustodyEvents, error) { + contract, err := bindIERC20CustodyEvents(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &IERC20CustodyEvents{IERC20CustodyEventsCaller: IERC20CustodyEventsCaller{contract: contract}, IERC20CustodyEventsTransactor: IERC20CustodyEventsTransactor{contract: contract}, IERC20CustodyEventsFilterer: IERC20CustodyEventsFilterer{contract: contract}}, nil +} + +// NewIERC20CustodyEventsCaller creates a new read-only instance of IERC20CustodyEvents, bound to a specific deployed contract. +func NewIERC20CustodyEventsCaller(address common.Address, caller bind.ContractCaller) (*IERC20CustodyEventsCaller, error) { + contract, err := bindIERC20CustodyEvents(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &IERC20CustodyEventsCaller{contract: contract}, nil +} + +// NewIERC20CustodyEventsTransactor creates a new write-only instance of IERC20CustodyEvents, bound to a specific deployed contract. +func NewIERC20CustodyEventsTransactor(address common.Address, transactor bind.ContractTransactor) (*IERC20CustodyEventsTransactor, error) { + contract, err := bindIERC20CustodyEvents(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &IERC20CustodyEventsTransactor{contract: contract}, nil +} + +// NewIERC20CustodyEventsFilterer creates a new log filterer instance of IERC20CustodyEvents, bound to a specific deployed contract. +func NewIERC20CustodyEventsFilterer(address common.Address, filterer bind.ContractFilterer) (*IERC20CustodyEventsFilterer, error) { + contract, err := bindIERC20CustodyEvents(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &IERC20CustodyEventsFilterer{contract: contract}, nil +} + +// bindIERC20CustodyEvents binds a generic wrapper to an already deployed contract. +func bindIERC20CustodyEvents(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := IERC20CustodyEventsMetaData.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 (_IERC20CustodyEvents *IERC20CustodyEventsRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IERC20CustodyEvents.Contract.IERC20CustodyEventsCaller.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 (_IERC20CustodyEvents *IERC20CustodyEventsRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IERC20CustodyEvents.Contract.IERC20CustodyEventsTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IERC20CustodyEvents *IERC20CustodyEventsRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IERC20CustodyEvents.Contract.IERC20CustodyEventsTransactor.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 (_IERC20CustodyEvents *IERC20CustodyEventsCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _IERC20CustodyEvents.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 (_IERC20CustodyEvents *IERC20CustodyEventsTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _IERC20CustodyEvents.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_IERC20CustodyEvents *IERC20CustodyEventsTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _IERC20CustodyEvents.Contract.contract.Transact(opts, method, params...) +} + +// IERC20CustodyEventsWithdrawIterator is returned from FilterWithdraw and is used to iterate over the raw logs and unpacked data for Withdraw events raised by the IERC20CustodyEvents contract. +type IERC20CustodyEventsWithdrawIterator struct { + Event *IERC20CustodyEventsWithdraw // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IERC20CustodyEventsWithdrawIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IERC20CustodyEventsWithdraw) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IERC20CustodyEventsWithdraw) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IERC20CustodyEventsWithdrawIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IERC20CustodyEventsWithdrawIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IERC20CustodyEventsWithdraw represents a Withdraw event raised by the IERC20CustodyEvents contract. +type IERC20CustodyEventsWithdraw 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 (_IERC20CustodyEvents *IERC20CustodyEventsFilterer) FilterWithdraw(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*IERC20CustodyEventsWithdrawIterator, 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 := _IERC20CustodyEvents.contract.FilterLogs(opts, "Withdraw", tokenRule, toRule) + if err != nil { + return nil, err + } + return &IERC20CustodyEventsWithdrawIterator{contract: _IERC20CustodyEvents.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 (_IERC20CustodyEvents *IERC20CustodyEventsFilterer) WatchWithdraw(opts *bind.WatchOpts, sink chan<- *IERC20CustodyEventsWithdraw, 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 := _IERC20CustodyEvents.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(IERC20CustodyEventsWithdraw) + if err := _IERC20CustodyEvents.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 (_IERC20CustodyEvents *IERC20CustodyEventsFilterer) ParseWithdraw(log types.Log) (*IERC20CustodyEventsWithdraw, error) { + event := new(IERC20CustodyEventsWithdraw) + if err := _IERC20CustodyEvents.contract.UnpackLog(event, "Withdraw", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IERC20CustodyEventsWithdrawAndCallIterator is returned from FilterWithdrawAndCall and is used to iterate over the raw logs and unpacked data for WithdrawAndCall events raised by the IERC20CustodyEvents contract. +type IERC20CustodyEventsWithdrawAndCallIterator struct { + Event *IERC20CustodyEventsWithdrawAndCall // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IERC20CustodyEventsWithdrawAndCallIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IERC20CustodyEventsWithdrawAndCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IERC20CustodyEventsWithdrawAndCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IERC20CustodyEventsWithdrawAndCallIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IERC20CustodyEventsWithdrawAndCallIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IERC20CustodyEventsWithdrawAndCall represents a WithdrawAndCall event raised by the IERC20CustodyEvents contract. +type IERC20CustodyEventsWithdrawAndCall 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 (_IERC20CustodyEvents *IERC20CustodyEventsFilterer) FilterWithdrawAndCall(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*IERC20CustodyEventsWithdrawAndCallIterator, 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 := _IERC20CustodyEvents.contract.FilterLogs(opts, "WithdrawAndCall", tokenRule, toRule) + if err != nil { + return nil, err + } + return &IERC20CustodyEventsWithdrawAndCallIterator{contract: _IERC20CustodyEvents.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 (_IERC20CustodyEvents *IERC20CustodyEventsFilterer) WatchWithdrawAndCall(opts *bind.WatchOpts, sink chan<- *IERC20CustodyEventsWithdrawAndCall, 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 := _IERC20CustodyEvents.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(IERC20CustodyEventsWithdrawAndCall) + if err := _IERC20CustodyEvents.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 (_IERC20CustodyEvents *IERC20CustodyEventsFilterer) ParseWithdrawAndCall(log types.Log) (*IERC20CustodyEventsWithdrawAndCall, error) { + event := new(IERC20CustodyEventsWithdrawAndCall) + if err := _IERC20CustodyEvents.contract.UnpackLog(event, "WithdrawAndCall", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// IERC20CustodyEventsWithdrawAndRevertIterator is returned from FilterWithdrawAndRevert and is used to iterate over the raw logs and unpacked data for WithdrawAndRevert events raised by the IERC20CustodyEvents contract. +type IERC20CustodyEventsWithdrawAndRevertIterator struct { + Event *IERC20CustodyEventsWithdrawAndRevert // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *IERC20CustodyEventsWithdrawAndRevertIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(IERC20CustodyEventsWithdrawAndRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(IERC20CustodyEventsWithdrawAndRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *IERC20CustodyEventsWithdrawAndRevertIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *IERC20CustodyEventsWithdrawAndRevertIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// IERC20CustodyEventsWithdrawAndRevert represents a WithdrawAndRevert event raised by the IERC20CustodyEvents contract. +type IERC20CustodyEventsWithdrawAndRevert 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 (_IERC20CustodyEvents *IERC20CustodyEventsFilterer) FilterWithdrawAndRevert(opts *bind.FilterOpts, token []common.Address, to []common.Address) (*IERC20CustodyEventsWithdrawAndRevertIterator, 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 := _IERC20CustodyEvents.contract.FilterLogs(opts, "WithdrawAndRevert", tokenRule, toRule) + if err != nil { + return nil, err + } + return &IERC20CustodyEventsWithdrawAndRevertIterator{contract: _IERC20CustodyEvents.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 (_IERC20CustodyEvents *IERC20CustodyEventsFilterer) WatchWithdrawAndRevert(opts *bind.WatchOpts, sink chan<- *IERC20CustodyEventsWithdrawAndRevert, 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 := _IERC20CustodyEvents.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(IERC20CustodyEventsWithdrawAndRevert) + if err := _IERC20CustodyEvents.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 (_IERC20CustodyEvents *IERC20CustodyEventsFilterer) ParseWithdrawAndRevert(log types.Log) (*IERC20CustodyEventsWithdrawAndRevert, error) { + event := new(IERC20CustodyEventsWithdrawAndRevert) + if err := _IERC20CustodyEvents.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/pkg/contracts/prototypes/evm/igatewayevm.sol/igatewayevm.go b/v2/pkg/igatewayevm.sol/igatewayevm.go similarity index 91% rename from pkg/contracts/prototypes/evm/igatewayevm.sol/igatewayevm.go rename to v2/pkg/igatewayevm.sol/igatewayevm.go index a2e7ecdf..84aee76f 100644 --- a/pkg/contracts/prototypes/evm/igatewayevm.sol/igatewayevm.go +++ b/v2/pkg/igatewayevm.sol/igatewayevm.go @@ -31,7 +31,7 @@ var ( // IGatewayEVMMetaData contains all meta data concerning the IGatewayEVM contract. var IGatewayEVMMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"executeWithERC20\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"revertWithERC20\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + 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. diff --git a/pkg/contracts/prototypes/evm/igatewayevm.sol/igatewayevmerrors.go b/v2/pkg/igatewayevm.sol/igatewayevmerrors.go similarity index 94% rename from pkg/contracts/prototypes/evm/igatewayevm.sol/igatewayevmerrors.go rename to v2/pkg/igatewayevm.sol/igatewayevmerrors.go index 5b894d97..0b2dca75 100644 --- a/pkg/contracts/prototypes/evm/igatewayevm.sol/igatewayevmerrors.go +++ b/v2/pkg/igatewayevm.sol/igatewayevmerrors.go @@ -31,7 +31,7 @@ var ( // IGatewayEVMErrorsMetaData contains all meta data concerning the IGatewayEVMErrors contract. var IGatewayEVMErrorsMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"name\":\"ApprovalFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CustodyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DepositFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExecutionFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientERC20Amount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientETHAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"}]", + 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\":\"ZeroAddress\",\"inputs\":[]}]", } // IGatewayEVMErrorsABI is the input ABI used to generate the binding from. diff --git a/pkg/contracts/prototypes/evm/igatewayevm.sol/igatewayevmevents.go b/v2/pkg/igatewayevm.sol/igatewayevmevents.go similarity index 94% rename from pkg/contracts/prototypes/evm/igatewayevm.sol/igatewayevmevents.go rename to v2/pkg/igatewayevm.sol/igatewayevmevents.go index b3f8a96a..18d13c75 100644 --- a/pkg/contracts/prototypes/evm/igatewayevm.sol/igatewayevmevents.go +++ b/v2/pkg/igatewayevm.sol/igatewayevmevents.go @@ -31,7 +31,7 @@ var ( // IGatewayEVMEventsMetaData contains all meta data concerning the IGatewayEVMEvents contract. var IGatewayEVMEventsMetaData = &bind.MetaData{ - ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"Call\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Executed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ExecutedWithERC20\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Reverted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"RevertedWithERC20\",\"type\":\"event\"}]", + 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. diff --git a/pkg/contracts/prototypes/evm/igatewayevm.sol/revertable.go b/v2/pkg/igatewayevm.sol/revertable.go similarity index 97% rename from pkg/contracts/prototypes/evm/igatewayevm.sol/revertable.go rename to v2/pkg/igatewayevm.sol/revertable.go index 9219e11b..5d6caf30 100644 --- a/pkg/contracts/prototypes/evm/igatewayevm.sol/revertable.go +++ b/v2/pkg/igatewayevm.sol/revertable.go @@ -31,7 +31,7 @@ var ( // RevertableMetaData contains all meta data concerning the Revertable contract. var RevertableMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + 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. diff --git a/pkg/contracts/prototypes/zevm/igatewayzevm.sol/igatewayzevm.go b/v2/pkg/igatewayzevm.sol/igatewayzevm.go similarity index 71% rename from pkg/contracts/prototypes/zevm/igatewayzevm.sol/igatewayzevm.go rename to v2/pkg/igatewayzevm.sol/igatewayzevm.go index 746cf4d9..c49c8d3c 100644 --- a/pkg/contracts/prototypes/zevm/igatewayzevm.sol/igatewayzevm.go +++ b/v2/pkg/igatewayzevm.sol/igatewayzevm.go @@ -38,7 +38,7 @@ type ZContext struct { // IGatewayZEVMMetaData contains all meta data concerning the IGatewayZEVM contract. var IGatewayZEVMMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"receiver\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"call\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"zrc20\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"origin\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainID\",\"type\":\"uint256\"}],\"internalType\":\"structzContext\",\"name\":\"context\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"zrc20\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"depositAndCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"origin\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainID\",\"type\":\"uint256\"}],\"internalType\":\"structzContext\",\"name\":\"context\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"zrc20\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"receiver\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"zrc20\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"receiver\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"zrc20\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"withdrawAndCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + ABI: "[{\"type\":\"function\",\"name\":\"call\",\"inputs\":[{\"name\":\"receiver\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"chainId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"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\":\"withdraw\",\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"chainId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"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\":\"withdrawAndCall\",\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"chainId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"message\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"}]", } // IGatewayZEVMABI is the input ABI used to generate the binding from. @@ -187,25 +187,25 @@ func (_IGatewayZEVM *IGatewayZEVMTransactorRaw) Transact(opts *bind.TransactOpts return _IGatewayZEVM.Contract.contract.Transact(opts, method, params...) } -// Call is a paid mutator transaction binding the contract method 0x0ac7c44c. +// Call is a paid mutator transaction binding the contract method 0x5d40e178. // -// 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) +// Solidity: function call(bytes receiver, uint256 chainId, bytes message) returns() +func (_IGatewayZEVM *IGatewayZEVMTransactor) Call(opts *bind.TransactOpts, receiver []byte, chainId *big.Int, message []byte) (*types.Transaction, error) { + return _IGatewayZEVM.contract.Transact(opts, "call", receiver, chainId, message) } -// Call is a paid mutator transaction binding the contract method 0x0ac7c44c. +// Call is a paid mutator transaction binding the contract method 0x5d40e178. // -// 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) +// Solidity: function call(bytes receiver, uint256 chainId, bytes message) returns() +func (_IGatewayZEVM *IGatewayZEVMSession) Call(receiver []byte, chainId *big.Int, message []byte) (*types.Transaction, error) { + return _IGatewayZEVM.Contract.Call(&_IGatewayZEVM.TransactOpts, receiver, chainId, message) } -// Call is a paid mutator transaction binding the contract method 0x0ac7c44c. +// Call is a paid mutator transaction binding the contract method 0x5d40e178. // -// 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) +// Solidity: function call(bytes receiver, uint256 chainId, bytes message) returns() +func (_IGatewayZEVM *IGatewayZEVMTransactorSession) Call(receiver []byte, chainId *big.Int, message []byte) (*types.Transaction, error) { + return _IGatewayZEVM.Contract.Call(&_IGatewayZEVM.TransactOpts, receiver, chainId, message) } // Deposit is a paid mutator transaction binding the contract method 0xf45346dc. @@ -292,6 +292,27 @@ func (_IGatewayZEVM *IGatewayZEVMTransactorSession) Withdraw(receiver []byte, am return _IGatewayZEVM.Contract.Withdraw(&_IGatewayZEVM.TransactOpts, receiver, amount, zrc20) } +// Withdraw0 is a paid mutator transaction binding the contract method 0x441a3e70. +// +// Solidity: function withdraw(uint256 amount, uint256 chainId) returns() +func (_IGatewayZEVM *IGatewayZEVMTransactor) Withdraw0(opts *bind.TransactOpts, amount *big.Int, chainId *big.Int) (*types.Transaction, error) { + return _IGatewayZEVM.contract.Transact(opts, "withdraw0", amount, chainId) +} + +// Withdraw0 is a paid mutator transaction binding the contract method 0x441a3e70. +// +// Solidity: function withdraw(uint256 amount, uint256 chainId) returns() +func (_IGatewayZEVM *IGatewayZEVMSession) Withdraw0(amount *big.Int, chainId *big.Int) (*types.Transaction, error) { + return _IGatewayZEVM.Contract.Withdraw0(&_IGatewayZEVM.TransactOpts, amount, chainId) +} + +// Withdraw0 is a paid mutator transaction binding the contract method 0x441a3e70. +// +// Solidity: function withdraw(uint256 amount, uint256 chainId) returns() +func (_IGatewayZEVM *IGatewayZEVMTransactorSession) Withdraw0(amount *big.Int, chainId *big.Int) (*types.Transaction, error) { + return _IGatewayZEVM.Contract.Withdraw0(&_IGatewayZEVM.TransactOpts, amount, chainId) +} + // WithdrawAndCall is a paid mutator transaction binding the contract method 0x7993c1e0. // // Solidity: function withdrawAndCall(bytes receiver, uint256 amount, address zrc20, bytes message) returns() @@ -312,3 +333,24 @@ func (_IGatewayZEVM *IGatewayZEVMSession) WithdrawAndCall(receiver []byte, amoun 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) } + +// WithdrawAndCall0 is a paid mutator transaction binding the contract method 0x80bd3d03. +// +// Solidity: function withdrawAndCall(uint256 amount, uint256 chainId, bytes message) returns() +func (_IGatewayZEVM *IGatewayZEVMTransactor) WithdrawAndCall0(opts *bind.TransactOpts, amount *big.Int, chainId *big.Int, message []byte) (*types.Transaction, error) { + return _IGatewayZEVM.contract.Transact(opts, "withdrawAndCall0", amount, chainId, message) +} + +// WithdrawAndCall0 is a paid mutator transaction binding the contract method 0x80bd3d03. +// +// Solidity: function withdrawAndCall(uint256 amount, uint256 chainId, bytes message) returns() +func (_IGatewayZEVM *IGatewayZEVMSession) WithdrawAndCall0(amount *big.Int, chainId *big.Int, message []byte) (*types.Transaction, error) { + return _IGatewayZEVM.Contract.WithdrawAndCall0(&_IGatewayZEVM.TransactOpts, amount, chainId, message) +} + +// WithdrawAndCall0 is a paid mutator transaction binding the contract method 0x80bd3d03. +// +// Solidity: function withdrawAndCall(uint256 amount, uint256 chainId, bytes message) returns() +func (_IGatewayZEVM *IGatewayZEVMTransactorSession) WithdrawAndCall0(amount *big.Int, chainId *big.Int, message []byte) (*types.Transaction, error) { + return _IGatewayZEVM.Contract.WithdrawAndCall0(&_IGatewayZEVM.TransactOpts, amount, chainId, message) +} diff --git a/pkg/contracts/prototypes/zevm/igatewayzevm.sol/igatewayzevmerrors.go b/v2/pkg/igatewayzevm.sol/igatewayzevmerrors.go similarity index 93% rename from pkg/contracts/prototypes/zevm/igatewayzevm.sol/igatewayzevmerrors.go rename to v2/pkg/igatewayzevm.sol/igatewayzevmerrors.go index 0e4b7176..cb6c3e73 100644 --- a/pkg/contracts/prototypes/zevm/igatewayzevm.sol/igatewayzevmerrors.go +++ b/v2/pkg/igatewayzevm.sol/igatewayzevmerrors.go @@ -31,7 +31,7 @@ var ( // IGatewayZEVMErrorsMetaData contains all meta data concerning the IGatewayZEVMErrors contract. var IGatewayZEVMErrorsMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"name\":\"CallerIsNotFungibleModule\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedZetaSent\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GasFeeTransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientZRC20Amount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTarget\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyWZETAOrFungible\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WithdrawalFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZRC20BurnFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZRC20TransferFailed\",\"type\":\"error\"}]", + 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. diff --git a/pkg/contracts/prototypes/zevm/igatewayzevm.sol/igatewayzevmevents.go b/v2/pkg/igatewayzevm.sol/igatewayzevmevents.go similarity index 81% rename from pkg/contracts/prototypes/zevm/igatewayzevm.sol/igatewayzevmevents.go rename to v2/pkg/igatewayzevm.sol/igatewayzevmevents.go index 26208431..cfa3a10f 100644 --- a/pkg/contracts/prototypes/zevm/igatewayzevm.sol/igatewayzevmevents.go +++ b/v2/pkg/igatewayzevm.sol/igatewayzevmevents.go @@ -31,7 +31,7 @@ var ( // IGatewayZEVMEventsMetaData contains all meta data concerning the IGatewayZEVMEvents contract. var IGatewayZEVMEventsMetaData = &bind.MetaData{ - ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"receiver\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"Call\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"zrc20\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"to\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"gasfee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"protocolFlatFee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"Withdrawal\",\"type\":\"event\"}]", + ABI: "[{\"type\":\"event\",\"name\":\"Call\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"chainId\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"},{\"name\":\"receiver\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"message\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Withdrawal\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"chainId\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"},{\"name\":\"receiver\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"zrc20\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"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. @@ -250,39 +250,48 @@ func (it *IGatewayZEVMEventsCallIterator) Close() error { // IGatewayZEVMEventsCall represents a Call event raised by the IGatewayZEVMEvents contract. type IGatewayZEVMEventsCall struct { Sender common.Address + ChainId *big.Int Receiver []byte Message []byte Raw types.Log // Blockchain specific contextual infos } -// FilterCall is a free log retrieval operation binding the contract event 0x2b5af078ce280d812dc2241658dc5435c93408020e5418eef55a2b536de51c0f. +// FilterCall is a free log retrieval operation binding the contract event 0x5322ffbbf9261ff1f8138247942d2b03b28717141ef0a0dd080fc4be9c4e78d3. // -// Solidity: event Call(address indexed sender, bytes receiver, bytes message) -func (_IGatewayZEVMEvents *IGatewayZEVMEventsFilterer) FilterCall(opts *bind.FilterOpts, sender []common.Address) (*IGatewayZEVMEventsCallIterator, error) { +// Solidity: event Call(address indexed sender, uint256 indexed chainId, bytes receiver, bytes message) +func (_IGatewayZEVMEvents *IGatewayZEVMEventsFilterer) FilterCall(opts *bind.FilterOpts, sender []common.Address, chainId []*big.Int) (*IGatewayZEVMEventsCallIterator, error) { var senderRule []interface{} for _, senderItem := range sender { senderRule = append(senderRule, senderItem) } + var chainIdRule []interface{} + for _, chainIdItem := range chainId { + chainIdRule = append(chainIdRule, chainIdItem) + } - logs, sub, err := _IGatewayZEVMEvents.contract.FilterLogs(opts, "Call", senderRule) + logs, sub, err := _IGatewayZEVMEvents.contract.FilterLogs(opts, "Call", senderRule, chainIdRule) 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. +// WatchCall is a free log subscription operation binding the contract event 0x5322ffbbf9261ff1f8138247942d2b03b28717141ef0a0dd080fc4be9c4e78d3. // -// 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) { +// Solidity: event Call(address indexed sender, uint256 indexed chainId, bytes receiver, bytes message) +func (_IGatewayZEVMEvents *IGatewayZEVMEventsFilterer) WatchCall(opts *bind.WatchOpts, sink chan<- *IGatewayZEVMEventsCall, sender []common.Address, chainId []*big.Int) (event.Subscription, error) { var senderRule []interface{} for _, senderItem := range sender { senderRule = append(senderRule, senderItem) } + var chainIdRule []interface{} + for _, chainIdItem := range chainId { + chainIdRule = append(chainIdRule, chainIdItem) + } - logs, sub, err := _IGatewayZEVMEvents.contract.WatchLogs(opts, "Call", senderRule) + logs, sub, err := _IGatewayZEVMEvents.contract.WatchLogs(opts, "Call", senderRule, chainIdRule) if err != nil { return nil, err } @@ -314,9 +323,9 @@ func (_IGatewayZEVMEvents *IGatewayZEVMEventsFilterer) WatchCall(opts *bind.Watc }), nil } -// ParseCall is a log parse operation binding the contract event 0x2b5af078ce280d812dc2241658dc5435c93408020e5418eef55a2b536de51c0f. +// ParseCall is a log parse operation binding the contract event 0x5322ffbbf9261ff1f8138247942d2b03b28717141ef0a0dd080fc4be9c4e78d3. // -// Solidity: event Call(address indexed sender, bytes receiver, bytes message) +// Solidity: event Call(address indexed sender, uint256 indexed chainId, 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 { @@ -395,9 +404,10 @@ func (it *IGatewayZEVMEventsWithdrawalIterator) Close() error { // IGatewayZEVMEventsWithdrawal represents a Withdrawal event raised by the IGatewayZEVMEvents contract. type IGatewayZEVMEventsWithdrawal struct { - From common.Address + Sender common.Address + ChainId *big.Int + Receiver []byte Zrc20 common.Address - To []byte Value *big.Int Gasfee *big.Int ProtocolFlatFee *big.Int @@ -405,34 +415,42 @@ type IGatewayZEVMEventsWithdrawal struct { Raw types.Log // Blockchain specific contextual infos } -// FilterWithdrawal is a free log retrieval operation binding the contract event 0x2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716. +// FilterWithdrawal is a free log retrieval operation binding the contract event 0xde19dbe881cc0aeeb6e73ce19ac7b5ca695e6be8a076e3eb42292005a7fec1b5. // -// 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) { +// Solidity: event Withdrawal(address indexed sender, uint256 indexed chainId, bytes receiver, address zrc20, uint256 value, uint256 gasfee, uint256 protocolFlatFee, bytes message) +func (_IGatewayZEVMEvents *IGatewayZEVMEventsFilterer) FilterWithdrawal(opts *bind.FilterOpts, sender []common.Address, chainId []*big.Int) (*IGatewayZEVMEventsWithdrawalIterator, error) { - var fromRule []interface{} - for _, fromItem := range from { - fromRule = append(fromRule, fromItem) + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var chainIdRule []interface{} + for _, chainIdItem := range chainId { + chainIdRule = append(chainIdRule, chainIdItem) } - logs, sub, err := _IGatewayZEVMEvents.contract.FilterLogs(opts, "Withdrawal", fromRule) + logs, sub, err := _IGatewayZEVMEvents.contract.FilterLogs(opts, "Withdrawal", senderRule, chainIdRule) 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. +// WatchWithdrawal is a free log subscription operation binding the contract event 0xde19dbe881cc0aeeb6e73ce19ac7b5ca695e6be8a076e3eb42292005a7fec1b5. // -// 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) { +// Solidity: event Withdrawal(address indexed sender, uint256 indexed chainId, bytes receiver, address zrc20, uint256 value, uint256 gasfee, uint256 protocolFlatFee, bytes message) +func (_IGatewayZEVMEvents *IGatewayZEVMEventsFilterer) WatchWithdrawal(opts *bind.WatchOpts, sink chan<- *IGatewayZEVMEventsWithdrawal, sender []common.Address, chainId []*big.Int) (event.Subscription, error) { - var fromRule []interface{} - for _, fromItem := range from { - fromRule = append(fromRule, fromItem) + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + var chainIdRule []interface{} + for _, chainIdItem := range chainId { + chainIdRule = append(chainIdRule, chainIdItem) } - logs, sub, err := _IGatewayZEVMEvents.contract.WatchLogs(opts, "Withdrawal", fromRule) + logs, sub, err := _IGatewayZEVMEvents.contract.WatchLogs(opts, "Withdrawal", senderRule, chainIdRule) if err != nil { return nil, err } @@ -464,9 +482,9 @@ func (_IGatewayZEVMEvents *IGatewayZEVMEventsFilterer) WatchWithdrawal(opts *bin }), nil } -// ParseWithdrawal is a log parse operation binding the contract event 0x2265ce9ec38ea098a1143406678482665a6e1ccd82ab22d37eea3a78abc57716. +// ParseWithdrawal is a log parse operation binding the contract event 0xde19dbe881cc0aeeb6e73ce19ac7b5ca695e6be8a076e3eb42292005a7fec1b5. // -// Solidity: event Withdrawal(address indexed from, address zrc20, bytes to, uint256 value, uint256 gasfee, uint256 protocolFlatFee, bytes message) +// Solidity: event Withdrawal(address indexed sender, uint256 indexed chainId, bytes receiver, address zrc20, 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 { 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/pkg/openzeppelin/contracts-upgradeable/proxy/utils/initializable.sol/initializable.go b/v2/pkg/initializable.sol/initializable.go similarity index 94% rename from pkg/openzeppelin/contracts-upgradeable/proxy/utils/initializable.sol/initializable.go rename to v2/pkg/initializable.sol/initializable.go index 4ac5afe3..dd76f00b 100644 --- a/pkg/openzeppelin/contracts-upgradeable/proxy/utils/initializable.sol/initializable.go +++ b/v2/pkg/initializable.sol/initializable.go @@ -31,7 +31,7 @@ var ( // InitializableMetaData contains all meta data concerning the Initializable contract. var InitializableMetaData = &bind.MetaData{ - ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}]", + 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. @@ -249,13 +249,13 @@ func (it *InitializableInitializedIterator) Close() error { // InitializableInitialized represents a Initialized event raised by the Initializable contract. type InitializableInitialized struct { - Version uint8 + Version uint64 Raw types.Log // Blockchain specific contextual infos } -// FilterInitialized is a free log retrieval operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. +// FilterInitialized is a free log retrieval operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. // -// Solidity: event Initialized(uint8 version) +// Solidity: event Initialized(uint64 version) func (_Initializable *InitializableFilterer) FilterInitialized(opts *bind.FilterOpts) (*InitializableInitializedIterator, error) { logs, sub, err := _Initializable.contract.FilterLogs(opts, "Initialized") @@ -265,9 +265,9 @@ func (_Initializable *InitializableFilterer) FilterInitialized(opts *bind.Filter return &InitializableInitializedIterator{contract: _Initializable.contract, event: "Initialized", logs: logs, sub: sub}, nil } -// WatchInitialized is a free log subscription operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. +// WatchInitialized is a free log subscription operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. // -// Solidity: event Initialized(uint8 version) +// 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") @@ -302,9 +302,9 @@ func (_Initializable *InitializableFilterer) WatchInitialized(opts *bind.WatchOp }), nil } -// ParseInitialized is a log parse operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. +// ParseInitialized is a log parse operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. // -// Solidity: event Initialized(uint8 version) +// 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 { diff --git a/v2/pkg/introspection/ierc165.sol/ierc165.go b/v2/pkg/introspection/ierc165.sol/ierc165.go new file mode 100644 index 00000000..3a215627 --- /dev/null +++ b/v2/pkg/introspection/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/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/pkg/contracts/prototypes/evm/ireceiverevm.sol/ireceiverevmevents.go b/v2/pkg/ireceiverevm.sol/ireceiverevmevents.go similarity index 94% rename from pkg/contracts/prototypes/evm/ireceiverevm.sol/ireceiverevmevents.go rename to v2/pkg/ireceiverevm.sol/ireceiverevmevents.go index c9841c66..decd72f2 100644 --- a/pkg/contracts/prototypes/evm/ireceiverevm.sol/ireceiverevmevents.go +++ b/v2/pkg/ireceiverevm.sol/ireceiverevmevents.go @@ -31,7 +31,7 @@ var ( // IReceiverEVMEventsMetaData contains all meta data concerning the IReceiverEVMEvents contract. var IReceiverEVMEventsMetaData = &bind.MetaData{ - ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"}],\"name\":\"ReceivedERC20\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ReceivedNoParams\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string[]\",\"name\":\"strs\",\"type\":\"string[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"nums\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"flag\",\"type\":\"bool\"}],\"name\":\"ReceivedNonPayable\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"num\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"flag\",\"type\":\"bool\"}],\"name\":\"ReceivedPayable\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ReceivedRevert\",\"type\":\"event\"}]", + 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. 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/pkg/contracts/prototypes/evm/izetaconnector.sol/izetaconnectorevents.go b/v2/pkg/izetaconnector.sol/izetaconnectorevents.go similarity index 96% rename from pkg/contracts/prototypes/evm/izetaconnector.sol/izetaconnectorevents.go rename to v2/pkg/izetaconnector.sol/izetaconnectorevents.go index ecd0bb09..e466571b 100644 --- a/pkg/contracts/prototypes/evm/izetaconnector.sol/izetaconnectorevents.go +++ b/v2/pkg/izetaconnector.sol/izetaconnectorevents.go @@ -31,7 +31,7 @@ var ( // IZetaConnectorEventsMetaData contains all meta data concerning the IZetaConnectorEvents contract. var IZetaConnectorEventsMetaData = &bind.MetaData{ - ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"WithdrawAndCall\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"WithdrawAndRevert\",\"type\":\"event\"}]", + 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. diff --git a/pkg/contracts/prototypes/evm/izetanonethnew.sol/izetanonethnew.go b/v2/pkg/izetanonethnew.sol/izetanonethnew.go similarity index 85% rename from pkg/contracts/prototypes/evm/izetanonethnew.sol/izetanonethnew.go rename to v2/pkg/izetanonethnew.sol/izetanonethnew.go index 01229f86..2c049e89 100644 --- a/pkg/contracts/prototypes/evm/izetanonethnew.sol/izetanonethnew.go +++ b/v2/pkg/izetanonethnew.sol/izetanonethnew.go @@ -31,7 +31,7 @@ var ( // IZetaNonEthNewMetaData contains all meta data concerning the IZetaNonEthNew contract. var IZetaNonEthNewMetaData = &bind.MetaData{ - ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"mintee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"internalSendHash\",\"type\":\"bytes32\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + 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. @@ -275,23 +275,23 @@ func (_IZetaNonEthNew *IZetaNonEthNewCallerSession) TotalSupply() (*big.Int, err // Approve is a paid mutator transaction binding the contract method 0x095ea7b3. // -// Solidity: function approve(address spender, uint256 amount) returns(bool) -func (_IZetaNonEthNew *IZetaNonEthNewTransactor) Approve(opts *bind.TransactOpts, spender common.Address, amount *big.Int) (*types.Transaction, error) { - return _IZetaNonEthNew.contract.Transact(opts, "approve", spender, amount) +// 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 amount) returns(bool) -func (_IZetaNonEthNew *IZetaNonEthNewSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) { - return _IZetaNonEthNew.Contract.Approve(&_IZetaNonEthNew.TransactOpts, spender, amount) +// 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 amount) returns(bool) -func (_IZetaNonEthNew *IZetaNonEthNewTransactorSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) { - return _IZetaNonEthNew.Contract.Approve(&_IZetaNonEthNew.TransactOpts, spender, amount) +// 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. @@ -338,44 +338,44 @@ func (_IZetaNonEthNew *IZetaNonEthNewTransactorSession) Mint(mintee common.Addre // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. // -// Solidity: function transfer(address to, uint256 amount) returns(bool) -func (_IZetaNonEthNew *IZetaNonEthNewTransactor) Transfer(opts *bind.TransactOpts, to common.Address, amount *big.Int) (*types.Transaction, error) { - return _IZetaNonEthNew.contract.Transact(opts, "transfer", to, amount) +// 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 amount) returns(bool) -func (_IZetaNonEthNew *IZetaNonEthNewSession) Transfer(to common.Address, amount *big.Int) (*types.Transaction, error) { - return _IZetaNonEthNew.Contract.Transfer(&_IZetaNonEthNew.TransactOpts, to, amount) +// 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 amount) returns(bool) -func (_IZetaNonEthNew *IZetaNonEthNewTransactorSession) Transfer(to common.Address, amount *big.Int) (*types.Transaction, error) { - return _IZetaNonEthNew.Contract.Transfer(&_IZetaNonEthNew.TransactOpts, to, amount) +// 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 amount) returns(bool) -func (_IZetaNonEthNew *IZetaNonEthNewTransactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { - return _IZetaNonEthNew.contract.Transact(opts, "transferFrom", from, to, amount) +// 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 amount) returns(bool) -func (_IZetaNonEthNew *IZetaNonEthNewSession) TransferFrom(from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { - return _IZetaNonEthNew.Contract.TransferFrom(&_IZetaNonEthNew.TransactOpts, from, to, amount) +// 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 amount) returns(bool) -func (_IZetaNonEthNew *IZetaNonEthNewTransactorSession) TransferFrom(from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { - return _IZetaNonEthNew.Contract.TransferFrom(&_IZetaNonEthNew.TransactOpts, from, to, amount) +// 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. 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/pausable.sol/pausable.go b/v2/pkg/pausable.sol/pausable.go new file mode 100644 index 00000000..f1a32b35 --- /dev/null +++ b/v2/pkg/pausable.sol/pausable.go @@ -0,0 +1,480 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package pausable + +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 +) + +// PausableMetaData contains all meta data concerning the Pausable contract. +var PausableMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"EnforcedPause\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExpectedPause\",\"inputs\":[]}]", +} + +// PausableABI is the input ABI used to generate the binding from. +// Deprecated: Use PausableMetaData.ABI instead. +var PausableABI = PausableMetaData.ABI + +// Pausable is an auto generated Go binding around an Ethereum contract. +type Pausable struct { + PausableCaller // Read-only binding to the contract + PausableTransactor // Write-only binding to the contract + PausableFilterer // Log filterer for contract events +} + +// PausableCaller is an auto generated read-only Go binding around an Ethereum contract. +type PausableCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// PausableTransactor is an auto generated write-only Go binding around an Ethereum contract. +type PausableTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// PausableFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type PausableFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// PausableSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type PausableSession struct { + Contract *Pausable // 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 +} + +// PausableCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type PausableCallerSession struct { + Contract *PausableCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// PausableTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type PausableTransactorSession struct { + Contract *PausableTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// PausableRaw is an auto generated low-level Go binding around an Ethereum contract. +type PausableRaw struct { + Contract *Pausable // Generic contract binding to access the raw methods on +} + +// PausableCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type PausableCallerRaw struct { + Contract *PausableCaller // Generic read-only contract binding to access the raw methods on +} + +// PausableTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type PausableTransactorRaw struct { + Contract *PausableTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewPausable creates a new instance of Pausable, bound to a specific deployed contract. +func NewPausable(address common.Address, backend bind.ContractBackend) (*Pausable, error) { + contract, err := bindPausable(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Pausable{PausableCaller: PausableCaller{contract: contract}, PausableTransactor: PausableTransactor{contract: contract}, PausableFilterer: PausableFilterer{contract: contract}}, nil +} + +// NewPausableCaller creates a new read-only instance of Pausable, bound to a specific deployed contract. +func NewPausableCaller(address common.Address, caller bind.ContractCaller) (*PausableCaller, error) { + contract, err := bindPausable(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &PausableCaller{contract: contract}, nil +} + +// NewPausableTransactor creates a new write-only instance of Pausable, bound to a specific deployed contract. +func NewPausableTransactor(address common.Address, transactor bind.ContractTransactor) (*PausableTransactor, error) { + contract, err := bindPausable(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &PausableTransactor{contract: contract}, nil +} + +// NewPausableFilterer creates a new log filterer instance of Pausable, bound to a specific deployed contract. +func NewPausableFilterer(address common.Address, filterer bind.ContractFilterer) (*PausableFilterer, error) { + contract, err := bindPausable(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &PausableFilterer{contract: contract}, nil +} + +// bindPausable binds a generic wrapper to an already deployed contract. +func bindPausable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := PausableMetaData.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 (_Pausable *PausableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Pausable.Contract.PausableCaller.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 (_Pausable *PausableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Pausable.Contract.PausableTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Pausable *PausableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Pausable.Contract.PausableTransactor.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 (_Pausable *PausableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _Pausable.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 (_Pausable *PausableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Pausable.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Pausable *PausableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Pausable.Contract.contract.Transact(opts, method, params...) +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_Pausable *PausableCaller) Paused(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _Pausable.contract.Call(opts, &out, "paused") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_Pausable *PausableSession) Paused() (bool, error) { + return _Pausable.Contract.Paused(&_Pausable.CallOpts) +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_Pausable *PausableCallerSession) Paused() (bool, error) { + return _Pausable.Contract.Paused(&_Pausable.CallOpts) +} + +// PausablePausedIterator is returned from FilterPaused and is used to iterate over the raw logs and unpacked data for Paused events raised by the Pausable contract. +type PausablePausedIterator struct { + Event *PausablePaused // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *PausablePausedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(PausablePaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(PausablePaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *PausablePausedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *PausablePausedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// PausablePaused represents a Paused event raised by the Pausable contract. +type PausablePaused struct { + Account common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterPaused is a free log retrieval operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. +// +// Solidity: event Paused(address account) +func (_Pausable *PausableFilterer) FilterPaused(opts *bind.FilterOpts) (*PausablePausedIterator, error) { + + logs, sub, err := _Pausable.contract.FilterLogs(opts, "Paused") + if err != nil { + return nil, err + } + return &PausablePausedIterator{contract: _Pausable.contract, event: "Paused", logs: logs, sub: sub}, nil +} + +// WatchPaused is a free log subscription operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. +// +// Solidity: event Paused(address account) +func (_Pausable *PausableFilterer) WatchPaused(opts *bind.WatchOpts, sink chan<- *PausablePaused) (event.Subscription, error) { + + logs, sub, err := _Pausable.contract.WatchLogs(opts, "Paused") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(PausablePaused) + if err := _Pausable.contract.UnpackLog(event, "Paused", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParsePaused is a log parse operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. +// +// Solidity: event Paused(address account) +func (_Pausable *PausableFilterer) ParsePaused(log types.Log) (*PausablePaused, error) { + event := new(PausablePaused) + if err := _Pausable.contract.UnpackLog(event, "Paused", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// PausableUnpausedIterator is returned from FilterUnpaused and is used to iterate over the raw logs and unpacked data for Unpaused events raised by the Pausable contract. +type PausableUnpausedIterator struct { + Event *PausableUnpaused // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *PausableUnpausedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(PausableUnpaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(PausableUnpaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *PausableUnpausedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *PausableUnpausedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// PausableUnpaused represents a Unpaused event raised by the Pausable contract. +type PausableUnpaused struct { + Account common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUnpaused is a free log retrieval operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. +// +// Solidity: event Unpaused(address account) +func (_Pausable *PausableFilterer) FilterUnpaused(opts *bind.FilterOpts) (*PausableUnpausedIterator, error) { + + logs, sub, err := _Pausable.contract.FilterLogs(opts, "Unpaused") + if err != nil { + return nil, err + } + return &PausableUnpausedIterator{contract: _Pausable.contract, event: "Unpaused", logs: logs, sub: sub}, nil +} + +// WatchUnpaused is a free log subscription operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. +// +// Solidity: event Unpaused(address account) +func (_Pausable *PausableFilterer) WatchUnpaused(opts *bind.WatchOpts, sink chan<- *PausableUnpaused) (event.Subscription, error) { + + logs, sub, err := _Pausable.contract.WatchLogs(opts, "Unpaused") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(PausableUnpaused) + if err := _Pausable.contract.UnpackLog(event, "Unpaused", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseUnpaused is a log parse operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. +// +// Solidity: event Unpaused(address account) +func (_Pausable *PausableFilterer) ParseUnpaused(log types.Log) (*PausableUnpaused, error) { + event := new(PausableUnpaused) + if err := _Pausable.contract.UnpackLog(event, "Unpaused", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/v2/pkg/pausableupgradeable.sol/pausableupgradeable.go b/v2/pkg/pausableupgradeable.sol/pausableupgradeable.go new file mode 100644 index 00000000..bafbc717 --- /dev/null +++ b/v2/pkg/pausableupgradeable.sol/pausableupgradeable.go @@ -0,0 +1,614 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package pausableupgradeable + +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 +) + +// PausableUpgradeableMetaData contains all meta data concerning the PausableUpgradeable contract. +var PausableUpgradeableMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"EnforcedPause\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExpectedPause\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidInitialization\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotInitializing\",\"inputs\":[]}]", +} + +// PausableUpgradeableABI is the input ABI used to generate the binding from. +// Deprecated: Use PausableUpgradeableMetaData.ABI instead. +var PausableUpgradeableABI = PausableUpgradeableMetaData.ABI + +// PausableUpgradeable is an auto generated Go binding around an Ethereum contract. +type PausableUpgradeable struct { + PausableUpgradeableCaller // Read-only binding to the contract + PausableUpgradeableTransactor // Write-only binding to the contract + PausableUpgradeableFilterer // Log filterer for contract events +} + +// PausableUpgradeableCaller is an auto generated read-only Go binding around an Ethereum contract. +type PausableUpgradeableCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// PausableUpgradeableTransactor is an auto generated write-only Go binding around an Ethereum contract. +type PausableUpgradeableTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// PausableUpgradeableFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type PausableUpgradeableFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// PausableUpgradeableSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type PausableUpgradeableSession struct { + Contract *PausableUpgradeable // 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 +} + +// PausableUpgradeableCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type PausableUpgradeableCallerSession struct { + Contract *PausableUpgradeableCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// PausableUpgradeableTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type PausableUpgradeableTransactorSession struct { + Contract *PausableUpgradeableTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// PausableUpgradeableRaw is an auto generated low-level Go binding around an Ethereum contract. +type PausableUpgradeableRaw struct { + Contract *PausableUpgradeable // Generic contract binding to access the raw methods on +} + +// PausableUpgradeableCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type PausableUpgradeableCallerRaw struct { + Contract *PausableUpgradeableCaller // Generic read-only contract binding to access the raw methods on +} + +// PausableUpgradeableTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type PausableUpgradeableTransactorRaw struct { + Contract *PausableUpgradeableTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewPausableUpgradeable creates a new instance of PausableUpgradeable, bound to a specific deployed contract. +func NewPausableUpgradeable(address common.Address, backend bind.ContractBackend) (*PausableUpgradeable, error) { + contract, err := bindPausableUpgradeable(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &PausableUpgradeable{PausableUpgradeableCaller: PausableUpgradeableCaller{contract: contract}, PausableUpgradeableTransactor: PausableUpgradeableTransactor{contract: contract}, PausableUpgradeableFilterer: PausableUpgradeableFilterer{contract: contract}}, nil +} + +// NewPausableUpgradeableCaller creates a new read-only instance of PausableUpgradeable, bound to a specific deployed contract. +func NewPausableUpgradeableCaller(address common.Address, caller bind.ContractCaller) (*PausableUpgradeableCaller, error) { + contract, err := bindPausableUpgradeable(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &PausableUpgradeableCaller{contract: contract}, nil +} + +// NewPausableUpgradeableTransactor creates a new write-only instance of PausableUpgradeable, bound to a specific deployed contract. +func NewPausableUpgradeableTransactor(address common.Address, transactor bind.ContractTransactor) (*PausableUpgradeableTransactor, error) { + contract, err := bindPausableUpgradeable(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &PausableUpgradeableTransactor{contract: contract}, nil +} + +// NewPausableUpgradeableFilterer creates a new log filterer instance of PausableUpgradeable, bound to a specific deployed contract. +func NewPausableUpgradeableFilterer(address common.Address, filterer bind.ContractFilterer) (*PausableUpgradeableFilterer, error) { + contract, err := bindPausableUpgradeable(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &PausableUpgradeableFilterer{contract: contract}, nil +} + +// bindPausableUpgradeable binds a generic wrapper to an already deployed contract. +func bindPausableUpgradeable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := PausableUpgradeableMetaData.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 (_PausableUpgradeable *PausableUpgradeableRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _PausableUpgradeable.Contract.PausableUpgradeableCaller.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 (_PausableUpgradeable *PausableUpgradeableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _PausableUpgradeable.Contract.PausableUpgradeableTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_PausableUpgradeable *PausableUpgradeableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _PausableUpgradeable.Contract.PausableUpgradeableTransactor.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 (_PausableUpgradeable *PausableUpgradeableCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _PausableUpgradeable.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 (_PausableUpgradeable *PausableUpgradeableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _PausableUpgradeable.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_PausableUpgradeable *PausableUpgradeableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _PausableUpgradeable.Contract.contract.Transact(opts, method, params...) +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_PausableUpgradeable *PausableUpgradeableCaller) Paused(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _PausableUpgradeable.contract.Call(opts, &out, "paused") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_PausableUpgradeable *PausableUpgradeableSession) Paused() (bool, error) { + return _PausableUpgradeable.Contract.Paused(&_PausableUpgradeable.CallOpts) +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_PausableUpgradeable *PausableUpgradeableCallerSession) Paused() (bool, error) { + return _PausableUpgradeable.Contract.Paused(&_PausableUpgradeable.CallOpts) +} + +// PausableUpgradeableInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the PausableUpgradeable contract. +type PausableUpgradeableInitializedIterator struct { + Event *PausableUpgradeableInitialized // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *PausableUpgradeableInitializedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(PausableUpgradeableInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(PausableUpgradeableInitialized) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *PausableUpgradeableInitializedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *PausableUpgradeableInitializedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// PausableUpgradeableInitialized represents a Initialized event raised by the PausableUpgradeable contract. +type PausableUpgradeableInitialized 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 (_PausableUpgradeable *PausableUpgradeableFilterer) FilterInitialized(opts *bind.FilterOpts) (*PausableUpgradeableInitializedIterator, error) { + + logs, sub, err := _PausableUpgradeable.contract.FilterLogs(opts, "Initialized") + if err != nil { + return nil, err + } + return &PausableUpgradeableInitializedIterator{contract: _PausableUpgradeable.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 (_PausableUpgradeable *PausableUpgradeableFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *PausableUpgradeableInitialized) (event.Subscription, error) { + + logs, sub, err := _PausableUpgradeable.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(PausableUpgradeableInitialized) + if err := _PausableUpgradeable.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 (_PausableUpgradeable *PausableUpgradeableFilterer) ParseInitialized(log types.Log) (*PausableUpgradeableInitialized, error) { + event := new(PausableUpgradeableInitialized) + if err := _PausableUpgradeable.contract.UnpackLog(event, "Initialized", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// PausableUpgradeablePausedIterator is returned from FilterPaused and is used to iterate over the raw logs and unpacked data for Paused events raised by the PausableUpgradeable contract. +type PausableUpgradeablePausedIterator struct { + Event *PausableUpgradeablePaused // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *PausableUpgradeablePausedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(PausableUpgradeablePaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(PausableUpgradeablePaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *PausableUpgradeablePausedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *PausableUpgradeablePausedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// PausableUpgradeablePaused represents a Paused event raised by the PausableUpgradeable contract. +type PausableUpgradeablePaused struct { + Account common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterPaused is a free log retrieval operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. +// +// Solidity: event Paused(address account) +func (_PausableUpgradeable *PausableUpgradeableFilterer) FilterPaused(opts *bind.FilterOpts) (*PausableUpgradeablePausedIterator, error) { + + logs, sub, err := _PausableUpgradeable.contract.FilterLogs(opts, "Paused") + if err != nil { + return nil, err + } + return &PausableUpgradeablePausedIterator{contract: _PausableUpgradeable.contract, event: "Paused", logs: logs, sub: sub}, nil +} + +// WatchPaused is a free log subscription operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. +// +// Solidity: event Paused(address account) +func (_PausableUpgradeable *PausableUpgradeableFilterer) WatchPaused(opts *bind.WatchOpts, sink chan<- *PausableUpgradeablePaused) (event.Subscription, error) { + + logs, sub, err := _PausableUpgradeable.contract.WatchLogs(opts, "Paused") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(PausableUpgradeablePaused) + if err := _PausableUpgradeable.contract.UnpackLog(event, "Paused", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParsePaused is a log parse operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. +// +// Solidity: event Paused(address account) +func (_PausableUpgradeable *PausableUpgradeableFilterer) ParsePaused(log types.Log) (*PausableUpgradeablePaused, error) { + event := new(PausableUpgradeablePaused) + if err := _PausableUpgradeable.contract.UnpackLog(event, "Paused", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// PausableUpgradeableUnpausedIterator is returned from FilterUnpaused and is used to iterate over the raw logs and unpacked data for Unpaused events raised by the PausableUpgradeable contract. +type PausableUpgradeableUnpausedIterator struct { + Event *PausableUpgradeableUnpaused // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *PausableUpgradeableUnpausedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(PausableUpgradeableUnpaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(PausableUpgradeableUnpaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *PausableUpgradeableUnpausedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *PausableUpgradeableUnpausedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// PausableUpgradeableUnpaused represents a Unpaused event raised by the PausableUpgradeable contract. +type PausableUpgradeableUnpaused struct { + Account common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUnpaused is a free log retrieval operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. +// +// Solidity: event Unpaused(address account) +func (_PausableUpgradeable *PausableUpgradeableFilterer) FilterUnpaused(opts *bind.FilterOpts) (*PausableUpgradeableUnpausedIterator, error) { + + logs, sub, err := _PausableUpgradeable.contract.FilterLogs(opts, "Unpaused") + if err != nil { + return nil, err + } + return &PausableUpgradeableUnpausedIterator{contract: _PausableUpgradeable.contract, event: "Unpaused", logs: logs, sub: sub}, nil +} + +// WatchUnpaused is a free log subscription operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. +// +// Solidity: event Unpaused(address account) +func (_PausableUpgradeable *PausableUpgradeableFilterer) WatchUnpaused(opts *bind.WatchOpts, sink chan<- *PausableUpgradeableUnpaused) (event.Subscription, error) { + + logs, sub, err := _PausableUpgradeable.contract.WatchLogs(opts, "Unpaused") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(PausableUpgradeableUnpaused) + if err := _PausableUpgradeable.contract.UnpackLog(event, "Unpaused", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseUnpaused is a log parse operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. +// +// Solidity: event Unpaused(address account) +func (_PausableUpgradeable *PausableUpgradeableFilterer) ParseUnpaused(log types.Log) (*PausableUpgradeableUnpaused, error) { + event := new(PausableUpgradeableUnpaused) + if err := _PausableUpgradeable.contract.UnpackLog(event, "Unpaused", 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/pkg/contracts/prototypes/evm/receiverevm.sol/receiverevm.go b/v2/pkg/receiverevm.sol/receiverevm.go similarity index 74% rename from pkg/contracts/prototypes/evm/receiverevm.sol/receiverevm.go rename to v2/pkg/receiverevm.sol/receiverevm.go index b8a793d6..02ded950 100644 --- a/pkg/contracts/prototypes/evm/receiverevm.sol/receiverevm.go +++ b/v2/pkg/receiverevm.sol/receiverevm.go @@ -31,8 +31,8 @@ var ( // ReceiverEVMMetaData contains all meta data concerning the ReceiverEVM contract. var ReceiverEVMMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"name\":\"ZeroAmount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"}],\"name\":\"ReceivedERC20\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ReceivedNoParams\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string[]\",\"name\":\"strs\",\"type\":\"string[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"nums\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"flag\",\"type\":\"bool\"}],\"name\":\"ReceivedNonPayable\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"num\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"flag\",\"type\":\"bool\"}],\"name\":\"ReceivedPayable\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ReceivedRevert\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"}],\"name\":\"receiveERC20\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"}],\"name\":\"receiveERC20Partial\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"receiveNoParams\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"strs\",\"type\":\"string[]\"},{\"internalType\":\"uint256[]\",\"name\":\"nums\",\"type\":\"uint256[]\"},{\"internalType\":\"bool\",\"name\":\"flag\",\"type\":\"bool\"}],\"name\":\"receiveNonPayable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"num\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"flag\",\"type\":\"bool\"}],\"name\":\"receivePayable\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", - Bin: "0x608060405234801561001057600080fd5b506001600081905550611453806100286000396000f3fe6080604052600436106100595760003560e01c8063357fc5a2146100625780636ed701691461008b5780638fcaa0b5146100a2578063c5131691146100cb578063e04d4f97146100f4578063f05b6abf1461011057610060565b3661006057005b005b34801561006e57600080fd5b5061008960048036038101906100849190610ae2565b610139565b005b34801561009757600080fd5b506100a06101b8565b005b3480156100ae57600080fd5b506100c960048036038101906100c49190610a26565b6101f1565b005b3480156100d757600080fd5b506100f260048036038101906100ed9190610ae2565b610230565b005b61010e60048036038101906101099190610a73565b6102fc565b005b34801561011c57600080fd5b506101376004803603810190610132919061096e565b610340565b005b610141610382565b61016e3382858573ffffffffffffffffffffffffffffffffffffffff166103d2909392919063ffffffff16565b7f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af60338484846040516101a39493929190610eba565b60405180910390a16101b361045b565b505050565b7fbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a0336040516101e79190610de3565b60405180910390a1565b7f0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa33838360405161022493929190610e88565b60405180910390a15050565b610238610382565b6000600284610247919061116f565b90506000811415610284576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6102b13383838673ffffffffffffffffffffffffffffffffffffffff166103d2909392919063ffffffff16565b7f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af60338285856040516102e69493929190610eba565b60405180910390a1506102f761045b565b505050565b7f1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa3334858585604051610333959493929190610eff565b60405180910390a1505050565b7f74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146338484846040516103759493929190610e35565b60405180910390a1505050565b600260005414156103c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103bf90610fdb565b60405180910390fd5b6002600081905550565b610455846323b872dd60e01b8585856040516024016103f393929190610dfe565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610465565b50505050565b6001600081905550565b60006104c7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661052c9092919063ffffffff16565b905060008151111561052757808060200190518101906104e791906109f9565b610526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051d90610fbb565b60405180910390fd5b5b505050565b606061053b8484600085610544565b90509392505050565b606082471015610589576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058090610f7b565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516105b29190610dcc565b60006040518083038185875af1925050503d80600081146105ef576040519150601f19603f3d011682016040523d82523d6000602084013e6105f4565b606091505b509150915061060587838387610611565b92505050949350505050565b606083156106745760008351141561066c5761062c85610687565b61066b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066290610f9b565b60405180910390fd5b5b82905061067f565b61067e83836106aa565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156106bd5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f19190610f59565b60405180910390fd5b600061070d61070884611020565b610ffb565b905080838252602082019050828560208602820111156107305761072f6112c3565b5b60005b8581101561077e57813567ffffffffffffffff811115610756576107556112be565b5b808601610763898261092b565b85526020850194506020840193505050600181019050610733565b5050509392505050565b600061079b6107968461104c565b610ffb565b905080838252602082019050828560208602820111156107be576107bd6112c3565b5b60005b858110156107ee57816107d48882610959565b8452602084019350602083019250506001810190506107c1565b5050509392505050565b600061080b61080684611078565b610ffb565b905082815260208101848484011115610827576108266112c8565b5b6108328482856111e8565b509392505050565b600081359050610849816113d8565b92915050565b600082601f830112610864576108636112be565b5b81356108748482602086016106fa565b91505092915050565b600082601f830112610892576108916112be565b5b81356108a2848260208601610788565b91505092915050565b6000813590506108ba816113ef565b92915050565b6000815190506108cf816113ef565b92915050565b60008083601f8401126108eb576108ea6112be565b5b8235905067ffffffffffffffff811115610908576109076112b9565b5b602083019150836001820283011115610924576109236112c3565b5b9250929050565b600082601f8301126109405761093f6112be565b5b81356109508482602086016107f8565b91505092915050565b60008135905061096881611406565b92915050565b600080600060608486031215610987576109866112d2565b5b600084013567ffffffffffffffff8111156109a5576109a46112cd565b5b6109b18682870161084f565b935050602084013567ffffffffffffffff8111156109d2576109d16112cd565b5b6109de8682870161087d565b92505060406109ef868287016108ab565b9150509250925092565b600060208284031215610a0f57610a0e6112d2565b5b6000610a1d848285016108c0565b91505092915050565b60008060208385031215610a3d57610a3c6112d2565b5b600083013567ffffffffffffffff811115610a5b57610a5a6112cd565b5b610a67858286016108d5565b92509250509250929050565b600080600060608486031215610a8c57610a8b6112d2565b5b600084013567ffffffffffffffff811115610aaa57610aa96112cd565b5b610ab68682870161092b565b9350506020610ac786828701610959565b9250506040610ad8868287016108ab565b9150509250925092565b600080600060608486031215610afb57610afa6112d2565b5b6000610b0986828701610959565b9350506020610b1a8682870161083a565b9250506040610b2b8682870161083a565b9150509250925092565b6000610b418383610cb0565b905092915050565b6000610b558383610dae565b60208301905092915050565b610b6a816111a0565b82525050565b6000610b7b826110c9565b610b85818561110f565b935083602082028501610b97856110a9565b8060005b85811015610bd35784840389528151610bb48582610b35565b9450610bbf836110f5565b925060208a01995050600181019050610b9b565b50829750879550505050505092915050565b6000610bf0826110d4565b610bfa8185611120565b9350610c05836110b9565b8060005b83811015610c36578151610c1d8882610b49565b9750610c2883611102565b925050600181019050610c09565b5085935050505092915050565b610c4c816111b2565b82525050565b6000610c5e8385611131565b9350610c6b8385846111e8565b610c74836112d7565b840190509392505050565b6000610c8a826110df565b610c948185611142565b9350610ca48185602086016111f7565b80840191505092915050565b6000610cbb826110ea565b610cc5818561114d565b9350610cd58185602086016111f7565b610cde816112d7565b840191505092915050565b6000610cf4826110ea565b610cfe818561115e565b9350610d0e8185602086016111f7565b610d17816112d7565b840191505092915050565b6000610d2f60268361115e565b9150610d3a826112e8565b604082019050919050565b6000610d52601d8361115e565b9150610d5d82611337565b602082019050919050565b6000610d75602a8361115e565b9150610d8082611360565b604082019050919050565b6000610d98601f8361115e565b9150610da3826113af565b602082019050919050565b610db7816111de565b82525050565b610dc6816111de565b82525050565b6000610dd88284610c7f565b915081905092915050565b6000602082019050610df86000830184610b61565b92915050565b6000606082019050610e136000830186610b61565b610e206020830185610b61565b610e2d6040830184610dbd565b949350505050565b6000608082019050610e4a6000830187610b61565b8181036020830152610e5c8186610b70565b90508181036040830152610e708185610be5565b9050610e7f6060830184610c43565b95945050505050565b6000604082019050610e9d6000830186610b61565b8181036020830152610eb0818486610c52565b9050949350505050565b6000608082019050610ecf6000830187610b61565b610edc6020830186610dbd565b610ee96040830185610b61565b610ef66060830184610b61565b95945050505050565b600060a082019050610f146000830188610b61565b610f216020830187610dbd565b8181036040830152610f338186610ce9565b9050610f426060830185610dbd565b610f4f6080830184610c43565b9695505050505050565b60006020820190508181036000830152610f738184610ce9565b905092915050565b60006020820190508181036000830152610f9481610d22565b9050919050565b60006020820190508181036000830152610fb481610d45565b9050919050565b60006020820190508181036000830152610fd481610d68565b9050919050565b60006020820190508181036000830152610ff481610d8b565b9050919050565b6000611005611016565b9050611011828261122a565b919050565b6000604051905090565b600067ffffffffffffffff82111561103b5761103a61128a565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156110675761106661128a565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156110935761109261128a565b5b61109c826112d7565b9050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600061117a826111de565b9150611185836111de565b9250826111955761119461125b565b5b828204905092915050565b60006111ab826111be565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156112155780820151818401526020810190506111fa565b83811115611224576000848401525b50505050565b611233826112d7565b810181811067ffffffffffffffff821117156112525761125161128a565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6113e1816111a0565b81146113ec57600080fd5b50565b6113f8816111b2565b811461140357600080fd5b50565b61140f816111de565b811461141a57600080fd5b5056fea2646970667358221220c31e8a5ca88f5ae54034b6491a4128b8c7599ac4cdb009070ccdd45a512dc07f64736f6c63430008070033", + 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. 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/pkg/openzeppelin/contracts-upgradeable/security/reentrancyguardupgradeable.sol/reentrancyguardupgradeable.go b/v2/pkg/reentrancyguardupgradeable.sol/reentrancyguardupgradeable.go similarity index 94% rename from pkg/openzeppelin/contracts-upgradeable/security/reentrancyguardupgradeable.sol/reentrancyguardupgradeable.go rename to v2/pkg/reentrancyguardupgradeable.sol/reentrancyguardupgradeable.go index 3a0be288..6badb5ab 100644 --- a/pkg/openzeppelin/contracts-upgradeable/security/reentrancyguardupgradeable.sol/reentrancyguardupgradeable.go +++ b/v2/pkg/reentrancyguardupgradeable.sol/reentrancyguardupgradeable.go @@ -31,7 +31,7 @@ var ( // ReentrancyGuardUpgradeableMetaData contains all meta data concerning the ReentrancyGuardUpgradeable contract. var ReentrancyGuardUpgradeableMetaData = &bind.MetaData{ - ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}]", + 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. @@ -249,13 +249,13 @@ func (it *ReentrancyGuardUpgradeableInitializedIterator) Close() error { // ReentrancyGuardUpgradeableInitialized represents a Initialized event raised by the ReentrancyGuardUpgradeable contract. type ReentrancyGuardUpgradeableInitialized struct { - Version uint8 + Version uint64 Raw types.Log // Blockchain specific contextual infos } -// FilterInitialized is a free log retrieval operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. +// FilterInitialized is a free log retrieval operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. // -// Solidity: event Initialized(uint8 version) +// Solidity: event Initialized(uint64 version) func (_ReentrancyGuardUpgradeable *ReentrancyGuardUpgradeableFilterer) FilterInitialized(opts *bind.FilterOpts) (*ReentrancyGuardUpgradeableInitializedIterator, error) { logs, sub, err := _ReentrancyGuardUpgradeable.contract.FilterLogs(opts, "Initialized") @@ -265,9 +265,9 @@ func (_ReentrancyGuardUpgradeable *ReentrancyGuardUpgradeableFilterer) FilterIni return &ReentrancyGuardUpgradeableInitializedIterator{contract: _ReentrancyGuardUpgradeable.contract, event: "Initialized", logs: logs, sub: sub}, nil } -// WatchInitialized is a free log subscription operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. +// WatchInitialized is a free log subscription operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. // -// Solidity: event Initialized(uint8 version) +// 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") @@ -302,9 +302,9 @@ func (_ReentrancyGuardUpgradeable *ReentrancyGuardUpgradeableFilterer) WatchInit }), nil } -// ParseInitialized is a log parse operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. +// ParseInitialized is a log parse operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. // -// Solidity: event Initialized(uint8 version) +// 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 { 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/pkg/contracts/prototypes/zevm/senderzevm.sol/senderzevm.go b/v2/pkg/senderzevm.sol/senderzevm.go similarity index 60% rename from pkg/contracts/prototypes/zevm/senderzevm.sol/senderzevm.go rename to v2/pkg/senderzevm.sol/senderzevm.go index 3d75b28a..ce210984 100644 --- a/pkg/contracts/prototypes/zevm/senderzevm.sol/senderzevm.go +++ b/v2/pkg/senderzevm.sol/senderzevm.go @@ -31,8 +31,8 @@ var ( // SenderZEVMMetaData contains all meta data concerning the SenderZEVM contract. var SenderZEVMMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_gateway\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ApprovalFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"receiver\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"num\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"flag\",\"type\":\"bool\"}],\"name\":\"callReceiver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gateway\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"receiver\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"zrc20\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"num\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"flag\",\"type\":\"bool\"}],\"name\":\"withdrawAndCallReceiver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x608060405234801561001057600080fd5b50604051610bcd380380610bcd8339818101604052810190610032919061008d565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610108565b600081519050610087816100f1565b92915050565b6000602082840312156100a3576100a26100ec565b5b60006100b184828501610078565b91505092915050565b60006100c5826100cc565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6100fa816100ba565b811461010557600080fd5b50565b610ab6806101176000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630abd890514610046578063116191b614610062578063a0a1730b14610080575b600080fd5b610060600480360381019061005b91906105fd565b61009c565b005b61006a6102af565b6040516100779190610761565b60405180910390f35b61009a6004803603810190610095919061055e565b6102d3565b005b60008383836040516024016100b39392919061082f565b6040516020818303038152906040527fe04d4f97000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090508473ffffffffffffffffffffffffffffffffffffffff1663095ea7b360008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16886040518363ffffffff1660e01b815260040161018d92919061077c565b602060405180830381600087803b1580156101a757600080fd5b505af11580156101bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101df9190610531565b610215576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637993c1e0888888856040518563ffffffff1660e01b815260040161027494939291906107dc565b600060405180830381600087803b15801561028e57600080fd5b505af11580156102a2573d6000803e3d6000fd5b5050505050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008383836040516024016102ea9392919061082f565b6040516020818303038152906040527fe04d4f97000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630ac7c44c86836040518363ffffffff1660e01b81526004016103c49291906107a5565b600060405180830381600087803b1580156103de57600080fd5b505af11580156103f2573d6000803e3d6000fd5b505050505050505050565b600061041061040b84610892565b61086d565b90508281526020810184848401111561042c5761042b610a1b565b5b610437848285610974565b509392505050565b600061045261044d846108c3565b61086d565b90508281526020810184848401111561046e5761046d610a1b565b5b610479848285610974565b509392505050565b60008135905061049081610a3b565b92915050565b6000813590506104a581610a52565b92915050565b6000815190506104ba81610a52565b92915050565b600082601f8301126104d5576104d4610a16565b5b81356104e58482602086016103fd565b91505092915050565b600082601f83011261050357610502610a16565b5b813561051384826020860161043f565b91505092915050565b60008135905061052b81610a69565b92915050565b60006020828403121561054757610546610a25565b5b6000610555848285016104ab565b91505092915050565b6000806000806080858703121561057857610577610a25565b5b600085013567ffffffffffffffff81111561059657610595610a20565b5b6105a2878288016104c0565b945050602085013567ffffffffffffffff8111156105c3576105c2610a20565b5b6105cf878288016104ee565b93505060406105e08782880161051c565b92505060606105f187828801610496565b91505092959194509250565b60008060008060008060c0878903121561061a57610619610a25565b5b600087013567ffffffffffffffff81111561063857610637610a20565b5b61064489828a016104c0565b965050602061065589828a0161051c565b955050604061066689828a01610481565b945050606087013567ffffffffffffffff81111561068757610686610a20565b5b61069389828a016104ee565b93505060806106a489828a0161051c565b92505060a06106b589828a01610496565b9150509295509295509295565b6106cb8161092c565b82525050565b6106da8161093e565b82525050565b60006106eb826108f4565b6106f5818561090a565b9350610705818560208601610983565b61070e81610a2a565b840191505092915050565b6000610724826108ff565b61072e818561091b565b935061073e818560208601610983565b61074781610a2a565b840191505092915050565b61075b8161096a565b82525050565b600060208201905061077660008301846106c2565b92915050565b600060408201905061079160008301856106c2565b61079e6020830184610752565b9392505050565b600060408201905081810360008301526107bf81856106e0565b905081810360208301526107d381846106e0565b90509392505050565b600060808201905081810360008301526107f681876106e0565b90506108056020830186610752565b61081260408301856106c2565b818103606083015261082481846106e0565b905095945050505050565b600060608201905081810360008301526108498186610719565b90506108586020830185610752565b61086560408301846106d1565b949350505050565b6000610877610888565b905061088382826109b6565b919050565b6000604051905090565b600067ffffffffffffffff8211156108ad576108ac6109e7565b5b6108b682610a2a565b9050602081019050919050565b600067ffffffffffffffff8211156108de576108dd6109e7565b5b6108e782610a2a565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006109378261094a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156109a1578082015181840152602081019050610986565b838111156109b0576000848401525b50505050565b6109bf82610a2a565b810181811067ffffffffffffffff821117156109de576109dd6109e7565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b610a448161092c565b8114610a4f57600080fd5b50565b610a5b8161093e565b8114610a6657600080fd5b50565b610a728161096a565b8114610a7d57600080fd5b5056fea26469706673582212208589b7fc9598202eaf46c595855edab9daadb2791c73209ade07df3bbb24033e64736f6c63430008070033", + ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_gateway\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"callReceiver\",\"inputs\":[{\"name\":\"receiver\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"chainId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"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: "0x6080604052348015600f57600080fd5b5060405161080c38038061080c833981016040819052602c916050565b600080546001600160a01b0319166001600160a01b0392909216919091179055607e565b600060208284031215606157600080fd5b81516001600160a01b0381168114607757600080fd5b9392505050565b61077f8061008d6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630abd890514610046578063116191b61461005b578063865b36f6146100a4575b600080fd5b6100596100543660046104c4565b6100b7565b005b60005461007b9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100596100b236600461057f565b6102af565b60008383836040516024016100ce93929190610674565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe04d4f970000000000000000000000000000000000000000000000000000000017905260005490517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201526024810189905291925086169063095ea7b3906044016020604051808303816000875af11580156101be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e2919061069e565b610218576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000546040517f7993c1e000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690637993c1e090610274908a908a908a9087906004016106c2565b600060405180830381600087803b15801561028e57600080fd5b505af11580156102a2573d6000803e3d6000fd5b5050505050505050505050565b60008383836040516024016102c693929190610674565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe04d4f970000000000000000000000000000000000000000000000000000000017905260005490517f5d40e17800000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff1690635d40e1789061039690899089908690600401610714565b600060405180830381600087803b1580156103b057600080fd5b505af11580156103c4573d6000803e3d6000fd5b50505050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261041057600080fd5b81356020830160008067ffffffffffffffff841115610431576104316103d0565b506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85018116603f0116810181811067ffffffffffffffff8211171561047e5761047e6103d0565b60405283815290508082840187101561049657600080fd5b838360208301376000602085830101528094505050505092915050565b80151581146104c157600080fd5b50565b60008060008060008060c087890312156104dd57600080fd5b863567ffffffffffffffff8111156104f457600080fd5b61050089828a016103ff565b96505060208701359450604087013573ffffffffffffffffffffffffffffffffffffffff8116811461053157600080fd5b9350606087013567ffffffffffffffff81111561054d57600080fd5b61055989828a016103ff565b9350506080870135915060a0870135610571816104b3565b809150509295509295509295565b600080600080600060a0868803121561059757600080fd5b853567ffffffffffffffff8111156105ae57600080fd5b6105ba888289016103ff565b95505060208601359350604086013567ffffffffffffffff8111156105de57600080fd5b6105ea888289016103ff565b935050606086013591506080860135610602816104b3565b809150509295509295909350565b6000815180845260005b818110156106365760208185018101518683018201520161061a565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6060815260006106876060830186610610565b602083019490945250901515604090910152919050565b6000602082840312156106b057600080fd5b81516106bb816104b3565b9392505050565b6080815260006106d56080830187610610565b85602084015273ffffffffffffffffffffffffffffffffffffffff8516604084015282810360608401526107098185610610565b979650505050505050565b6060815260006107276060830186610610565b846020840152828103604084015261073f8185610610565b969550505050505056fea2646970667358221220ddb6d6c4d104fc6d2f5c6ce9a1d66252fca95b7b25d839de654d81d453d176e464736f6c634300081a0033", } // SenderZEVMABI is the input ABI used to generate the binding from. @@ -233,25 +233,25 @@ func (_SenderZEVM *SenderZEVMCallerSession) Gateway() (common.Address, error) { return _SenderZEVM.Contract.Gateway(&_SenderZEVM.CallOpts) } -// CallReceiver is a paid mutator transaction binding the contract method 0xa0a1730b. +// CallReceiver is a paid mutator transaction binding the contract method 0x865b36f6. // -// 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) +// Solidity: function callReceiver(bytes receiver, uint256 chainId, string str, uint256 num, bool flag) returns() +func (_SenderZEVM *SenderZEVMTransactor) CallReceiver(opts *bind.TransactOpts, receiver []byte, chainId *big.Int, str string, num *big.Int, flag bool) (*types.Transaction, error) { + return _SenderZEVM.contract.Transact(opts, "callReceiver", receiver, chainId, str, num, flag) } -// CallReceiver is a paid mutator transaction binding the contract method 0xa0a1730b. +// CallReceiver is a paid mutator transaction binding the contract method 0x865b36f6. // -// 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) +// Solidity: function callReceiver(bytes receiver, uint256 chainId, string str, uint256 num, bool flag) returns() +func (_SenderZEVM *SenderZEVMSession) CallReceiver(receiver []byte, chainId *big.Int, str string, num *big.Int, flag bool) (*types.Transaction, error) { + return _SenderZEVM.Contract.CallReceiver(&_SenderZEVM.TransactOpts, receiver, chainId, str, num, flag) } -// CallReceiver is a paid mutator transaction binding the contract method 0xa0a1730b. +// CallReceiver is a paid mutator transaction binding the contract method 0x865b36f6. // -// 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) +// Solidity: function callReceiver(bytes receiver, uint256 chainId, string str, uint256 num, bool flag) returns() +func (_SenderZEVM *SenderZEVMTransactorSession) CallReceiver(receiver []byte, chainId *big.Int, str string, num *big.Int, flag bool) (*types.Transaction, error) { + return _SenderZEVM.Contract.CallReceiver(&_SenderZEVM.TransactOpts, receiver, chainId, str, num, flag) } // WithdrawAndCallReceiver is a paid mutator transaction binding the contract method 0x0abd8905. 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/pkg/contracts/prototypes/evm/testerc20.sol/testerc20.go b/v2/pkg/testerc20.sol/testerc20.go similarity index 58% rename from pkg/contracts/prototypes/evm/testerc20.sol/testerc20.go rename to v2/pkg/testerc20.sol/testerc20.go index c684251a..aa9751ba 100644 --- a/pkg/contracts/prototypes/evm/testerc20.sol/testerc20.go +++ b/v2/pkg/testerc20.sol/testerc20.go @@ -31,8 +31,8 @@ var ( // TestERC20MetaData contains all meta data concerning the TestERC20 contract. var TestERC20MetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", - Bin: "0x60806040523480156200001157600080fd5b5060405162001813380380620018138339818101604052810190620000379190620001a3565b818181600390805190602001906200005192919062000075565b5080600490805190602001906200006a92919062000075565b5050505050620003ac565b8280546200008390620002bd565b90600052602060002090601f016020900481019282620000a75760008555620000f3565b82601f10620000c257805160ff1916838001178555620000f3565b82800160010185558215620000f3579182015b82811115620000f2578251825591602001919060010190620000d5565b5b50905062000102919062000106565b5090565b5b808211156200012157600081600090555060010162000107565b5090565b60006200013c620001368462000251565b62000228565b9050828152602081018484840111156200015b576200015a6200038c565b5b6200016884828562000287565b509392505050565b600082601f83011262000188576200018762000387565b5b81516200019a84826020860162000125565b91505092915050565b60008060408385031215620001bd57620001bc62000396565b5b600083015167ffffffffffffffff811115620001de57620001dd62000391565b5b620001ec8582860162000170565b925050602083015167ffffffffffffffff81111562000210576200020f62000391565b5b6200021e8582860162000170565b9150509250929050565b60006200023462000247565b9050620002428282620002f3565b919050565b6000604051905090565b600067ffffffffffffffff8211156200026f576200026e62000358565b5b6200027a826200039b565b9050602081019050919050565b60005b83811015620002a75780820151818401526020810190506200028a565b83811115620002b7576000848401525b50505050565b60006002820490506001821680620002d657607f821691505b60208210811415620002ed57620002ec62000329565b5b50919050565b620002fe826200039b565b810181811067ffffffffffffffff8211171562000320576200031f62000358565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b61145780620003bc6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806340c10f191161007157806340c10f19146101a357806370a08231146101bf57806395d89b41146101ef578063a457c2d71461020d578063a9059cbb1461023d578063dd62ed3e1461026d576100b4565b806306fdde03146100b9578063095ea7b3146100d757806318160ddd1461010757806323b872dd14610125578063313ce567146101555780633950935114610173575b600080fd5b6100c161029d565b6040516100ce9190610ecf565b60405180910390f35b6100f160048036038101906100ec9190610cf6565b61032f565b6040516100fe9190610eb4565b60405180910390f35b61010f610352565b60405161011c9190610ff1565b60405180910390f35b61013f600480360381019061013a9190610ca3565b61035c565b60405161014c9190610eb4565b60405180910390f35b61015d61038b565b60405161016a919061100c565b60405180910390f35b61018d60048036038101906101889190610cf6565b610394565b60405161019a9190610eb4565b60405180910390f35b6101bd60048036038101906101b89190610cf6565b6103cb565b005b6101d960048036038101906101d49190610c36565b6103d9565b6040516101e69190610ff1565b60405180910390f35b6101f7610421565b6040516102049190610ecf565b60405180910390f35b61022760048036038101906102229190610cf6565b6104b3565b6040516102349190610eb4565b60405180910390f35b61025760048036038101906102529190610cf6565b61052a565b6040516102649190610eb4565b60405180910390f35b61028760048036038101906102829190610c63565b61054d565b6040516102949190610ff1565b60405180910390f35b6060600380546102ac90611121565b80601f01602080910402602001604051908101604052809291908181526020018280546102d890611121565b80156103255780601f106102fa57610100808354040283529160200191610325565b820191906000526020600020905b81548152906001019060200180831161030857829003601f168201915b5050505050905090565b60008061033a6105d4565b90506103478185856105dc565b600191505092915050565b6000600254905090565b6000806103676105d4565b90506103748582856107a7565b61037f858585610833565b60019150509392505050565b60006012905090565b60008061039f6105d4565b90506103c08185856103b1858961054d565b6103bb9190611043565b6105dc565b600191505092915050565b6103d58282610aab565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461043090611121565b80601f016020809104026020016040519081016040528092919081815260200182805461045c90611121565b80156104a95780601f1061047e576101008083540402835291602001916104a9565b820191906000526020600020905b81548152906001019060200180831161048c57829003601f168201915b5050505050905090565b6000806104be6105d4565b905060006104cc828661054d565b905083811015610511576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050890610fb1565b60405180910390fd5b61051e82868684036105dc565b60019250505092915050565b6000806105356105d4565b9050610542818585610833565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561064c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064390610f91565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156106bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b390610f11565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161079a9190610ff1565b60405180910390a3505050565b60006107b3848461054d565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461082d578181101561081f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081690610f31565b60405180910390fd5b61082c84848484036105dc565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156108a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089a90610f71565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090a90610ef1565b60405180910390fd5b61091e838383610c02565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156109a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099b90610f51565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a929190610ff1565b60405180910390a3610aa5848484610c07565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1290610fd1565b60405180910390fd5b610b2760008383610c02565b8060026000828254610b399190611043565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610bea9190610ff1565b60405180910390a3610bfe60008383610c07565b5050565b505050565b505050565b600081359050610c1b816113f3565b92915050565b600081359050610c308161140a565b92915050565b600060208284031215610c4c57610c4b6111b1565b5b6000610c5a84828501610c0c565b91505092915050565b60008060408385031215610c7a57610c796111b1565b5b6000610c8885828601610c0c565b9250506020610c9985828601610c0c565b9150509250929050565b600080600060608486031215610cbc57610cbb6111b1565b5b6000610cca86828701610c0c565b9350506020610cdb86828701610c0c565b9250506040610cec86828701610c21565b9150509250925092565b60008060408385031215610d0d57610d0c6111b1565b5b6000610d1b85828601610c0c565b9250506020610d2c85828601610c21565b9150509250929050565b610d3f816110ab565b82525050565b6000610d5082611027565b610d5a8185611032565b9350610d6a8185602086016110ee565b610d73816111b6565b840191505092915050565b6000610d8b602383611032565b9150610d96826111c7565b604082019050919050565b6000610dae602283611032565b9150610db982611216565b604082019050919050565b6000610dd1601d83611032565b9150610ddc82611265565b602082019050919050565b6000610df4602683611032565b9150610dff8261128e565b604082019050919050565b6000610e17602583611032565b9150610e22826112dd565b604082019050919050565b6000610e3a602483611032565b9150610e458261132c565b604082019050919050565b6000610e5d602583611032565b9150610e688261137b565b604082019050919050565b6000610e80601f83611032565b9150610e8b826113ca565b602082019050919050565b610e9f816110d7565b82525050565b610eae816110e1565b82525050565b6000602082019050610ec96000830184610d36565b92915050565b60006020820190508181036000830152610ee98184610d45565b905092915050565b60006020820190508181036000830152610f0a81610d7e565b9050919050565b60006020820190508181036000830152610f2a81610da1565b9050919050565b60006020820190508181036000830152610f4a81610dc4565b9050919050565b60006020820190508181036000830152610f6a81610de7565b9050919050565b60006020820190508181036000830152610f8a81610e0a565b9050919050565b60006020820190508181036000830152610faa81610e2d565b9050919050565b60006020820190508181036000830152610fca81610e50565b9050919050565b60006020820190508181036000830152610fea81610e73565b9050919050565b60006020820190506110066000830184610e96565b92915050565b60006020820190506110216000830184610ea5565b92915050565b600081519050919050565b600082825260208201905092915050565b600061104e826110d7565b9150611059836110d7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561108e5761108d611153565b5b828201905092915050565b60006110a4826110b7565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101561110c5780820151818401526020810190506110f1565b8381111561111b576000848401525b50505050565b6000600282049050600182168061113957607f821691505b6020821081141561114d5761114c611182565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6113fc81611099565b811461140757600080fd5b50565b611413816110d7565b811461141e57600080fd5b5056fea26469706673582212203c8c0934d33c58546e4ab2e4e41476df7926eae7ae1412541fc4d914f04b2c8364736f6c63430008070033", + 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. @@ -390,65 +390,23 @@ func (_TestERC20 *TestERC20CallerSession) TotalSupply() (*big.Int, error) { // Approve is a paid mutator transaction binding the contract method 0x095ea7b3. // -// Solidity: function approve(address spender, uint256 amount) returns(bool) -func (_TestERC20 *TestERC20Transactor) Approve(opts *bind.TransactOpts, spender common.Address, amount *big.Int) (*types.Transaction, error) { - return _TestERC20.contract.Transact(opts, "approve", spender, amount) +// 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 amount) returns(bool) -func (_TestERC20 *TestERC20Session) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) { - return _TestERC20.Contract.Approve(&_TestERC20.TransactOpts, spender, amount) +// 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 amount) returns(bool) -func (_TestERC20 *TestERC20TransactorSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) { - return _TestERC20.Contract.Approve(&_TestERC20.TransactOpts, spender, amount) -} - -// DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7. -// -// Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool) -func (_TestERC20 *TestERC20Transactor) DecreaseAllowance(opts *bind.TransactOpts, spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) { - return _TestERC20.contract.Transact(opts, "decreaseAllowance", spender, subtractedValue) -} - -// DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7. -// -// Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool) -func (_TestERC20 *TestERC20Session) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) { - return _TestERC20.Contract.DecreaseAllowance(&_TestERC20.TransactOpts, spender, subtractedValue) -} - -// DecreaseAllowance is a paid mutator transaction binding the contract method 0xa457c2d7. -// -// Solidity: function decreaseAllowance(address spender, uint256 subtractedValue) returns(bool) -func (_TestERC20 *TestERC20TransactorSession) DecreaseAllowance(spender common.Address, subtractedValue *big.Int) (*types.Transaction, error) { - return _TestERC20.Contract.DecreaseAllowance(&_TestERC20.TransactOpts, spender, subtractedValue) -} - -// IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351. -// -// Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool) -func (_TestERC20 *TestERC20Transactor) IncreaseAllowance(opts *bind.TransactOpts, spender common.Address, addedValue *big.Int) (*types.Transaction, error) { - return _TestERC20.contract.Transact(opts, "increaseAllowance", spender, addedValue) -} - -// IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351. -// -// Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool) -func (_TestERC20 *TestERC20Session) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) { - return _TestERC20.Contract.IncreaseAllowance(&_TestERC20.TransactOpts, spender, addedValue) -} - -// IncreaseAllowance is a paid mutator transaction binding the contract method 0x39509351. -// -// Solidity: function increaseAllowance(address spender, uint256 addedValue) returns(bool) -func (_TestERC20 *TestERC20TransactorSession) IncreaseAllowance(spender common.Address, addedValue *big.Int) (*types.Transaction, error) { - return _TestERC20.Contract.IncreaseAllowance(&_TestERC20.TransactOpts, spender, addedValue) +// 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. @@ -474,44 +432,44 @@ func (_TestERC20 *TestERC20TransactorSession) Mint(to common.Address, amount *bi // Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. // -// Solidity: function transfer(address to, uint256 amount) returns(bool) -func (_TestERC20 *TestERC20Transactor) Transfer(opts *bind.TransactOpts, to common.Address, amount *big.Int) (*types.Transaction, error) { - return _TestERC20.contract.Transact(opts, "transfer", to, amount) +// 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 amount) returns(bool) -func (_TestERC20 *TestERC20Session) Transfer(to common.Address, amount *big.Int) (*types.Transaction, error) { - return _TestERC20.Contract.Transfer(&_TestERC20.TransactOpts, to, amount) +// 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 amount) returns(bool) -func (_TestERC20 *TestERC20TransactorSession) Transfer(to common.Address, amount *big.Int) (*types.Transaction, error) { - return _TestERC20.Contract.Transfer(&_TestERC20.TransactOpts, to, amount) +// 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 amount) returns(bool) -func (_TestERC20 *TestERC20Transactor) TransferFrom(opts *bind.TransactOpts, from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { - return _TestERC20.contract.Transact(opts, "transferFrom", from, to, amount) +// 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 amount) returns(bool) -func (_TestERC20 *TestERC20Session) TransferFrom(from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { - return _TestERC20.Contract.TransferFrom(&_TestERC20.TransactOpts, from, to, amount) +// 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 amount) returns(bool) -func (_TestERC20 *TestERC20TransactorSession) TransferFrom(from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { - return _TestERC20.Contract.TransferFrom(&_TestERC20.TransactOpts, from, to, amount) +// 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. diff --git a/pkg/contracts/prototypes/zevm/testzcontract.sol/testzcontract.go b/v2/pkg/testzcontract.sol/testzcontract.go similarity index 78% rename from pkg/contracts/prototypes/zevm/testzcontract.sol/testzcontract.go rename to v2/pkg/testzcontract.sol/testzcontract.go index d476465a..81bfb866 100644 --- a/pkg/contracts/prototypes/zevm/testzcontract.sol/testzcontract.go +++ b/v2/pkg/testzcontract.sol/testzcontract.go @@ -45,8 +45,8 @@ type ZContext struct { // TestZContractMetaData contains all meta data concerning the TestZContract contract. var TestZContractMetaData = &bind.MetaData{ - ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"origin\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"chainID\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"name\":\"ContextData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"origin\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"chainID\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"name\":\"ContextDataRevert\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"origin\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainID\",\"type\":\"uint256\"}],\"internalType\":\"structzContext\",\"name\":\"context\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"zrc20\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"onCrossChainCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"origin\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainID\",\"type\":\"uint256\"}],\"internalType\":\"structrevertContext\",\"name\":\"context\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"zrc20\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"onRevert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", - Bin: "0x608060405234801561001057600080fd5b506107e0806100206000396000f3fe60806040526004361061002d5760003560e01c806369582bee14610036578063de43156e1461005f57610034565b3661003457005b005b34801561004257600080fd5b5061005d60048036038101906100589190610346565b610088565b005b34801561006b57600080fd5b50610086600480360381019061008191906103ea565b610115565b005b606060008383905011156100a85782828101906100a591906102fd565b90505b7ffdc887992b033668833927e252058e468fac0b6bd196d520f09c61b740e999488680600001906100d99190610575565b8860200160208101906100ec91906102d0565b8960400135338660405161010596959493929190610512565b60405180910390a1505050505050565b6060600083839050111561013557828281019061013291906102fd565b90505b7fcdc8ee677dc5ebe680fb18cebda5e26ba5ea1f0ba504a47e2a9a2ecb476dc98e8680600001906101669190610575565b88602001602081019061017991906102d0565b8960400135338660405161019296959493929190610512565b60405180910390a1505050505050565b60006101b56101b0846105fd565b6105d8565b9050828152602081018484840111156101d1576101d061075c565b5b6101dc848285610697565b509392505050565b6000813590506101f38161077c565b92915050565b60008083601f84011261020f5761020e61073e565b5b8235905067ffffffffffffffff81111561022c5761022b610739565b5b60208301915083600182028301111561024857610247610752565b5b9250929050565b600082601f8301126102645761026361073e565b5b81356102748482602086016101a2565b91505092915050565b60006060828403121561029357610292610748565b5b81905092915050565b6000606082840312156102b2576102b1610748565b5b81905092915050565b6000813590506102ca81610793565b92915050565b6000602082840312156102e6576102e5610766565b5b60006102f4848285016101e4565b91505092915050565b60006020828403121561031357610312610766565b5b600082013567ffffffffffffffff81111561033157610330610761565b5b61033d8482850161024f565b91505092915050565b60008060008060006080868803121561036257610361610766565b5b600086013567ffffffffffffffff8111156103805761037f610761565b5b61038c8882890161027d565b955050602061039d888289016101e4565b94505060406103ae888289016102bb565b935050606086013567ffffffffffffffff8111156103cf576103ce610761565b5b6103db888289016101f9565b92509250509295509295909350565b60008060008060006080868803121561040657610405610766565b5b600086013567ffffffffffffffff81111561042457610423610761565b5b6104308882890161029c565b9550506020610441888289016101e4565b9450506040610452888289016102bb565b935050606086013567ffffffffffffffff81111561047357610472610761565b5b61047f888289016101f9565b92509250509295509295909350565b6104978161065b565b82525050565b60006104a98385610639565b93506104b6838584610697565b6104bf8361076b565b840190509392505050565b60006104d58261062e565b6104df818561064a565b93506104ef8185602086016106a6565b6104f88161076b565b840191505092915050565b61050c8161068d565b82525050565b600060a082019050818103600083015261052d81888a61049d565b905061053c602083018761048e565b6105496040830186610503565b610556606083018561048e565b818103608083015261056881846104ca565b9050979650505050505050565b600080833560016020038436030381126105925761059161074d565b5b80840192508235915067ffffffffffffffff8211156105b4576105b3610743565b5b6020830192506001820236038313156105d0576105cf610757565b5b509250929050565b60006105e26105f3565b90506105ee82826106d9565b919050565b6000604051905090565b600067ffffffffffffffff8211156106185761061761070a565b5b6106218261076b565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006106668261066d565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156106c45780820151818401526020810190506106a9565b838111156106d3576000848401525b50505050565b6106e28261076b565b810181811067ffffffffffffffff821117156107015761070061070a565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b6107858161065b565b811461079057600080fd5b50565b61079c8161068d565b81146107a757600080fd5b5056fea2646970667358221220febf3f8cf5fd0742329aa443cb341b916e26ee1be7a429c48a3a28b956bd845f64736f6c63430008070033", + 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. 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/pkg/openzeppelin/contracts-upgradeable/proxy/utils/uupsupgradeable.sol/uupsupgradeable.go b/v2/pkg/uupsupgradeable.sol/uupsupgradeable.go similarity index 61% rename from pkg/openzeppelin/contracts-upgradeable/proxy/utils/uupsupgradeable.sol/uupsupgradeable.go rename to v2/pkg/uupsupgradeable.sol/uupsupgradeable.go index f91be08a..fa578367 100644 --- a/pkg/openzeppelin/contracts-upgradeable/proxy/utils/uupsupgradeable.sol/uupsupgradeable.go +++ b/v2/pkg/uupsupgradeable.sol/uupsupgradeable.go @@ -31,7 +31,7 @@ var ( // UUPSUpgradeableMetaData contains all meta data concerning the UUPSUpgradeable contract. var UUPSUpgradeableMetaData = &bind.MetaData{ - ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}]", + 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. @@ -180,6 +180,37 @@ func (_UUPSUpgradeable *UUPSUpgradeableTransactorRaw) Transact(opts *bind.Transa 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) @@ -211,27 +242,6 @@ func (_UUPSUpgradeable *UUPSUpgradeableCallerSession) ProxiableUUID() ([32]byte, return _UUPSUpgradeable.Contract.ProxiableUUID(&_UUPSUpgradeable.CallOpts) } -// UpgradeTo is a paid mutator transaction binding the contract method 0x3659cfe6. -// -// Solidity: function upgradeTo(address newImplementation) returns() -func (_UUPSUpgradeable *UUPSUpgradeableTransactor) UpgradeTo(opts *bind.TransactOpts, newImplementation common.Address) (*types.Transaction, error) { - return _UUPSUpgradeable.contract.Transact(opts, "upgradeTo", newImplementation) -} - -// UpgradeTo is a paid mutator transaction binding the contract method 0x3659cfe6. -// -// Solidity: function upgradeTo(address newImplementation) returns() -func (_UUPSUpgradeable *UUPSUpgradeableSession) UpgradeTo(newImplementation common.Address) (*types.Transaction, error) { - return _UUPSUpgradeable.Contract.UpgradeTo(&_UUPSUpgradeable.TransactOpts, newImplementation) -} - -// UpgradeTo is a paid mutator transaction binding the contract method 0x3659cfe6. -// -// Solidity: function upgradeTo(address newImplementation) returns() -func (_UUPSUpgradeable *UUPSUpgradeableTransactorSession) UpgradeTo(newImplementation common.Address) (*types.Transaction, error) { - return _UUPSUpgradeable.Contract.UpgradeTo(&_UUPSUpgradeable.TransactOpts, newImplementation) -} - // UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286. // // Solidity: function upgradeToAndCall(address newImplementation, bytes data) payable returns() @@ -253,285 +263,6 @@ func (_UUPSUpgradeable *UUPSUpgradeableTransactorSession) UpgradeToAndCall(newIm return _UUPSUpgradeable.Contract.UpgradeToAndCall(&_UUPSUpgradeable.TransactOpts, newImplementation, data) } -// UUPSUpgradeableAdminChangedIterator is returned from FilterAdminChanged and is used to iterate over the raw logs and unpacked data for AdminChanged events raised by the UUPSUpgradeable contract. -type UUPSUpgradeableAdminChangedIterator struct { - Event *UUPSUpgradeableAdminChanged // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *UUPSUpgradeableAdminChangedIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(UUPSUpgradeableAdminChanged) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(UUPSUpgradeableAdminChanged) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *UUPSUpgradeableAdminChangedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *UUPSUpgradeableAdminChangedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// UUPSUpgradeableAdminChanged represents a AdminChanged event raised by the UUPSUpgradeable contract. -type UUPSUpgradeableAdminChanged 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 (_UUPSUpgradeable *UUPSUpgradeableFilterer) FilterAdminChanged(opts *bind.FilterOpts) (*UUPSUpgradeableAdminChangedIterator, error) { - - logs, sub, err := _UUPSUpgradeable.contract.FilterLogs(opts, "AdminChanged") - if err != nil { - return nil, err - } - return &UUPSUpgradeableAdminChangedIterator{contract: _UUPSUpgradeable.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 (_UUPSUpgradeable *UUPSUpgradeableFilterer) WatchAdminChanged(opts *bind.WatchOpts, sink chan<- *UUPSUpgradeableAdminChanged) (event.Subscription, error) { - - logs, sub, err := _UUPSUpgradeable.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(UUPSUpgradeableAdminChanged) - if err := _UUPSUpgradeable.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 (_UUPSUpgradeable *UUPSUpgradeableFilterer) ParseAdminChanged(log types.Log) (*UUPSUpgradeableAdminChanged, error) { - event := new(UUPSUpgradeableAdminChanged) - if err := _UUPSUpgradeable.contract.UnpackLog(event, "AdminChanged", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// UUPSUpgradeableBeaconUpgradedIterator is returned from FilterBeaconUpgraded and is used to iterate over the raw logs and unpacked data for BeaconUpgraded events raised by the UUPSUpgradeable contract. -type UUPSUpgradeableBeaconUpgradedIterator struct { - Event *UUPSUpgradeableBeaconUpgraded // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *UUPSUpgradeableBeaconUpgradedIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(UUPSUpgradeableBeaconUpgraded) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(UUPSUpgradeableBeaconUpgraded) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *UUPSUpgradeableBeaconUpgradedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *UUPSUpgradeableBeaconUpgradedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// UUPSUpgradeableBeaconUpgraded represents a BeaconUpgraded event raised by the UUPSUpgradeable contract. -type UUPSUpgradeableBeaconUpgraded 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 (_UUPSUpgradeable *UUPSUpgradeableFilterer) FilterBeaconUpgraded(opts *bind.FilterOpts, beacon []common.Address) (*UUPSUpgradeableBeaconUpgradedIterator, error) { - - var beaconRule []interface{} - for _, beaconItem := range beacon { - beaconRule = append(beaconRule, beaconItem) - } - - logs, sub, err := _UUPSUpgradeable.contract.FilterLogs(opts, "BeaconUpgraded", beaconRule) - if err != nil { - return nil, err - } - return &UUPSUpgradeableBeaconUpgradedIterator{contract: _UUPSUpgradeable.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 (_UUPSUpgradeable *UUPSUpgradeableFilterer) WatchBeaconUpgraded(opts *bind.WatchOpts, sink chan<- *UUPSUpgradeableBeaconUpgraded, beacon []common.Address) (event.Subscription, error) { - - var beaconRule []interface{} - for _, beaconItem := range beacon { - beaconRule = append(beaconRule, beaconItem) - } - - logs, sub, err := _UUPSUpgradeable.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(UUPSUpgradeableBeaconUpgraded) - if err := _UUPSUpgradeable.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 (_UUPSUpgradeable *UUPSUpgradeableFilterer) ParseBeaconUpgraded(log types.Log) (*UUPSUpgradeableBeaconUpgraded, error) { - event := new(UUPSUpgradeableBeaconUpgraded) - if err := _UUPSUpgradeable.contract.UnpackLog(event, "BeaconUpgraded", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - // 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 @@ -601,13 +332,13 @@ func (it *UUPSUpgradeableInitializedIterator) Close() error { // UUPSUpgradeableInitialized represents a Initialized event raised by the UUPSUpgradeable contract. type UUPSUpgradeableInitialized struct { - Version uint8 + Version uint64 Raw types.Log // Blockchain specific contextual infos } -// FilterInitialized is a free log retrieval operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. +// FilterInitialized is a free log retrieval operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. // -// Solidity: event Initialized(uint8 version) +// Solidity: event Initialized(uint64 version) func (_UUPSUpgradeable *UUPSUpgradeableFilterer) FilterInitialized(opts *bind.FilterOpts) (*UUPSUpgradeableInitializedIterator, error) { logs, sub, err := _UUPSUpgradeable.contract.FilterLogs(opts, "Initialized") @@ -617,9 +348,9 @@ func (_UUPSUpgradeable *UUPSUpgradeableFilterer) FilterInitialized(opts *bind.Fi return &UUPSUpgradeableInitializedIterator{contract: _UUPSUpgradeable.contract, event: "Initialized", logs: logs, sub: sub}, nil } -// WatchInitialized is a free log subscription operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. +// WatchInitialized is a free log subscription operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. // -// Solidity: event Initialized(uint8 version) +// 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") @@ -654,9 +385,9 @@ func (_UUPSUpgradeable *UUPSUpgradeableFilterer) WatchInitialized(opts *bind.Wat }), nil } -// ParseInitialized is a log parse operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. +// ParseInitialized is a log parse operation binding the contract event 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2. // -// Solidity: event Initialized(uint8 version) +// 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 { 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/zetaconnectorbase.sol/zetaconnectorbase.go b/v2/pkg/zetaconnectorbase.sol/zetaconnectorbase.go new file mode 100644 index 00000000..67c61efa --- /dev/null +++ b/v2/pkg/zetaconnectorbase.sol/zetaconnectorbase.go @@ -0,0 +1,1871 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package zetaconnectorbase + +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 +) + +// ZetaConnectorBaseMetaData contains all meta data concerning the ZetaConnectorBase contract. +var ZetaConnectorBaseMetaData = &bind.MetaData{ + ABI: "[{\"type\":\"function\",\"name\":\"DEFAULT_ADMIN_ROLE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"PAUSER_ROLE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"WITHDRAWER_ROLE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"gateway\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIGatewayEVM\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRoleAdmin\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"grantRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"hasRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"receiveTokens\",\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"renounceRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"callerConfirmation\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"revokeRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"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\":\"tssAddress\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"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\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RoleAdminChanged\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"previousAdminRole\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"newAdminRole\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RoleGranted\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RoleRevoked\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"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\":\"AccessControlBadConfirmation\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"AccessControlUnauthorizedAccount\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"neededRole\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"type\":\"error\",\"name\":\"EnforcedPause\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExpectedPause\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ReentrancyGuardReentrantCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ZeroAddress\",\"inputs\":[]}]", +} + +// ZetaConnectorBaseABI is the input ABI used to generate the binding from. +// Deprecated: Use ZetaConnectorBaseMetaData.ABI instead. +var ZetaConnectorBaseABI = ZetaConnectorBaseMetaData.ABI + +// ZetaConnectorBase is an auto generated Go binding around an Ethereum contract. +type ZetaConnectorBase struct { + ZetaConnectorBaseCaller // Read-only binding to the contract + ZetaConnectorBaseTransactor // Write-only binding to the contract + ZetaConnectorBaseFilterer // Log filterer for contract events +} + +// ZetaConnectorBaseCaller is an auto generated read-only Go binding around an Ethereum contract. +type ZetaConnectorBaseCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZetaConnectorBaseTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ZetaConnectorBaseTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZetaConnectorBaseFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ZetaConnectorBaseFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZetaConnectorBaseSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ZetaConnectorBaseSession struct { + Contract *ZetaConnectorBase // 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 +} + +// ZetaConnectorBaseCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ZetaConnectorBaseCallerSession struct { + Contract *ZetaConnectorBaseCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ZetaConnectorBaseTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ZetaConnectorBaseTransactorSession struct { + Contract *ZetaConnectorBaseTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ZetaConnectorBaseRaw is an auto generated low-level Go binding around an Ethereum contract. +type ZetaConnectorBaseRaw struct { + Contract *ZetaConnectorBase // Generic contract binding to access the raw methods on +} + +// ZetaConnectorBaseCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ZetaConnectorBaseCallerRaw struct { + Contract *ZetaConnectorBaseCaller // Generic read-only contract binding to access the raw methods on +} + +// ZetaConnectorBaseTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ZetaConnectorBaseTransactorRaw struct { + Contract *ZetaConnectorBaseTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewZetaConnectorBase creates a new instance of ZetaConnectorBase, bound to a specific deployed contract. +func NewZetaConnectorBase(address common.Address, backend bind.ContractBackend) (*ZetaConnectorBase, error) { + contract, err := bindZetaConnectorBase(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ZetaConnectorBase{ZetaConnectorBaseCaller: ZetaConnectorBaseCaller{contract: contract}, ZetaConnectorBaseTransactor: ZetaConnectorBaseTransactor{contract: contract}, ZetaConnectorBaseFilterer: ZetaConnectorBaseFilterer{contract: contract}}, nil +} + +// NewZetaConnectorBaseCaller creates a new read-only instance of ZetaConnectorBase, bound to a specific deployed contract. +func NewZetaConnectorBaseCaller(address common.Address, caller bind.ContractCaller) (*ZetaConnectorBaseCaller, error) { + contract, err := bindZetaConnectorBase(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ZetaConnectorBaseCaller{contract: contract}, nil +} + +// NewZetaConnectorBaseTransactor creates a new write-only instance of ZetaConnectorBase, bound to a specific deployed contract. +func NewZetaConnectorBaseTransactor(address common.Address, transactor bind.ContractTransactor) (*ZetaConnectorBaseTransactor, error) { + contract, err := bindZetaConnectorBase(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ZetaConnectorBaseTransactor{contract: contract}, nil +} + +// NewZetaConnectorBaseFilterer creates a new log filterer instance of ZetaConnectorBase, bound to a specific deployed contract. +func NewZetaConnectorBaseFilterer(address common.Address, filterer bind.ContractFilterer) (*ZetaConnectorBaseFilterer, error) { + contract, err := bindZetaConnectorBase(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ZetaConnectorBaseFilterer{contract: contract}, nil +} + +// bindZetaConnectorBase binds a generic wrapper to an already deployed contract. +func bindZetaConnectorBase(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := ZetaConnectorBaseMetaData.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 (_ZetaConnectorBase *ZetaConnectorBaseRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ZetaConnectorBase.Contract.ZetaConnectorBaseCaller.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 (_ZetaConnectorBase *ZetaConnectorBaseRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaConnectorBase.Contract.ZetaConnectorBaseTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ZetaConnectorBase *ZetaConnectorBaseRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ZetaConnectorBase.Contract.ZetaConnectorBaseTransactor.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 (_ZetaConnectorBase *ZetaConnectorBaseCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ZetaConnectorBase.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 (_ZetaConnectorBase *ZetaConnectorBaseTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaConnectorBase.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ZetaConnectorBase *ZetaConnectorBaseTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ZetaConnectorBase.Contract.contract.Transact(opts, method, params...) +} + +// DEFAULTADMINROLE is a free data retrieval call binding the contract method 0xa217fddf. +// +// Solidity: function DEFAULT_ADMIN_ROLE() view returns(bytes32) +func (_ZetaConnectorBase *ZetaConnectorBaseCaller) DEFAULTADMINROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _ZetaConnectorBase.contract.Call(opts, &out, "DEFAULT_ADMIN_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// DEFAULTADMINROLE is a free data retrieval call binding the contract method 0xa217fddf. +// +// Solidity: function DEFAULT_ADMIN_ROLE() view returns(bytes32) +func (_ZetaConnectorBase *ZetaConnectorBaseSession) DEFAULTADMINROLE() ([32]byte, error) { + return _ZetaConnectorBase.Contract.DEFAULTADMINROLE(&_ZetaConnectorBase.CallOpts) +} + +// DEFAULTADMINROLE is a free data retrieval call binding the contract method 0xa217fddf. +// +// Solidity: function DEFAULT_ADMIN_ROLE() view returns(bytes32) +func (_ZetaConnectorBase *ZetaConnectorBaseCallerSession) DEFAULTADMINROLE() ([32]byte, error) { + return _ZetaConnectorBase.Contract.DEFAULTADMINROLE(&_ZetaConnectorBase.CallOpts) +} + +// PAUSERROLE is a free data retrieval call binding the contract method 0xe63ab1e9. +// +// Solidity: function PAUSER_ROLE() view returns(bytes32) +func (_ZetaConnectorBase *ZetaConnectorBaseCaller) PAUSERROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _ZetaConnectorBase.contract.Call(opts, &out, "PAUSER_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// PAUSERROLE is a free data retrieval call binding the contract method 0xe63ab1e9. +// +// Solidity: function PAUSER_ROLE() view returns(bytes32) +func (_ZetaConnectorBase *ZetaConnectorBaseSession) PAUSERROLE() ([32]byte, error) { + return _ZetaConnectorBase.Contract.PAUSERROLE(&_ZetaConnectorBase.CallOpts) +} + +// PAUSERROLE is a free data retrieval call binding the contract method 0xe63ab1e9. +// +// Solidity: function PAUSER_ROLE() view returns(bytes32) +func (_ZetaConnectorBase *ZetaConnectorBaseCallerSession) PAUSERROLE() ([32]byte, error) { + return _ZetaConnectorBase.Contract.PAUSERROLE(&_ZetaConnectorBase.CallOpts) +} + +// WITHDRAWERROLE is a free data retrieval call binding the contract method 0x85f438c1. +// +// Solidity: function WITHDRAWER_ROLE() view returns(bytes32) +func (_ZetaConnectorBase *ZetaConnectorBaseCaller) WITHDRAWERROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _ZetaConnectorBase.contract.Call(opts, &out, "WITHDRAWER_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// WITHDRAWERROLE is a free data retrieval call binding the contract method 0x85f438c1. +// +// Solidity: function WITHDRAWER_ROLE() view returns(bytes32) +func (_ZetaConnectorBase *ZetaConnectorBaseSession) WITHDRAWERROLE() ([32]byte, error) { + return _ZetaConnectorBase.Contract.WITHDRAWERROLE(&_ZetaConnectorBase.CallOpts) +} + +// WITHDRAWERROLE is a free data retrieval call binding the contract method 0x85f438c1. +// +// Solidity: function WITHDRAWER_ROLE() view returns(bytes32) +func (_ZetaConnectorBase *ZetaConnectorBaseCallerSession) WITHDRAWERROLE() ([32]byte, error) { + return _ZetaConnectorBase.Contract.WITHDRAWERROLE(&_ZetaConnectorBase.CallOpts) +} + +// Gateway is a free data retrieval call binding the contract method 0x116191b6. +// +// Solidity: function gateway() view returns(address) +func (_ZetaConnectorBase *ZetaConnectorBaseCaller) Gateway(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ZetaConnectorBase.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 (_ZetaConnectorBase *ZetaConnectorBaseSession) Gateway() (common.Address, error) { + return _ZetaConnectorBase.Contract.Gateway(&_ZetaConnectorBase.CallOpts) +} + +// Gateway is a free data retrieval call binding the contract method 0x116191b6. +// +// Solidity: function gateway() view returns(address) +func (_ZetaConnectorBase *ZetaConnectorBaseCallerSession) Gateway() (common.Address, error) { + return _ZetaConnectorBase.Contract.Gateway(&_ZetaConnectorBase.CallOpts) +} + +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. +// +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_ZetaConnectorBase *ZetaConnectorBaseCaller) GetRoleAdmin(opts *bind.CallOpts, role [32]byte) ([32]byte, error) { + var out []interface{} + err := _ZetaConnectorBase.contract.Call(opts, &out, "getRoleAdmin", role) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. +// +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_ZetaConnectorBase *ZetaConnectorBaseSession) GetRoleAdmin(role [32]byte) ([32]byte, error) { + return _ZetaConnectorBase.Contract.GetRoleAdmin(&_ZetaConnectorBase.CallOpts, role) +} + +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. +// +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_ZetaConnectorBase *ZetaConnectorBaseCallerSession) GetRoleAdmin(role [32]byte) ([32]byte, error) { + return _ZetaConnectorBase.Contract.GetRoleAdmin(&_ZetaConnectorBase.CallOpts, role) +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_ZetaConnectorBase *ZetaConnectorBaseCaller) HasRole(opts *bind.CallOpts, role [32]byte, account common.Address) (bool, error) { + var out []interface{} + err := _ZetaConnectorBase.contract.Call(opts, &out, "hasRole", role, account) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_ZetaConnectorBase *ZetaConnectorBaseSession) HasRole(role [32]byte, account common.Address) (bool, error) { + return _ZetaConnectorBase.Contract.HasRole(&_ZetaConnectorBase.CallOpts, role, account) +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_ZetaConnectorBase *ZetaConnectorBaseCallerSession) HasRole(role [32]byte, account common.Address) (bool, error) { + return _ZetaConnectorBase.Contract.HasRole(&_ZetaConnectorBase.CallOpts, role, account) +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_ZetaConnectorBase *ZetaConnectorBaseCaller) Paused(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _ZetaConnectorBase.contract.Call(opts, &out, "paused") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_ZetaConnectorBase *ZetaConnectorBaseSession) Paused() (bool, error) { + return _ZetaConnectorBase.Contract.Paused(&_ZetaConnectorBase.CallOpts) +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_ZetaConnectorBase *ZetaConnectorBaseCallerSession) Paused() (bool, error) { + return _ZetaConnectorBase.Contract.Paused(&_ZetaConnectorBase.CallOpts) +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) +func (_ZetaConnectorBase *ZetaConnectorBaseCaller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) { + var out []interface{} + err := _ZetaConnectorBase.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 (_ZetaConnectorBase *ZetaConnectorBaseSession) SupportsInterface(interfaceId [4]byte) (bool, error) { + return _ZetaConnectorBase.Contract.SupportsInterface(&_ZetaConnectorBase.CallOpts, interfaceId) +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) +func (_ZetaConnectorBase *ZetaConnectorBaseCallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) { + return _ZetaConnectorBase.Contract.SupportsInterface(&_ZetaConnectorBase.CallOpts, interfaceId) +} + +// TssAddress is a free data retrieval call binding the contract method 0x5b112591. +// +// Solidity: function tssAddress() view returns(address) +func (_ZetaConnectorBase *ZetaConnectorBaseCaller) TssAddress(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ZetaConnectorBase.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 (_ZetaConnectorBase *ZetaConnectorBaseSession) TssAddress() (common.Address, error) { + return _ZetaConnectorBase.Contract.TssAddress(&_ZetaConnectorBase.CallOpts) +} + +// TssAddress is a free data retrieval call binding the contract method 0x5b112591. +// +// Solidity: function tssAddress() view returns(address) +func (_ZetaConnectorBase *ZetaConnectorBaseCallerSession) TssAddress() (common.Address, error) { + return _ZetaConnectorBase.Contract.TssAddress(&_ZetaConnectorBase.CallOpts) +} + +// ZetaToken is a free data retrieval call binding the contract method 0x21e093b1. +// +// Solidity: function zetaToken() view returns(address) +func (_ZetaConnectorBase *ZetaConnectorBaseCaller) ZetaToken(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ZetaConnectorBase.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 (_ZetaConnectorBase *ZetaConnectorBaseSession) ZetaToken() (common.Address, error) { + return _ZetaConnectorBase.Contract.ZetaToken(&_ZetaConnectorBase.CallOpts) +} + +// ZetaToken is a free data retrieval call binding the contract method 0x21e093b1. +// +// Solidity: function zetaToken() view returns(address) +func (_ZetaConnectorBase *ZetaConnectorBaseCallerSession) ZetaToken() (common.Address, error) { + return _ZetaConnectorBase.Contract.ZetaToken(&_ZetaConnectorBase.CallOpts) +} + +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_ZetaConnectorBase *ZetaConnectorBaseTransactor) GrantRole(opts *bind.TransactOpts, role [32]byte, account common.Address) (*types.Transaction, error) { + return _ZetaConnectorBase.contract.Transact(opts, "grantRole", role, account) +} + +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_ZetaConnectorBase *ZetaConnectorBaseSession) GrantRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _ZetaConnectorBase.Contract.GrantRole(&_ZetaConnectorBase.TransactOpts, role, account) +} + +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_ZetaConnectorBase *ZetaConnectorBaseTransactorSession) GrantRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _ZetaConnectorBase.Contract.GrantRole(&_ZetaConnectorBase.TransactOpts, role, account) +} + +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. +// +// Solidity: function pause() returns() +func (_ZetaConnectorBase *ZetaConnectorBaseTransactor) Pause(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaConnectorBase.contract.Transact(opts, "pause") +} + +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. +// +// Solidity: function pause() returns() +func (_ZetaConnectorBase *ZetaConnectorBaseSession) Pause() (*types.Transaction, error) { + return _ZetaConnectorBase.Contract.Pause(&_ZetaConnectorBase.TransactOpts) +} + +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. +// +// Solidity: function pause() returns() +func (_ZetaConnectorBase *ZetaConnectorBaseTransactorSession) Pause() (*types.Transaction, error) { + return _ZetaConnectorBase.Contract.Pause(&_ZetaConnectorBase.TransactOpts) +} + +// ReceiveTokens is a paid mutator transaction binding the contract method 0x743e0c9b. +// +// Solidity: function receiveTokens(uint256 amount) returns() +func (_ZetaConnectorBase *ZetaConnectorBaseTransactor) ReceiveTokens(opts *bind.TransactOpts, amount *big.Int) (*types.Transaction, error) { + return _ZetaConnectorBase.contract.Transact(opts, "receiveTokens", amount) +} + +// ReceiveTokens is a paid mutator transaction binding the contract method 0x743e0c9b. +// +// Solidity: function receiveTokens(uint256 amount) returns() +func (_ZetaConnectorBase *ZetaConnectorBaseSession) ReceiveTokens(amount *big.Int) (*types.Transaction, error) { + return _ZetaConnectorBase.Contract.ReceiveTokens(&_ZetaConnectorBase.TransactOpts, amount) +} + +// ReceiveTokens is a paid mutator transaction binding the contract method 0x743e0c9b. +// +// Solidity: function receiveTokens(uint256 amount) returns() +func (_ZetaConnectorBase *ZetaConnectorBaseTransactorSession) ReceiveTokens(amount *big.Int) (*types.Transaction, error) { + return _ZetaConnectorBase.Contract.ReceiveTokens(&_ZetaConnectorBase.TransactOpts, amount) +} + +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. +// +// Solidity: function renounceRole(bytes32 role, address callerConfirmation) returns() +func (_ZetaConnectorBase *ZetaConnectorBaseTransactor) RenounceRole(opts *bind.TransactOpts, role [32]byte, callerConfirmation common.Address) (*types.Transaction, error) { + return _ZetaConnectorBase.contract.Transact(opts, "renounceRole", role, callerConfirmation) +} + +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. +// +// Solidity: function renounceRole(bytes32 role, address callerConfirmation) returns() +func (_ZetaConnectorBase *ZetaConnectorBaseSession) RenounceRole(role [32]byte, callerConfirmation common.Address) (*types.Transaction, error) { + return _ZetaConnectorBase.Contract.RenounceRole(&_ZetaConnectorBase.TransactOpts, role, callerConfirmation) +} + +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. +// +// Solidity: function renounceRole(bytes32 role, address callerConfirmation) returns() +func (_ZetaConnectorBase *ZetaConnectorBaseTransactorSession) RenounceRole(role [32]byte, callerConfirmation common.Address) (*types.Transaction, error) { + return _ZetaConnectorBase.Contract.RenounceRole(&_ZetaConnectorBase.TransactOpts, role, callerConfirmation) +} + +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_ZetaConnectorBase *ZetaConnectorBaseTransactor) RevokeRole(opts *bind.TransactOpts, role [32]byte, account common.Address) (*types.Transaction, error) { + return _ZetaConnectorBase.contract.Transact(opts, "revokeRole", role, account) +} + +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_ZetaConnectorBase *ZetaConnectorBaseSession) RevokeRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _ZetaConnectorBase.Contract.RevokeRole(&_ZetaConnectorBase.TransactOpts, role, account) +} + +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_ZetaConnectorBase *ZetaConnectorBaseTransactorSession) RevokeRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _ZetaConnectorBase.Contract.RevokeRole(&_ZetaConnectorBase.TransactOpts, role, account) +} + +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. +// +// Solidity: function unpause() returns() +func (_ZetaConnectorBase *ZetaConnectorBaseTransactor) Unpause(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaConnectorBase.contract.Transact(opts, "unpause") +} + +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. +// +// Solidity: function unpause() returns() +func (_ZetaConnectorBase *ZetaConnectorBaseSession) Unpause() (*types.Transaction, error) { + return _ZetaConnectorBase.Contract.Unpause(&_ZetaConnectorBase.TransactOpts) +} + +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. +// +// Solidity: function unpause() returns() +func (_ZetaConnectorBase *ZetaConnectorBaseTransactorSession) Unpause() (*types.Transaction, error) { + return _ZetaConnectorBase.Contract.Unpause(&_ZetaConnectorBase.TransactOpts) +} + +// Withdraw is a paid mutator transaction binding the contract method 0x106e6290. +// +// Solidity: function withdraw(address to, uint256 amount, bytes32 internalSendHash) returns() +func (_ZetaConnectorBase *ZetaConnectorBaseTransactor) Withdraw(opts *bind.TransactOpts, to common.Address, amount *big.Int, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaConnectorBase.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 (_ZetaConnectorBase *ZetaConnectorBaseSession) Withdraw(to common.Address, amount *big.Int, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaConnectorBase.Contract.Withdraw(&_ZetaConnectorBase.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 (_ZetaConnectorBase *ZetaConnectorBaseTransactorSession) Withdraw(to common.Address, amount *big.Int, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaConnectorBase.Contract.Withdraw(&_ZetaConnectorBase.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 (_ZetaConnectorBase *ZetaConnectorBaseTransactor) WithdrawAndCall(opts *bind.TransactOpts, to common.Address, amount *big.Int, data []byte, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaConnectorBase.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 (_ZetaConnectorBase *ZetaConnectorBaseSession) WithdrawAndCall(to common.Address, amount *big.Int, data []byte, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaConnectorBase.Contract.WithdrawAndCall(&_ZetaConnectorBase.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 (_ZetaConnectorBase *ZetaConnectorBaseTransactorSession) WithdrawAndCall(to common.Address, amount *big.Int, data []byte, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaConnectorBase.Contract.WithdrawAndCall(&_ZetaConnectorBase.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 (_ZetaConnectorBase *ZetaConnectorBaseTransactor) WithdrawAndRevert(opts *bind.TransactOpts, to common.Address, amount *big.Int, data []byte, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaConnectorBase.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 (_ZetaConnectorBase *ZetaConnectorBaseSession) WithdrawAndRevert(to common.Address, amount *big.Int, data []byte, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaConnectorBase.Contract.WithdrawAndRevert(&_ZetaConnectorBase.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 (_ZetaConnectorBase *ZetaConnectorBaseTransactorSession) WithdrawAndRevert(to common.Address, amount *big.Int, data []byte, internalSendHash [32]byte) (*types.Transaction, error) { + return _ZetaConnectorBase.Contract.WithdrawAndRevert(&_ZetaConnectorBase.TransactOpts, to, amount, data, internalSendHash) +} + +// ZetaConnectorBasePausedIterator is returned from FilterPaused and is used to iterate over the raw logs and unpacked data for Paused events raised by the ZetaConnectorBase contract. +type ZetaConnectorBasePausedIterator struct { + Event *ZetaConnectorBasePaused // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorBasePausedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorBasePaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorBasePaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorBasePausedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorBasePausedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorBasePaused represents a Paused event raised by the ZetaConnectorBase contract. +type ZetaConnectorBasePaused struct { + Account common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterPaused is a free log retrieval operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. +// +// Solidity: event Paused(address account) +func (_ZetaConnectorBase *ZetaConnectorBaseFilterer) FilterPaused(opts *bind.FilterOpts) (*ZetaConnectorBasePausedIterator, error) { + + logs, sub, err := _ZetaConnectorBase.contract.FilterLogs(opts, "Paused") + if err != nil { + return nil, err + } + return &ZetaConnectorBasePausedIterator{contract: _ZetaConnectorBase.contract, event: "Paused", logs: logs, sub: sub}, nil +} + +// WatchPaused is a free log subscription operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. +// +// Solidity: event Paused(address account) +func (_ZetaConnectorBase *ZetaConnectorBaseFilterer) WatchPaused(opts *bind.WatchOpts, sink chan<- *ZetaConnectorBasePaused) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorBase.contract.WatchLogs(opts, "Paused") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorBasePaused) + if err := _ZetaConnectorBase.contract.UnpackLog(event, "Paused", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParsePaused is a log parse operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. +// +// Solidity: event Paused(address account) +func (_ZetaConnectorBase *ZetaConnectorBaseFilterer) ParsePaused(log types.Log) (*ZetaConnectorBasePaused, error) { + event := new(ZetaConnectorBasePaused) + if err := _ZetaConnectorBase.contract.UnpackLog(event, "Paused", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorBaseRoleAdminChangedIterator is returned from FilterRoleAdminChanged and is used to iterate over the raw logs and unpacked data for RoleAdminChanged events raised by the ZetaConnectorBase contract. +type ZetaConnectorBaseRoleAdminChangedIterator struct { + Event *ZetaConnectorBaseRoleAdminChanged // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorBaseRoleAdminChangedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorBaseRoleAdminChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorBaseRoleAdminChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorBaseRoleAdminChangedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorBaseRoleAdminChangedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorBaseRoleAdminChanged represents a RoleAdminChanged event raised by the ZetaConnectorBase contract. +type ZetaConnectorBaseRoleAdminChanged struct { + Role [32]byte + PreviousAdminRole [32]byte + NewAdminRole [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRoleAdminChanged is a free log retrieval operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. +// +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_ZetaConnectorBase *ZetaConnectorBaseFilterer) FilterRoleAdminChanged(opts *bind.FilterOpts, role [][32]byte, previousAdminRole [][32]byte, newAdminRole [][32]byte) (*ZetaConnectorBaseRoleAdminChangedIterator, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var previousAdminRoleRule []interface{} + for _, previousAdminRoleItem := range previousAdminRole { + previousAdminRoleRule = append(previousAdminRoleRule, previousAdminRoleItem) + } + var newAdminRoleRule []interface{} + for _, newAdminRoleItem := range newAdminRole { + newAdminRoleRule = append(newAdminRoleRule, newAdminRoleItem) + } + + logs, sub, err := _ZetaConnectorBase.contract.FilterLogs(opts, "RoleAdminChanged", roleRule, previousAdminRoleRule, newAdminRoleRule) + if err != nil { + return nil, err + } + return &ZetaConnectorBaseRoleAdminChangedIterator{contract: _ZetaConnectorBase.contract, event: "RoleAdminChanged", logs: logs, sub: sub}, nil +} + +// WatchRoleAdminChanged is a free log subscription operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. +// +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_ZetaConnectorBase *ZetaConnectorBaseFilterer) WatchRoleAdminChanged(opts *bind.WatchOpts, sink chan<- *ZetaConnectorBaseRoleAdminChanged, role [][32]byte, previousAdminRole [][32]byte, newAdminRole [][32]byte) (event.Subscription, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var previousAdminRoleRule []interface{} + for _, previousAdminRoleItem := range previousAdminRole { + previousAdminRoleRule = append(previousAdminRoleRule, previousAdminRoleItem) + } + var newAdminRoleRule []interface{} + for _, newAdminRoleItem := range newAdminRole { + newAdminRoleRule = append(newAdminRoleRule, newAdminRoleItem) + } + + logs, sub, err := _ZetaConnectorBase.contract.WatchLogs(opts, "RoleAdminChanged", roleRule, previousAdminRoleRule, newAdminRoleRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorBaseRoleAdminChanged) + if err := _ZetaConnectorBase.contract.UnpackLog(event, "RoleAdminChanged", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRoleAdminChanged is a log parse operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. +// +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_ZetaConnectorBase *ZetaConnectorBaseFilterer) ParseRoleAdminChanged(log types.Log) (*ZetaConnectorBaseRoleAdminChanged, error) { + event := new(ZetaConnectorBaseRoleAdminChanged) + if err := _ZetaConnectorBase.contract.UnpackLog(event, "RoleAdminChanged", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorBaseRoleGrantedIterator is returned from FilterRoleGranted and is used to iterate over the raw logs and unpacked data for RoleGranted events raised by the ZetaConnectorBase contract. +type ZetaConnectorBaseRoleGrantedIterator struct { + Event *ZetaConnectorBaseRoleGranted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorBaseRoleGrantedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorBaseRoleGranted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorBaseRoleGranted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorBaseRoleGrantedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorBaseRoleGrantedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorBaseRoleGranted represents a RoleGranted event raised by the ZetaConnectorBase contract. +type ZetaConnectorBaseRoleGranted struct { + Role [32]byte + Account common.Address + Sender common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRoleGranted is a free log retrieval operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. +// +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_ZetaConnectorBase *ZetaConnectorBaseFilterer) FilterRoleGranted(opts *bind.FilterOpts, role [][32]byte, account []common.Address, sender []common.Address) (*ZetaConnectorBaseRoleGrantedIterator, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _ZetaConnectorBase.contract.FilterLogs(opts, "RoleGranted", roleRule, accountRule, senderRule) + if err != nil { + return nil, err + } + return &ZetaConnectorBaseRoleGrantedIterator{contract: _ZetaConnectorBase.contract, event: "RoleGranted", logs: logs, sub: sub}, nil +} + +// WatchRoleGranted is a free log subscription operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. +// +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_ZetaConnectorBase *ZetaConnectorBaseFilterer) WatchRoleGranted(opts *bind.WatchOpts, sink chan<- *ZetaConnectorBaseRoleGranted, role [][32]byte, account []common.Address, sender []common.Address) (event.Subscription, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _ZetaConnectorBase.contract.WatchLogs(opts, "RoleGranted", roleRule, accountRule, 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(ZetaConnectorBaseRoleGranted) + if err := _ZetaConnectorBase.contract.UnpackLog(event, "RoleGranted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRoleGranted is a log parse operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. +// +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_ZetaConnectorBase *ZetaConnectorBaseFilterer) ParseRoleGranted(log types.Log) (*ZetaConnectorBaseRoleGranted, error) { + event := new(ZetaConnectorBaseRoleGranted) + if err := _ZetaConnectorBase.contract.UnpackLog(event, "RoleGranted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorBaseRoleRevokedIterator is returned from FilterRoleRevoked and is used to iterate over the raw logs and unpacked data for RoleRevoked events raised by the ZetaConnectorBase contract. +type ZetaConnectorBaseRoleRevokedIterator struct { + Event *ZetaConnectorBaseRoleRevoked // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorBaseRoleRevokedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorBaseRoleRevoked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorBaseRoleRevoked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorBaseRoleRevokedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorBaseRoleRevokedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorBaseRoleRevoked represents a RoleRevoked event raised by the ZetaConnectorBase contract. +type ZetaConnectorBaseRoleRevoked struct { + Role [32]byte + Account common.Address + Sender common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRoleRevoked is a free log retrieval operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. +// +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_ZetaConnectorBase *ZetaConnectorBaseFilterer) FilterRoleRevoked(opts *bind.FilterOpts, role [][32]byte, account []common.Address, sender []common.Address) (*ZetaConnectorBaseRoleRevokedIterator, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _ZetaConnectorBase.contract.FilterLogs(opts, "RoleRevoked", roleRule, accountRule, senderRule) + if err != nil { + return nil, err + } + return &ZetaConnectorBaseRoleRevokedIterator{contract: _ZetaConnectorBase.contract, event: "RoleRevoked", logs: logs, sub: sub}, nil +} + +// WatchRoleRevoked is a free log subscription operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. +// +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_ZetaConnectorBase *ZetaConnectorBaseFilterer) WatchRoleRevoked(opts *bind.WatchOpts, sink chan<- *ZetaConnectorBaseRoleRevoked, role [][32]byte, account []common.Address, sender []common.Address) (event.Subscription, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _ZetaConnectorBase.contract.WatchLogs(opts, "RoleRevoked", roleRule, accountRule, 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(ZetaConnectorBaseRoleRevoked) + if err := _ZetaConnectorBase.contract.UnpackLog(event, "RoleRevoked", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRoleRevoked is a log parse operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. +// +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_ZetaConnectorBase *ZetaConnectorBaseFilterer) ParseRoleRevoked(log types.Log) (*ZetaConnectorBaseRoleRevoked, error) { + event := new(ZetaConnectorBaseRoleRevoked) + if err := _ZetaConnectorBase.contract.UnpackLog(event, "RoleRevoked", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorBaseUnpausedIterator is returned from FilterUnpaused and is used to iterate over the raw logs and unpacked data for Unpaused events raised by the ZetaConnectorBase contract. +type ZetaConnectorBaseUnpausedIterator struct { + Event *ZetaConnectorBaseUnpaused // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorBaseUnpausedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorBaseUnpaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorBaseUnpaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorBaseUnpausedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorBaseUnpausedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorBaseUnpaused represents a Unpaused event raised by the ZetaConnectorBase contract. +type ZetaConnectorBaseUnpaused struct { + Account common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUnpaused is a free log retrieval operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. +// +// Solidity: event Unpaused(address account) +func (_ZetaConnectorBase *ZetaConnectorBaseFilterer) FilterUnpaused(opts *bind.FilterOpts) (*ZetaConnectorBaseUnpausedIterator, error) { + + logs, sub, err := _ZetaConnectorBase.contract.FilterLogs(opts, "Unpaused") + if err != nil { + return nil, err + } + return &ZetaConnectorBaseUnpausedIterator{contract: _ZetaConnectorBase.contract, event: "Unpaused", logs: logs, sub: sub}, nil +} + +// WatchUnpaused is a free log subscription operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. +// +// Solidity: event Unpaused(address account) +func (_ZetaConnectorBase *ZetaConnectorBaseFilterer) WatchUnpaused(opts *bind.WatchOpts, sink chan<- *ZetaConnectorBaseUnpaused) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorBase.contract.WatchLogs(opts, "Unpaused") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorBaseUnpaused) + if err := _ZetaConnectorBase.contract.UnpackLog(event, "Unpaused", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseUnpaused is a log parse operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. +// +// Solidity: event Unpaused(address account) +func (_ZetaConnectorBase *ZetaConnectorBaseFilterer) ParseUnpaused(log types.Log) (*ZetaConnectorBaseUnpaused, error) { + event := new(ZetaConnectorBaseUnpaused) + if err := _ZetaConnectorBase.contract.UnpackLog(event, "Unpaused", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorBaseWithdrawIterator is returned from FilterWithdraw and is used to iterate over the raw logs and unpacked data for Withdraw events raised by the ZetaConnectorBase contract. +type ZetaConnectorBaseWithdrawIterator struct { + Event *ZetaConnectorBaseWithdraw // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorBaseWithdrawIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorBaseWithdraw) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorBaseWithdraw) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorBaseWithdrawIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorBaseWithdrawIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorBaseWithdraw represents a Withdraw event raised by the ZetaConnectorBase contract. +type ZetaConnectorBaseWithdraw 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 (_ZetaConnectorBase *ZetaConnectorBaseFilterer) FilterWithdraw(opts *bind.FilterOpts, to []common.Address) (*ZetaConnectorBaseWithdrawIterator, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorBase.contract.FilterLogs(opts, "Withdraw", toRule) + if err != nil { + return nil, err + } + return &ZetaConnectorBaseWithdrawIterator{contract: _ZetaConnectorBase.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 (_ZetaConnectorBase *ZetaConnectorBaseFilterer) WatchWithdraw(opts *bind.WatchOpts, sink chan<- *ZetaConnectorBaseWithdraw, to []common.Address) (event.Subscription, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorBase.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(ZetaConnectorBaseWithdraw) + if err := _ZetaConnectorBase.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 (_ZetaConnectorBase *ZetaConnectorBaseFilterer) ParseWithdraw(log types.Log) (*ZetaConnectorBaseWithdraw, error) { + event := new(ZetaConnectorBaseWithdraw) + if err := _ZetaConnectorBase.contract.UnpackLog(event, "Withdraw", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorBaseWithdrawAndCallIterator is returned from FilterWithdrawAndCall and is used to iterate over the raw logs and unpacked data for WithdrawAndCall events raised by the ZetaConnectorBase contract. +type ZetaConnectorBaseWithdrawAndCallIterator struct { + Event *ZetaConnectorBaseWithdrawAndCall // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorBaseWithdrawAndCallIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorBaseWithdrawAndCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorBaseWithdrawAndCall) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorBaseWithdrawAndCallIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorBaseWithdrawAndCallIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorBaseWithdrawAndCall represents a WithdrawAndCall event raised by the ZetaConnectorBase contract. +type ZetaConnectorBaseWithdrawAndCall 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 (_ZetaConnectorBase *ZetaConnectorBaseFilterer) FilterWithdrawAndCall(opts *bind.FilterOpts, to []common.Address) (*ZetaConnectorBaseWithdrawAndCallIterator, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorBase.contract.FilterLogs(opts, "WithdrawAndCall", toRule) + if err != nil { + return nil, err + } + return &ZetaConnectorBaseWithdrawAndCallIterator{contract: _ZetaConnectorBase.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 (_ZetaConnectorBase *ZetaConnectorBaseFilterer) WatchWithdrawAndCall(opts *bind.WatchOpts, sink chan<- *ZetaConnectorBaseWithdrawAndCall, to []common.Address) (event.Subscription, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorBase.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(ZetaConnectorBaseWithdrawAndCall) + if err := _ZetaConnectorBase.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 (_ZetaConnectorBase *ZetaConnectorBaseFilterer) ParseWithdrawAndCall(log types.Log) (*ZetaConnectorBaseWithdrawAndCall, error) { + event := new(ZetaConnectorBaseWithdrawAndCall) + if err := _ZetaConnectorBase.contract.UnpackLog(event, "WithdrawAndCall", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorBaseWithdrawAndRevertIterator is returned from FilterWithdrawAndRevert and is used to iterate over the raw logs and unpacked data for WithdrawAndRevert events raised by the ZetaConnectorBase contract. +type ZetaConnectorBaseWithdrawAndRevertIterator struct { + Event *ZetaConnectorBaseWithdrawAndRevert // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorBaseWithdrawAndRevertIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorBaseWithdrawAndRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorBaseWithdrawAndRevert) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorBaseWithdrawAndRevertIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorBaseWithdrawAndRevertIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorBaseWithdrawAndRevert represents a WithdrawAndRevert event raised by the ZetaConnectorBase contract. +type ZetaConnectorBaseWithdrawAndRevert 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 (_ZetaConnectorBase *ZetaConnectorBaseFilterer) FilterWithdrawAndRevert(opts *bind.FilterOpts, to []common.Address) (*ZetaConnectorBaseWithdrawAndRevertIterator, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorBase.contract.FilterLogs(opts, "WithdrawAndRevert", toRule) + if err != nil { + return nil, err + } + return &ZetaConnectorBaseWithdrawAndRevertIterator{contract: _ZetaConnectorBase.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 (_ZetaConnectorBase *ZetaConnectorBaseFilterer) WatchWithdrawAndRevert(opts *bind.WatchOpts, sink chan<- *ZetaConnectorBaseWithdrawAndRevert, to []common.Address) (event.Subscription, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZetaConnectorBase.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(ZetaConnectorBaseWithdrawAndRevert) + if err := _ZetaConnectorBase.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 (_ZetaConnectorBase *ZetaConnectorBaseFilterer) ParseWithdrawAndRevert(log types.Log) (*ZetaConnectorBaseWithdrawAndRevert, error) { + event := new(ZetaConnectorBaseWithdrawAndRevert) + if err := _ZetaConnectorBase.contract.UnpackLog(event, "WithdrawAndRevert", 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..88856e77 --- /dev/null +++ b/v2/pkg/zetaconnectornative.sol/zetaconnectornative.go @@ -0,0 +1,1893 @@ +// 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\"},{\"name\":\"_admin\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"DEFAULT_ADMIN_ROLE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"PAUSER_ROLE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"WITHDRAWER_ROLE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"gateway\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIGatewayEVM\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRoleAdmin\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"grantRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"hasRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"receiveTokens\",\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"renounceRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"callerConfirmation\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"revokeRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"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\":\"tssAddress\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"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\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RoleAdminChanged\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"previousAdminRole\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"newAdminRole\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RoleGranted\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RoleRevoked\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"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\":\"AccessControlBadConfirmation\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"AccessControlUnauthorizedAccount\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"neededRole\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"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\":\"EnforcedPause\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExpectedPause\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"FailedInnerCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ReentrancyGuardReentrantCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SafeERC20FailedOperation\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ZeroAddress\",\"inputs\":[]}]", + Bin: "0x60c060405234801561001057600080fd5b5060405161163738038061163783398101604081905261002f916101f5565b60016000819055805460ff19169055838383836001600160a01b038416158061005f57506001600160a01b038316155b8061007157506001600160a01b038216155b1561008f5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0384811660805283811660a052600380546001600160a01b0319169184169190911790556100c5600082610129565b506100f07f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e483610129565b5061011b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a82610129565b505050505050505050610249565b60008281526002602090815260408083206001600160a01b038516845290915281205460ff166101cf5760008381526002602090815260408083206001600160a01b03861684529091529020805460ff191660011790556101873390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016101d3565b5060005b92915050565b80516001600160a01b03811681146101f057600080fd5b919050565b6000806000806080858703121561020b57600080fd5b610214856101d9565b9350610222602086016101d9565b9250610230604086016101d9565b915061023e606086016101d9565b905092959194509250565b60805160a0516113836102b4600039600081816101f70152818161046d0152818161051e01528181610638015281816107cc0152818161087d015261094b0152600081816101ab0152818161048f015281816104f1015281816107ee015261085001526113836000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c80635b112591116100cd57806385f438c111610081578063a217fddf11610066578063a217fddf1461033e578063d547741f14610346578063e63ab1e91461035957600080fd5b806385f438c1146102d157806391d14854146102f857600080fd5b80635e3e9fef116100b25780635e3e9fef146102a3578063743e0c9b146102b65780638456cb59146102c957600080fd5b80635b112591146102785780635c975abb1461029857600080fd5b806321e093b1116101245780632f2ff15d116101095780632f2ff15d1461024a57806336568abe1461025d5780633f4ba83a1461027057600080fd5b806321e093b1146101f2578063248a9ca31461021957600080fd5b806301ffc9a71461015657806302d5c8991461017e578063106e629014610193578063116191b6146101a6575b600080fd5b6101696101643660046110be565b610380565b60405190151581526020015b60405180910390f35b61019161018c366004611129565b610419565b005b6101916101a13660046111bb565b6105e4565b6101cd7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610175565b6101cd7f000000000000000000000000000000000000000000000000000000000000000081565b61023c6102273660046111ee565b60009081526002602052604090206001015490565b604051908152602001610175565b610191610258366004611207565b6106bf565b61019161026b366004611207565b6106ea565b610191610743565b6003546101cd9073ffffffffffffffffffffffffffffffffffffffff1681565b60015460ff16610169565b6101916102b1366004611129565b610778565b6101916102c43660046111ee565b610929565b610191610973565b61023c7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e481565b610169610306366004611207565b600091825260026020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b61023c600081565b610191610354366004611207565b6109a5565b61023c7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061041357507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6104216109ca565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e461044b81610a0d565b610453610a17565b6104b473ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000087610a56565b6040517fb8969bd400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063b8969bd49061054e907f0000000000000000000000000000000000000000000000000000000000000000908a908a908a908a9060040161127c565b600060405180830381600087803b15801561056857600080fd5b505af115801561057c573d6000803e3d6000fd5b505050508573ffffffffffffffffffffffffffffffffffffffff167fba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe8686866040516105ca939291906112d9565b60405180910390a2506105dd6001600055565b5050505050565b6105ec6109ca565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e461061681610a0d565b61061e610a17565b61065f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168585610a56565b8373ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364846040516106a791815260200190565b60405180910390a2506106ba6001600055565b505050565b6000828152600260205260409020600101546106da81610a0d565b6106e48383610ad7565b50505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610739576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106ba8282610bd7565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61076d81610a0d565b610775610c96565b50565b6107806109ca565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e46107aa81610a0d565b6107b2610a17565b61081373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000087610a56565b6040517f5131ab5900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690635131ab59906108ad907f0000000000000000000000000000000000000000000000000000000000000000908a908a908a908a9060040161127c565b600060405180830381600087803b1580156108c757600080fd5b505af11580156108db573d6000803e3d6000fd5b505050508573ffffffffffffffffffffffffffffffffffffffff167f7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced8686866040516105ca939291906112d9565b610931610a17565b61077573ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016333084610d13565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61099d81610a0d565b610775610d59565b6000828152600260205260409020600101546109c081610a0d565b6106e48383610bd7565b600260005403610a06576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b6107758133610db2565b60015460ff1615610a54576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60405173ffffffffffffffffffffffffffffffffffffffff8381166024830152604482018390526106ba91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610e43565b600082815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff16610bcf57600083815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610b6d3390565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610413565b506000610413565b600082815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff1615610bcf57600083815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610413565b610c9e610ed9565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b60405173ffffffffffffffffffffffffffffffffffffffff84811660248301528381166044830152606482018390526106e49186918216906323b872dd90608401610a90565b610d61610a17565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833610ce9565b600082815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610e3f576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602481018390526044015b60405180910390fd5b5050565b6000610e6573ffffffffffffffffffffffffffffffffffffffff841683610f15565b90508051600014158015610e8a575080806020019051810190610e8891906112fc565b155b156106ba576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602401610e36565b60015460ff16610a54576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060610f2383836000610f2a565b9392505050565b606081471015610f68576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610e36565b6000808573ffffffffffffffffffffffffffffffffffffffff168486604051610f91919061131e565b60006040518083038185875af1925050503d8060008114610fce576040519150601f19603f3d011682016040523d82523d6000602084013e610fd3565b606091505b5091509150610fe3868383610fed565b9695505050505050565b60608261100257610ffd8261107c565b610f23565b8151158015611026575073ffffffffffffffffffffffffffffffffffffffff84163b155b15611075576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610e36565b5080610f23565b80511561108c5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000602082840312156110d057600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610f2357600080fd5b803573ffffffffffffffffffffffffffffffffffffffff8116811461112457600080fd5b919050565b60008060008060006080868803121561114157600080fd5b61114a86611100565b945060208601359350604086013567ffffffffffffffff81111561116d57600080fd5b8601601f8101881361117e57600080fd5b803567ffffffffffffffff81111561119557600080fd5b8860208284010111156111a757600080fd5b959894975060200195606001359392505050565b6000806000606084860312156111d057600080fd5b6111d984611100565b95602085013595506040909401359392505050565b60006020828403121561120057600080fd5b5035919050565b6000806040838503121561121a57600080fd5b8235915061122a60208401611100565b90509250929050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff851660208201528360408201526080606082015260006112ce608083018486611233565b979650505050505050565b8381526040602082015260006112f3604083018486611233565b95945050505050565b60006020828403121561130e57600080fd5b81518015158114610f2357600080fd5b6000825160005b8181101561133f5760208186018101518583015201611325565b50600092019182525091905056fea264697066735822122076f21f1ac8f2c01b56f41facd345cbe7bb75624ae7a01f61b68ad17dc9af27a464736f6c634300081a0033", +} + +// 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, _admin 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, _admin) + 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...) +} + +// DEFAULTADMINROLE is a free data retrieval call binding the contract method 0xa217fddf. +// +// Solidity: function DEFAULT_ADMIN_ROLE() view returns(bytes32) +func (_ZetaConnectorNative *ZetaConnectorNativeCaller) DEFAULTADMINROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _ZetaConnectorNative.contract.Call(opts, &out, "DEFAULT_ADMIN_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// DEFAULTADMINROLE is a free data retrieval call binding the contract method 0xa217fddf. +// +// Solidity: function DEFAULT_ADMIN_ROLE() view returns(bytes32) +func (_ZetaConnectorNative *ZetaConnectorNativeSession) DEFAULTADMINROLE() ([32]byte, error) { + return _ZetaConnectorNative.Contract.DEFAULTADMINROLE(&_ZetaConnectorNative.CallOpts) +} + +// DEFAULTADMINROLE is a free data retrieval call binding the contract method 0xa217fddf. +// +// Solidity: function DEFAULT_ADMIN_ROLE() view returns(bytes32) +func (_ZetaConnectorNative *ZetaConnectorNativeCallerSession) DEFAULTADMINROLE() ([32]byte, error) { + return _ZetaConnectorNative.Contract.DEFAULTADMINROLE(&_ZetaConnectorNative.CallOpts) +} + +// PAUSERROLE is a free data retrieval call binding the contract method 0xe63ab1e9. +// +// Solidity: function PAUSER_ROLE() view returns(bytes32) +func (_ZetaConnectorNative *ZetaConnectorNativeCaller) PAUSERROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _ZetaConnectorNative.contract.Call(opts, &out, "PAUSER_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// PAUSERROLE is a free data retrieval call binding the contract method 0xe63ab1e9. +// +// Solidity: function PAUSER_ROLE() view returns(bytes32) +func (_ZetaConnectorNative *ZetaConnectorNativeSession) PAUSERROLE() ([32]byte, error) { + return _ZetaConnectorNative.Contract.PAUSERROLE(&_ZetaConnectorNative.CallOpts) +} + +// PAUSERROLE is a free data retrieval call binding the contract method 0xe63ab1e9. +// +// Solidity: function PAUSER_ROLE() view returns(bytes32) +func (_ZetaConnectorNative *ZetaConnectorNativeCallerSession) PAUSERROLE() ([32]byte, error) { + return _ZetaConnectorNative.Contract.PAUSERROLE(&_ZetaConnectorNative.CallOpts) +} + +// WITHDRAWERROLE is a free data retrieval call binding the contract method 0x85f438c1. +// +// Solidity: function WITHDRAWER_ROLE() view returns(bytes32) +func (_ZetaConnectorNative *ZetaConnectorNativeCaller) WITHDRAWERROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _ZetaConnectorNative.contract.Call(opts, &out, "WITHDRAWER_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// WITHDRAWERROLE is a free data retrieval call binding the contract method 0x85f438c1. +// +// Solidity: function WITHDRAWER_ROLE() view returns(bytes32) +func (_ZetaConnectorNative *ZetaConnectorNativeSession) WITHDRAWERROLE() ([32]byte, error) { + return _ZetaConnectorNative.Contract.WITHDRAWERROLE(&_ZetaConnectorNative.CallOpts) +} + +// WITHDRAWERROLE is a free data retrieval call binding the contract method 0x85f438c1. +// +// Solidity: function WITHDRAWER_ROLE() view returns(bytes32) +func (_ZetaConnectorNative *ZetaConnectorNativeCallerSession) WITHDRAWERROLE() ([32]byte, error) { + return _ZetaConnectorNative.Contract.WITHDRAWERROLE(&_ZetaConnectorNative.CallOpts) +} + +// 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) +} + +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. +// +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_ZetaConnectorNative *ZetaConnectorNativeCaller) GetRoleAdmin(opts *bind.CallOpts, role [32]byte) ([32]byte, error) { + var out []interface{} + err := _ZetaConnectorNative.contract.Call(opts, &out, "getRoleAdmin", role) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. +// +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_ZetaConnectorNative *ZetaConnectorNativeSession) GetRoleAdmin(role [32]byte) ([32]byte, error) { + return _ZetaConnectorNative.Contract.GetRoleAdmin(&_ZetaConnectorNative.CallOpts, role) +} + +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. +// +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_ZetaConnectorNative *ZetaConnectorNativeCallerSession) GetRoleAdmin(role [32]byte) ([32]byte, error) { + return _ZetaConnectorNative.Contract.GetRoleAdmin(&_ZetaConnectorNative.CallOpts, role) +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_ZetaConnectorNative *ZetaConnectorNativeCaller) HasRole(opts *bind.CallOpts, role [32]byte, account common.Address) (bool, error) { + var out []interface{} + err := _ZetaConnectorNative.contract.Call(opts, &out, "hasRole", role, account) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_ZetaConnectorNative *ZetaConnectorNativeSession) HasRole(role [32]byte, account common.Address) (bool, error) { + return _ZetaConnectorNative.Contract.HasRole(&_ZetaConnectorNative.CallOpts, role, account) +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_ZetaConnectorNative *ZetaConnectorNativeCallerSession) HasRole(role [32]byte, account common.Address) (bool, error) { + return _ZetaConnectorNative.Contract.HasRole(&_ZetaConnectorNative.CallOpts, role, account) +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_ZetaConnectorNative *ZetaConnectorNativeCaller) Paused(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _ZetaConnectorNative.contract.Call(opts, &out, "paused") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_ZetaConnectorNative *ZetaConnectorNativeSession) Paused() (bool, error) { + return _ZetaConnectorNative.Contract.Paused(&_ZetaConnectorNative.CallOpts) +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_ZetaConnectorNative *ZetaConnectorNativeCallerSession) Paused() (bool, error) { + return _ZetaConnectorNative.Contract.Paused(&_ZetaConnectorNative.CallOpts) +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) +func (_ZetaConnectorNative *ZetaConnectorNativeCaller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) { + var out []interface{} + err := _ZetaConnectorNative.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 (_ZetaConnectorNative *ZetaConnectorNativeSession) SupportsInterface(interfaceId [4]byte) (bool, error) { + return _ZetaConnectorNative.Contract.SupportsInterface(&_ZetaConnectorNative.CallOpts, interfaceId) +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) +func (_ZetaConnectorNative *ZetaConnectorNativeCallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) { + return _ZetaConnectorNative.Contract.SupportsInterface(&_ZetaConnectorNative.CallOpts, interfaceId) +} + +// 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) +} + +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_ZetaConnectorNative *ZetaConnectorNativeTransactor) GrantRole(opts *bind.TransactOpts, role [32]byte, account common.Address) (*types.Transaction, error) { + return _ZetaConnectorNative.contract.Transact(opts, "grantRole", role, account) +} + +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_ZetaConnectorNative *ZetaConnectorNativeSession) GrantRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _ZetaConnectorNative.Contract.GrantRole(&_ZetaConnectorNative.TransactOpts, role, account) +} + +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_ZetaConnectorNative *ZetaConnectorNativeTransactorSession) GrantRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _ZetaConnectorNative.Contract.GrantRole(&_ZetaConnectorNative.TransactOpts, role, account) +} + +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. +// +// Solidity: function pause() returns() +func (_ZetaConnectorNative *ZetaConnectorNativeTransactor) Pause(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaConnectorNative.contract.Transact(opts, "pause") +} + +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. +// +// Solidity: function pause() returns() +func (_ZetaConnectorNative *ZetaConnectorNativeSession) Pause() (*types.Transaction, error) { + return _ZetaConnectorNative.Contract.Pause(&_ZetaConnectorNative.TransactOpts) +} + +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. +// +// Solidity: function pause() returns() +func (_ZetaConnectorNative *ZetaConnectorNativeTransactorSession) Pause() (*types.Transaction, error) { + return _ZetaConnectorNative.Contract.Pause(&_ZetaConnectorNative.TransactOpts) +} + +// 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) +} + +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. +// +// Solidity: function renounceRole(bytes32 role, address callerConfirmation) returns() +func (_ZetaConnectorNative *ZetaConnectorNativeTransactor) RenounceRole(opts *bind.TransactOpts, role [32]byte, callerConfirmation common.Address) (*types.Transaction, error) { + return _ZetaConnectorNative.contract.Transact(opts, "renounceRole", role, callerConfirmation) +} + +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. +// +// Solidity: function renounceRole(bytes32 role, address callerConfirmation) returns() +func (_ZetaConnectorNative *ZetaConnectorNativeSession) RenounceRole(role [32]byte, callerConfirmation common.Address) (*types.Transaction, error) { + return _ZetaConnectorNative.Contract.RenounceRole(&_ZetaConnectorNative.TransactOpts, role, callerConfirmation) +} + +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. +// +// Solidity: function renounceRole(bytes32 role, address callerConfirmation) returns() +func (_ZetaConnectorNative *ZetaConnectorNativeTransactorSession) RenounceRole(role [32]byte, callerConfirmation common.Address) (*types.Transaction, error) { + return _ZetaConnectorNative.Contract.RenounceRole(&_ZetaConnectorNative.TransactOpts, role, callerConfirmation) +} + +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_ZetaConnectorNative *ZetaConnectorNativeTransactor) RevokeRole(opts *bind.TransactOpts, role [32]byte, account common.Address) (*types.Transaction, error) { + return _ZetaConnectorNative.contract.Transact(opts, "revokeRole", role, account) +} + +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_ZetaConnectorNative *ZetaConnectorNativeSession) RevokeRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _ZetaConnectorNative.Contract.RevokeRole(&_ZetaConnectorNative.TransactOpts, role, account) +} + +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_ZetaConnectorNative *ZetaConnectorNativeTransactorSession) RevokeRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _ZetaConnectorNative.Contract.RevokeRole(&_ZetaConnectorNative.TransactOpts, role, account) +} + +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. +// +// Solidity: function unpause() returns() +func (_ZetaConnectorNative *ZetaConnectorNativeTransactor) Unpause(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaConnectorNative.contract.Transact(opts, "unpause") +} + +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. +// +// Solidity: function unpause() returns() +func (_ZetaConnectorNative *ZetaConnectorNativeSession) Unpause() (*types.Transaction, error) { + return _ZetaConnectorNative.Contract.Unpause(&_ZetaConnectorNative.TransactOpts) +} + +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. +// +// Solidity: function unpause() returns() +func (_ZetaConnectorNative *ZetaConnectorNativeTransactorSession) Unpause() (*types.Transaction, error) { + return _ZetaConnectorNative.Contract.Unpause(&_ZetaConnectorNative.TransactOpts) +} + +// 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) +} + +// ZetaConnectorNativePausedIterator is returned from FilterPaused and is used to iterate over the raw logs and unpacked data for Paused events raised by the ZetaConnectorNative contract. +type ZetaConnectorNativePausedIterator struct { + Event *ZetaConnectorNativePaused // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativePausedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativePaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativePaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativePausedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativePausedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativePaused represents a Paused event raised by the ZetaConnectorNative contract. +type ZetaConnectorNativePaused struct { + Account common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterPaused is a free log retrieval operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. +// +// Solidity: event Paused(address account) +func (_ZetaConnectorNative *ZetaConnectorNativeFilterer) FilterPaused(opts *bind.FilterOpts) (*ZetaConnectorNativePausedIterator, error) { + + logs, sub, err := _ZetaConnectorNative.contract.FilterLogs(opts, "Paused") + if err != nil { + return nil, err + } + return &ZetaConnectorNativePausedIterator{contract: _ZetaConnectorNative.contract, event: "Paused", logs: logs, sub: sub}, nil +} + +// WatchPaused is a free log subscription operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. +// +// Solidity: event Paused(address account) +func (_ZetaConnectorNative *ZetaConnectorNativeFilterer) WatchPaused(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativePaused) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNative.contract.WatchLogs(opts, "Paused") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativePaused) + if err := _ZetaConnectorNative.contract.UnpackLog(event, "Paused", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParsePaused is a log parse operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. +// +// Solidity: event Paused(address account) +func (_ZetaConnectorNative *ZetaConnectorNativeFilterer) ParsePaused(log types.Log) (*ZetaConnectorNativePaused, error) { + event := new(ZetaConnectorNativePaused) + if err := _ZetaConnectorNative.contract.UnpackLog(event, "Paused", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeRoleAdminChangedIterator is returned from FilterRoleAdminChanged and is used to iterate over the raw logs and unpacked data for RoleAdminChanged events raised by the ZetaConnectorNative contract. +type ZetaConnectorNativeRoleAdminChangedIterator struct { + Event *ZetaConnectorNativeRoleAdminChanged // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeRoleAdminChangedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeRoleAdminChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeRoleAdminChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeRoleAdminChangedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeRoleAdminChangedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeRoleAdminChanged represents a RoleAdminChanged event raised by the ZetaConnectorNative contract. +type ZetaConnectorNativeRoleAdminChanged struct { + Role [32]byte + PreviousAdminRole [32]byte + NewAdminRole [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRoleAdminChanged is a free log retrieval operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. +// +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_ZetaConnectorNative *ZetaConnectorNativeFilterer) FilterRoleAdminChanged(opts *bind.FilterOpts, role [][32]byte, previousAdminRole [][32]byte, newAdminRole [][32]byte) (*ZetaConnectorNativeRoleAdminChangedIterator, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var previousAdminRoleRule []interface{} + for _, previousAdminRoleItem := range previousAdminRole { + previousAdminRoleRule = append(previousAdminRoleRule, previousAdminRoleItem) + } + var newAdminRoleRule []interface{} + for _, newAdminRoleItem := range newAdminRole { + newAdminRoleRule = append(newAdminRoleRule, newAdminRoleItem) + } + + logs, sub, err := _ZetaConnectorNative.contract.FilterLogs(opts, "RoleAdminChanged", roleRule, previousAdminRoleRule, newAdminRoleRule) + if err != nil { + return nil, err + } + return &ZetaConnectorNativeRoleAdminChangedIterator{contract: _ZetaConnectorNative.contract, event: "RoleAdminChanged", logs: logs, sub: sub}, nil +} + +// WatchRoleAdminChanged is a free log subscription operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. +// +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_ZetaConnectorNative *ZetaConnectorNativeFilterer) WatchRoleAdminChanged(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeRoleAdminChanged, role [][32]byte, previousAdminRole [][32]byte, newAdminRole [][32]byte) (event.Subscription, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var previousAdminRoleRule []interface{} + for _, previousAdminRoleItem := range previousAdminRole { + previousAdminRoleRule = append(previousAdminRoleRule, previousAdminRoleItem) + } + var newAdminRoleRule []interface{} + for _, newAdminRoleItem := range newAdminRole { + newAdminRoleRule = append(newAdminRoleRule, newAdminRoleItem) + } + + logs, sub, err := _ZetaConnectorNative.contract.WatchLogs(opts, "RoleAdminChanged", roleRule, previousAdminRoleRule, newAdminRoleRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeRoleAdminChanged) + if err := _ZetaConnectorNative.contract.UnpackLog(event, "RoleAdminChanged", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRoleAdminChanged is a log parse operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. +// +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_ZetaConnectorNative *ZetaConnectorNativeFilterer) ParseRoleAdminChanged(log types.Log) (*ZetaConnectorNativeRoleAdminChanged, error) { + event := new(ZetaConnectorNativeRoleAdminChanged) + if err := _ZetaConnectorNative.contract.UnpackLog(event, "RoleAdminChanged", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeRoleGrantedIterator is returned from FilterRoleGranted and is used to iterate over the raw logs and unpacked data for RoleGranted events raised by the ZetaConnectorNative contract. +type ZetaConnectorNativeRoleGrantedIterator struct { + Event *ZetaConnectorNativeRoleGranted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeRoleGrantedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeRoleGranted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeRoleGranted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeRoleGrantedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeRoleGrantedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeRoleGranted represents a RoleGranted event raised by the ZetaConnectorNative contract. +type ZetaConnectorNativeRoleGranted struct { + Role [32]byte + Account common.Address + Sender common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRoleGranted is a free log retrieval operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. +// +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_ZetaConnectorNative *ZetaConnectorNativeFilterer) FilterRoleGranted(opts *bind.FilterOpts, role [][32]byte, account []common.Address, sender []common.Address) (*ZetaConnectorNativeRoleGrantedIterator, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _ZetaConnectorNative.contract.FilterLogs(opts, "RoleGranted", roleRule, accountRule, senderRule) + if err != nil { + return nil, err + } + return &ZetaConnectorNativeRoleGrantedIterator{contract: _ZetaConnectorNative.contract, event: "RoleGranted", logs: logs, sub: sub}, nil +} + +// WatchRoleGranted is a free log subscription operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. +// +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_ZetaConnectorNative *ZetaConnectorNativeFilterer) WatchRoleGranted(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeRoleGranted, role [][32]byte, account []common.Address, sender []common.Address) (event.Subscription, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _ZetaConnectorNative.contract.WatchLogs(opts, "RoleGranted", roleRule, accountRule, 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(ZetaConnectorNativeRoleGranted) + if err := _ZetaConnectorNative.contract.UnpackLog(event, "RoleGranted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRoleGranted is a log parse operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. +// +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_ZetaConnectorNative *ZetaConnectorNativeFilterer) ParseRoleGranted(log types.Log) (*ZetaConnectorNativeRoleGranted, error) { + event := new(ZetaConnectorNativeRoleGranted) + if err := _ZetaConnectorNative.contract.UnpackLog(event, "RoleGranted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeRoleRevokedIterator is returned from FilterRoleRevoked and is used to iterate over the raw logs and unpacked data for RoleRevoked events raised by the ZetaConnectorNative contract. +type ZetaConnectorNativeRoleRevokedIterator struct { + Event *ZetaConnectorNativeRoleRevoked // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeRoleRevokedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeRoleRevoked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeRoleRevoked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeRoleRevokedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeRoleRevokedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeRoleRevoked represents a RoleRevoked event raised by the ZetaConnectorNative contract. +type ZetaConnectorNativeRoleRevoked struct { + Role [32]byte + Account common.Address + Sender common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRoleRevoked is a free log retrieval operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. +// +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_ZetaConnectorNative *ZetaConnectorNativeFilterer) FilterRoleRevoked(opts *bind.FilterOpts, role [][32]byte, account []common.Address, sender []common.Address) (*ZetaConnectorNativeRoleRevokedIterator, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _ZetaConnectorNative.contract.FilterLogs(opts, "RoleRevoked", roleRule, accountRule, senderRule) + if err != nil { + return nil, err + } + return &ZetaConnectorNativeRoleRevokedIterator{contract: _ZetaConnectorNative.contract, event: "RoleRevoked", logs: logs, sub: sub}, nil +} + +// WatchRoleRevoked is a free log subscription operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. +// +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_ZetaConnectorNative *ZetaConnectorNativeFilterer) WatchRoleRevoked(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeRoleRevoked, role [][32]byte, account []common.Address, sender []common.Address) (event.Subscription, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _ZetaConnectorNative.contract.WatchLogs(opts, "RoleRevoked", roleRule, accountRule, 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(ZetaConnectorNativeRoleRevoked) + if err := _ZetaConnectorNative.contract.UnpackLog(event, "RoleRevoked", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRoleRevoked is a log parse operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. +// +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_ZetaConnectorNative *ZetaConnectorNativeFilterer) ParseRoleRevoked(log types.Log) (*ZetaConnectorNativeRoleRevoked, error) { + event := new(ZetaConnectorNativeRoleRevoked) + if err := _ZetaConnectorNative.contract.UnpackLog(event, "RoleRevoked", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNativeUnpausedIterator is returned from FilterUnpaused and is used to iterate over the raw logs and unpacked data for Unpaused events raised by the ZetaConnectorNative contract. +type ZetaConnectorNativeUnpausedIterator struct { + Event *ZetaConnectorNativeUnpaused // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNativeUnpausedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeUnpaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNativeUnpaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNativeUnpausedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNativeUnpausedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNativeUnpaused represents a Unpaused event raised by the ZetaConnectorNative contract. +type ZetaConnectorNativeUnpaused struct { + Account common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUnpaused is a free log retrieval operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. +// +// Solidity: event Unpaused(address account) +func (_ZetaConnectorNative *ZetaConnectorNativeFilterer) FilterUnpaused(opts *bind.FilterOpts) (*ZetaConnectorNativeUnpausedIterator, error) { + + logs, sub, err := _ZetaConnectorNative.contract.FilterLogs(opts, "Unpaused") + if err != nil { + return nil, err + } + return &ZetaConnectorNativeUnpausedIterator{contract: _ZetaConnectorNative.contract, event: "Unpaused", logs: logs, sub: sub}, nil +} + +// WatchUnpaused is a free log subscription operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. +// +// Solidity: event Unpaused(address account) +func (_ZetaConnectorNative *ZetaConnectorNativeFilterer) WatchUnpaused(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNativeUnpaused) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNative.contract.WatchLogs(opts, "Unpaused") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNativeUnpaused) + if err := _ZetaConnectorNative.contract.UnpackLog(event, "Unpaused", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseUnpaused is a log parse operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. +// +// Solidity: event Unpaused(address account) +func (_ZetaConnectorNative *ZetaConnectorNativeFilterer) ParseUnpaused(log types.Log) (*ZetaConnectorNativeUnpaused, error) { + event := new(ZetaConnectorNativeUnpaused) + if err := _ZetaConnectorNative.contract.UnpackLog(event, "Unpaused", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// 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..88e3e12b --- /dev/null +++ b/v2/pkg/zetaconnectornative.t.sol/zetaconnectornativetest.go @@ -0,0 +1,5804 @@ +// 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\":\"WITHDRAWER_ROLE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"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\":\"testWithdrawAndCallReceiveERC20FailsIfSenderIsNotWithdrawer\",\"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\":\"testWithdrawAndRevertFailsIfSenderIsNotWithdrawer\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testWithdrawFailsIfSenderIsNotWithdrawer\",\"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\":\"AccessControlUnauthorizedAccount\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"neededRole\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"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\":\"ZeroAddress\",\"inputs\":[]}]", + Bin: "0x6080604052600c8054600160ff199182168117909255601f80549091169091179055348015602c57600080fd5b5061d6508061003c6000396000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c8063916a17c6116100d8578063d509b16c1161008c578063e20c9f7111610066578063e20c9f71146102a8578063fa7626d4146102b0578063fe574f84146102bd57600080fd5b8063d509b16c14610290578063dcf7d03714610298578063de1cb76c146102a057600080fd5b8063b5508aa9116100bd578063b5508aa914610268578063ba414fa614610270578063c19099721461028857600080fd5b8063916a17c61461024b578063b0464fdc1461026057600080fd5b80633f7286f41161013a578063828320141161011457806382832014146101f957806385226c811461020157806385f438c11461021657600080fd5b80633f7286f4146101d457806349346558146101dc57806366d9a9a0146101e457600080fd5b80632ade38801161016b5780632ade3880146101af5780633cba0107146101c45780633e5e3c23146101cc57600080fd5b80630a9254e4146101875780631ed7831c14610191575b600080fd5b61018f6102c5565b005b610199610a2b565b6040516101a69190617b71565b60405180910390f35b6101b7610a8d565b6040516101a69190617c0d565b61018f610bcf565b6101996113a2565b610199611402565b61018f611462565b6101ec611abe565b6040516101a69190617d73565b61018f611c40565b610209611eb2565b6040516101a69190617e11565b61023d7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e481565b6040519081526020016101a6565b610253611f82565b6040516101a69190617e88565b61025361207d565b610209612178565b610278612248565b60405190151581526020016101a6565b61018f61231c565b61018f6125a0565b61018f6129b6565b61018f613076565b6101996136dc565b601f546102789060ff1681565b61018f61373c565b602580547fffffffffffffffffffffffff000000000000000000000000000000000000000090811630179091556026805482166112341790556027805490911661567817905560405161031790617a84565b604080825260049082018190527f7a6574610000000000000000000000000000000000000000000000000000000060608301526080602083018190528201527f5a4554410000000000000000000000000000000000000000000000000000000060a082015260c001604051809103906000f08015801561039b573d6000803e3d6000fd5b50602480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283169081178255604080518082018252600e81527f4761746577617945564d2e736f6c00000000000000000000000000000000000060208201526027546025549251908616948101949094526044840192909252909216606482015261048c919060840160408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc0c53b8b00000000000000000000000000000000000000000000000000000000179052613973565b601f80547fffffffffffffffffffffff0000000000000000000000000000000000000000ff166101006001600160a01b0393841681029190911791829055602080549190920483167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560275460255460405192939182169291169061051890617a91565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103906000f080158015610554573d6000803e3d6000fd5b50602280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392831617905560205460245460275460255460405193851694928316939183169216906105af90617a9e565b6001600160a01b039485168152928416602084015290831660408301529091166060820152608001604051809103906000f0801580156105f3573d6000803e3d6000fd5b50602380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905560405161063890617aab565b604051809103906000f080158015610654573d6000803e3d6000fd5b50602180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283161790556027546040517fc88a5e6d00000000000000000000000000000000000000000000000000000000815291166004820152670de0b6b3a76400006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d90604401600060405180830381600087803b15801561070057600080fd5b505af1158015610714573d6000803e3d6000fd5b50506025546040517f06447d560000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d569150602401600060405180830381600087803b15801561078a57600080fd5b505af115801561079e573d6000803e3d6000fd5b50506020546022546040517fae7a3a6f0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201529116925063ae7a3a6f9150602401600060405180830381600087803b15801561080457600080fd5b505af1158015610818573d6000803e3d6000fd5b50506020546023546040517f10188aef0000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152911692506310188aef9150602401600060405180830381600087803b15801561087e57600080fd5b505af1158015610892573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156108f457600080fd5b505af1158015610908573d6000803e3d6000fd5b5050602480546023546040517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152624c4b40938101939093521692506340c10f199150604401600060405180830381600087803b15801561097957600080fd5b505af115801561098d573d6000803e3d6000fd5b50506027546040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152670de0b6b3a76400006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c88a5e6d9150604401600060405180830381600087803b158015610a1157600080fd5b505af1158015610a25573d6000803e3d6000fd5b50505050565b60606016805480602002602001604051908101604052809291908181526020018280548015610a8357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a65575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020016000905b82821015610bc657600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b82821015610baf578382906000526020600020018054610b2290617f1f565b80601f0160208091040260200160405190810160405280929190818152602001828054610b4e90617f1f565b8015610b9b5780601f10610b7057610100808354040283529160200191610b9b565b820191906000526020600020905b815481529060010190602001808311610b7e57829003601f168201915b505050505081526020019060010190610b03565b505050508152505081526020019060010190610ab1565b50505050905090565b60248054602654604051620186a09381018490526001600160a01b03928316604482015291166064820152600090819060840160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f357fc5a2000000000000000000000000000000000000000000000000000000001790526024805460265492516370a0823160e01b81526001600160a01b0393841660048201529394506000939216916370a082319101602060405180830381865afa158015610caa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cce9190617f6c565b9050610cdb816000613992565b602480546023546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa158015610d2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4f9190617f6c565b6020546040516001600160a01b0390911660248201526044810187905290915060009060640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905260245490517ff30c7ba3000000000000000000000000000000000000000000000000000000008152919250737109709ecfa91a80626ff3989d68f67f5b1dd12d9163f30c7ba391610e32916001600160a01b0391909116906000908690600401617f85565b600060405180830381600087803b158015610e4c57600080fd5b505af1158015610e60573d6000803e3d6000fd5b50506021546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b158015610ef257600080fd5b505af1158015610f06573d6000803e3d6000fd5b505060208054602454602654604080516001600160a01b0394851681529485018d905291831684830152919091166060830152517f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af609350908190036080019150a16023546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b158015610ff557600080fd5b505af1158015611009573d6000803e3d6000fd5b50506021546040516001600160a01b0390911692507f7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced915061104e9089908890617fad565b60405180910390a26027546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b1580156110c857600080fd5b505af11580156110dc573d6000803e3d6000fd5b50506023546021546040517f5e3e9fef0000000000000000000000000000000000000000000000000000000081526001600160a01b039283169450635e3e9fef935061113492909116908a9089908b90600401617fc6565b600060405180830381600087803b15801561114e57600080fd5b505af1158015611162573d6000803e3d6000fd5b5050602480546026546040516370a0823160e01b81526001600160a01b03918216600482015260009550911692506370a0823191015b602060405180830381865afa1580156111b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d99190617f6c565b90506111e58188613992565b602480546023546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa158015611235573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112599190617f6c565b905061126e816112698a8761802e565b613992565b602480546020546021546040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081526001600160a01b0392831660048201529082169381019390935260009291169063dd62ed3e90604401602060405180830381865afa1580156112e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113089190617f6c565b9050611315816000613992565b602480546020546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa158015611365573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113899190617f6c565b9050611396816000613992565b50505050505050505050565b60606018805480602002602001604051908101604052809291908181526020018280548015610a83576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610a65575050505050905090565b60606017805480602002602001604051908101604052809291908181526020018280548015610a83576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610a65575050505050905090565b604080516004808252602480830184526020830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f6ed70169000000000000000000000000000000000000000000000000000000001790525460265493516370a0823160e01b8152620186a0946000949385936001600160a01b03908116936370a082319361150393921691016001600160a01b0391909116815260200190565b602060405180830381865afa158015611520573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115449190617f6c565b9050611551816000613992565b602480546023546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa1580156115a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115c59190617f6c565b6020546040516001600160a01b0390911660248201526044810187905290915060009060640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905260245490517ff30c7ba3000000000000000000000000000000000000000000000000000000008152919250737109709ecfa91a80626ff3989d68f67f5b1dd12d9163f30c7ba3916116a8916001600160a01b0391909116906000908690600401617f85565b600060405180830381600087803b1580156116c257600080fd5b505af11580156116d6573d6000803e3d6000fd5b50506021546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b15801561176857600080fd5b505af115801561177c573d6000803e3d6000fd5b5050602080546040516001600160a01b0390911681527fbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a0935001905060405180910390a16023546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b15801561184e57600080fd5b505af1158015611862573d6000803e3d6000fd5b50506021546040516001600160a01b0390911692507f7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced91506118a79089908890617fad565b60405180910390a26027546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b15801561192157600080fd5b505af1158015611935573d6000803e3d6000fd5b50506023546021546040517f5e3e9fef0000000000000000000000000000000000000000000000000000000081526001600160a01b039283169450635e3e9fef935061198d92909116908a9089908b90600401617fc6565b600060405180830381600087803b1580156119a757600080fd5b505af11580156119bb573d6000803e3d6000fd5b5050602480546026546040516370a0823160e01b81526001600160a01b03918216600482015260009550911692506370a082319101602060405180830381865afa158015611a0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a319190617f6c565b9050611a3e816000613992565b602480546023546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa158015611a8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab29190617f6c565b905061126e8185613992565b6060601b805480602002602001604051908101604052809291908181526020016000905b82821015610bc65783829060005260206000209060020201604051806040016040529081600082018054611b1590617f1f565b80601f0160208091040260200160405190810160405280929190818152602001828054611b4190617f1f565b8015611b8e5780601f10611b6357610100808354040283529160200191611b8e565b820191906000526020600020905b815481529060010190602001808311611b7157829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015611c2857602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411611bd55790505b50505050508152505081526020019060010190611ae2565b6040517f68656c6c6f0000000000000000000000000000000000000000000000000000006020820152620186a090600090819060250160408051808303601f19018152908290526025547fca669fa70000000000000000000000000000000000000000000000000000000083526001600160a01b031660048301529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b158015611cf657600080fd5b505af1158015611d0a573d6000803e3d6000fd5b5050602554604080516001600160a01b0390921660248301527f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e460448084019190915281518084039091018152606490920181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe2517d3f00000000000000000000000000000000000000000000000000000000179052517ff28dceb3000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d935063f28dceb39250611df59190600401618041565b600060405180830381600087803b158015611e0f57600080fd5b505af1158015611e23573d6000803e3d6000fd5b50506023546021546040517f02d5c8990000000000000000000000000000000000000000000000000000000081526001600160a01b0392831694506302d5c8999350611e7b9290911690879086908890600401617fc6565b600060405180830381600087803b158015611e9557600080fd5b505af1158015611ea9573d6000803e3d6000fd5b50505050505050565b6060601a805480602002602001604051908101604052809291908181526020016000905b82821015610bc6578382906000526020600020018054611ef590617f1f565b80601f0160208091040260200160405190810160405280929190818152602001828054611f2190617f1f565b8015611f6e5780601f10611f4357610100808354040283529160200191611f6e565b820191906000526020600020905b815481529060010190602001808311611f5157829003601f168201915b505050505081526020019060010190611ed6565b6060601d805480602002602001604051908101604052809291908181526020016000905b82821015610bc65760008481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801561206557602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116120125790505b50505050508152505081526020019060010190611fa6565b6060601c805480602002602001604051908101604052809291908181526020016000905b82821015610bc65760008481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801561216057602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161210d5790505b505050505081525050815260200190600101906120a1565b60606019805480602002602001604051908101604052809291908181526020016000905b82821015610bc65783829060005260206000200180546121bb90617f1f565b80601f01602080910402602001604051908101604052809291908181526020018280546121e790617f1f565b80156122345780601f1061220957610100808354040283529160200191612234565b820191906000526020600020905b81548152906001019060200180831161221757829003601f168201915b50505050508152602001906001019061219c565b60085460009060ff1615612260575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c65640000000000000000000000000000000000000000000000000000602483015260009163667f9d7090604401602060405180830381865afa1580156122f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123159190617f6c565b1415905090565b60248054602654604051620186a09381018490526001600160a01b03928316604482015291166064820152600090819060840160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f357fc5a20000000000000000000000000000000000000000000000000000000017905260255490517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b15801561241b57600080fd5b505af115801561242f573d6000803e3d6000fd5b5050602554604080516001600160a01b0390921660248301527f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e460448084019190915281518084039091018152606490920181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe2517d3f00000000000000000000000000000000000000000000000000000000179052517ff28dceb3000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d935063f28dceb3925061251a9190600401618041565b600060405180830381600087803b15801561253457600080fd5b505af1158015612548573d6000803e3d6000fd5b50506023546021546040517f5e3e9fef0000000000000000000000000000000000000000000000000000000081526001600160a01b039283169450635e3e9fef9350611e7b9290911690879086908890600401617fc6565b602480546026546040516370a0823160e01b81526001600160a01b039182166004820152620186a093600093849316916370a082319101602060405180830381865afa1580156125f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126189190617f6c565b9050612625816000613992565b6026546040516001600160a01b0390911660248201526044810184905260009060640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905260245490517ff30c7ba3000000000000000000000000000000000000000000000000000000008152919250737109709ecfa91a80626ff3989d68f67f5b1dd12d9163f30c7ba391612705916001600160a01b0391909116906000908690600401617f85565b600060405180830381600087803b15801561271f57600080fd5b505af1158015612733573d6000803e3d6000fd5b50506023546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b1580156127c557600080fd5b505af11580156127d9573d6000803e3d6000fd5b50506026546040518781526001600160a01b0390911692507f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364915060200160405180910390a26027546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b15801561289157600080fd5b505af11580156128a5573d6000803e3d6000fd5b50506023546026546040517f106e62900000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260248101899052604481018890529116925063106e62909150606401600060405180830381600087803b15801561291957600080fd5b505af115801561292d573d6000803e3d6000fd5b5050602480546026546040516370a0823160e01b81526001600160a01b03918216600482015260009550911692506370a082319101602060405180830381865afa15801561297f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129a39190617f6c565b90506129af8186613992565b5050505050565b60248054602654604051620186a09381018490526001600160a01b03928316604482015291166064820152600090819060840160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc5131691000000000000000000000000000000000000000000000000000000001790526024805460265492516370a0823160e01b81526001600160a01b0393841660048201529394506000939216916370a082319101602060405180830381865afa158015612a91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ab59190617f6c565b9050612ac2816000613992565b602480546023546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa158015612b12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b369190617f6c565b6020546040516001600160a01b0390911660248201526044810187905290915060009060640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905260245490517ff30c7ba3000000000000000000000000000000000000000000000000000000008152919250737109709ecfa91a80626ff3989d68f67f5b1dd12d9163f30c7ba391612c19916001600160a01b0391909116906000908690600401617f85565b600060405180830381600087803b158015612c3357600080fd5b505af1158015612c47573d6000803e3d6000fd5b50506021546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b158015612cd957600080fd5b505af1158015612ced573d6000803e3d6000fd5b50506020547f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af6092506001600160a01b03169050612d2b600289618054565b602454602654604080516001600160a01b03958616815260208101949094529184168383015292909216606082015290519081900360800190a16023546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b158015612df357600080fd5b505af1158015612e07573d6000803e3d6000fd5b50506021546040516001600160a01b0390911692507f7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced9150612e4c9089908890617fad565b60405180910390a26027546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b158015612ec657600080fd5b505af1158015612eda573d6000803e3d6000fd5b50506023546021546040517f5e3e9fef0000000000000000000000000000000000000000000000000000000081526001600160a01b039283169450635e3e9fef9350612f3292909116908a9089908b90600401617fc6565b600060405180830381600087803b158015612f4c57600080fd5b505af1158015612f60573d6000803e3d6000fd5b5050602480546026546040516370a0823160e01b81526001600160a01b03918216600482015260009550911692506370a082319101602060405180830381865afa158015612fb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fd69190617f6c565b9050612fe78161126960028a618054565b602480546023546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa158015613037573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061305b9190617f6c565b905061126e8161306c60028b618054565b611269908761802e565b6040517f68656c6c6f0000000000000000000000000000000000000000000000000000006020820152620186a090600090819060250160408051808303601f1901815290829052602480546021546370a0823160e01b85526001600160a01b0390811660048601529294506000939216916370a082319101602060405180830381865afa15801561310b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061312f9190617f6c565b905061313c816000613992565b602480546023546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa15801561318c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131b09190617f6c565b6020546040516001600160a01b0390911660248201526044810187905290915060009060640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905260245490517ff30c7ba3000000000000000000000000000000000000000000000000000000008152919250737109709ecfa91a80626ff3989d68f67f5b1dd12d9163f30c7ba391613293916001600160a01b0391909116906000908690600401617f85565b600060405180830381600087803b1580156132ad57600080fd5b505af11580156132c1573d6000803e3d6000fd5b50506021546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b15801561335357600080fd5b505af1158015613367573d6000803e3d6000fd5b50506020546040517f0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa93506133aa92506001600160a01b0390911690879061808f565b60405180910390a16020546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b15801561344057600080fd5b505af1158015613454573d6000803e3d6000fd5b50506021546024546040516001600160a01b039283169450911691507f723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda79061349f908a908990617fad565b60405180910390a36023546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b15801561353557600080fd5b505af1158015613549573d6000803e3d6000fd5b50506021546040516001600160a01b0390911692507fba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe915061358e9089908890617fad565b60405180910390a26027546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b15801561360857600080fd5b505af115801561361c573d6000803e3d6000fd5b50506023546021546040517f02d5c8990000000000000000000000000000000000000000000000000000000081526001600160a01b0392831694506302d5c899935061367492909116908a9089908b90600401617fc6565b600060405180830381600087803b15801561368e57600080fd5b505af11580156136a2573d6000803e3d6000fd5b5050602480546021546040516370a0823160e01b81526001600160a01b03918216600482015260009550911692506370a082319101611198565b60606015805480602002602001604051908101604052809291908181526020018280548015610a83576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610a65575050505050905090565b6025546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152620186a090600090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b1580156137b657600080fd5b505af11580156137ca573d6000803e3d6000fd5b5050602554604080516001600160a01b0390921660248301527f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e460448084019190915281518084039091018152606490920181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe2517d3f00000000000000000000000000000000000000000000000000000000179052517ff28dceb3000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d935063f28dceb392506138b59190600401618041565b600060405180830381600087803b1580156138cf57600080fd5b505af11580156138e3573d6000803e3d6000fd5b50506023546026546040517f106e62900000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260248101879052604481018690529116925063106e62909150606401600060405180830381600087803b15801561395757600080fd5b505af115801561396b573d6000803e3d6000fd5b505050505050565b600061397d617ab8565b613988848483613a11565b9150505b92915050565b6040517f98296c540000000000000000000000000000000000000000000000000000000081526004810183905260248101829052737109709ecfa91a80626ff3989d68f67f5b1dd12d906398296c549060440160006040518083038186803b1580156139fd57600080fd5b505afa15801561396b573d6000803e3d6000fd5b600080613a1e8584613a8c565b9050613a816040518060400160405280601d81526020017f4552433139363750726f78792e736f6c3a4552433139363750726f78790000008152508286604051602001613a6c92919061808f565b60405160208183030381529060405285613a98565b9150505b9392505050565b6000613a858383613ac6565b60c08101515160009015613abc57613ab584848460c00151613ae1565b9050613a85565b613ab58484613c87565b6000613ad28383613d72565b613a8583836020015184613a98565b600080613aec613d82565b90506000613afa8683613e55565b90506000613b1182606001518360200151856142fb565b90506000613b218383898961450d565b90506000613b2e8261538a565b602081015181519192509060030b15613ba157898260400151604051602001613b589291906180b1565b60408051601f19818403018152908290527f08c379a0000000000000000000000000000000000000000000000000000000008252613b9891600401618041565b60405180910390fd5b6000613be46040518060400160405280601581526020017f4465706c6f79656420746f20616464726573733a200000000000000000000000815250836001615559565b6040517fc6ce059d000000000000000000000000000000000000000000000000000000008152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c6ce059d90613c37908490600401618041565b602060405180830381865afa158015613c54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c789190618132565b9b9a5050505050505050505050565b6040517f8d1cc9250000000000000000000000000000000000000000000000000000000081526000908190737109709ecfa91a80626ff3989d68f67f5b1dd12d90638d1cc92590613cdc908790600401618041565b600060405180830381865afa158015613cf9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613d219190810190618243565b90506000613d4f8285604051602001613d3b929190618278565b604051602081830303815290604052615759565b90506001600160a01b038116613988578484604051602001613b589291906182a7565b613d7e8282600061576c565b5050565b604080518082018252600381527f6f75740000000000000000000000000000000000000000000000000000000000602082015290517fd145736c000000000000000000000000000000000000000000000000000000008152606091737109709ecfa91a80626ff3989d68f67f5b1dd12d91829063d145736c90613e09908490600401618352565b600060405180830381865afa158015613e26573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613e4e9190810190618399565b9250505090565b613e876040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d9050613ed26040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b613edb8561586f565b60208201526000613eeb86615c54565b90506000836001600160a01b031663d930a0e66040518163ffffffff1660e01b8152600401600060405180830381865afa158015613f2d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613f559190810190618399565b86838560200151604051602001613f6f94939291906183e2565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291506000906001600160a01b038616906360f9bb1190613fc7908590600401618041565b600060405180830381865afa158015613fe4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261400c9190810190618399565b6040517fdb4235f60000000000000000000000000000000000000000000000000000000081529091506001600160a01b0386169063db4235f6906140549084906004016184e6565b602060405180830381865afa158015614071573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140959190618538565b6140aa5781604051602001613b58919061855a565b6040517f49c4fac80000000000000000000000000000000000000000000000000000000081526001600160a01b038616906349c4fac8906140ef9084906004016185ec565b600060405180830381865afa15801561410c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526141349190810190618399565b84526040517fdb4235f60000000000000000000000000000000000000000000000000000000081526001600160a01b0386169063db4235f69061417b90849060040161863e565b602060405180830381865afa158015614198573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141bc9190618538565b15614251576040517f49c4fac80000000000000000000000000000000000000000000000000000000081526001600160a01b038616906349c4fac89061420690849060040161863e565b600060405180830381865afa158015614223573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261424b9190810190618399565b60408501525b846001600160a01b03166349c4fac88286600001516040516020016142769190618690565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016142a29291906186fc565b600060405180830381865afa1580156142bf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526142e79190810190618399565b606085015250608083015250949350505050565b60408051600480825260a0820190925260609160009190816020015b60608152602001906001900390816143175790505090506040518060400160405280600481526020017f67726570000000000000000000000000000000000000000000000000000000008152508160008151811061437757614377618721565b60200260200101819052506040518060400160405280600381526020017f2d726c0000000000000000000000000000000000000000000000000000000000815250816001815181106143cb576143cb618721565b6020026020010181905250846040516020016143e79190618750565b6040516020818303038152906040528160028151811061440957614409618721565b60200260200101819052508260405160200161442591906187bc565b6040516020818303038152906040528160038151811061444757614447618721565b6020026020010181905250600061445d8261538a565b602080820151604080518082018252600581527f2e6a736f6e00000000000000000000000000000000000000000000000000000081850190815282518084018452600080825290860152825180840190935290518252928101929092529192506144ee9060408051808201825260008082526020918201528151808301909252845182528085019082015290615ed7565b6145035785604051602001613b5891906187fd565b9695505050505050565b60a0810151604080518082018252600080825260209182015281518083019092528251808352928101910152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d901561455d565b511590565b6146d157826020015115614619576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605860248201527f54686520606c6963656e73655479706560206f7074696f6e2063616e6e6f742060448201527f62652075736564207768656e207468652060736b6970566572696679536f757260648201527f6365436f646560206f7074696f6e206973206074727565600000000000000000608482015260a401613b98565b8260c00151156146d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605360248201527f54686520606c6963656e73655479706560206f7074696f6e2063616e6e6f742060448201527f62652075736564207768656e207468652060736b69704c6963656e736554797060648201527f6560206f7074696f6e2069732060747275656000000000000000000000000000608482015260a401613b98565b6040805160ff8082526120008201909252600091816020015b60608152602001906001900390816146ea57905050905060006040518060400160405280600381526020017f6e707800000000000000000000000000000000000000000000000000000000008152508282806147459061888e565b935060ff168151811061475a5761475a618721565b60200260200101819052506040518060400160405280600d81526020017f302e302e312d616c7068612e37000000000000000000000000000000000000008152506040516020016147ab91906188ad565b6040516020818303038152906040528282806147c69061888e565b935060ff16815181106147db576147db618721565b60200260200101819052506040518060400160405280600681526020017f6465706c6f7900000000000000000000000000000000000000000000000000008152508282806148289061888e565b935060ff168151811061483d5761483d618721565b60200260200101819052506040518060400160405280600e81526020017f2d2d636f6e74726163744e616d6500000000000000000000000000000000000081525082828061488a9061888e565b935060ff168151811061489f5761489f618721565b602002602001018190525087602001518282806148bb9061888e565b935060ff16815181106148d0576148d0618721565b60200260200101819052506040518060400160405280600e81526020017f2d2d636f6e74726163745061746800000000000000000000000000000000000081525082828061491d9061888e565b935060ff168151811061493257614932618721565b60209081029190910101528751828261494a8161888e565b935060ff168151811061495f5761495f618721565b60200260200101819052506040518060400160405280600981526020017f2d2d636861696e496400000000000000000000000000000000000000000000008152508282806149ac9061888e565b935060ff16815181106149c1576149c1618721565b60200260200101819052506149d546615f38565b82826149e08161888e565b935060ff16815181106149f5576149f5618721565b60200260200101819052506040518060400160405280600f81526020017f2d2d6275696c64496e666f46696c650000000000000000000000000000000000815250828280614a429061888e565b935060ff1681518110614a5757614a57618721565b602002602001018190525086828280614a6f9061888e565b935060ff1681518110614a8457614a84618721565b6020908102919091010152855115614bab5760408051808201909152601581527f2d2d636f6e7374727563746f7242797465636f6465000000000000000000000060208201528282614ad58161888e565b935060ff1681518110614aea57614aea618721565b60209081029190910101526040517f71aad10d0000000000000000000000000000000000000000000000000000000081526001600160a01b038416906371aad10d90614b3a908990600401618041565b600060405180830381865afa158015614b57573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052614b7f9190810190618399565b8282614b8a8161888e565b935060ff1681518110614b9f57614b9f618721565b60200260200101819052505b846020015115614c7b5760408051808201909152601281527f2d2d766572696679536f75726365436f6465000000000000000000000000000060208201528282614bf48161888e565b935060ff1681518110614c0957614c09618721565b60200260200101819052506040518060400160405280600581526020017f66616c7365000000000000000000000000000000000000000000000000000000815250828280614c569061888e565b935060ff1681518110614c6b57614c6b618721565b6020026020010181905250614e42565b614cb36145588660a0015160408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b614d465760408051808201909152600d81527f2d2d6c6963656e7365547970650000000000000000000000000000000000000060208201528282614cf68161888e565b935060ff1681518110614d0b57614d0b618721565b60200260200101819052508460a00151604051602001614d2b9190618750565b604051602081830303815290604052828280614c569061888e565b8460c00151158015614d89575060408089015181518083018352600080825260209182015282518084019093528151835290810190820152614d8790511590565b155b15614e425760408051808201909152600d81527f2d2d6c6963656e7365547970650000000000000000000000000000000000000060208201528282614dcd8161888e565b935060ff1681518110614de257614de2618721565b6020026020010181905250614df688615fd8565b604051602001614e069190618750565b604051602081830303815290604052828280614e219061888e565b935060ff1681518110614e3657614e36618721565b60200260200101819052505b60408086015181518083018352600080825260209182015282518084019093528151835290810190820152614e7690511590565b614f0b5760408051808201909152600b81527f2d2d72656c61796572496400000000000000000000000000000000000000000060208201528282614eb98161888e565b935060ff1681518110614ece57614ece618721565b60200260200101819052508460400151828280614eea9061888e565b935060ff1681518110614eff57614eff618721565b60200260200101819052505b60608501511561502c5760408051808201909152600681527f2d2d73616c74000000000000000000000000000000000000000000000000000060208201528282614f548161888e565b935060ff1681518110614f6957614f69618721565b602090810291909101015260608501516040517fb11a19e800000000000000000000000000000000000000000000000000000000815260048101919091526001600160a01b0384169063b11a19e890602401600060405180830381865afa158015614fd8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526150009190810190618399565b828261500b8161888e565b935060ff168151811061502057615020618721565b60200260200101819052505b60e085015151156150d35760408051808201909152600a81527f2d2d6761734c696d697400000000000000000000000000000000000000000000602082015282826150768161888e565b935060ff168151811061508b5761508b618721565b60200260200101819052506150a78560e0015160000151615f38565b82826150b28161888e565b935060ff16815181106150c7576150c7618721565b60200260200101819052505b60e0850151602001511561517d5760408051808201909152600a81527f2d2d676173507269636500000000000000000000000000000000000000000000602082015282826151208161888e565b935060ff168151811061513557615135618721565b60200260200101819052506151518560e0015160200151615f38565b828261515c8161888e565b935060ff168151811061517157615171618721565b60200260200101819052505b60e085015160400151156152275760408051808201909152600e81527f2d2d6d6178466565506572476173000000000000000000000000000000000000602082015282826151ca8161888e565b935060ff16815181106151df576151df618721565b60200260200101819052506151fb8560e0015160400151615f38565b82826152068161888e565b935060ff168151811061521b5761521b618721565b60200260200101819052505b60e085015160600151156152d15760408051808201909152601681527f2d2d6d61785072696f7269747946656550657247617300000000000000000000602082015282826152748161888e565b935060ff168151811061528957615289618721565b60200260200101819052506152a58560e0015160600151615f38565b82826152b08161888e565b935060ff16815181106152c5576152c5618721565b60200260200101819052505b60008160ff1667ffffffffffffffff8111156152ef576152ef61815b565b60405190808252806020026020018201604052801561532257816020015b606081526020019060019003908161530d5790505b50905060005b8260ff168160ff16101561537b57838160ff168151811061534b5761534b618721565b6020026020010151828260ff168151811061536857615368618721565b6020908102919091010152600101615328565b5093505050505b949350505050565b6153b16040518060600160405280600060030b815260200160608152602001606081525090565b60408051808201825260048082527f6261736800000000000000000000000000000000000000000000000000000000602083015291517fd145736c000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d92600091849163d145736c9161543791869101618918565b600060405180830381865afa158015615454573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261547c9190810190618399565b9050600061548a8683616ac7565b90506000846001600160a01b031663f45c1ce7836040518263ffffffff1660e01b81526004016154ba9190617e11565b6000604051808303816000875af11580156154d9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052615501919081019061895f565b805190915060030b1580159061551a5750602081015151155b80156155295750604081015151155b15614503578160008151811061554157615541618721565b6020026020010151604051602001613b589190618a15565b6060600061558e8560408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b6040805180820182526000808252602091820152815180830190925286518252808701908201529091506155c59082905b90616c1c565b156157225760006156428261563c846156366156088a60408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b6040805180820182526000808252602091820152815180830190925282518252918201519181019190915290565b90616c43565b90616ca5565b604080518082018252600181527f0a00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201529091506156a6908290616c1c565b1561571057604080518082018252600181527f0a000000000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261570d905b8290616d2a565b90505b61571981616d50565b92505050613a85565b821561573b578484604051602001613b58929190618c01565b5050604080516020810190915260008152613a85565b509392505050565b6000808251602084016000f09392505050565b8160a001511561577b57505050565b6000615788848484616db9565b905060006157958261538a565b602081015181519192509060030b1580156158315750604080518082018252600781527f535543434553530000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615831906040805180820182526000808252602091820152815180830190925284518252808501908201526155bf565b1561583e57505050505050565b6040820151511561585e578160400151604051602001613b589190618ca8565b80604051602001613b589190618d06565b606060006158a48360408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600481527f2e736f6c0000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152909150615909905b8290615ed7565b1561597857604080518082018252600481527f2e736f6c0000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152613a8590615973908390617354565b616d50565b604080518082018252600181527f3a00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526159da905b82906173de565b600103615aa757604080518082018252600181527f3a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615a4090615706565b50604080518082018252600181527f3a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152613a8590615973905b8390616d2a565b604080518082018252600581527f2e6a736f6e00000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615b0690615902565b15615c3d57604080518082018252600181527f2f00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820181905284518086019095529251845283015290615b6e908390617478565b905060008160018351615b81919061802e565b81518110615b9157615b91618721565b60200260200101519050615c34615973615c076040518060400160405280600581526020017f2e6a736f6e00000000000000000000000000000000000000000000000000000081525060408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b60408051808201825260008082526020918201528151808301909252855182528086019082015290617354565b95945050505050565b82604051602001613b589190618d71565b50919050565b60606000615c898360408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600481527f2e736f6c0000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152909150615ceb90615902565b15615cf957613a8581616d50565b604080518082018252600181527f3a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615d58906159d3565b600103615dc257604080518082018252600181527f3a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152613a859061597390615aa0565b604080518082018252600581527f2e6a736f6e00000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615e2190615902565b15615c3d57604080518082018252600181527f2f00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820181905284518086019095529251845283015290615e89908390617478565b9050600181511115615ec5578060028251615ea4919061802e565b81518110615eb457615eb4618721565b602002602001015192505050919050565b5082604051602001613b589190618d71565b805182516000911115615eec5750600061398c565b81518351602085015160009291615f0291618e4f565b615f0c919061802e565b905082602001518103615f2357600191505061398c565b82516020840151819020912014905092915050565b60606000615f458361751d565b600101905060008167ffffffffffffffff811115615f6557615f6561815b565b6040519080825280601f01601f191660200182016040528015615f8f576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084615f9957509392505050565b604081810151815180830183526000808252602091820181905283518085018552835181529282018383015283518085018552600a81527f554e4c4943454e5345440000000000000000000000000000000000000000000081840190815285518087018752838152840192909252845180860190955251845290830152606091616064905b82906175ff565b156160a457505060408051808201909152600481527f4e6f6e65000000000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600981527f556e6c6963656e73650000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526161039061605d565b1561614357505060408051808201909152600981527f556e6c6963656e736500000000000000000000000000000000000000000000006020820152919050565b604080518082018252600381527f4d49540000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526161a29061605d565b156161e257505060408051808201909152600381527f4d495400000000000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f47504c2d322e302d6f6e6c790000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526162419061605d565b806162a65750604080518082018252601081527f47504c2d322e302d6f722d6c6174657200000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526162a69061605d565b156162e657505060408051808201909152600981527f474e552047504c763200000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f47504c2d332e302d6f6e6c790000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526163459061605d565b806163aa5750604080518082018252601081527f47504c2d332e302d6f722d6c6174657200000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526163aa9061605d565b156163ea57505060408051808201909152600981527f474e552047504c763300000000000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4c47504c2d322e312d6f6e6c7900000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526164499061605d565b806164ae5750604080518082018252601181527f4c47504c2d322e312d6f722d6c61746572000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526164ae9061605d565b156164ee57505060408051808201909152600c81527f474e55204c47504c76322e3100000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4c47504c2d332e302d6f6e6c79000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261654d9061605d565b806165b25750604080518082018252601181527f4c47504c2d332e302d6f722d6c61746572000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526165b29061605d565b156165f257505060408051808201909152600a81527f474e55204c47504c7633000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f4253442d322d436c617573650000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526166519061605d565b1561669157505060408051808201909152600c81527f4253442d322d436c6175736500000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f4253442d332d436c617573650000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526166f09061605d565b1561673057505060408051808201909152600c81527f4253442d332d436c6175736500000000000000000000000000000000000000006020820152919050565b604080518082018252600781527f4d504c2d322e30000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261678f9061605d565b156167cf57505060408051808201909152600781527f4d504c2d322e30000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600781527f4f534c2d332e30000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261682e9061605d565b1561686e57505060408051808201909152600781527f4f534c2d332e30000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600a81527f4170616368652d322e3000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526168cd9061605d565b1561690d57505060408051808201909152600a81527f4170616368652d322e30000000000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4147504c2d332e302d6f6e6c79000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261696c9061605d565b806169d15750604080518082018252601181527f4147504c2d332e302d6f722d6c61746572000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526169d19061605d565b15616a1157505060408051808201909152600a81527f474e55204147504c7633000000000000000000000000000000000000000000006020820152919050565b604080518082018252600881527f4255534c2d312e3100000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152616a709061605d565b15616ab057505060408051808201909152600781527f42534c20312e31000000000000000000000000000000000000000000000000006020820152919050565b60408084015184519151613b589290602001618e62565b60608060005b8451811015616b525781858281518110616ae957616ae9618721565b6020026020010151604051602001616b02929190618278565b604051602081830303815290604052915060018551616b21919061802e565b8114616b4a5781604051602001616b389190618fcb565b60405160208183030381529060405291505b600101616acd565b5060408051600380825260808201909252600091816020015b6060815260200190600190039081616b6b5790505090508381600081518110616b9657616b96618721565b60200260200101819052506040518060400160405280600281526020017f2d6300000000000000000000000000000000000000000000000000000000000081525081600181518110616bea57616bea618721565b60200260200101819052508181600281518110616c0957616c09618721565b6020908102919091010152949350505050565b6020808301518351835192840151600093616c3a9291849190617613565b14159392505050565b60408051808201909152600080825260208201526000616c758460000151856020015185600001518660200151617724565b9050836020015181616c87919061802e565b84518590616c9690839061802e565b90525060208401525090919050565b6040805180820190915260008082526020820152815183511015616cca57508161398c565b6020808301519084015160019114616cf15750815160208481015190840151829020919020145b8015616d2257825184518590616d0890839061802e565b9052508251602085018051616d1e908390618e4f565b9052505b509192915050565b6040805180820190915260008082526020820152616d49838383617844565b5092915050565b60606000826000015167ffffffffffffffff811115616d7157616d7161815b565b6040519080825280601f01601f191660200182016040528015616d9b576020820181803683370190505b5090506000602082019050616d4981856020015186600001516178ef565b60606000616dc5613d82565b6040805160ff808252612000820190925291925060009190816020015b6060815260200190600190039081616de257905050905060006040518060400160405280600381526020017f6e70780000000000000000000000000000000000000000000000000000000000815250828280616e3d9061888e565b935060ff1681518110616e5257616e52618721565b60200260200101819052506040518060400160405280600781526020017f5e312e33322e3300000000000000000000000000000000000000000000000000815250604051602001616ea3919061900c565b604051602081830303815290604052828280616ebe9061888e565b935060ff1681518110616ed357616ed3618721565b60200260200101819052506040518060400160405280600881526020017f76616c6964617465000000000000000000000000000000000000000000000000815250828280616f209061888e565b935060ff1681518110616f3557616f35618721565b602002602001018190525082604051602001616f5191906187bc565b604051602081830303815290604052828280616f6c9061888e565b935060ff1681518110616f8157616f81618721565b60200260200101819052506040518060400160405280600a81526020017f2d2d636f6e747261637400000000000000000000000000000000000000000000815250828280616fce9061888e565b935060ff1681518110616fe357616fe3618721565b6020026020010181905250616ff88784617969565b82826170038161888e565b935060ff168151811061701857617018618721565b6020908102919091010152855151156170c45760408051808201909152600b81527f2d2d7265666572656e63650000000000000000000000000000000000000000006020820152828261706a8161888e565b935060ff168151811061707f5761707f618721565b6020026020010181905250617098866000015184617969565b82826170a38161888e565b935060ff16815181106170b8576170b8618721565b60200260200101819052505b8560800151156171325760408051808201909152601881527f2d2d756e73616665536b697053746f72616765436865636b00000000000000006020820152828261710d8161888e565b935060ff168151811061712257617122618721565b6020026020010181905250617198565b84156171985760408051808201909152601281527f2d2d726571756972655265666572656e63650000000000000000000000000000602082015282826171778161888e565b935060ff168151811061718c5761718c618721565b60200260200101819052505b604086015151156172345760408051808201909152600d81527f2d2d756e73616665416c6c6f7700000000000000000000000000000000000000602082015282826171e28161888e565b935060ff16815181106171f7576171f7618721565b602002602001018190525085604001518282806172139061888e565b935060ff168151811061722857617228618721565b60200260200101819052505b85606001511561729e5760408051808201909152601481527f2d2d756e73616665416c6c6f7752656e616d65730000000000000000000000006020820152828261727d8161888e565b935060ff168151811061729257617292618721565b60200260200101819052505b60008160ff1667ffffffffffffffff8111156172bc576172bc61815b565b6040519080825280602002602001820160405280156172ef57816020015b60608152602001906001900390816172da5790505b50905060005b8260ff168160ff16101561734857838160ff168151811061731857617318618721565b6020026020010151828260ff168151811061733557617335618721565b60209081029190910101526001016172f5565b50979650505050505050565b604080518082019091526000808252602082015281518351101561737957508161398c565b8151835160208501516000929161738f91618e4f565b617399919061802e565b602084015190915060019082146173ba575082516020840151819020908220145b80156173d5578351855186906173d190839061802e565b9052505b50929392505050565b60008082600001516174028560000151866020015186600001518760200151617724565b61740c9190618e4f565b90505b835160208501516174209190618e4f565b8111616d49578161743081619051565b925050826000015161746785602001518361744b919061802e565b8651617457919061802e565b8386600001518760200151617724565b6174719190618e4f565b905061740f565b6060600061748684846173de565b617491906001618e4f565b67ffffffffffffffff8111156174a9576174a961815b565b6040519080825280602002602001820160405280156174dc57816020015b60608152602001906001900390816174c75790505b50905060005b8151811015615751576174f86159738686616d2a565b82828151811061750a5761750a618721565b60209081029190910101526001016174e2565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310617566577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310617592576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106175b057662386f26fc10000830492506010015b6305f5e10083106175c8576305f5e100830492506008015b61271083106175dc57612710830492506004015b606483106175ee576064830492506002015b600a831061398c5760010192915050565b600061760b83836179a9565b159392505050565b60008085841161771a57602084116176c6576000841561765e57600161763a86602061802e565b61764590600861906b565b617650906002619169565b61765a919061802e565b1990505b835181168561766d8989618e4f565b617677919061802e565b805190935082165b8181146176b1578784116176995787945050505050615382565b836176a381619175565b94505082845116905061767f565b6176bb8785618e4f565b945050505050615382565b8383206176d3858861802e565b6176dd9087618e4f565b91505b85821061771857848220808203617705576176fb8684618e4f565b9350505050615382565b61771060018461802e565b9250506176e0565b505b5092949350505050565b6000838186851161782f57602085116177de576000851561777057600161774c87602061802e565b61775790600861906b565b617762906002619169565b61776c919061802e565b1990505b845181166000876177818b8b618e4f565b61778b919061802e565b855190915083165b8281146177d0578186106177b8576177ab8b8b618e4f565b9650505050505050615382565b856177c281619051565b965050838651169050617793565b859650505050505050615382565b508383206000905b6177f0868961802e565b821161782d5785832080820361780c5783945050505050615382565b617817600185618e4f565b935050818061782590619051565b9250506177e6565b505b6178398787618e4f565b979650505050505050565b604080518082019091526000808252602082015260006178768560000151866020015186600001518760200151617724565b602080870180519186019190915251909150617892908261802e565b8352845160208601516178a59190618e4f565b81036178b457600085526178e6565b835183516178c29190618e4f565b855186906178d190839061802e565b90525083516178e09082618e4f565b60208601525b50909392505050565b602081106179275781518352617906602084618e4f565b9250617913602083618e4f565b915061792060208261802e565b90506178ef565b600019811561795657600161793d83602061802e565b61794990610100619169565b617953919061802e565b90505b9151835183169219169190911790915250565b606060006179778484613e55565b80516020808301516040519394506179919390910161918c565b60405160208183030381529060405291505092915050565b81518151600091908111156179bc575081515b6020808501519084015160005b83811015617a755782518251808214617a45576000196020871015617a24576001846179f689602061802e565b617a009190618e4f565b617a0b90600861906b565b617a16906002619169565b617a20919061802e565b1990505b8181168382168181039114617a4257975061398c9650505050505050565b50505b617a50602086618e4f565b9450617a5d602085618e4f565b93505050602081617a6e9190618e4f565b90506179c9565b508451865161450391906191e4565b610c9f8061920583390190565b6113e280619ea483390190565b6116378061b28683390190565b610d5e8061c8bd83390190565b6040518060e00160405280606081526020016060815260200160608152602001600015158152602001600015158152602001600015158152602001617afb617b00565b905290565b60405180610100016040528060001515815260200160001515815260200160608152602001600080191681526020016060815260200160608152602001600015158152602001617afb6040518060800160405280600081526020016000815260200160008152602001600081525090565b602080825282518282018190526000918401906040840190835b81811015617bb25783516001600160a01b0316835260209384019390920191600101617b8b565b509095945050505050565b60005b83811015617bd8578181015183820152602001617bc0565b50506000910152565b60008151808452617bf9816020860160208601617bbd565b601f01601f19169290920160200192915050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015617d09577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452815180516001600160a01b03168652602090810151604082880181905281519088018190529101906060600582901b88018101919088019060005b81811015617cef577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08a8503018352617cd9848651617be1565b6020958601959094509290920191600101617c9f565b509197505050602094850194929092019150600101617c35565b50929695505050505050565b600081518084526020840193506020830160005b82811015617d695781517fffffffff0000000000000000000000000000000000000000000000000000000016865260209586019590910190600101617d29565b5093949350505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015617d09577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08786030184528151805160408752617ddf6040880182617be1565b9050602082015191508681036020880152617dfa8183617d15565b965050506020938401939190910190600101617d9b565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015617d09577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452617e73858351617be1565b94506020938401939190910190600101617e39565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015617d09577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc087860301845281516001600160a01b0381511686526020810151905060406020870152617f096040870182617d15565b9550506020938401939190910190600101617eb0565b600181811c90821680617f3357607f821691505b602082108103615c4e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060208284031215617f7e57600080fd5b5051919050565b6001600160a01b0384168152826020820152606060408201526000615c346060830184617be1565b8281526040602082015260006153826040830184617be1565b6001600160a01b0385168152836020820152608060408201526000617fee6080830185617be1565b905082606083015295945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561398c5761398c617fff565b602081526000613a856020830184617be1565b60008261808a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6001600160a01b03831681526040602082015260006153826040830184617be1565b7f4661696c656420746f206465706c6f7920636f6e7472616374200000000000008152600083516180e981601a850160208801617bbd565b7f3a20000000000000000000000000000000000000000000000000000000000000601a91840191820152835161812681601c840160208801617bbd565b01601c01949350505050565b60006020828403121561814457600080fd5b81516001600160a01b0381168114613a8557600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff811182821017156181ad576181ad61815b565b60405290565b60008067ffffffffffffffff8411156181ce576181ce61815b565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff821117156181fd576181fd61815b565b60405283815290508082840185101561821557600080fd5b615751846020830185617bbd565b600082601f83011261823457600080fd5b613a85838351602085016181b3565b60006020828403121561825557600080fd5b815167ffffffffffffffff81111561826c57600080fd5b61398884828501618223565b6000835161828a818460208801617bbd565b83519083019061829e818360208801617bbd565b01949350505050565b7f4661696c656420746f206465706c6f7920636f6e7472616374200000000000008152600083516182df81601a850160208801617bbd565b7f207573696e6720636f6e7374727563746f722064617461202200000000000000601a91840191820152835161831c816033840160208801617bbd565b7f220000000000000000000000000000000000000000000000000000000000000060339290910191820152603401949350505050565b60408152600b60408201527f464f554e4452595f4f55540000000000000000000000000000000000000000006060820152608060208201526000613a856080830184617be1565b6000602082840312156183ab57600080fd5b815167ffffffffffffffff8111156183c257600080fd5b8201601f810184136183d357600080fd5b613988848251602084016181b3565b600085516183f4818460208a01617bbd565b7f2f00000000000000000000000000000000000000000000000000000000000000908301908152855161842e816001840160208a01617bbd565b7f2f0000000000000000000000000000000000000000000000000000000000000060019290910191820152845161846c816002840160208901617bbd565b6001818301019150507f2f00000000000000000000000000000000000000000000000000000000000000600182015283516184ae816002840160208801617bbd565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600292909101918201526007019695505050505050565b6040815260006184f96040830184617be1565b8281036020840152600481527f2e6173740000000000000000000000000000000000000000000000000000000060208201526040810191505092915050565b60006020828403121561854a57600080fd5b81518015158114613a8557600080fd5b7f436f756c64206e6f742066696e642041535420696e206172746966616374200081526000825161859281601f850160208701617bbd565b7f2e205365742060617374203d20747275656020696e20666f756e6472792e746f601f9390910192830152507f6d6c000000000000000000000000000000000000000000000000000000000000603f820152604101919050565b6040815260006185ff6040830184617be1565b8281036020840152601181527f2e6173742e6162736f6c7574655061746800000000000000000000000000000060208201526040810191505092915050565b6040815260006186516040830184617be1565b8281036020840152600c81527f2e6173742e6c6963656e7365000000000000000000000000000000000000000060208201526040810191505092915050565b7f2e6d657461646174612e736f75726365732e5b270000000000000000000000008152600082516186c8816014850160208701617bbd565b7f275d2e6b656363616b32353600000000000000000000000000000000000000006014939091019283015250602001919050565b60408152600061870f6040830185617be1565b8281036020840152613a818185617be1565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f2200000000000000000000000000000000000000000000000000000000000000815260008251618788816001850160208701617bbd565b7f22000000000000000000000000000000000000000000000000000000000000006001939091019283015250600201919050565b600082516187ce818460208701617bbd565b7f2f6275696c642d696e666f000000000000000000000000000000000000000000920191825250600b01919050565b7f436f756c64206e6f742066696e64206275696c642d696e666f2066696c65207781527f697468206d61746368696e6720736f7572636520636f6465206861736820666f60208201527f7220636f6e74726163742000000000000000000000000000000000000000000060408201526000825161888181604b850160208701617bbd565b91909101604b0192915050565b600060ff821660ff81036188a4576188a4617fff565b60010192915050565b7f406f70656e7a657070656c696e2f646566656e6465722d6465706c6f792d636c81527f69656e742d636c6940000000000000000000000000000000000000000000000060208201526000825161890b816029850160208701617bbd565b9190910160290192915050565b60408152601660408201527f4f50454e5a455050454c494e5f424153485f50415448000000000000000000006060820152608060208201526000613a856080830184617be1565b60006020828403121561897157600080fd5b815167ffffffffffffffff81111561898857600080fd5b82016060818503121561899a57600080fd5b6189a261818a565b81518060030b81146189b357600080fd5b8152602082015167ffffffffffffffff8111156189cf57600080fd5b6189db86828501618223565b602083015250604082015167ffffffffffffffff8111156189fb57600080fd5b618a0786828501618223565b604083015250949350505050565b7f4661696c656420746f2072756e206261736820636f6d6d616e6420776974682081527f2200000000000000000000000000000000000000000000000000000000000000602082015260008251618a73816021850160208701617bbd565b7f222e20496620796f7520617265207573696e672057696e646f77732c2073657460219390910192830152507f20746865204f50454e5a455050454c494e5f424153485f5041544820656e766960418201527f726f6e6d656e74207661726961626c6520746f207468652066756c6c7920717560618201527f616c69666965642070617468206f66207468652062617368206578656375746160818201527f626c652e20466f72206578616d706c652c20696620796f75206172652075736960a18201527f6e672047697420666f722057696e646f77732c206164642074686520666f6c6c60c18201527f6f77696e67206c696e6520696e20746865202e656e762066696c65206f66207960e18201527f6f75722070726f6a65637420287573696e6720666f727761726420736c6173686101018201527f6573293a0a4f50454e5a455050454c494e5f424153485f504154483d22433a2f6101218201527f50726f6772616d2046696c65732f4769742f62696e2f6261736822000000000061014182015261015c01919050565b7f4661696c656420746f2066696e64206c696e652077697468207072656669782081527f2700000000000000000000000000000000000000000000000000000000000000602082015260008351618c5f816021850160208801617bbd565b7f2720696e206f75747075743a20000000000000000000000000000000000000006021918401918201528351618c9c81602e840160208801617bbd565b01602e01949350505050565b7f4661696c656420746f2072756e2075706772616465207361666574792076616c81527f69646174696f6e3a20000000000000000000000000000000000000000000000060208201526000825161890b816029850160208701617bbd565b7f55706772616465207361666574792076616c69646174696f6e206661696c656481527f3a0a000000000000000000000000000000000000000000000000000000000000602082015260008251618d64816022850160208701617bbd565b9190910160220192915050565b7f436f6e7472616374206e616d6520000000000000000000000000000000000000815260008251618da981600e850160208701617bbd565b7f206d75737420626520696e2074686520666f726d6174204d79436f6e74726163600e9390910192830152507f742e736f6c3a4d79436f6e7472616374206f72204d79436f6e74726163742e73602e8201527f6f6c206f72206f75742f4d79436f6e74726163742e736f6c2f4d79436f6e7472604e8201527f6163742e6a736f6e000000000000000000000000000000000000000000000000606e820152607601919050565b8082018082111561398c5761398c617fff565b7f53504458206c6963656e7365206964656e746966696572200000000000000000815260008351618e9a816018850160208801617bbd565b7f20696e20000000000000000000000000000000000000000000000000000000006018918401918201528351618ed781601c840160208801617bbd565b7f20646f6573206e6f74206c6f6f6b206c696b65206120737570706f7274656420601c92909101918201527f6c6963656e736520666f7220626c6f636b206578706c6f726572207665726966603c8201527f69636174696f6e2e205573652074686520606c6963656e73655479706560206f605c8201527f7074696f6e20746f20737065636966792061206c6963656e736520747970652c607c8201527f206f7220736574207468652060736b69704c6963656e73655479706560206f70609c8201527f74696f6e20746f2060747275656020746f20736b69702e00000000000000000060bc82015260d301949350505050565b60008251618fdd818460208701617bbd565b7f2000000000000000000000000000000000000000000000000000000000000000920191825250600101919050565b7f406f70656e7a657070656c696e2f75706772616465732d636f7265400000000081526000825161904481601c850160208701617bbd565b91909101601c0192915050565b6000600019820361906457619064617fff565b5060010190565b808202811582820484141761398c5761398c617fff565b6001815b60018411156190bd578085048111156190a1576190a1617fff565b60018416156190af57908102905b60019390931c928002619086565b935093915050565b6000826190d45750600161398c565b816190e15750600061398c565b81600181146190f757600281146191015761911d565b600191505061398c565b60ff84111561911257619112617fff565b50506001821b61398c565b5060208310610133831016604e8410600b8410161715619140575081810a61398c565b61914d6000198484619082565b806000190482111561916157619161617fff565b029392505050565b6000613a8583836190c5565b60008161918457619184617fff565b506000190190565b6000835161919e818460208801617bbd565b7f3a0000000000000000000000000000000000000000000000000000000000000090830190815283516191d8816001840160208801617bbd565b01600101949350505050565b8181036000831280158383131683831282161715616d4957616d49617fff56fe608060405234801561001057600080fd5b50604051610c9f380380610c9f83398101604081905261002f9161010d565b8181600361003d83826101ff565b50600461004a82826101ff565b50505050506102bd565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261007b57600080fd5b81516001600160401b0381111561009457610094610054565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100c2576100c2610054565b6040528181528382016020018510156100da57600080fd5b60005b828110156100f9576020818601810151838301820152016100dd565b506000918101602001919091529392505050565b6000806040838503121561012057600080fd5b82516001600160401b0381111561013657600080fd5b6101428582860161006a565b602085015190935090506001600160401b0381111561016057600080fd5b61016c8582860161006a565b9150509250929050565b600181811c9082168061018a57607f821691505b6020821081036101aa57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156101fa57806000526020600020601f840160051c810160208510156101d75750805b601f840160051c820191505b818110156101f757600081556001016101e3565b50505b505050565b81516001600160401b0381111561021857610218610054565b61022c816102268454610176565b846101b0565b6020601f82116001811461026057600083156102485750848201515b600019600385901b1c1916600184901b1784556101f7565b600084815260208120601f198516915b828110156102905787850151825560209485019460019092019101610270565b50848210156102ae5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b6109d3806102cc6000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c806340c10f191161007657806395d89b411161005b57806395d89b4114610183578063a9059cbb1461018b578063dd62ed3e1461019e57600080fd5b806340c10f191461013857806370a082311461014d57600080fd5b806318160ddd116100a757806318160ddd1461010457806323b872dd14610116578063313ce5671461012957600080fd5b806306fdde03146100c3578063095ea7b3146100e1575b600080fd5b6100cb6101e4565b6040516100d891906107bf565b60405180910390f35b6100f46100ef366004610854565b610276565b60405190151581526020016100d8565b6002545b6040519081526020016100d8565b6100f461012436600461087e565b610290565b604051601281526020016100d8565b61014b610146366004610854565b6102b4565b005b61010861015b3660046108bb565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6100cb6102c2565b6100f4610199366004610854565b6102d1565b6101086101ac3660046108dd565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101f390610910565b80601f016020809104026020016040519081016040528092919081815260200182805461021f90610910565b801561026c5780601f106102415761010080835404028352916020019161026c565b820191906000526020600020905b81548152906001019060200180831161024f57829003601f168201915b5050505050905090565b6000336102848185856102df565b60019150505b92915050565b60003361029e8582856102f1565b6102a98585856103c5565b506001949350505050565b6102be8282610470565b5050565b6060600480546101f390610910565b6000336102848185856103c5565b6102ec83838360016104cc565b505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146103bf57818110156103b0576040517ffb8f41b200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101829052604481018390526064015b60405180910390fd5b6103bf848484840360006104cc565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610415576040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff8216610465576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b6102ec838383610614565b73ffffffffffffffffffffffffffffffffffffffff82166104c0576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b6102be60008383610614565b73ffffffffffffffffffffffffffffffffffffffff841661051c576040517fe602df05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff831661056c576040517f94280d62000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020908152604080832093871683529290522082905580156103bf578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161060691815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff831661064c5780600260008282546106419190610963565b909155506106fe9050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902054818110156106d2576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260248101829052604481018390526064016103a7565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090209082900390555b73ffffffffffffffffffffffffffffffffffffffff821661072757600280548290039055610753565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090208054820190555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107b291815260200190565b60405180910390a3505050565b602081526000825180602084015260005b818110156107ed57602081860181015160408684010152016107d0565b5060006040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461084f57600080fd5b919050565b6000806040838503121561086757600080fd5b6108708361082b565b946020939093013593505050565b60008060006060848603121561089357600080fd5b61089c8461082b565b92506108aa6020850161082b565b929592945050506040919091013590565b6000602082840312156108cd57600080fd5b6108d68261082b565b9392505050565b600080604083850312156108f057600080fd5b6108f98361082b565b91506109076020840161082b565b90509250929050565b600181811c9082168061092457607f821691505b60208210810361095d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b8082018082111561028a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea26469706673582212207e804ca539d49155d2b6bc19268ce22f9f857027c75247d69fb0d56a089c93d464736f6c634300081a0033608060405234801561001057600080fd5b506040516113e23803806113e283398101604081905261002f916101d3565b60016000556002805460ff191690556001600160a01b038316158061005b57506001600160a01b038216155b156100795760405163d92e233d60e01b815260040160405180910390fd5b60028054610100600160a81b0319166101006001600160a01b038681169190910291909117909155600380546001600160a01b0319169184169190911790556100c3600082610122565b506100ee7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a82610122565b506101197f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e483610122565b50505050610216565b60008281526001602090815260408083206001600160a01b038516845290915281205460ff166101ad5760008381526001602081815260408084206001600160a01b0387168086529252808420805460ff19169093179092559051339286917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45060016101b1565b5060005b92915050565b80516001600160a01b03811681146101ce57600080fd5b919050565b6000806000606084860312156101e857600080fd5b6101f1846101b7565b92506101ff602085016101b7565b915061020d604085016101b7565b90509250925092565b6111bd806102256000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c80635c975abb116100b2578063a217fddf11610081578063d547741f11610066578063d547741f146102c2578063d9caed12146102d5578063e63ab1e9146102e857600080fd5b8063a217fddf146102a7578063c8a02362146102af57600080fd5b80635c975abb146102275780638456cb591461023257806385f438c11461023a57806391d148541461026157600080fd5b80632f2ff15d116100ee5780632f2ff15d146101d957806336568abe146101ec5780633f4ba83a146101ff5780635b1125911461020757600080fd5b806301ffc9a714610120578063116191b61461014857806321fc65f214610192578063248a9ca3146101a7575b600080fd5b61013361012e366004610ee3565b61030f565b60405190151581526020015b60405180910390f35b60025461016d90610100900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161013f565b6101a56101a0366004610f4e565b6103a8565b005b6101cb6101b5366004610feb565b6000908152600160208190526040909120015490565b60405190815260200161013f565b6101a56101e7366004611004565b61051d565b6101a56101fa366004611004565b610549565b6101a56105a7565b60035461016d9073ffffffffffffffffffffffffffffffffffffffff1681565b60025460ff16610133565b6101a56105dc565b6101cb7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e481565b61013361026f366004611004565b600091825260016020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b6101cb600081565b6101a56102bd366004610f4e565b61060e565b6101a56102d0366004611004565b610769565b6101a56102e3366004611030565b61078f565b6101cb7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806103a257507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6103b061085c565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e46103da8161089f565b6103e26108a9565b60025461040e9073ffffffffffffffffffffffffffffffffffffffff88811691610100900416866108e8565b6002546040517f5131ab5900000000000000000000000000000000000000000000000000000000815261010090910473ffffffffffffffffffffffffffffffffffffffff1690635131ab599061047090899089908990899089906004016110b6565b600060405180830381600087803b15801561048a57600080fd5b505af115801561049e573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e86868660405161050393929190611113565b60405180910390a3506105166001600055565b5050505050565b600082815260016020819052604090912001546105398161089f565b6105438383610975565b50505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610598576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105a28282610a40565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6105d18161089f565b6105d9610aff565b50565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6106068161089f565b6105d9610b7c565b61061661085c565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e46106408161089f565b6106486108a9565b6002546106749073ffffffffffffffffffffffffffffffffffffffff88811691610100900416866108e8565b6002546040517fb8969bd400000000000000000000000000000000000000000000000000000000815261010090910473ffffffffffffffffffffffffffffffffffffffff169063b8969bd4906106d690899089908990899089906004016110b6565b600060405180830381600087803b1580156106f057600080fd5b505af1158015610704573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c886868660405161050393929190611113565b600082815260016020819052604090912001546107858161089f565b6105438383610a40565b61079761085c565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e46107c18161089f565b6107c96108a9565b6107ea73ffffffffffffffffffffffffffffffffffffffff851684846108e8565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb8460405161084991815260200190565b60405180910390a3506105a26001600055565b600260005403610898576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b6105d98133610bd7565b60025460ff16156108e6576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526105a2908490610c68565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff16610a3857600083815260016020818152604080842073ffffffffffffffffffffffffffffffffffffffff8716808652925280842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169093179092559051339286917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45060016103a2565b5060006103a2565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff1615610a3857600083815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016103a2565b610b07610cfe565b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b610b846108a9565b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610b523390565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610c64576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602481018390526044015b60405180910390fd5b5050565b6000610c8a73ffffffffffffffffffffffffffffffffffffffff841683610d3a565b90508051600014158015610caf575080806020019051810190610cad9190611136565b155b156105a2576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602401610c5b565b60025460ff166108e6576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060610d4883836000610d4f565b9392505050565b606081471015610d8d576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610c5b565b6000808573ffffffffffffffffffffffffffffffffffffffff168486604051610db69190611158565b60006040518083038185875af1925050503d8060008114610df3576040519150601f19603f3d011682016040523d82523d6000602084013e610df8565b606091505b5091509150610e08868383610e12565b9695505050505050565b606082610e2757610e2282610ea1565b610d48565b8151158015610e4b575073ffffffffffffffffffffffffffffffffffffffff84163b155b15610e9a576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610c5b565b5080610d48565b805115610eb15780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060208284031215610ef557600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610d4857600080fd5b803573ffffffffffffffffffffffffffffffffffffffff81168114610f4957600080fd5b919050565b600080600080600060808688031215610f6657600080fd5b610f6f86610f25565b9450610f7d60208701610f25565b935060408601359250606086013567ffffffffffffffff811115610fa057600080fd5b8601601f81018813610fb157600080fd5b803567ffffffffffffffff811115610fc857600080fd5b886020828401011115610fda57600080fd5b959894975092955050506020019190565b600060208284031215610ffd57600080fd5b5035919050565b6000806040838503121561101757600080fd5b8235915061102760208401610f25565b90509250929050565b60008060006060848603121561104557600080fd5b61104e84610f25565b925061105c60208501610f25565b929592945050506040919091013590565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff8516602082015283604082015260806060820152600061110860808301848661106d565b979650505050505050565b83815260406020820152600061112d60408301848661106d565b95945050505050565b60006020828403121561114857600080fd5b81518015158114610d4857600080fd5b6000825160005b81811015611179576020818601810151858301520161115f565b50600092019182525091905056fea2646970667358221220f228501fb7798406cf58c84b1f7af446926eecd69943c0a6760dfd0c5550e2ff64736f6c634300081a003360c060405234801561001057600080fd5b5060405161163738038061163783398101604081905261002f916101f5565b60016000819055805460ff19169055838383836001600160a01b038416158061005f57506001600160a01b038316155b8061007157506001600160a01b038216155b1561008f5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0384811660805283811660a052600380546001600160a01b0319169184169190911790556100c5600082610129565b506100f07f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e483610129565b5061011b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a82610129565b505050505050505050610249565b60008281526002602090815260408083206001600160a01b038516845290915281205460ff166101cf5760008381526002602090815260408083206001600160a01b03861684529091529020805460ff191660011790556101873390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016101d3565b5060005b92915050565b80516001600160a01b03811681146101f057600080fd5b919050565b6000806000806080858703121561020b57600080fd5b610214856101d9565b9350610222602086016101d9565b9250610230604086016101d9565b915061023e606086016101d9565b905092959194509250565b60805160a0516113836102b4600039600081816101f70152818161046d0152818161051e01528181610638015281816107cc0152818161087d015261094b0152600081816101ab0152818161048f015281816104f1015281816107ee015261085001526113836000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c80635b112591116100cd57806385f438c111610081578063a217fddf11610066578063a217fddf1461033e578063d547741f14610346578063e63ab1e91461035957600080fd5b806385f438c1146102d157806391d14854146102f857600080fd5b80635e3e9fef116100b25780635e3e9fef146102a3578063743e0c9b146102b65780638456cb59146102c957600080fd5b80635b112591146102785780635c975abb1461029857600080fd5b806321e093b1116101245780632f2ff15d116101095780632f2ff15d1461024a57806336568abe1461025d5780633f4ba83a1461027057600080fd5b806321e093b1146101f2578063248a9ca31461021957600080fd5b806301ffc9a71461015657806302d5c8991461017e578063106e629014610193578063116191b6146101a6575b600080fd5b6101696101643660046110be565b610380565b60405190151581526020015b60405180910390f35b61019161018c366004611129565b610419565b005b6101916101a13660046111bb565b6105e4565b6101cd7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610175565b6101cd7f000000000000000000000000000000000000000000000000000000000000000081565b61023c6102273660046111ee565b60009081526002602052604090206001015490565b604051908152602001610175565b610191610258366004611207565b6106bf565b61019161026b366004611207565b6106ea565b610191610743565b6003546101cd9073ffffffffffffffffffffffffffffffffffffffff1681565b60015460ff16610169565b6101916102b1366004611129565b610778565b6101916102c43660046111ee565b610929565b610191610973565b61023c7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e481565b610169610306366004611207565b600091825260026020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b61023c600081565b610191610354366004611207565b6109a5565b61023c7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061041357507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6104216109ca565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e461044b81610a0d565b610453610a17565b6104b473ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000087610a56565b6040517fb8969bd400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063b8969bd49061054e907f0000000000000000000000000000000000000000000000000000000000000000908a908a908a908a9060040161127c565b600060405180830381600087803b15801561056857600080fd5b505af115801561057c573d6000803e3d6000fd5b505050508573ffffffffffffffffffffffffffffffffffffffff167fba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe8686866040516105ca939291906112d9565b60405180910390a2506105dd6001600055565b5050505050565b6105ec6109ca565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e461061681610a0d565b61061e610a17565b61065f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168585610a56565b8373ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364846040516106a791815260200190565b60405180910390a2506106ba6001600055565b505050565b6000828152600260205260409020600101546106da81610a0d565b6106e48383610ad7565b50505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610739576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106ba8282610bd7565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61076d81610a0d565b610775610c96565b50565b6107806109ca565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e46107aa81610a0d565b6107b2610a17565b61081373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000087610a56565b6040517f5131ab5900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690635131ab59906108ad907f0000000000000000000000000000000000000000000000000000000000000000908a908a908a908a9060040161127c565b600060405180830381600087803b1580156108c757600080fd5b505af11580156108db573d6000803e3d6000fd5b505050508573ffffffffffffffffffffffffffffffffffffffff167f7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced8686866040516105ca939291906112d9565b610931610a17565b61077573ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016333084610d13565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61099d81610a0d565b610775610d59565b6000828152600260205260409020600101546109c081610a0d565b6106e48383610bd7565b600260005403610a06576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b6107758133610db2565b60015460ff1615610a54576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60405173ffffffffffffffffffffffffffffffffffffffff8381166024830152604482018390526106ba91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610e43565b600082815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff16610bcf57600083815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610b6d3390565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610413565b506000610413565b600082815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff1615610bcf57600083815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610413565b610c9e610ed9565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b60405173ffffffffffffffffffffffffffffffffffffffff84811660248301528381166044830152606482018390526106e49186918216906323b872dd90608401610a90565b610d61610a17565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833610ce9565b600082815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610e3f576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602481018390526044015b60405180910390fd5b5050565b6000610e6573ffffffffffffffffffffffffffffffffffffffff841683610f15565b90508051600014158015610e8a575080806020019051810190610e8891906112fc565b155b156106ba576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602401610e36565b60015460ff16610a54576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060610f2383836000610f2a565b9392505050565b606081471015610f68576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610e36565b6000808573ffffffffffffffffffffffffffffffffffffffff168486604051610f91919061131e565b60006040518083038185875af1925050503d8060008114610fce576040519150601f19603f3d011682016040523d82523d6000602084013e610fd3565b606091505b5091509150610fe3868383610fed565b9695505050505050565b60608261100257610ffd8261107c565b610f23565b8151158015611026575073ffffffffffffffffffffffffffffffffffffffff84163b155b15611075576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610e36565b5080610f23565b80511561108c5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000602082840312156110d057600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610f2357600080fd5b803573ffffffffffffffffffffffffffffffffffffffff8116811461112457600080fd5b919050565b60008060008060006080868803121561114157600080fd5b61114a86611100565b945060208601359350604086013567ffffffffffffffff81111561116d57600080fd5b8601601f8101881361117e57600080fd5b803567ffffffffffffffff81111561119557600080fd5b8860208284010111156111a757600080fd5b959894975060200195606001359392505050565b6000806000606084860312156111d057600080fd5b6111d984611100565b95602085013595506040909401359392505050565b60006020828403121561120057600080fd5b5035919050565b6000806040838503121561121a57600080fd5b8235915061122a60208401611100565b90509250929050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff851660208201528360408201526080606082015260006112ce608083018486611233565b979650505050505050565b8381526040602082015260006112f3604083018486611233565b95945050505050565b60006020828403121561130e57600080fd5b81518015158114610f2357600080fd5b6000825160005b8181101561133f5760208186018101518583015201611325565b50600092019182525091905056fea264697066735822122076f21f1ac8f2c01b56f41facd345cbe7bb75624ae7a01f61b68ad17dc9af27a464736f6c634300081a00336080604052348015600f57600080fd5b506001600055610d3a806100246000396000f3fe6080604052600436106100635760003560e01c8063c513169111610040578063c5131691146100c1578063e04d4f97146100e1578063f05b6abf146100f457005b8063357fc5a21461006c5780636ed701691461008c5780638fcaa0b5146100a157005b3661006a57005b005b34801561007857600080fd5b5061006a6100873660046106c0565b610114565b34801561009857600080fd5b5061006a6101aa565b3480156100ad57600080fd5b5061006a6100bc3660046106fc565b6101df565b3480156100cd57600080fd5b5061006a6100dc3660046106c0565b61021e565b61006a6100ef366004610895565b6102f9565b34801561010057600080fd5b5061006a61010f366004610981565b61033d565b61011c610372565b61013e73ffffffffffffffffffffffffffffffffffffffff83163383866103b5565b604080513381526020810185905273ffffffffffffffffffffffffffffffffffffffff848116828401528316606082015290517f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af609181900360800190a16101a56001600055565b505050565b6040513381527fbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a09060200160405180910390a1565b7f0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa33838360405161021293929190610a6b565b60405180910390a15050565b610226610372565b6000610233600285610ad5565b90508060000361026f576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61029173ffffffffffffffffffffffffffffffffffffffff84163384846103b5565b604080513381526020810183905273ffffffffffffffffffffffffffffffffffffffff858116828401528416606082015290517f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af609181900360800190a1506101a56001600055565b7f1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa3334858585604051610330959493929190610b7e565b60405180910390a1505050565b7f74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146338484846040516103309493929190610c08565b6002600054036103ae576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017905261044a908590610450565b50505050565b600061047273ffffffffffffffffffffffffffffffffffffffff8416836104eb565b905080516000141580156104975750808060200190518101906104959190610ccb565b155b156101a5576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024015b60405180910390fd5b60606104f983836000610500565b9392505050565b60608147101561053e576040517fcd7860590000000000000000000000000000000000000000000000000000000081523060048201526024016104e2565b6000808573ffffffffffffffffffffffffffffffffffffffff1684866040516105679190610ce8565b60006040518083038185875af1925050503d80600081146105a4576040519150601f19603f3d011682016040523d82523d6000602084013e6105a9565b606091505b50915091506105b98683836105c3565b9695505050505050565b6060826105d8576105d382610652565b6104f9565b81511580156105fc575073ffffffffffffffffffffffffffffffffffffffff84163b155b1561064b576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016104e2565b50806104f9565b8051156106625780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b803573ffffffffffffffffffffffffffffffffffffffff811681146106bb57600080fd5b919050565b6000806000606084860312156106d557600080fd5b833592506106e560208501610697565b91506106f360408501610697565b90509250925092565b6000806020838503121561070f57600080fd5b823567ffffffffffffffff81111561072657600080fd5b8301601f8101851361073757600080fd5b803567ffffffffffffffff81111561074e57600080fd5b85602082840101111561076057600080fd5b6020919091019590945092505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156107e6576107e6610770565b604052919050565b600082601f8301126107ff57600080fd5b813567ffffffffffffffff81111561081957610819610770565b61084a60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160161079f565b81815284602083860101111561085f57600080fd5b816020850160208301376000918101602001919091529392505050565b801515811461069457600080fd5b80356106bb8161087c565b6000806000606084860312156108aa57600080fd5b833567ffffffffffffffff8111156108c157600080fd5b6108cd868287016107ee565b9350506020840135915060408401356108e58161087c565b809150509250925092565b600067ffffffffffffffff82111561090a5761090a610770565b5060051b60200190565b600082601f83011261092557600080fd5b8135610938610933826108f0565b61079f565b8082825260208201915060208360051b86010192508583111561095a57600080fd5b602085015b8381101561097757803583526020928301920161095f565b5095945050505050565b60008060006060848603121561099657600080fd5b833567ffffffffffffffff8111156109ad57600080fd5b8401601f810186136109be57600080fd5b80356109cc610933826108f0565b8082825260208201915060208360051b8501019250888311156109ee57600080fd5b602084015b83811015610a3057803567ffffffffffffffff811115610a1257600080fd5b610a218b6020838901016107ee565b845250602092830192016109f3565b509550505050602084013567ffffffffffffffff811115610a5057600080fd5b610a5c86828701610914565b9250506106f36040850161088a565b73ffffffffffffffffffffffffffffffffffffffff8416815260406020820152816040820152818360608301376000818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b600082610b0b577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60005b83811015610b2b578181015183820152602001610b13565b50506000910152565b60008151808452610b4c816020860160208601610b10565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b73ffffffffffffffffffffffffffffffffffffffff8616815284602082015260a060408201526000610bb360a0830186610b34565b6060830194909452509015156080909101529392505050565b600081518084526020840193506020830160005b82811015610bfe578151865260209586019590910190600101610be0565b5093949350505050565b60006080820173ffffffffffffffffffffffffffffffffffffffff871683526080602084015280865180835260a08501915060a08160051b86010192506020880160005b82811015610c9b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60878603018452610c86858351610b34565b94506020938401939190910190600101610c4c565b505050508281036040840152610cb18186610bcc565b915050610cc2606083018415159052565b95945050505050565b600060208284031215610cdd57600080fd5b81516104f98161087c565b60008251610cfa818460208701610b10565b919091019291505056fea2646970667358221220556072e1abafc3c4063b8cce832228b4f309b93726aaa6a6dfab20cb880c6d1864736f6c634300081a0033a2646970667358221220b4235f4edd0cbb54ab4d84250a2d0a2b9ff09b592338112c0aa13aeb1ffce1cc64736f6c634300081a0033", +} + +// 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) +} + +// WITHDRAWERROLE is a free data retrieval call binding the contract method 0x85f438c1. +// +// Solidity: function WITHDRAWER_ROLE() view returns(bytes32) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestCaller) WITHDRAWERROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _ZetaConnectorNativeTest.contract.Call(opts, &out, "WITHDRAWER_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// WITHDRAWERROLE is a free data retrieval call binding the contract method 0x85f438c1. +// +// Solidity: function WITHDRAWER_ROLE() view returns(bytes32) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestSession) WITHDRAWERROLE() ([32]byte, error) { + return _ZetaConnectorNativeTest.Contract.WITHDRAWERROLE(&_ZetaConnectorNativeTest.CallOpts) +} + +// WITHDRAWERROLE is a free data retrieval call binding the contract method 0x85f438c1. +// +// Solidity: function WITHDRAWER_ROLE() view returns(bytes32) +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestCallerSession) WITHDRAWERROLE() ([32]byte, error) { + return _ZetaConnectorNativeTest.Contract.WITHDRAWERROLE(&_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) +} + +// TestWithdrawAndCallReceiveERC20FailsIfSenderIsNotWithdrawer is a paid mutator transaction binding the contract method 0xc1909972. +// +// Solidity: function testWithdrawAndCallReceiveERC20FailsIfSenderIsNotWithdrawer() returns() +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestTransactor) TestWithdrawAndCallReceiveERC20FailsIfSenderIsNotWithdrawer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaConnectorNativeTest.contract.Transact(opts, "testWithdrawAndCallReceiveERC20FailsIfSenderIsNotWithdrawer") +} + +// TestWithdrawAndCallReceiveERC20FailsIfSenderIsNotWithdrawer is a paid mutator transaction binding the contract method 0xc1909972. +// +// Solidity: function testWithdrawAndCallReceiveERC20FailsIfSenderIsNotWithdrawer() returns() +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestSession) TestWithdrawAndCallReceiveERC20FailsIfSenderIsNotWithdrawer() (*types.Transaction, error) { + return _ZetaConnectorNativeTest.Contract.TestWithdrawAndCallReceiveERC20FailsIfSenderIsNotWithdrawer(&_ZetaConnectorNativeTest.TransactOpts) +} + +// TestWithdrawAndCallReceiveERC20FailsIfSenderIsNotWithdrawer is a paid mutator transaction binding the contract method 0xc1909972. +// +// Solidity: function testWithdrawAndCallReceiveERC20FailsIfSenderIsNotWithdrawer() returns() +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestTransactorSession) TestWithdrawAndCallReceiveERC20FailsIfSenderIsNotWithdrawer() (*types.Transaction, error) { + return _ZetaConnectorNativeTest.Contract.TestWithdrawAndCallReceiveERC20FailsIfSenderIsNotWithdrawer(&_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) +} + +// TestWithdrawAndRevertFailsIfSenderIsNotWithdrawer is a paid mutator transaction binding the contract method 0x82832014. +// +// Solidity: function testWithdrawAndRevertFailsIfSenderIsNotWithdrawer() returns() +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestTransactor) TestWithdrawAndRevertFailsIfSenderIsNotWithdrawer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaConnectorNativeTest.contract.Transact(opts, "testWithdrawAndRevertFailsIfSenderIsNotWithdrawer") +} + +// TestWithdrawAndRevertFailsIfSenderIsNotWithdrawer is a paid mutator transaction binding the contract method 0x82832014. +// +// Solidity: function testWithdrawAndRevertFailsIfSenderIsNotWithdrawer() returns() +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestSession) TestWithdrawAndRevertFailsIfSenderIsNotWithdrawer() (*types.Transaction, error) { + return _ZetaConnectorNativeTest.Contract.TestWithdrawAndRevertFailsIfSenderIsNotWithdrawer(&_ZetaConnectorNativeTest.TransactOpts) +} + +// TestWithdrawAndRevertFailsIfSenderIsNotWithdrawer is a paid mutator transaction binding the contract method 0x82832014. +// +// Solidity: function testWithdrawAndRevertFailsIfSenderIsNotWithdrawer() returns() +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestTransactorSession) TestWithdrawAndRevertFailsIfSenderIsNotWithdrawer() (*types.Transaction, error) { + return _ZetaConnectorNativeTest.Contract.TestWithdrawAndRevertFailsIfSenderIsNotWithdrawer(&_ZetaConnectorNativeTest.TransactOpts) +} + +// TestWithdrawFailsIfSenderIsNotWithdrawer is a paid mutator transaction binding the contract method 0xfe574f84. +// +// Solidity: function testWithdrawFailsIfSenderIsNotWithdrawer() returns() +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestTransactor) TestWithdrawFailsIfSenderIsNotWithdrawer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaConnectorNativeTest.contract.Transact(opts, "testWithdrawFailsIfSenderIsNotWithdrawer") +} + +// TestWithdrawFailsIfSenderIsNotWithdrawer is a paid mutator transaction binding the contract method 0xfe574f84. +// +// Solidity: function testWithdrawFailsIfSenderIsNotWithdrawer() returns() +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestSession) TestWithdrawFailsIfSenderIsNotWithdrawer() (*types.Transaction, error) { + return _ZetaConnectorNativeTest.Contract.TestWithdrawFailsIfSenderIsNotWithdrawer(&_ZetaConnectorNativeTest.TransactOpts) +} + +// TestWithdrawFailsIfSenderIsNotWithdrawer is a paid mutator transaction binding the contract method 0xfe574f84. +// +// Solidity: function testWithdrawFailsIfSenderIsNotWithdrawer() returns() +func (_ZetaConnectorNativeTest *ZetaConnectorNativeTestTransactorSession) TestWithdrawFailsIfSenderIsNotWithdrawer() (*types.Transaction, error) { + return _ZetaConnectorNativeTest.Contract.TestWithdrawFailsIfSenderIsNotWithdrawer(&_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/zetaconnectornonnative.sol/zetaconnectornonnative.go b/v2/pkg/zetaconnectornonnative.sol/zetaconnectornonnative.go new file mode 100644 index 00000000..d002b04a --- /dev/null +++ b/v2/pkg/zetaconnectornonnative.sol/zetaconnectornonnative.go @@ -0,0 +1,2079 @@ +// 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\"},{\"name\":\"_admin\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"DEFAULT_ADMIN_ROLE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"PAUSER_ROLE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"WITHDRAWER_ROLE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"gateway\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIGatewayEVM\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRoleAdmin\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"grantRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"hasRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"maxSupply\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"receiveTokens\",\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"renounceRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"callerConfirmation\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"revokeRole\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setMaxSupply\",\"inputs\":[{\"name\":\"_maxSupply\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"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\":\"tssAddress\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"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\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RoleAdminChanged\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"previousAdminRole\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"newAdminRole\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RoleGranted\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RoleRevoked\",\"inputs\":[{\"name\":\"role\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"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\":\"AccessControlBadConfirmation\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"AccessControlUnauthorizedAccount\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"neededRole\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"type\":\"error\",\"name\":\"EnforcedPause\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExceedsMaxSupply\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ExpectedPause\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ReentrancyGuardReentrantCall\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ZeroAddress\",\"inputs\":[]}]", + Bin: "0x60c060405260001960045534801561001657600080fd5b5060405161182a38038061182a833981016040819052610035916101fb565b60016000819055805460ff19169055838383836001600160a01b038416158061006557506001600160a01b038316155b8061007757506001600160a01b038216155b156100955760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0384811660805283811660a052600380546001600160a01b0319169184169190911790556100cb60008261012f565b506100f67f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e48361012f565b506101217f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8261012f565b50505050505050505061024f565b60008281526002602090815260408083206001600160a01b038516845290915281205460ff166101d55760008381526002602090815260408083206001600160a01b03861684529091529020805460ff1916600117905561018d3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016101d9565b5060005b92915050565b80516001600160a01b03811681146101f657600080fd5b919050565b6000806000806080858703121561021157600080fd5b61021a856101df565b9350610228602086016101df565b9250610236604086016101df565b9150610244606086016101df565b905092959194509250565b60805160a05161155b6102cf6000396000818161021d0152818161049a015281816105dc015281816106a2015281816107a7015281816108c901528181610a7d01528181610bbf01528181610c850152610ddc0152600081816101d1015281816105a60152818161067301528181610b890152610c56015261155b6000f3fe608060405234801561001057600080fd5b50600436106101775760003560e01c80635c975abb116100d857806385f438c11161008c578063d547741f11610066578063d547741f1461037f578063d5abeb0114610392578063e63ab1e91461039b57600080fd5b806385f438c11461030a57806391d1485414610331578063a217fddf1461037757600080fd5b80636f8b44b0116100bd5780636f8b44b0146102dc578063743e0c9b146102ef5780638456cb591461030257600080fd5b80635c975abb146102be5780635e3e9fef146102c957600080fd5b8063248a9ca31161012f57806336568abe1161011457806336568abe146102835780633f4ba83a146102965780635b1125911461029e57600080fd5b8063248a9ca31461023f5780632f2ff15d1461027057600080fd5b8063106e629011610160578063106e6290146101b9578063116191b6146101cc57806321e093b11461021857600080fd5b806301ffc9a71461017c57806302d5c899146101a4575b600080fd5b61018f61018a36600461128d565b6103c2565b60405190151581526020015b60405180910390f35b6101b76101b23660046112ff565b61045b565b005b6101b76101c7366004611391565b610768565b6101f37f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161019b565b6101f37f000000000000000000000000000000000000000000000000000000000000000081565b61026261024d3660046113c4565b60009081526002602052604090206001015490565b60405190815260200161019b565b6101b761027e3660046113dd565b610985565b6101b76102913660046113dd565b6109b0565b6101b7610a09565b6003546101f39073ffffffffffffffffffffffffffffffffffffffff1681565b60015460ff1661018f565b6101b76102d73660046112ff565b610a3e565b6101b76102ea3660046113c4565b610d31565b6101b76102fd3660046113c4565b610d9f565b6101b7610e49565b6102627f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e481565b61018f61033f3660046113dd565b600091825260026020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b610262600081565b6101b761038d3660046113dd565b610e7b565b61026260045481565b6102627f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061045557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b610463610ea0565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e461048d81610ee3565b610495610eed565b6004547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610503573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105279190611409565b6105319087611422565b1115610569576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1e458bee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201879052604482018490527f00000000000000000000000000000000000000000000000000000000000000001690631e458bee90606401600060405180830381600087803b15801561062057600080fd5b505af1158015610634573d6000803e3d6000fd5b50506040517fb8969bd400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016925063b8969bd491506106d2907f0000000000000000000000000000000000000000000000000000000000000000908a908a908a908a906004016114a5565b600060405180830381600087803b1580156106ec57600080fd5b505af1158015610700573d6000803e3d6000fd5b505050508573ffffffffffffffffffffffffffffffffffffffff167fba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe86868660405161074e93929190611502565b60405180910390a2506107616001600055565b5050505050565b610770610ea0565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e461079a81610ee3565b6107a2610eed565b6004547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610810573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108349190611409565b61083e9085611422565b1115610876576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1e458bee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015260248201859052604482018490527f00000000000000000000000000000000000000000000000000000000000000001690631e458bee90606401600060405180830381600087803b15801561090d57600080fd5b505af1158015610921573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243648460405161096d91815260200190565b60405180910390a2506109806001600055565b505050565b6000828152600260205260409020600101546109a081610ee3565b6109aa8383610f2c565b50505050565b73ffffffffffffffffffffffffffffffffffffffff811633146109ff576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610980828261102c565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610a3381610ee3565b610a3b6110eb565b50565b610a46610ea0565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e4610a7081610ee3565b610a78610eed565b6004547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0a9190611409565b610b149087611422565b1115610b4c576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1e458bee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201879052604482018490527f00000000000000000000000000000000000000000000000000000000000000001690631e458bee90606401600060405180830381600087803b158015610c0357600080fd5b505af1158015610c17573d6000803e3d6000fd5b50506040517f5131ab5900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169250635131ab599150610cb5907f0000000000000000000000000000000000000000000000000000000000000000908a908a908a908a906004016114a5565b600060405180830381600087803b158015610ccf57600080fd5b505af1158015610ce3573d6000803e3d6000fd5b505050508573ffffffffffffffffffffffffffffffffffffffff167f7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced86868660405161074e93929190611502565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e4610d5b81610ee3565b610d63610eed565b60048290556040518281527f7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c9060200160405180910390a15050565b610da7610eed565b6040517f79cc6790000000000000000000000000000000000000000000000000000000008152336004820152602481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906379cc679090604401600060405180830381600087803b158015610e3557600080fd5b505af1158015610761573d6000803e3d6000fd5b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610e7381610ee3565b610a3b611168565b600082815260026020526040902060010154610e9681610ee3565b6109aa838361102c565b600260005403610edc576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b610a3b81336111c1565b60015460ff1615610f2a576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600082815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff1661102457600083815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610fc23390565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610455565b506000610455565b600082815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff161561102457600083815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610455565b6110f3611251565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b611170610eed565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2583361113e565b600082815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1661124d576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526024810183905260440160405180910390fd5b5050565b60015460ff16610f2a576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006020828403121561129f57600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146112cf57600080fd5b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146112fa57600080fd5b919050565b60008060008060006080868803121561131757600080fd5b611320866112d6565b945060208601359350604086013567ffffffffffffffff81111561134357600080fd5b8601601f8101881361135457600080fd5b803567ffffffffffffffff81111561136b57600080fd5b88602082840101111561137d57600080fd5b959894975060200195606001359392505050565b6000806000606084860312156113a657600080fd5b6113af846112d6565b95602085013595506040909401359392505050565b6000602082840312156113d657600080fd5b5035919050565b600080604083850312156113f057600080fd5b82359150611400602084016112d6565b90509250929050565b60006020828403121561141b57600080fd5b5051919050565b80820180821115610455577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff851660208201528360408201526080606082015260006114f760808301848661145c565b979650505050505050565b83815260406020820152600061151c60408301848661145c565b9594505050505056fea2646970667358221220c864e28878a70f2d629a9a8bcc8540adbc24308f0bdca4bb9f799c9b08a4b8fc64736f6c634300081a0033", +} + +// 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, _admin 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, _admin) + 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...) +} + +// DEFAULTADMINROLE is a free data retrieval call binding the contract method 0xa217fddf. +// +// Solidity: function DEFAULT_ADMIN_ROLE() view returns(bytes32) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeCaller) DEFAULTADMINROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _ZetaConnectorNonNative.contract.Call(opts, &out, "DEFAULT_ADMIN_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// DEFAULTADMINROLE is a free data retrieval call binding the contract method 0xa217fddf. +// +// Solidity: function DEFAULT_ADMIN_ROLE() view returns(bytes32) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeSession) DEFAULTADMINROLE() ([32]byte, error) { + return _ZetaConnectorNonNative.Contract.DEFAULTADMINROLE(&_ZetaConnectorNonNative.CallOpts) +} + +// DEFAULTADMINROLE is a free data retrieval call binding the contract method 0xa217fddf. +// +// Solidity: function DEFAULT_ADMIN_ROLE() view returns(bytes32) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeCallerSession) DEFAULTADMINROLE() ([32]byte, error) { + return _ZetaConnectorNonNative.Contract.DEFAULTADMINROLE(&_ZetaConnectorNonNative.CallOpts) +} + +// PAUSERROLE is a free data retrieval call binding the contract method 0xe63ab1e9. +// +// Solidity: function PAUSER_ROLE() view returns(bytes32) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeCaller) PAUSERROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _ZetaConnectorNonNative.contract.Call(opts, &out, "PAUSER_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// PAUSERROLE is a free data retrieval call binding the contract method 0xe63ab1e9. +// +// Solidity: function PAUSER_ROLE() view returns(bytes32) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeSession) PAUSERROLE() ([32]byte, error) { + return _ZetaConnectorNonNative.Contract.PAUSERROLE(&_ZetaConnectorNonNative.CallOpts) +} + +// PAUSERROLE is a free data retrieval call binding the contract method 0xe63ab1e9. +// +// Solidity: function PAUSER_ROLE() view returns(bytes32) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeCallerSession) PAUSERROLE() ([32]byte, error) { + return _ZetaConnectorNonNative.Contract.PAUSERROLE(&_ZetaConnectorNonNative.CallOpts) +} + +// WITHDRAWERROLE is a free data retrieval call binding the contract method 0x85f438c1. +// +// Solidity: function WITHDRAWER_ROLE() view returns(bytes32) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeCaller) WITHDRAWERROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _ZetaConnectorNonNative.contract.Call(opts, &out, "WITHDRAWER_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// WITHDRAWERROLE is a free data retrieval call binding the contract method 0x85f438c1. +// +// Solidity: function WITHDRAWER_ROLE() view returns(bytes32) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeSession) WITHDRAWERROLE() ([32]byte, error) { + return _ZetaConnectorNonNative.Contract.WITHDRAWERROLE(&_ZetaConnectorNonNative.CallOpts) +} + +// WITHDRAWERROLE is a free data retrieval call binding the contract method 0x85f438c1. +// +// Solidity: function WITHDRAWER_ROLE() view returns(bytes32) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeCallerSession) WITHDRAWERROLE() ([32]byte, error) { + return _ZetaConnectorNonNative.Contract.WITHDRAWERROLE(&_ZetaConnectorNonNative.CallOpts) +} + +// 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) +} + +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. +// +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeCaller) GetRoleAdmin(opts *bind.CallOpts, role [32]byte) ([32]byte, error) { + var out []interface{} + err := _ZetaConnectorNonNative.contract.Call(opts, &out, "getRoleAdmin", role) + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. +// +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeSession) GetRoleAdmin(role [32]byte) ([32]byte, error) { + return _ZetaConnectorNonNative.Contract.GetRoleAdmin(&_ZetaConnectorNonNative.CallOpts, role) +} + +// GetRoleAdmin is a free data retrieval call binding the contract method 0x248a9ca3. +// +// Solidity: function getRoleAdmin(bytes32 role) view returns(bytes32) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeCallerSession) GetRoleAdmin(role [32]byte) ([32]byte, error) { + return _ZetaConnectorNonNative.Contract.GetRoleAdmin(&_ZetaConnectorNonNative.CallOpts, role) +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeCaller) HasRole(opts *bind.CallOpts, role [32]byte, account common.Address) (bool, error) { + var out []interface{} + err := _ZetaConnectorNonNative.contract.Call(opts, &out, "hasRole", role, account) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeSession) HasRole(role [32]byte, account common.Address) (bool, error) { + return _ZetaConnectorNonNative.Contract.HasRole(&_ZetaConnectorNonNative.CallOpts, role, account) +} + +// HasRole is a free data retrieval call binding the contract method 0x91d14854. +// +// Solidity: function hasRole(bytes32 role, address account) view returns(bool) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeCallerSession) HasRole(role [32]byte, account common.Address) (bool, error) { + return _ZetaConnectorNonNative.Contract.HasRole(&_ZetaConnectorNonNative.CallOpts, role, account) +} + +// 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) +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeCaller) Paused(opts *bind.CallOpts) (bool, error) { + var out []interface{} + err := _ZetaConnectorNonNative.contract.Call(opts, &out, "paused") + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeSession) Paused() (bool, error) { + return _ZetaConnectorNonNative.Contract.Paused(&_ZetaConnectorNonNative.CallOpts) +} + +// Paused is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(bool) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeCallerSession) Paused() (bool, error) { + return _ZetaConnectorNonNative.Contract.Paused(&_ZetaConnectorNonNative.CallOpts) +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeCaller) SupportsInterface(opts *bind.CallOpts, interfaceId [4]byte) (bool, error) { + var out []interface{} + err := _ZetaConnectorNonNative.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 (_ZetaConnectorNonNative *ZetaConnectorNonNativeSession) SupportsInterface(interfaceId [4]byte) (bool, error) { + return _ZetaConnectorNonNative.Contract.SupportsInterface(&_ZetaConnectorNonNative.CallOpts, interfaceId) +} + +// SupportsInterface is a free data retrieval call binding the contract method 0x01ffc9a7. +// +// Solidity: function supportsInterface(bytes4 interfaceId) view returns(bool) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeCallerSession) SupportsInterface(interfaceId [4]byte) (bool, error) { + return _ZetaConnectorNonNative.Contract.SupportsInterface(&_ZetaConnectorNonNative.CallOpts, interfaceId) +} + +// 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) +} + +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeTransactor) GrantRole(opts *bind.TransactOpts, role [32]byte, account common.Address) (*types.Transaction, error) { + return _ZetaConnectorNonNative.contract.Transact(opts, "grantRole", role, account) +} + +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeSession) GrantRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _ZetaConnectorNonNative.Contract.GrantRole(&_ZetaConnectorNonNative.TransactOpts, role, account) +} + +// GrantRole is a paid mutator transaction binding the contract method 0x2f2ff15d. +// +// Solidity: function grantRole(bytes32 role, address account) returns() +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeTransactorSession) GrantRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _ZetaConnectorNonNative.Contract.GrantRole(&_ZetaConnectorNonNative.TransactOpts, role, account) +} + +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. +// +// Solidity: function pause() returns() +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeTransactor) Pause(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaConnectorNonNative.contract.Transact(opts, "pause") +} + +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. +// +// Solidity: function pause() returns() +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeSession) Pause() (*types.Transaction, error) { + return _ZetaConnectorNonNative.Contract.Pause(&_ZetaConnectorNonNative.TransactOpts) +} + +// Pause is a paid mutator transaction binding the contract method 0x8456cb59. +// +// Solidity: function pause() returns() +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeTransactorSession) Pause() (*types.Transaction, error) { + return _ZetaConnectorNonNative.Contract.Pause(&_ZetaConnectorNonNative.TransactOpts) +} + +// 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) +} + +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. +// +// Solidity: function renounceRole(bytes32 role, address callerConfirmation) returns() +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeTransactor) RenounceRole(opts *bind.TransactOpts, role [32]byte, callerConfirmation common.Address) (*types.Transaction, error) { + return _ZetaConnectorNonNative.contract.Transact(opts, "renounceRole", role, callerConfirmation) +} + +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. +// +// Solidity: function renounceRole(bytes32 role, address callerConfirmation) returns() +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeSession) RenounceRole(role [32]byte, callerConfirmation common.Address) (*types.Transaction, error) { + return _ZetaConnectorNonNative.Contract.RenounceRole(&_ZetaConnectorNonNative.TransactOpts, role, callerConfirmation) +} + +// RenounceRole is a paid mutator transaction binding the contract method 0x36568abe. +// +// Solidity: function renounceRole(bytes32 role, address callerConfirmation) returns() +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeTransactorSession) RenounceRole(role [32]byte, callerConfirmation common.Address) (*types.Transaction, error) { + return _ZetaConnectorNonNative.Contract.RenounceRole(&_ZetaConnectorNonNative.TransactOpts, role, callerConfirmation) +} + +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeTransactor) RevokeRole(opts *bind.TransactOpts, role [32]byte, account common.Address) (*types.Transaction, error) { + return _ZetaConnectorNonNative.contract.Transact(opts, "revokeRole", role, account) +} + +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeSession) RevokeRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _ZetaConnectorNonNative.Contract.RevokeRole(&_ZetaConnectorNonNative.TransactOpts, role, account) +} + +// RevokeRole is a paid mutator transaction binding the contract method 0xd547741f. +// +// Solidity: function revokeRole(bytes32 role, address account) returns() +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeTransactorSession) RevokeRole(role [32]byte, account common.Address) (*types.Transaction, error) { + return _ZetaConnectorNonNative.Contract.RevokeRole(&_ZetaConnectorNonNative.TransactOpts, role, account) +} + +// 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) +} + +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. +// +// Solidity: function unpause() returns() +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeTransactor) Unpause(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaConnectorNonNative.contract.Transact(opts, "unpause") +} + +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. +// +// Solidity: function unpause() returns() +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeSession) Unpause() (*types.Transaction, error) { + return _ZetaConnectorNonNative.Contract.Unpause(&_ZetaConnectorNonNative.TransactOpts) +} + +// Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a. +// +// Solidity: function unpause() returns() +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeTransactorSession) Unpause() (*types.Transaction, error) { + return _ZetaConnectorNonNative.Contract.Unpause(&_ZetaConnectorNonNative.TransactOpts) +} + +// 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 +} + +// ZetaConnectorNonNativePausedIterator is returned from FilterPaused and is used to iterate over the raw logs and unpacked data for Paused events raised by the ZetaConnectorNonNative contract. +type ZetaConnectorNonNativePausedIterator struct { + Event *ZetaConnectorNonNativePaused // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativePausedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativePaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativePaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativePausedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativePausedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativePaused represents a Paused event raised by the ZetaConnectorNonNative contract. +type ZetaConnectorNonNativePaused struct { + Account common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterPaused is a free log retrieval operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. +// +// Solidity: event Paused(address account) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeFilterer) FilterPaused(opts *bind.FilterOpts) (*ZetaConnectorNonNativePausedIterator, error) { + + logs, sub, err := _ZetaConnectorNonNative.contract.FilterLogs(opts, "Paused") + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativePausedIterator{contract: _ZetaConnectorNonNative.contract, event: "Paused", logs: logs, sub: sub}, nil +} + +// WatchPaused is a free log subscription operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. +// +// Solidity: event Paused(address account) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeFilterer) WatchPaused(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativePaused) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNonNative.contract.WatchLogs(opts, "Paused") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativePaused) + if err := _ZetaConnectorNonNative.contract.UnpackLog(event, "Paused", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParsePaused is a log parse operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258. +// +// Solidity: event Paused(address account) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeFilterer) ParsePaused(log types.Log) (*ZetaConnectorNonNativePaused, error) { + event := new(ZetaConnectorNonNativePaused) + if err := _ZetaConnectorNonNative.contract.UnpackLog(event, "Paused", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeRoleAdminChangedIterator is returned from FilterRoleAdminChanged and is used to iterate over the raw logs and unpacked data for RoleAdminChanged events raised by the ZetaConnectorNonNative contract. +type ZetaConnectorNonNativeRoleAdminChangedIterator struct { + Event *ZetaConnectorNonNativeRoleAdminChanged // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeRoleAdminChangedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeRoleAdminChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeRoleAdminChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeRoleAdminChangedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeRoleAdminChangedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeRoleAdminChanged represents a RoleAdminChanged event raised by the ZetaConnectorNonNative contract. +type ZetaConnectorNonNativeRoleAdminChanged struct { + Role [32]byte + PreviousAdminRole [32]byte + NewAdminRole [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRoleAdminChanged is a free log retrieval operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. +// +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeFilterer) FilterRoleAdminChanged(opts *bind.FilterOpts, role [][32]byte, previousAdminRole [][32]byte, newAdminRole [][32]byte) (*ZetaConnectorNonNativeRoleAdminChangedIterator, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var previousAdminRoleRule []interface{} + for _, previousAdminRoleItem := range previousAdminRole { + previousAdminRoleRule = append(previousAdminRoleRule, previousAdminRoleItem) + } + var newAdminRoleRule []interface{} + for _, newAdminRoleItem := range newAdminRole { + newAdminRoleRule = append(newAdminRoleRule, newAdminRoleItem) + } + + logs, sub, err := _ZetaConnectorNonNative.contract.FilterLogs(opts, "RoleAdminChanged", roleRule, previousAdminRoleRule, newAdminRoleRule) + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeRoleAdminChangedIterator{contract: _ZetaConnectorNonNative.contract, event: "RoleAdminChanged", logs: logs, sub: sub}, nil +} + +// WatchRoleAdminChanged is a free log subscription operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. +// +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeFilterer) WatchRoleAdminChanged(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeRoleAdminChanged, role [][32]byte, previousAdminRole [][32]byte, newAdminRole [][32]byte) (event.Subscription, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var previousAdminRoleRule []interface{} + for _, previousAdminRoleItem := range previousAdminRole { + previousAdminRoleRule = append(previousAdminRoleRule, previousAdminRoleItem) + } + var newAdminRoleRule []interface{} + for _, newAdminRoleItem := range newAdminRole { + newAdminRoleRule = append(newAdminRoleRule, newAdminRoleItem) + } + + logs, sub, err := _ZetaConnectorNonNative.contract.WatchLogs(opts, "RoleAdminChanged", roleRule, previousAdminRoleRule, newAdminRoleRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeRoleAdminChanged) + if err := _ZetaConnectorNonNative.contract.UnpackLog(event, "RoleAdminChanged", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRoleAdminChanged is a log parse operation binding the contract event 0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff. +// +// Solidity: event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeFilterer) ParseRoleAdminChanged(log types.Log) (*ZetaConnectorNonNativeRoleAdminChanged, error) { + event := new(ZetaConnectorNonNativeRoleAdminChanged) + if err := _ZetaConnectorNonNative.contract.UnpackLog(event, "RoleAdminChanged", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeRoleGrantedIterator is returned from FilterRoleGranted and is used to iterate over the raw logs and unpacked data for RoleGranted events raised by the ZetaConnectorNonNative contract. +type ZetaConnectorNonNativeRoleGrantedIterator struct { + Event *ZetaConnectorNonNativeRoleGranted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeRoleGrantedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeRoleGranted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeRoleGranted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeRoleGrantedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeRoleGrantedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeRoleGranted represents a RoleGranted event raised by the ZetaConnectorNonNative contract. +type ZetaConnectorNonNativeRoleGranted struct { + Role [32]byte + Account common.Address + Sender common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRoleGranted is a free log retrieval operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. +// +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeFilterer) FilterRoleGranted(opts *bind.FilterOpts, role [][32]byte, account []common.Address, sender []common.Address) (*ZetaConnectorNonNativeRoleGrantedIterator, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _ZetaConnectorNonNative.contract.FilterLogs(opts, "RoleGranted", roleRule, accountRule, senderRule) + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeRoleGrantedIterator{contract: _ZetaConnectorNonNative.contract, event: "RoleGranted", logs: logs, sub: sub}, nil +} + +// WatchRoleGranted is a free log subscription operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. +// +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeFilterer) WatchRoleGranted(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeRoleGranted, role [][32]byte, account []common.Address, sender []common.Address) (event.Subscription, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _ZetaConnectorNonNative.contract.WatchLogs(opts, "RoleGranted", roleRule, accountRule, 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(ZetaConnectorNonNativeRoleGranted) + if err := _ZetaConnectorNonNative.contract.UnpackLog(event, "RoleGranted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRoleGranted is a log parse operation binding the contract event 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d. +// +// Solidity: event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeFilterer) ParseRoleGranted(log types.Log) (*ZetaConnectorNonNativeRoleGranted, error) { + event := new(ZetaConnectorNonNativeRoleGranted) + if err := _ZetaConnectorNonNative.contract.UnpackLog(event, "RoleGranted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeRoleRevokedIterator is returned from FilterRoleRevoked and is used to iterate over the raw logs and unpacked data for RoleRevoked events raised by the ZetaConnectorNonNative contract. +type ZetaConnectorNonNativeRoleRevokedIterator struct { + Event *ZetaConnectorNonNativeRoleRevoked // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeRoleRevokedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeRoleRevoked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeRoleRevoked) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeRoleRevokedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeRoleRevokedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeRoleRevoked represents a RoleRevoked event raised by the ZetaConnectorNonNative contract. +type ZetaConnectorNonNativeRoleRevoked struct { + Role [32]byte + Account common.Address + Sender common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterRoleRevoked is a free log retrieval operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. +// +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeFilterer) FilterRoleRevoked(opts *bind.FilterOpts, role [][32]byte, account []common.Address, sender []common.Address) (*ZetaConnectorNonNativeRoleRevokedIterator, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _ZetaConnectorNonNative.contract.FilterLogs(opts, "RoleRevoked", roleRule, accountRule, senderRule) + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeRoleRevokedIterator{contract: _ZetaConnectorNonNative.contract, event: "RoleRevoked", logs: logs, sub: sub}, nil +} + +// WatchRoleRevoked is a free log subscription operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. +// +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeFilterer) WatchRoleRevoked(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeRoleRevoked, role [][32]byte, account []common.Address, sender []common.Address) (event.Subscription, error) { + + var roleRule []interface{} + for _, roleItem := range role { + roleRule = append(roleRule, roleItem) + } + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _ZetaConnectorNonNative.contract.WatchLogs(opts, "RoleRevoked", roleRule, accountRule, 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(ZetaConnectorNonNativeRoleRevoked) + if err := _ZetaConnectorNonNative.contract.UnpackLog(event, "RoleRevoked", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseRoleRevoked is a log parse operation binding the contract event 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b. +// +// Solidity: event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeFilterer) ParseRoleRevoked(log types.Log) (*ZetaConnectorNonNativeRoleRevoked, error) { + event := new(ZetaConnectorNonNativeRoleRevoked) + if err := _ZetaConnectorNonNative.contract.UnpackLog(event, "RoleRevoked", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZetaConnectorNonNativeUnpausedIterator is returned from FilterUnpaused and is used to iterate over the raw logs and unpacked data for Unpaused events raised by the ZetaConnectorNonNative contract. +type ZetaConnectorNonNativeUnpausedIterator struct { + Event *ZetaConnectorNonNativeUnpaused // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZetaConnectorNonNativeUnpausedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeUnpaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZetaConnectorNonNativeUnpaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZetaConnectorNonNativeUnpausedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZetaConnectorNonNativeUnpausedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZetaConnectorNonNativeUnpaused represents a Unpaused event raised by the ZetaConnectorNonNative contract. +type ZetaConnectorNonNativeUnpaused struct { + Account common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUnpaused is a free log retrieval operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. +// +// Solidity: event Unpaused(address account) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeFilterer) FilterUnpaused(opts *bind.FilterOpts) (*ZetaConnectorNonNativeUnpausedIterator, error) { + + logs, sub, err := _ZetaConnectorNonNative.contract.FilterLogs(opts, "Unpaused") + if err != nil { + return nil, err + } + return &ZetaConnectorNonNativeUnpausedIterator{contract: _ZetaConnectorNonNative.contract, event: "Unpaused", logs: logs, sub: sub}, nil +} + +// WatchUnpaused is a free log subscription operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. +// +// Solidity: event Unpaused(address account) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeFilterer) WatchUnpaused(opts *bind.WatchOpts, sink chan<- *ZetaConnectorNonNativeUnpaused) (event.Subscription, error) { + + logs, sub, err := _ZetaConnectorNonNative.contract.WatchLogs(opts, "Unpaused") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ZetaConnectorNonNativeUnpaused) + if err := _ZetaConnectorNonNative.contract.UnpackLog(event, "Unpaused", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseUnpaused is a log parse operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa. +// +// Solidity: event Unpaused(address account) +func (_ZetaConnectorNonNative *ZetaConnectorNonNativeFilterer) ParseUnpaused(log types.Log) (*ZetaConnectorNonNativeUnpaused, error) { + event := new(ZetaConnectorNonNativeUnpaused) + if err := _ZetaConnectorNonNative.contract.UnpackLog(event, "Unpaused", 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..64f55d0e --- /dev/null +++ b/v2/pkg/zetaconnectornonnative.t.sol/zetaconnectornonnativetest.go @@ -0,0 +1,5804 @@ +// 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\":\"WITHDRAWER_ROLE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"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\":\"testWithdrawAndCallReceiveERC20FailsIfSenderIsNotWithdrawer\",\"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\":\"testWithdrawAndRevertFailsIfSenderIsNotWithdrawer\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"testWithdrawFailsIfSenderIsNotWithdrawer\",\"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\":\"AccessControlUnauthorizedAccount\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"neededRole\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"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\":\"ZeroAddress\",\"inputs\":[]}]", + Bin: "0x6080604052600c8054600160ff199182168117909255601f80549091169091179055348015602c57600080fd5b5061dddc8061003c6000396000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c8063916a17c6116100d8578063d509b16c1161008c578063e20c9f7111610066578063e20c9f71146102a8578063fa7626d4146102b0578063fe574f84146102bd57600080fd5b8063d509b16c14610290578063dcf7d03714610298578063de1cb76c146102a057600080fd5b8063b5508aa9116100bd578063b5508aa914610268578063ba414fa614610270578063c19099721461028857600080fd5b8063916a17c61461024b578063b0464fdc1461026057600080fd5b80633f7286f41161013a578063828320141161011457806382832014146101f957806385226c811461020157806385f438c11461021657600080fd5b80633f7286f4146101d457806349346558146101dc57806366d9a9a0146101e457600080fd5b80632ade38801161016b5780632ade3880146101af5780633cba0107146101c45780633e5e3c23146101cc57600080fd5b80630a9254e4146101875780631ed7831c14610191575b600080fd5b61018f6102c5565b005b6101996109c4565b6040516101a69190617b03565b60405180910390f35b6101b7610a26565b6040516101a69190617b9f565b61018f610b68565b610199611343565b6101996113a3565b61018f611403565b6101ec6119f0565b6040516101a69190617d05565b61018f611b72565b610209611de4565b6040516101a69190617da3565b61023d7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e481565b6040519081526020016101a6565b610253611eb4565b6040516101a69190617e1a565b610253611faf565b6102096120aa565b61027861217a565b60405190151581526020016101a6565b61018f61224e565b61018f6124d2565b61018f6128f2565b61018f612f39565b61019961366e565b601f546102789060ff1681565b61018f6136ce565b60258054307fffffffffffffffffffffffff0000000000000000000000000000000000000000918216179091556026805461123490831617905560278054615678921682179055604051819061031a90617a16565b6001600160a01b03928316815291166020820152604001604051809103906000f08015801561034d573d6000803e3d6000fd5b50602480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283169081178255604080518082018252600e81527f4761746577617945564d2e736f6c00000000000000000000000000000000000060208201526027546025549251908616948101949094526044840192909252909216606482015261043e919060840160408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc0c53b8b00000000000000000000000000000000000000000000000000000000179052613905565b601f80547fffffffffffffffffffffff0000000000000000000000000000000000000000ff166101006001600160a01b0393841681029190911791829055602080549190920483167fffffffffffffffffffffffff000000000000000000000000000000000000000090911681179091556027546025546040519293918216929116906104ca90617a23565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103906000f080158015610506573d6000803e3d6000fd5b50602280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03928316179055602054602454602754602554604051938516949283169391831692169061056190617a30565b6001600160a01b039485168152928416602084015290831660408301529091166060820152608001604051809103906000f0801580156105a5573d6000803e3d6000fd5b50602380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283161790556027546040517fca669fa700000000000000000000000000000000000000000000000000000000815291166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b15801561064357600080fd5b505af1158015610657573d6000803e3d6000fd5b5050602480546027546023546040517f15d57fd40000000000000000000000000000000000000000000000000000000081526001600160a01b039283166004820152908216938101939093521692506315d57fd49150604401600060405180830381600087803b1580156106ca57600080fd5b505af11580156106de573d6000803e3d6000fd5b505050506040516106ee90617a3d565b604051809103906000f08015801561070a573d6000803e3d6000fd5b50602180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283161790556027546040517fc88a5e6d00000000000000000000000000000000000000000000000000000000815291166004820152670de0b6b3a76400006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d90604401600060405180830381600087803b1580156107b657600080fd5b505af11580156107ca573d6000803e3d6000fd5b50506025546040517f06447d560000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d569150602401600060405180830381600087803b15801561084057600080fd5b505af1158015610854573d6000803e3d6000fd5b50506020546022546040517fae7a3a6f0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201529116925063ae7a3a6f9150602401600060405180830381600087803b1580156108ba57600080fd5b505af11580156108ce573d6000803e3d6000fd5b50506020546023546040517f10188aef0000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152911692506310188aef9150602401600060405180830381600087803b15801561093457600080fd5b505af1158015610948573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b50505050565b60606016805480602002602001604051908101604052809291908181526020018280548015610a1c57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116109fe575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020016000905b82821015610b5f57600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b82821015610b48578382906000526020600020018054610abb90617eb1565b80601f0160208091040260200160405190810160405280929190818152602001828054610ae790617eb1565b8015610b345780601f10610b0957610100808354040283529160200191610b34565b820191906000526020600020905b815481529060010190602001808311610b1757829003601f168201915b505050505081526020019060010190610a9c565b505050508152505081526020019060010190610a4a565b50505050905090565b60248054602654604051620186a09381018490526001600160a01b03928316604482015291166064820152600090819060840160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f357fc5a2000000000000000000000000000000000000000000000000000000001790526024805460265492516370a0823160e01b81526001600160a01b0393841660048201529394506000939216916370a082319101602060405180830381865afa158015610c43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c679190617efe565b9050610c74816000613924565b602480546023546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa158015610cc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce89190617efe565b9050610cf5816000613924565b6020546040516001600160a01b039091166024820152604481018690526064810185905260009060840160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f1e458bee0000000000000000000000000000000000000000000000000000000017905260245490517ff30c7ba3000000000000000000000000000000000000000000000000000000008152919250737109709ecfa91a80626ff3989d68f67f5b1dd12d9163f30c7ba391610ddc916001600160a01b0391909116906000908690600401617f17565b600060405180830381600087803b158015610df657600080fd5b505af1158015610e0a573d6000803e3d6000fd5b50506021546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b158015610e9c57600080fd5b505af1158015610eb0573d6000803e3d6000fd5b505060208054602454602654604080516001600160a01b0394851681529485018d905291831684830152919091166060830152517f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af609350908190036080019150a16023546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b158015610f9f57600080fd5b505af1158015610fb3573d6000803e3d6000fd5b50506021546040516001600160a01b0390911692507f7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced9150610ff89089908890617f3f565b60405180910390a26027546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b15801561107257600080fd5b505af1158015611086573d6000803e3d6000fd5b50506023546021546040517f5e3e9fef0000000000000000000000000000000000000000000000000000000081526001600160a01b039283169450635e3e9fef93506110de92909116908a9089908b90600401617f58565b600060405180830381600087803b1580156110f857600080fd5b505af115801561110c573d6000803e3d6000fd5b5050602480546026546040516370a0823160e01b81526001600160a01b03918216600482015260009550911692506370a082319101602060405180830381865afa15801561115e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111829190617efe565b905061118e8188613924565b602480546023546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa1580156111de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112029190617efe565b905061120f816000613924565b602480546020546021546040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081526001600160a01b0392831660048201529082169381019390935260009291169063dd62ed3e90604401602060405180830381865afa158015611285573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a99190617efe565b90506112b6816000613924565b602480546020546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa158015611306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132a9190617efe565b9050611337816000613924565b50505050505050505050565b60606018805480602002602001604051908101604052809291908181526020018280548015610a1c576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116109fe575050505050905090565b60606017805480602002602001604051908101604052809291908181526020018280548015610a1c576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116109fe575050505050905090565b604080516004808252602480830184526020830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f6ed70169000000000000000000000000000000000000000000000000000000001790525460265493516370a0823160e01b8152620186a0946000949385936001600160a01b03908116936370a08231936114a493921691016001600160a01b0391909116815260200190565b602060405180830381865afa1580156114c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e59190617efe565b90506114f2816000613924565b602480546023546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa158015611542573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115669190617efe565b9050611573816000613924565b6020546040516001600160a01b039091166024820152604481018690526064810185905260009060840160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f1e458bee0000000000000000000000000000000000000000000000000000000017905260245490517ff30c7ba3000000000000000000000000000000000000000000000000000000008152919250737109709ecfa91a80626ff3989d68f67f5b1dd12d9163f30c7ba39161165a916001600160a01b0391909116906000908690600401617f17565b600060405180830381600087803b15801561167457600080fd5b505af1158015611688573d6000803e3d6000fd5b50506021546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b15801561171a57600080fd5b505af115801561172e573d6000803e3d6000fd5b5050602080546040516001600160a01b0390911681527fbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a0935001905060405180910390a16023546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b15801561180057600080fd5b505af1158015611814573d6000803e3d6000fd5b50506021546040516001600160a01b0390911692507f7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced91506118599089908890617f3f565b60405180910390a26027546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b1580156118d357600080fd5b505af11580156118e7573d6000803e3d6000fd5b50506023546021546040517f5e3e9fef0000000000000000000000000000000000000000000000000000000081526001600160a01b039283169450635e3e9fef935061193f92909116908a9089908b90600401617f58565b600060405180830381600087803b15801561195957600080fd5b505af115801561196d573d6000803e3d6000fd5b5050602480546026546040516370a0823160e01b81526001600160a01b03918216600482015260009550911692506370a082319101602060405180830381865afa1580156119bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119e39190617efe565b905061118e816000613924565b6060601b805480602002602001604051908101604052809291908181526020016000905b82821015610b5f5783829060005260206000209060020201604051806040016040529081600082018054611a4790617eb1565b80601f0160208091040260200160405190810160405280929190818152602001828054611a7390617eb1565b8015611ac05780601f10611a9557610100808354040283529160200191611ac0565b820191906000526020600020905b815481529060010190602001808311611aa357829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015611b5a57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411611b075790505b50505050508152505081526020019060010190611a14565b6040517f68656c6c6f0000000000000000000000000000000000000000000000000000006020820152620186a090600090819060250160408051808303601f19018152908290526025547fca669fa70000000000000000000000000000000000000000000000000000000083526001600160a01b031660048301529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b158015611c2857600080fd5b505af1158015611c3c573d6000803e3d6000fd5b5050602554604080516001600160a01b0390921660248301527f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e460448084019190915281518084039091018152606490920181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe2517d3f00000000000000000000000000000000000000000000000000000000179052517ff28dceb3000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d935063f28dceb39250611d279190600401617f91565b600060405180830381600087803b158015611d4157600080fd5b505af1158015611d55573d6000803e3d6000fd5b50506023546021546040517f02d5c8990000000000000000000000000000000000000000000000000000000081526001600160a01b0392831694506302d5c8999350611dad9290911690879086908890600401617f58565b600060405180830381600087803b158015611dc757600080fd5b505af1158015611ddb573d6000803e3d6000fd5b50505050505050565b6060601a805480602002602001604051908101604052809291908181526020016000905b82821015610b5f578382906000526020600020018054611e2790617eb1565b80601f0160208091040260200160405190810160405280929190818152602001828054611e5390617eb1565b8015611ea05780601f10611e7557610100808354040283529160200191611ea0565b820191906000526020600020905b815481529060010190602001808311611e8357829003601f168201915b505050505081526020019060010190611e08565b6060601d805480602002602001604051908101604052809291908181526020016000905b82821015610b5f5760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015611f9757602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411611f445790505b50505050508152505081526020019060010190611ed8565b6060601c805480602002602001604051908101604052809291908181526020016000905b82821015610b5f5760008481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801561209257602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161203f5790505b50505050508152505081526020019060010190611fd3565b60606019805480602002602001604051908101604052809291908181526020016000905b82821015610b5f5783829060005260206000200180546120ed90617eb1565b80601f016020809104026020016040519081016040528092919081815260200182805461211990617eb1565b80156121665780601f1061213b57610100808354040283529160200191612166565b820191906000526020600020905b81548152906001019060200180831161214957829003601f168201915b5050505050815260200190600101906120ce565b60085460009060ff1615612192575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c65640000000000000000000000000000000000000000000000000000602483015260009163667f9d7090604401602060405180830381865afa158015612223573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122479190617efe565b1415905090565b60248054602654604051620186a09381018490526001600160a01b03928316604482015291166064820152600090819060840160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f357fc5a20000000000000000000000000000000000000000000000000000000017905260255490517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b15801561234d57600080fd5b505af1158015612361573d6000803e3d6000fd5b5050602554604080516001600160a01b0390921660248301527f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e460448084019190915281518084039091018152606490920181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe2517d3f00000000000000000000000000000000000000000000000000000000179052517ff28dceb3000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d935063f28dceb3925061244c9190600401617f91565b600060405180830381600087803b15801561246657600080fd5b505af115801561247a573d6000803e3d6000fd5b50506023546021546040517f5e3e9fef0000000000000000000000000000000000000000000000000000000081526001600160a01b039283169450635e3e9fef9350611dad9290911690879086908890600401617f58565b602480546026546040516370a0823160e01b81526001600160a01b039182166004820152620186a09360009392909216916370a082319101602060405180830381865afa158015612527573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061254b9190617efe565b9050612558816000613924565b6026546040516001600160a01b0390911660248201526044810183905260006064820181905290819060840160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f1e458bee0000000000000000000000000000000000000000000000000000000017905260245490517ff30c7ba3000000000000000000000000000000000000000000000000000000008152919250737109709ecfa91a80626ff3989d68f67f5b1dd12d9163f30c7ba391612641916001600160a01b0391909116906000908690600401617f17565b600060405180830381600087803b15801561265b57600080fd5b505af115801561266f573d6000803e3d6000fd5b50506023546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b15801561270157600080fd5b505af1158015612715573d6000803e3d6000fd5b50506026546040518781526001600160a01b0390911692507f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364915060200160405180910390a26027546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b1580156127cd57600080fd5b505af11580156127e1573d6000803e3d6000fd5b50506023546026546040517f106e62900000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260248101899052604481018790529116925063106e62909150606401600060405180830381600087803b15801561285557600080fd5b505af1158015612869573d6000803e3d6000fd5b5050602480546026546040516370a0823160e01b81526001600160a01b03918216600482015260009550911692506370a082319101602060405180830381865afa1580156128bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128df9190617efe565b90506128eb8186613924565b5050505050565b60248054602654604051620186a09381018490526001600160a01b03928316604482015291166064820152600090819060840160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc5131691000000000000000000000000000000000000000000000000000000001790526024805460265492516370a0823160e01b81526001600160a01b0393841660048201529394506000939216916370a082319101602060405180830381865afa1580156129cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129f19190617efe565b90506129fe816000613924565b602480546023546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa158015612a4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a729190617efe565b9050612a7f816000613924565b6020546040516001600160a01b039091166024820152604481018690526064810185905260009060840160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f1e458bee0000000000000000000000000000000000000000000000000000000017905260245490517ff30c7ba3000000000000000000000000000000000000000000000000000000008152919250737109709ecfa91a80626ff3989d68f67f5b1dd12d9163f30c7ba391612b66916001600160a01b0391909116906000908690600401617f17565b600060405180830381600087803b158015612b8057600080fd5b505af1158015612b94573d6000803e3d6000fd5b50506021546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b158015612c2657600080fd5b505af1158015612c3a573d6000803e3d6000fd5b50506020547f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af6092506001600160a01b03169050612c78600289617fd3565b602454602654604080516001600160a01b03958616815260208101949094529184168383015292909216606082015290519081900360800190a16023546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b158015612d4057600080fd5b505af1158015612d54573d6000803e3d6000fd5b50506021546040516001600160a01b0390911692507f7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced9150612d999089908890617f3f565b60405180910390a26027546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b158015612e1357600080fd5b505af1158015612e27573d6000803e3d6000fd5b50506023546021546040517f5e3e9fef0000000000000000000000000000000000000000000000000000000081526001600160a01b039283169450635e3e9fef9350612e7f92909116908a9089908b90600401617f58565b600060405180830381600087803b158015612e9957600080fd5b505af1158015612ead573d6000803e3d6000fd5b5050602480546026546040516370a0823160e01b81526001600160a01b03918216600482015260009550911692506370a082319101602060405180830381865afa158015612eff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f239190617efe565b905061118e81612f3460028a617fd3565b613924565b6040517f68656c6c6f0000000000000000000000000000000000000000000000000000006020820152620186a090600090819060250160408051808303601f1901815290829052602480546021546370a0823160e01b85526001600160a01b0390811660048601529294506000939216916370a082319101602060405180830381865afa158015612fce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ff29190617efe565b9050612fff816000613924565b602480546023546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa15801561304f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130739190617efe565b6020546040516001600160a01b039091166024820152604481018790526064810186905290915060009060840160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f1e458bee0000000000000000000000000000000000000000000000000000000017905260245490517ff30c7ba3000000000000000000000000000000000000000000000000000000008152919250737109709ecfa91a80626ff3989d68f67f5b1dd12d9163f30c7ba39161315d916001600160a01b0391909116906000908690600401617f17565b600060405180830381600087803b15801561317757600080fd5b505af115801561318b573d6000803e3d6000fd5b50506021546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506381bad6f3915060a401600060405180830381600087803b15801561321d57600080fd5b505af1158015613231573d6000803e3d6000fd5b50506020546040517f0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa935061327492506001600160a01b0390911690879061800e565b60405180910390a16020546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b15801561330a57600080fd5b505af115801561331e573d6000803e3d6000fd5b50506021546024546040516001600160a01b039283169450911691507f723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda790613369908a908990617f3f565b60405180910390a36023546040517f81bad6f3000000000000000000000000000000000000000000000000000000008152600160048201819052602482018190526044820181905260648201526001600160a01b039091166084820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906381bad6f39060a401600060405180830381600087803b1580156133ff57600080fd5b505af1158015613413573d6000803e3d6000fd5b50506021546040516001600160a01b0390911692507fba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe91506134589089908890617f3f565b60405180910390a26027546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b1580156134d257600080fd5b505af11580156134e6573d6000803e3d6000fd5b50506023546021546040517f02d5c8990000000000000000000000000000000000000000000000000000000081526001600160a01b0392831694506302d5c899935061353e92909116908a9089908b90600401617f58565b600060405180830381600087803b15801561355857600080fd5b505af115801561356c573d6000803e3d6000fd5b5050602480546021546040516370a0823160e01b81526001600160a01b03918216600482015260009550911692506370a082319101602060405180830381865afa1580156135be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135e29190617efe565b90506135ee8188613924565b602480546023546040516370a0823160e01b81526001600160a01b03918216600482015260009391909216916370a082319101602060405180830381865afa15801561363e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136629190617efe565b905061120f8185613924565b60606015805480602002602001604051908101604052809291908181526020018280548015610a1c576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116109fe575050505050905090565b6025546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152620186a090600090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa790602401600060405180830381600087803b15801561374857600080fd5b505af115801561375c573d6000803e3d6000fd5b5050602554604080516001600160a01b0390921660248301527f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e460448084019190915281518084039091018152606490920181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe2517d3f00000000000000000000000000000000000000000000000000000000179052517ff28dceb3000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d935063f28dceb392506138479190600401617f91565b600060405180830381600087803b15801561386157600080fd5b505af1158015613875573d6000803e3d6000fd5b50506023546026546040517f106e62900000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260248101879052604481018690529116925063106e62909150606401600060405180830381600087803b1580156138e957600080fd5b505af11580156138fd573d6000803e3d6000fd5b505050505050565b600061390f617a4a565b61391a8484836139a3565b9150505b92915050565b6040517f98296c540000000000000000000000000000000000000000000000000000000081526004810183905260248101829052737109709ecfa91a80626ff3989d68f67f5b1dd12d906398296c549060440160006040518083038186803b15801561398f57600080fd5b505afa1580156138fd573d6000803e3d6000fd5b6000806139b08584613a1e565b9050613a136040518060400160405280601d81526020017f4552433139363750726f78792e736f6c3a4552433139363750726f787900000081525082866040516020016139fe92919061800e565b60405160208183030381529060405285613a2a565b9150505b9392505050565b6000613a178383613a58565b60c08101515160009015613a4e57613a4784848460c00151613a73565b9050613a17565b613a478484613c19565b6000613a648383613d04565b613a1783836020015184613a2a565b600080613a7e613d14565b90506000613a8c8683613de7565b90506000613aa3826060015183602001518561428d565b90506000613ab38383898961449f565b90506000613ac08261531c565b602081015181519192509060030b15613b3357898260400151604051602001613aea929190618030565b60408051601f19818403018152908290527f08c379a0000000000000000000000000000000000000000000000000000000008252613b2a91600401617f91565b60405180910390fd5b6000613b766040518060400160405280601581526020017f4465706c6f79656420746f20616464726573733a2000000000000000000000008152508360016154eb565b6040517fc6ce059d000000000000000000000000000000000000000000000000000000008152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c6ce059d90613bc9908490600401617f91565b602060405180830381865afa158015613be6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c0a91906180b1565b9b9a5050505050505050505050565b6040517f8d1cc9250000000000000000000000000000000000000000000000000000000081526000908190737109709ecfa91a80626ff3989d68f67f5b1dd12d90638d1cc92590613c6e908790600401617f91565b600060405180830381865afa158015613c8b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613cb391908101906181c2565b90506000613ce18285604051602001613ccd9291906181f7565b6040516020818303038152906040526156eb565b90506001600160a01b03811661391a578484604051602001613aea929190618226565b613d10828260006156fe565b5050565b604080518082018252600381527f6f75740000000000000000000000000000000000000000000000000000000000602082015290517fd145736c000000000000000000000000000000000000000000000000000000008152606091737109709ecfa91a80626ff3989d68f67f5b1dd12d91829063d145736c90613d9b9084906004016182d1565b600060405180830381865afa158015613db8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613de09190810190618318565b9250505090565b613e196040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d9050613e646040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b613e6d85615801565b60208201526000613e7d86615be6565b90506000836001600160a01b031663d930a0e66040518163ffffffff1660e01b8152600401600060405180830381865afa158015613ebf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613ee79190810190618318565b86838560200151604051602001613f019493929190618361565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291506000906001600160a01b038616906360f9bb1190613f59908590600401617f91565b600060405180830381865afa158015613f76573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613f9e9190810190618318565b6040517fdb4235f60000000000000000000000000000000000000000000000000000000081529091506001600160a01b0386169063db4235f690613fe6908490600401618465565b602060405180830381865afa158015614003573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061402791906184b7565b61403c5781604051602001613aea91906184d9565b6040517f49c4fac80000000000000000000000000000000000000000000000000000000081526001600160a01b038616906349c4fac89061408190849060040161856b565b600060405180830381865afa15801561409e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526140c69190810190618318565b84526040517fdb4235f60000000000000000000000000000000000000000000000000000000081526001600160a01b0386169063db4235f69061410d9084906004016185bd565b602060405180830381865afa15801561412a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061414e91906184b7565b156141e3576040517f49c4fac80000000000000000000000000000000000000000000000000000000081526001600160a01b038616906349c4fac8906141989084906004016185bd565b600060405180830381865afa1580156141b5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526141dd9190810190618318565b60408501525b846001600160a01b03166349c4fac8828660000151604051602001614208919061860f565b6040516020818303038152906040526040518363ffffffff1660e01b815260040161423492919061867b565b600060405180830381865afa158015614251573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526142799190810190618318565b606085015250608083015250949350505050565b60408051600480825260a0820190925260609160009190816020015b60608152602001906001900390816142a95790505090506040518060400160405280600481526020017f677265700000000000000000000000000000000000000000000000000000000081525081600081518110614309576143096186a0565b60200260200101819052506040518060400160405280600381526020017f2d726c00000000000000000000000000000000000000000000000000000000008152508160018151811061435d5761435d6186a0565b60200260200101819052508460405160200161437991906186cf565b6040516020818303038152906040528160028151811061439b5761439b6186a0565b6020026020010181905250826040516020016143b7919061873b565b604051602081830303815290604052816003815181106143d9576143d96186a0565b602002602001018190525060006143ef8261531c565b602080820151604080518082018252600581527f2e6a736f6e00000000000000000000000000000000000000000000000000000081850190815282518084018452600080825290860152825180840190935290518252928101929092529192506144809060408051808201825260008082526020918201528151808301909252845182528085019082015290615e69565b6144955785604051602001613aea919061877c565b9695505050505050565b60a0810151604080518082018252600080825260209182015281518083019092528251808352928101910152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d90156144ef565b511590565b614663578260200151156145ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605860248201527f54686520606c6963656e73655479706560206f7074696f6e2063616e6e6f742060448201527f62652075736564207768656e207468652060736b6970566572696679536f757260648201527f6365436f646560206f7074696f6e206973206074727565600000000000000000608482015260a401613b2a565b8260c0015115614663576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605360248201527f54686520606c6963656e73655479706560206f7074696f6e2063616e6e6f742060448201527f62652075736564207768656e207468652060736b69704c6963656e736554797060648201527f6560206f7074696f6e2069732060747275656000000000000000000000000000608482015260a401613b2a565b6040805160ff8082526120008201909252600091816020015b606081526020019060019003908161467c57905050905060006040518060400160405280600381526020017f6e707800000000000000000000000000000000000000000000000000000000008152508282806146d79061880d565b935060ff16815181106146ec576146ec6186a0565b60200260200101819052506040518060400160405280600d81526020017f302e302e312d616c7068612e370000000000000000000000000000000000000081525060405160200161473d919061882c565b6040516020818303038152906040528282806147589061880d565b935060ff168151811061476d5761476d6186a0565b60200260200101819052506040518060400160405280600681526020017f6465706c6f7900000000000000000000000000000000000000000000000000008152508282806147ba9061880d565b935060ff16815181106147cf576147cf6186a0565b60200260200101819052506040518060400160405280600e81526020017f2d2d636f6e74726163744e616d6500000000000000000000000000000000000081525082828061481c9061880d565b935060ff1681518110614831576148316186a0565b6020026020010181905250876020015182828061484d9061880d565b935060ff1681518110614862576148626186a0565b60200260200101819052506040518060400160405280600e81526020017f2d2d636f6e7472616374506174680000000000000000000000000000000000008152508282806148af9061880d565b935060ff16815181106148c4576148c46186a0565b6020908102919091010152875182826148dc8161880d565b935060ff16815181106148f1576148f16186a0565b60200260200101819052506040518060400160405280600981526020017f2d2d636861696e4964000000000000000000000000000000000000000000000081525082828061493e9061880d565b935060ff1681518110614953576149536186a0565b602002602001018190525061496746615eca565b82826149728161880d565b935060ff1681518110614987576149876186a0565b60200260200101819052506040518060400160405280600f81526020017f2d2d6275696c64496e666f46696c6500000000000000000000000000000000008152508282806149d49061880d565b935060ff16815181106149e9576149e96186a0565b602002602001018190525086828280614a019061880d565b935060ff1681518110614a1657614a166186a0565b6020908102919091010152855115614b3d5760408051808201909152601581527f2d2d636f6e7374727563746f7242797465636f6465000000000000000000000060208201528282614a678161880d565b935060ff1681518110614a7c57614a7c6186a0565b60209081029190910101526040517f71aad10d0000000000000000000000000000000000000000000000000000000081526001600160a01b038416906371aad10d90614acc908990600401617f91565b600060405180830381865afa158015614ae9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052614b119190810190618318565b8282614b1c8161880d565b935060ff1681518110614b3157614b316186a0565b60200260200101819052505b846020015115614c0d5760408051808201909152601281527f2d2d766572696679536f75726365436f6465000000000000000000000000000060208201528282614b868161880d565b935060ff1681518110614b9b57614b9b6186a0565b60200260200101819052506040518060400160405280600581526020017f66616c7365000000000000000000000000000000000000000000000000000000815250828280614be89061880d565b935060ff1681518110614bfd57614bfd6186a0565b6020026020010181905250614dd4565b614c456144ea8660a0015160408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b614cd85760408051808201909152600d81527f2d2d6c6963656e7365547970650000000000000000000000000000000000000060208201528282614c888161880d565b935060ff1681518110614c9d57614c9d6186a0565b60200260200101819052508460a00151604051602001614cbd91906186cf565b604051602081830303815290604052828280614be89061880d565b8460c00151158015614d1b575060408089015181518083018352600080825260209182015282518084019093528151835290810190820152614d1990511590565b155b15614dd45760408051808201909152600d81527f2d2d6c6963656e7365547970650000000000000000000000000000000000000060208201528282614d5f8161880d565b935060ff1681518110614d7457614d746186a0565b6020026020010181905250614d8888615f6a565b604051602001614d9891906186cf565b604051602081830303815290604052828280614db39061880d565b935060ff1681518110614dc857614dc86186a0565b60200260200101819052505b60408086015181518083018352600080825260209182015282518084019093528151835290810190820152614e0890511590565b614e9d5760408051808201909152600b81527f2d2d72656c61796572496400000000000000000000000000000000000000000060208201528282614e4b8161880d565b935060ff1681518110614e6057614e606186a0565b60200260200101819052508460400151828280614e7c9061880d565b935060ff1681518110614e9157614e916186a0565b60200260200101819052505b606085015115614fbe5760408051808201909152600681527f2d2d73616c74000000000000000000000000000000000000000000000000000060208201528282614ee68161880d565b935060ff1681518110614efb57614efb6186a0565b602090810291909101015260608501516040517fb11a19e800000000000000000000000000000000000000000000000000000000815260048101919091526001600160a01b0384169063b11a19e890602401600060405180830381865afa158015614f6a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052614f929190810190618318565b8282614f9d8161880d565b935060ff1681518110614fb257614fb26186a0565b60200260200101819052505b60e085015151156150655760408051808201909152600a81527f2d2d6761734c696d697400000000000000000000000000000000000000000000602082015282826150088161880d565b935060ff168151811061501d5761501d6186a0565b60200260200101819052506150398560e0015160000151615eca565b82826150448161880d565b935060ff1681518110615059576150596186a0565b60200260200101819052505b60e0850151602001511561510f5760408051808201909152600a81527f2d2d676173507269636500000000000000000000000000000000000000000000602082015282826150b28161880d565b935060ff16815181106150c7576150c76186a0565b60200260200101819052506150e38560e0015160200151615eca565b82826150ee8161880d565b935060ff1681518110615103576151036186a0565b60200260200101819052505b60e085015160400151156151b95760408051808201909152600e81527f2d2d6d61784665655065724761730000000000000000000000000000000000006020820152828261515c8161880d565b935060ff1681518110615171576151716186a0565b602002602001018190525061518d8560e0015160400151615eca565b82826151988161880d565b935060ff16815181106151ad576151ad6186a0565b60200260200101819052505b60e085015160600151156152635760408051808201909152601681527f2d2d6d61785072696f7269747946656550657247617300000000000000000000602082015282826152068161880d565b935060ff168151811061521b5761521b6186a0565b60200260200101819052506152378560e0015160600151615eca565b82826152428161880d565b935060ff1681518110615257576152576186a0565b60200260200101819052505b60008160ff1667ffffffffffffffff811115615281576152816180da565b6040519080825280602002602001820160405280156152b457816020015b606081526020019060019003908161529f5790505b50905060005b8260ff168160ff16101561530d57838160ff16815181106152dd576152dd6186a0565b6020026020010151828260ff16815181106152fa576152fa6186a0565b60209081029190910101526001016152ba565b5093505050505b949350505050565b6153436040518060600160405280600060030b815260200160608152602001606081525090565b60408051808201825260048082527f6261736800000000000000000000000000000000000000000000000000000000602083015291517fd145736c000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d92600091849163d145736c916153c991869101618897565b600060405180830381865afa1580156153e6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261540e9190810190618318565b9050600061541c8683616a59565b90506000846001600160a01b031663f45c1ce7836040518263ffffffff1660e01b815260040161544c9190617da3565b6000604051808303816000875af115801561546b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261549391908101906188de565b805190915060030b158015906154ac5750602081015151155b80156154bb5750604081015151155b1561449557816000815181106154d3576154d36186a0565b6020026020010151604051602001613aea9190618994565b606060006155208560408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b6040805180820182526000808252602091820152815180830190925286518252808701908201529091506155579082905b90616bae565b156156b45760006155d4826155ce846155c861559a8a60408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b6040805180820182526000808252602091820152815180830190925282518252918201519181019190915290565b90616bd5565b90616c37565b604080518082018252600181527f0a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152909150615638908290616bae565b156156a257604080518082018252600181527f0a000000000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261569f905b8290616cbc565b90505b6156ab81616ce2565b92505050613a17565b82156156cd578484604051602001613aea929190618b80565b5050604080516020810190915260008152613a17565b509392505050565b6000808251602084016000f09392505050565b8160a001511561570d57505050565b600061571a848484616d4b565b905060006157278261531c565b602081015181519192509060030b1580156157c35750604080518082018252600781527f5355434345535300000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526157c390604080518082018252600080825260209182015281518083019092528451825280850190820152615551565b156157d057505050505050565b604082015151156157f0578160400151604051602001613aea9190618c27565b80604051602001613aea9190618c85565b606060006158368360408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600481527f2e736f6c000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015290915061589b905b8290615e69565b1561590a57604080518082018252600481527f2e736f6c0000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152613a17906159059083906172e6565b616ce2565b604080518082018252600181527f3a000000000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261596c905b8290617370565b600103615a3957604080518082018252600181527f3a00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526159d290615698565b50604080518082018252600181527f3a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152613a1790615905905b8390616cbc565b604080518082018252600581527f2e6a736f6e00000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615a9890615894565b15615bcf57604080518082018252600181527f2f00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820181905284518086019095529251845283015290615b0090839061740a565b905060008160018351615b139190618cf0565b81518110615b2357615b236186a0565b60200260200101519050615bc6615905615b996040518060400160405280600581526020017f2e6a736f6e00000000000000000000000000000000000000000000000000000081525060408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600080825260209182015281518083019092528551825280860190820152906172e6565b95945050505050565b82604051602001613aea9190618d03565b50919050565b60606000615c1b8360408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600481527f2e736f6c0000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152909150615c7d90615894565b15615c8b57613a1781616ce2565b604080518082018252600181527f3a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615cea90615965565b600103615d5457604080518082018252600181527f3a0000000000000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152613a179061590590615a32565b604080518082018252600581527f2e6a736f6e00000000000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152615db390615894565b15615bcf57604080518082018252600181527f2f00000000000000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820181905284518086019095529251845283015290615e1b90839061740a565b9050600181511115615e57578060028251615e369190618cf0565b81518110615e4657615e466186a0565b602002602001015192505050919050565b5082604051602001613aea9190618d03565b805182516000911115615e7e5750600061391e565b81518351602085015160009291615e9491618de1565b615e9e9190618cf0565b905082602001518103615eb557600191505061391e565b82516020840151819020912014905092915050565b60606000615ed7836174af565b600101905060008167ffffffffffffffff811115615ef757615ef76180da565b6040519080825280601f01601f191660200182016040528015615f21576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084615f2b57509392505050565b604081810151815180830183526000808252602091820181905283518085018552835181529282018383015283518085018552600a81527f554e4c4943454e5345440000000000000000000000000000000000000000000081840190815285518087018752838152840192909252845180860190955251845290830152606091615ff6905b8290617591565b1561603657505060408051808201909152600481527f4e6f6e65000000000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600981527f556e6c6963656e736500000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261609590615fef565b156160d557505060408051808201909152600981527f556e6c6963656e736500000000000000000000000000000000000000000000006020820152919050565b604080518082018252600381527f4d495400000000000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261613490615fef565b1561617457505060408051808201909152600381527f4d495400000000000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f47504c2d322e302d6f6e6c790000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526161d390615fef565b806162385750604080518082018252601081527f47504c2d322e302d6f722d6c61746572000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261623890615fef565b1561627857505060408051808201909152600981527f474e552047504c763200000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f47504c2d332e302d6f6e6c790000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526162d790615fef565b8061633c5750604080518082018252601081527f47504c2d332e302d6f722d6c61746572000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261633c90615fef565b1561637c57505060408051808201909152600981527f474e552047504c763300000000000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4c47504c2d322e312d6f6e6c7900000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526163db90615fef565b806164405750604080518082018252601181527f4c47504c2d322e312d6f722d6c617465720000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261644090615fef565b1561648057505060408051808201909152600c81527f474e55204c47504c76322e3100000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4c47504c2d332e302d6f6e6c7900000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526164df90615fef565b806165445750604080518082018252601181527f4c47504c2d332e302d6f722d6c617465720000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261654490615fef565b1561658457505060408051808201909152600a81527f474e55204c47504c7633000000000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f4253442d322d436c617573650000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526165e390615fef565b1561662357505060408051808201909152600c81527f4253442d322d436c6175736500000000000000000000000000000000000000006020820152919050565b604080518082018252600c81527f4253442d332d436c6175736500000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261668290615fef565b156166c257505060408051808201909152600c81527f4253442d332d436c6175736500000000000000000000000000000000000000006020820152919050565b604080518082018252600781527f4d504c2d322e30000000000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261672190615fef565b1561676157505060408051808201909152600781527f4d504c2d322e30000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600781527f4f534c2d332e3000000000000000000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526167c090615fef565b1561680057505060408051808201909152600781527f4f534c2d332e30000000000000000000000000000000000000000000000000006020820152919050565b604080518082018252600a81527f4170616368652d322e30000000000000000000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261685f90615fef565b1561689f57505060408051808201909152600a81527f4170616368652d322e30000000000000000000000000000000000000000000006020820152919050565b604080518082018252600d81527f4147504c2d332e302d6f6e6c7900000000000000000000000000000000000000602080830191825283518085018552600080825290820152835180850190945291518352908201526168fe90615fef565b806169635750604080518082018252601181527f4147504c2d332e302d6f722d6c617465720000000000000000000000000000006020808301918252835180850185526000808252908201528351808501909452915183529082015261696390615fef565b156169a357505060408051808201909152600a81527f474e55204147504c7633000000000000000000000000000000000000000000006020820152919050565b604080518082018252600881527f4255534c2d312e3100000000000000000000000000000000000000000000000060208083019182528351808501855260008082529082015283518085019094529151835290820152616a0290615fef565b15616a4257505060408051808201909152600781527f42534c20312e31000000000000000000000000000000000000000000000000006020820152919050565b60408084015184519151613aea9290602001618df4565b60608060005b8451811015616ae45781858281518110616a7b57616a7b6186a0565b6020026020010151604051602001616a949291906181f7565b604051602081830303815290604052915060018551616ab39190618cf0565b8114616adc5781604051602001616aca9190618f5d565b60405160208183030381529060405291505b600101616a5f565b5060408051600380825260808201909252600091816020015b6060815260200190600190039081616afd5790505090508381600081518110616b2857616b286186a0565b60200260200101819052506040518060400160405280600281526020017f2d6300000000000000000000000000000000000000000000000000000000000081525081600181518110616b7c57616b7c6186a0565b60200260200101819052508181600281518110616b9b57616b9b6186a0565b6020908102919091010152949350505050565b6020808301518351835192840151600093616bcc92918491906175a5565b14159392505050565b60408051808201909152600080825260208201526000616c0784600001518560200151856000015186602001516176b6565b9050836020015181616c199190618cf0565b84518590616c28908390618cf0565b90525060208401525090919050565b6040805180820190915260008082526020820152815183511015616c5c57508161391e565b6020808301519084015160019114616c835750815160208481015190840151829020919020145b8015616cb457825184518590616c9a908390618cf0565b9052508251602085018051616cb0908390618de1565b9052505b509192915050565b6040805180820190915260008082526020820152616cdb8383836177d6565b5092915050565b60606000826000015167ffffffffffffffff811115616d0357616d036180da565b6040519080825280601f01601f191660200182016040528015616d2d576020820181803683370190505b5090506000602082019050616cdb8185602001518660000151617881565b60606000616d57613d14565b6040805160ff808252612000820190925291925060009190816020015b6060815260200190600190039081616d7457905050905060006040518060400160405280600381526020017f6e70780000000000000000000000000000000000000000000000000000000000815250828280616dcf9061880d565b935060ff1681518110616de457616de46186a0565b60200260200101819052506040518060400160405280600781526020017f5e312e33322e3300000000000000000000000000000000000000000000000000815250604051602001616e359190618f9e565b604051602081830303815290604052828280616e509061880d565b935060ff1681518110616e6557616e656186a0565b60200260200101819052506040518060400160405280600881526020017f76616c6964617465000000000000000000000000000000000000000000000000815250828280616eb29061880d565b935060ff1681518110616ec757616ec76186a0565b602002602001018190525082604051602001616ee3919061873b565b604051602081830303815290604052828280616efe9061880d565b935060ff1681518110616f1357616f136186a0565b60200260200101819052506040518060400160405280600a81526020017f2d2d636f6e747261637400000000000000000000000000000000000000000000815250828280616f609061880d565b935060ff1681518110616f7557616f756186a0565b6020026020010181905250616f8a87846178fb565b8282616f958161880d565b935060ff1681518110616faa57616faa6186a0565b6020908102919091010152855151156170565760408051808201909152600b81527f2d2d7265666572656e636500000000000000000000000000000000000000000060208201528282616ffc8161880d565b935060ff1681518110617011576170116186a0565b602002602001018190525061702a8660000151846178fb565b82826170358161880d565b935060ff168151811061704a5761704a6186a0565b60200260200101819052505b8560800151156170c45760408051808201909152601881527f2d2d756e73616665536b697053746f72616765436865636b00000000000000006020820152828261709f8161880d565b935060ff16815181106170b4576170b46186a0565b602002602001018190525061712a565b841561712a5760408051808201909152601281527f2d2d726571756972655265666572656e63650000000000000000000000000000602082015282826171098161880d565b935060ff168151811061711e5761711e6186a0565b60200260200101819052505b604086015151156171c65760408051808201909152600d81527f2d2d756e73616665416c6c6f7700000000000000000000000000000000000000602082015282826171748161880d565b935060ff1681518110617189576171896186a0565b602002602001018190525085604001518282806171a59061880d565b935060ff16815181106171ba576171ba6186a0565b60200260200101819052505b8560600151156172305760408051808201909152601481527f2d2d756e73616665416c6c6f7752656e616d65730000000000000000000000006020820152828261720f8161880d565b935060ff1681518110617224576172246186a0565b60200260200101819052505b60008160ff1667ffffffffffffffff81111561724e5761724e6180da565b60405190808252806020026020018201604052801561728157816020015b606081526020019060019003908161726c5790505b50905060005b8260ff168160ff1610156172da57838160ff16815181106172aa576172aa6186a0565b6020026020010151828260ff16815181106172c7576172c76186a0565b6020908102919091010152600101617287565b50979650505050505050565b604080518082019091526000808252602082015281518351101561730b57508161391e565b8151835160208501516000929161732191618de1565b61732b9190618cf0565b6020840151909150600190821461734c575082516020840151819020908220145b801561736757835185518690617363908390618cf0565b9052505b50929392505050565b600080826000015161739485600001518660200151866000015187602001516176b6565b61739e9190618de1565b90505b835160208501516173b29190618de1565b8111616cdb57816173c281618fe3565b92505082600001516173f98560200151836173dd9190618cf0565b86516173e99190618cf0565b83866000015187602001516176b6565b6174039190618de1565b90506173a1565b606060006174188484617370565b617423906001618de1565b67ffffffffffffffff81111561743b5761743b6180da565b60405190808252806020026020018201604052801561746e57816020015b60608152602001906001900390816174595790505b50905060005b81518110156156e35761748a6159058686616cbc565b82828151811061749c5761749c6186a0565b6020908102919091010152600101617474565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106174f8577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310617524576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061754257662386f26fc10000830492506010015b6305f5e100831061755a576305f5e100830492506008015b612710831061756e57612710830492506004015b60648310617580576064830492506002015b600a831061391e5760010192915050565b600061759d838361793b565b159392505050565b6000808584116176ac576020841161765857600084156175f05760016175cc866020618cf0565b6175d7906008618ffd565b6175e29060026190fb565b6175ec9190618cf0565b1990505b83518116856175ff8989618de1565b6176099190618cf0565b805190935082165b8181146176435787841161762b5787945050505050615314565b8361763581619107565b945050828451169050617611565b61764d8785618de1565b945050505050615314565b8383206176658588618cf0565b61766f9087618de1565b91505b8582106176aa578482208082036176975761768d8684618de1565b9350505050615314565b6176a2600184618cf0565b925050617672565b505b5092949350505050565b600083818685116177c1576020851161777057600085156177025760016176de876020618cf0565b6176e9906008618ffd565b6176f49060026190fb565b6176fe9190618cf0565b1990505b845181166000876177138b8b618de1565b61771d9190618cf0565b855190915083165b8281146177625781861061774a5761773d8b8b618de1565b9650505050505050615314565b8561775481618fe3565b965050838651169050617725565b859650505050505050615314565b508383206000905b6177828689618cf0565b82116177bf5785832080820361779e5783945050505050615314565b6177a9600185618de1565b93505081806177b790618fe3565b925050617778565b505b6177cb8787618de1565b979650505050505050565b6040805180820190915260008082526020820152600061780885600001518660200151866000015187602001516176b6565b6020808701805191860191909152519091506178249082618cf0565b8352845160208601516178379190618de1565b81036178465760008552617878565b835183516178549190618de1565b85518690617863908390618cf0565b90525083516178729082618de1565b60208601525b50909392505050565b602081106178b95781518352617898602084618de1565b92506178a5602083618de1565b91506178b2602082618cf0565b9050617881565b60001981156178e85760016178cf836020618cf0565b6178db906101006190fb565b6178e59190618cf0565b90505b9151835183169219169190911790915250565b606060006179098484613de7565b80516020808301516040519394506179239390910161911e565b60405160208183030381529060405291505092915050565b815181516000919081111561794e575081515b6020808501519084015160005b83811015617a0757825182518082146179d75760001960208710156179b657600184617988896020618cf0565b6179929190618de1565b61799d906008618ffd565b6179a89060026190fb565b6179b29190618cf0565b1990505b81811683821681810391146179d457975061391e9650505050505050565b50505b6179e2602086618de1565b94506179ef602085618de1565b93505050602081617a009190618de1565b905061795b565b50845186516144959190619176565b6112a68061919783390190565b6113e28061a43d83390190565b61182a8061b81f83390190565b610d5e8061d04983390190565b6040518060e00160405280606081526020016060815260200160608152602001600015158152602001600015158152602001600015158152602001617a8d617a92565b905290565b60405180610100016040528060001515815260200160001515815260200160608152602001600080191681526020016060815260200160608152602001600015158152602001617a8d6040518060800160405280600081526020016000815260200160008152602001600081525090565b602080825282518282018190526000918401906040840190835b81811015617b445783516001600160a01b0316835260209384019390920191600101617b1d565b509095945050505050565b60005b83811015617b6a578181015183820152602001617b52565b50506000910152565b60008151808452617b8b816020860160208601617b4f565b601f01601f19169290920160200192915050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015617c9b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452815180516001600160a01b03168652602090810151604082880181905281519088018190529101906060600582901b88018101919088019060005b81811015617c81577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08a8503018352617c6b848651617b73565b6020958601959094509290920191600101617c31565b509197505050602094850194929092019150600101617bc7565b50929695505050505050565b600081518084526020840193506020830160005b82811015617cfb5781517fffffffff0000000000000000000000000000000000000000000000000000000016865260209586019590910190600101617cbb565b5093949350505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015617c9b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08786030184528151805160408752617d716040880182617b73565b9050602082015191508681036020880152617d8c8183617ca7565b965050506020938401939190910190600101617d2d565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015617c9b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452617e05858351617b73565b94506020938401939190910190600101617dcb565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015617c9b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc087860301845281516001600160a01b0381511686526020810151905060406020870152617e9b6040870182617ca7565b9550506020938401939190910190600101617e42565b600181811c90821680617ec557607f821691505b602082108103615be0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060208284031215617f1057600080fd5b5051919050565b6001600160a01b0384168152826020820152606060408201526000615bc66060830184617b73565b8281526040602082015260006153146040830184617b73565b6001600160a01b0385168152836020820152608060408201526000617f806080830185617b73565b905082606083015295945050505050565b602081526000613a176020830184617b73565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082618009577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6001600160a01b03831681526040602082015260006153146040830184617b73565b7f4661696c656420746f206465706c6f7920636f6e74726163742000000000000081526000835161806881601a850160208801617b4f565b7f3a20000000000000000000000000000000000000000000000000000000000000601a9184019182015283516180a581601c840160208801617b4f565b01601c01949350505050565b6000602082840312156180c357600080fd5b81516001600160a01b0381168114613a1757600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171561812c5761812c6180da565b60405290565b60008067ffffffffffffffff84111561814d5761814d6180da565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff8211171561817c5761817c6180da565b60405283815290508082840185101561819457600080fd5b6156e3846020830185617b4f565b600082601f8301126181b357600080fd5b613a1783835160208501618132565b6000602082840312156181d457600080fd5b815167ffffffffffffffff8111156181eb57600080fd5b61391a848285016181a2565b60008351618209818460208801617b4f565b83519083019061821d818360208801617b4f565b01949350505050565b7f4661696c656420746f206465706c6f7920636f6e74726163742000000000000081526000835161825e81601a850160208801617b4f565b7f207573696e6720636f6e7374727563746f722064617461202200000000000000601a91840191820152835161829b816033840160208801617b4f565b7f220000000000000000000000000000000000000000000000000000000000000060339290910191820152603401949350505050565b60408152600b60408201527f464f554e4452595f4f55540000000000000000000000000000000000000000006060820152608060208201526000613a176080830184617b73565b60006020828403121561832a57600080fd5b815167ffffffffffffffff81111561834157600080fd5b8201601f8101841361835257600080fd5b61391a84825160208401618132565b60008551618373818460208a01617b4f565b7f2f0000000000000000000000000000000000000000000000000000000000000090830190815285516183ad816001840160208a01617b4f565b7f2f000000000000000000000000000000000000000000000000000000000000006001929091019182015284516183eb816002840160208901617b4f565b6001818301019150507f2f000000000000000000000000000000000000000000000000000000000000006001820152835161842d816002840160208801617b4f565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600292909101918201526007019695505050505050565b6040815260006184786040830184617b73565b8281036020840152600481527f2e6173740000000000000000000000000000000000000000000000000000000060208201526040810191505092915050565b6000602082840312156184c957600080fd5b81518015158114613a1757600080fd5b7f436f756c64206e6f742066696e642041535420696e206172746966616374200081526000825161851181601f850160208701617b4f565b7f2e205365742060617374203d20747275656020696e20666f756e6472792e746f601f9390910192830152507f6d6c000000000000000000000000000000000000000000000000000000000000603f820152604101919050565b60408152600061857e6040830184617b73565b8281036020840152601181527f2e6173742e6162736f6c7574655061746800000000000000000000000000000060208201526040810191505092915050565b6040815260006185d06040830184617b73565b8281036020840152600c81527f2e6173742e6c6963656e7365000000000000000000000000000000000000000060208201526040810191505092915050565b7f2e6d657461646174612e736f75726365732e5b27000000000000000000000000815260008251618647816014850160208701617b4f565b7f275d2e6b656363616b32353600000000000000000000000000000000000000006014939091019283015250602001919050565b60408152600061868e6040830185617b73565b8281036020840152613a138185617b73565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f2200000000000000000000000000000000000000000000000000000000000000815260008251618707816001850160208701617b4f565b7f22000000000000000000000000000000000000000000000000000000000000006001939091019283015250600201919050565b6000825161874d818460208701617b4f565b7f2f6275696c642d696e666f000000000000000000000000000000000000000000920191825250600b01919050565b7f436f756c64206e6f742066696e64206275696c642d696e666f2066696c65207781527f697468206d61746368696e6720736f7572636520636f6465206861736820666f60208201527f7220636f6e74726163742000000000000000000000000000000000000000000060408201526000825161880081604b850160208701617b4f565b91909101604b0192915050565b600060ff821660ff810361882357618823617fa4565b60010192915050565b7f406f70656e7a657070656c696e2f646566656e6465722d6465706c6f792d636c81527f69656e742d636c6940000000000000000000000000000000000000000000000060208201526000825161888a816029850160208701617b4f565b9190910160290192915050565b60408152601660408201527f4f50454e5a455050454c494e5f424153485f50415448000000000000000000006060820152608060208201526000613a176080830184617b73565b6000602082840312156188f057600080fd5b815167ffffffffffffffff81111561890757600080fd5b82016060818503121561891957600080fd5b618921618109565b81518060030b811461893257600080fd5b8152602082015167ffffffffffffffff81111561894e57600080fd5b61895a868285016181a2565b602083015250604082015167ffffffffffffffff81111561897a57600080fd5b618986868285016181a2565b604083015250949350505050565b7f4661696c656420746f2072756e206261736820636f6d6d616e6420776974682081527f22000000000000000000000000000000000000000000000000000000000000006020820152600082516189f2816021850160208701617b4f565b7f222e20496620796f7520617265207573696e672057696e646f77732c2073657460219390910192830152507f20746865204f50454e5a455050454c494e5f424153485f5041544820656e766960418201527f726f6e6d656e74207661726961626c6520746f207468652066756c6c7920717560618201527f616c69666965642070617468206f66207468652062617368206578656375746160818201527f626c652e20466f72206578616d706c652c20696620796f75206172652075736960a18201527f6e672047697420666f722057696e646f77732c206164642074686520666f6c6c60c18201527f6f77696e67206c696e6520696e20746865202e656e762066696c65206f66207960e18201527f6f75722070726f6a65637420287573696e6720666f727761726420736c6173686101018201527f6573293a0a4f50454e5a455050454c494e5f424153485f504154483d22433a2f6101218201527f50726f6772616d2046696c65732f4769742f62696e2f6261736822000000000061014182015261015c01919050565b7f4661696c656420746f2066696e64206c696e652077697468207072656669782081527f2700000000000000000000000000000000000000000000000000000000000000602082015260008351618bde816021850160208801617b4f565b7f2720696e206f75747075743a20000000000000000000000000000000000000006021918401918201528351618c1b81602e840160208801617b4f565b01602e01949350505050565b7f4661696c656420746f2072756e2075706772616465207361666574792076616c81527f69646174696f6e3a20000000000000000000000000000000000000000000000060208201526000825161888a816029850160208701617b4f565b7f55706772616465207361666574792076616c69646174696f6e206661696c656481527f3a0a000000000000000000000000000000000000000000000000000000000000602082015260008251618ce3816022850160208701617b4f565b9190910160220192915050565b8181038181111561391e5761391e617fa4565b7f436f6e7472616374206e616d6520000000000000000000000000000000000000815260008251618d3b81600e850160208701617b4f565b7f206d75737420626520696e2074686520666f726d6174204d79436f6e74726163600e9390910192830152507f742e736f6c3a4d79436f6e7472616374206f72204d79436f6e74726163742e73602e8201527f6f6c206f72206f75742f4d79436f6e74726163742e736f6c2f4d79436f6e7472604e8201527f6163742e6a736f6e000000000000000000000000000000000000000000000000606e820152607601919050565b8082018082111561391e5761391e617fa4565b7f53504458206c6963656e7365206964656e746966696572200000000000000000815260008351618e2c816018850160208801617b4f565b7f20696e20000000000000000000000000000000000000000000000000000000006018918401918201528351618e6981601c840160208801617b4f565b7f20646f6573206e6f74206c6f6f6b206c696b65206120737570706f7274656420601c92909101918201527f6c6963656e736520666f7220626c6f636b206578706c6f726572207665726966603c8201527f69636174696f6e2e205573652074686520606c6963656e73655479706560206f605c8201527f7074696f6e20746f20737065636966792061206c6963656e736520747970652c607c8201527f206f7220736574207468652060736b69704c6963656e73655479706560206f70609c8201527f74696f6e20746f2060747275656020746f20736b69702e00000000000000000060bc82015260d301949350505050565b60008251618f6f818460208701617b4f565b7f2000000000000000000000000000000000000000000000000000000000000000920191825250600101919050565b7f406f70656e7a657070656c696e2f75706772616465732d636f72654000000000815260008251618fd681601c850160208701617b4f565b91909101601c0192915050565b60006000198203618ff657618ff6617fa4565b5060010190565b808202811582820484141761391e5761391e617fa4565b6001815b600184111561904f5780850481111561903357619033617fa4565b600184161561904157908102905b60019390931c928002619018565b935093915050565b6000826190665750600161391e565b816190735750600061391e565b81600181146190895760028114619093576190af565b600191505061391e565b60ff8411156190a4576190a4617fa4565b50506001821b61391e565b5060208310610133831016604e8410600b84101617156190d2575081810a61391e565b6190df6000198484619014565b80600019048211156190f3576190f3617fa4565b029392505050565b6000613a178383619057565b60008161911657619116617fa4565b506000190190565b60008351619130818460208801617b4f565b7f3a00000000000000000000000000000000000000000000000000000000000000908301908152835161916a816001840160208801617b4f565b01600101949350505050565b8181036000831280158383131683831282161715616cdb57616cdb617fa456fe608060405234801561001057600080fd5b506040516112a63803806112a683398101604081905261002f91610110565b604051806040016040528060048152602001635a65746160e01b815250604051806040016040528060048152602001635a45544160e01b815250816003908161007891906101e2565b50600461008582826101e2565b5050506001600160a01b03821615806100a557506001600160a01b038116155b156100c35760405163e6c4247b60e01b815260040160405180910390fd5b600680546001600160a01b039384166001600160a01b031991821617909155600780549290931691161790556102a0565b80516001600160a01b038116811461010b57600080fd5b919050565b6000806040838503121561012357600080fd5b61012c836100f4565b915061013a602084016100f4565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061016d57607f821691505b60208210810361018d57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156101dd57806000526020600020601f840160051c810160208510156101ba5750805b601f840160051c820191505b818110156101da57600081556001016101c6565b50505b505050565b81516001600160401b038111156101fb576101fb610143565b61020f816102098454610159565b84610193565b6020601f821160018114610243576000831561022b5750848201515b600019600385901b1c1916600184901b1784556101da565b600084815260208120601f198516915b828110156102735787850151825560209485019460019092019101610253565b50848210156102915786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b610ff7806102af6000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c806342966c68116100b257806379cc679011610081578063a9059cbb11610066578063a9059cbb1461028e578063bff9662a146102a1578063dd62ed3e146102c157600080fd5b806379cc67901461027357806395d89b411461028657600080fd5b806342966c68146102025780635b1125911461021557806370a0823114610235578063779e3b631461026b57600080fd5b80631e458bee116100ee5780631e458bee1461018857806323b872dd1461019b578063313ce567146101ae578063328a01d0146101bd57600080fd5b806306fdde0314610120578063095ea7b31461013e57806315d57fd41461016157806318160ddd14610176575b600080fd5b610128610307565b6040516101359190610d97565b60405180910390f35b61015161014c366004610e2c565b610399565b6040519015158152602001610135565b61017461016f366004610e56565b6103b3565b005b6002545b604051908152602001610135565b610174610196366004610e89565b61057e565b6101516101a9366004610ebc565b610631565b60405160128152602001610135565b6007546101dd9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610135565b610174610210366004610ef9565b610655565b6006546101dd9073ffffffffffffffffffffffffffffffffffffffff1681565b61017a610243366004610f12565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b610174610662565b610174610281366004610e2c565b610786565b610128610837565b61015161029c366004610e2c565b610846565b6005546101dd9073ffffffffffffffffffffffffffffffffffffffff1681565b61017a6102cf366004610e56565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b60606003805461031690610f34565b80601f016020809104026020016040519081016040528092919081815260200182805461034290610f34565b801561038f5780601f106103645761010080835404028352916020019161038f565b820191906000526020600020905b81548152906001019060200180831161037257829003601f168201915b5050505050905090565b6000336103a7818585610854565b60019150505b92915050565b60075473ffffffffffffffffffffffffffffffffffffffff1633148015906103f3575060065473ffffffffffffffffffffffffffffffffffffffff163314155b15610431576040517fcdfcef970000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82161580610468575073ffffffffffffffffffffffffffffffffffffffff8116155b1561049f576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006805473ffffffffffffffffffffffffffffffffffffffff8481167fffffffffffffffffffffffff0000000000000000000000000000000000000000928316811790935560058054918516919092161790556040805133815260208101929092527fe79965b5c67dcfb2cf5fe152715e4a7256cee62a3d5dd8484fd8a8539eb8beff910160405180910390a16040805133815273ffffffffffffffffffffffffffffffffffffffff831660208201527f1b9352454524a57a51f24f67dc66d898f616922cd1f7a12d73570ece12b1975c910160405180910390a15050565b60055473ffffffffffffffffffffffffffffffffffffffff1633146105d1576040517f3fe32fba000000000000000000000000000000000000000000000000000000008152336004820152602401610428565b6105db8383610866565b808373ffffffffffffffffffffffffffffffffffffffff167fc263b302aec62d29105026245f19e16f8e0137066ccd4a8bd941f716bd4096bb8460405161062491815260200190565b60405180910390a3505050565b60003361063f8582856108c6565b61064a858585610995565b506001949350505050565b61065f3382610a40565b50565b60075473ffffffffffffffffffffffffffffffffffffffff1633146106b5576040517fe700765e000000000000000000000000000000000000000000000000000000008152336004820152602401610428565b60065473ffffffffffffffffffffffffffffffffffffffff16610704576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600654600780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff90921691821790556040805133815260208101929092527f5104c9abdc7d111c2aeb4ce890ac70274a4be2ee83f46a62551be5e6ebc82dd0910160405180910390a1565b60055473ffffffffffffffffffffffffffffffffffffffff1633146107d9576040517f3fe32fba000000000000000000000000000000000000000000000000000000008152336004820152602401610428565b6107e38282610a9c565b8173ffffffffffffffffffffffffffffffffffffffff167f919f7e2092ffcc9d09f599be18d8152860b0c054df788a33bc549cdd9d0f15b18260405161082b91815260200190565b60405180910390a25050565b60606004805461031690610f34565b6000336103a7818585610995565b6108618383836001610ab1565b505050565b73ffffffffffffffffffffffffffffffffffffffff82166108b6576040517fec442f0500000000000000000000000000000000000000000000000000000000815260006004820152602401610428565b6108c260008383610bf9565b5050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461098f5781811015610980576040517ffb8f41b200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024810182905260448101839052606401610428565b61098f84848484036000610ab1565b50505050565b73ffffffffffffffffffffffffffffffffffffffff83166109e5576040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260006004820152602401610428565b73ffffffffffffffffffffffffffffffffffffffff8216610a35576040517fec442f0500000000000000000000000000000000000000000000000000000000815260006004820152602401610428565b610861838383610bf9565b73ffffffffffffffffffffffffffffffffffffffff8216610a90576040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260006004820152602401610428565b6108c282600083610bf9565b610aa78233836108c6565b6108c28282610a40565b73ffffffffffffffffffffffffffffffffffffffff8416610b01576040517fe602df0500000000000000000000000000000000000000000000000000000000815260006004820152602401610428565b73ffffffffffffffffffffffffffffffffffffffff8316610b51576040517f94280d6200000000000000000000000000000000000000000000000000000000815260006004820152602401610428565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160209081526040808320938716835292905220829055801561098f578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610beb91815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff8316610c31578060026000828254610c269190610f87565b90915550610ce39050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015610cb7576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024810182905260448101839052606401610428565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090209082900390555b73ffffffffffffffffffffffffffffffffffffffff8216610d0c57600280548290039055610d38565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090208054820190555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161062491815260200190565b602081526000825180602084015260005b81811015610dc55760208186018101516040868401015201610da8565b5060006040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610e2757600080fd5b919050565b60008060408385031215610e3f57600080fd5b610e4883610e03565b946020939093013593505050565b60008060408385031215610e6957600080fd5b610e7283610e03565b9150610e8060208401610e03565b90509250929050565b600080600060608486031215610e9e57600080fd5b610ea784610e03565b95602085013595506040909401359392505050565b600080600060608486031215610ed157600080fd5b610eda84610e03565b9250610ee860208501610e03565b929592945050506040919091013590565b600060208284031215610f0b57600080fd5b5035919050565b600060208284031215610f2457600080fd5b610f2d82610e03565b9392505050565b600181811c90821680610f4857607f821691505b602082108103610f81577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b808201808211156103ad577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea2646970667358221220085f01204b33dc17013c78c74fbca32a3da2c0b384ce7c8878c889551af28c6164736f6c634300081a0033608060405234801561001057600080fd5b506040516113e23803806113e283398101604081905261002f916101d3565b60016000556002805460ff191690556001600160a01b038316158061005b57506001600160a01b038216155b156100795760405163d92e233d60e01b815260040160405180910390fd5b60028054610100600160a81b0319166101006001600160a01b038681169190910291909117909155600380546001600160a01b0319169184169190911790556100c3600082610122565b506100ee7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a82610122565b506101197f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e483610122565b50505050610216565b60008281526001602090815260408083206001600160a01b038516845290915281205460ff166101ad5760008381526001602081815260408084206001600160a01b0387168086529252808420805460ff19169093179092559051339286917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45060016101b1565b5060005b92915050565b80516001600160a01b03811681146101ce57600080fd5b919050565b6000806000606084860312156101e857600080fd5b6101f1846101b7565b92506101ff602085016101b7565b915061020d604085016101b7565b90509250925092565b6111bd806102256000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c80635c975abb116100b2578063a217fddf11610081578063d547741f11610066578063d547741f146102c2578063d9caed12146102d5578063e63ab1e9146102e857600080fd5b8063a217fddf146102a7578063c8a02362146102af57600080fd5b80635c975abb146102275780638456cb591461023257806385f438c11461023a57806391d148541461026157600080fd5b80632f2ff15d116100ee5780632f2ff15d146101d957806336568abe146101ec5780633f4ba83a146101ff5780635b1125911461020757600080fd5b806301ffc9a714610120578063116191b61461014857806321fc65f214610192578063248a9ca3146101a7575b600080fd5b61013361012e366004610ee3565b61030f565b60405190151581526020015b60405180910390f35b60025461016d90610100900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161013f565b6101a56101a0366004610f4e565b6103a8565b005b6101cb6101b5366004610feb565b6000908152600160208190526040909120015490565b60405190815260200161013f565b6101a56101e7366004611004565b61051d565b6101a56101fa366004611004565b610549565b6101a56105a7565b60035461016d9073ffffffffffffffffffffffffffffffffffffffff1681565b60025460ff16610133565b6101a56105dc565b6101cb7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e481565b61013361026f366004611004565b600091825260016020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b6101cb600081565b6101a56102bd366004610f4e565b61060e565b6101a56102d0366004611004565b610769565b6101a56102e3366004611030565b61078f565b6101cb7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806103a257507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6103b061085c565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e46103da8161089f565b6103e26108a9565b60025461040e9073ffffffffffffffffffffffffffffffffffffffff88811691610100900416866108e8565b6002546040517f5131ab5900000000000000000000000000000000000000000000000000000000815261010090910473ffffffffffffffffffffffffffffffffffffffff1690635131ab599061047090899089908990899089906004016110b6565b600060405180830381600087803b15801561048a57600080fd5b505af115801561049e573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e86868660405161050393929190611113565b60405180910390a3506105166001600055565b5050505050565b600082815260016020819052604090912001546105398161089f565b6105438383610975565b50505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610598576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105a28282610a40565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6105d18161089f565b6105d9610aff565b50565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6106068161089f565b6105d9610b7c565b61061661085c565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e46106408161089f565b6106486108a9565b6002546106749073ffffffffffffffffffffffffffffffffffffffff88811691610100900416866108e8565b6002546040517fb8969bd400000000000000000000000000000000000000000000000000000000815261010090910473ffffffffffffffffffffffffffffffffffffffff169063b8969bd4906106d690899089908990899089906004016110b6565b600060405180830381600087803b1580156106f057600080fd5b505af1158015610704573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c886868660405161050393929190611113565b600082815260016020819052604090912001546107858161089f565b6105438383610a40565b61079761085c565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e46107c18161089f565b6107c96108a9565b6107ea73ffffffffffffffffffffffffffffffffffffffff851684846108e8565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb8460405161084991815260200190565b60405180910390a3506105a26001600055565b600260005403610898576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b6105d98133610bd7565b60025460ff16156108e6576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526105a2908490610c68565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff16610a3857600083815260016020818152604080842073ffffffffffffffffffffffffffffffffffffffff8716808652925280842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169093179092559051339286917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45060016103a2565b5060006103a2565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff1615610a3857600083815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016103a2565b610b07610cfe565b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b610b846108a9565b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610b523390565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610c64576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602481018390526044015b60405180910390fd5b5050565b6000610c8a73ffffffffffffffffffffffffffffffffffffffff841683610d3a565b90508051600014158015610caf575080806020019051810190610cad9190611136565b155b156105a2576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602401610c5b565b60025460ff166108e6576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060610d4883836000610d4f565b9392505050565b606081471015610d8d576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610c5b565b6000808573ffffffffffffffffffffffffffffffffffffffff168486604051610db69190611158565b60006040518083038185875af1925050503d8060008114610df3576040519150601f19603f3d011682016040523d82523d6000602084013e610df8565b606091505b5091509150610e08868383610e12565b9695505050505050565b606082610e2757610e2282610ea1565b610d48565b8151158015610e4b575073ffffffffffffffffffffffffffffffffffffffff84163b155b15610e9a576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610c5b565b5080610d48565b805115610eb15780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060208284031215610ef557600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610d4857600080fd5b803573ffffffffffffffffffffffffffffffffffffffff81168114610f4957600080fd5b919050565b600080600080600060808688031215610f6657600080fd5b610f6f86610f25565b9450610f7d60208701610f25565b935060408601359250606086013567ffffffffffffffff811115610fa057600080fd5b8601601f81018813610fb157600080fd5b803567ffffffffffffffff811115610fc857600080fd5b886020828401011115610fda57600080fd5b959894975092955050506020019190565b600060208284031215610ffd57600080fd5b5035919050565b6000806040838503121561101757600080fd5b8235915061102760208401610f25565b90509250929050565b60008060006060848603121561104557600080fd5b61104e84610f25565b925061105c60208501610f25565b929592945050506040919091013590565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff8516602082015283604082015260806060820152600061110860808301848661106d565b979650505050505050565b83815260406020820152600061112d60408301848661106d565b95945050505050565b60006020828403121561114857600080fd5b81518015158114610d4857600080fd5b6000825160005b81811015611179576020818601810151858301520161115f565b50600092019182525091905056fea2646970667358221220f228501fb7798406cf58c84b1f7af446926eecd69943c0a6760dfd0c5550e2ff64736f6c634300081a003360c060405260001960045534801561001657600080fd5b5060405161182a38038061182a833981016040819052610035916101fb565b60016000819055805460ff19169055838383836001600160a01b038416158061006557506001600160a01b038316155b8061007757506001600160a01b038216155b156100955760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0384811660805283811660a052600380546001600160a01b0319169184169190911790556100cb60008261012f565b506100f67f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e48361012f565b506101217f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8261012f565b50505050505050505061024f565b60008281526002602090815260408083206001600160a01b038516845290915281205460ff166101d55760008381526002602090815260408083206001600160a01b03861684529091529020805460ff1916600117905561018d3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016101d9565b5060005b92915050565b80516001600160a01b03811681146101f657600080fd5b919050565b6000806000806080858703121561021157600080fd5b61021a856101df565b9350610228602086016101df565b9250610236604086016101df565b9150610244606086016101df565b905092959194509250565b60805160a05161155b6102cf6000396000818161021d0152818161049a015281816105dc015281816106a2015281816107a7015281816108c901528181610a7d01528181610bbf01528181610c850152610ddc0152600081816101d1015281816105a60152818161067301528181610b890152610c56015261155b6000f3fe608060405234801561001057600080fd5b50600436106101775760003560e01c80635c975abb116100d857806385f438c11161008c578063d547741f11610066578063d547741f1461037f578063d5abeb0114610392578063e63ab1e91461039b57600080fd5b806385f438c11461030a57806391d1485414610331578063a217fddf1461037757600080fd5b80636f8b44b0116100bd5780636f8b44b0146102dc578063743e0c9b146102ef5780638456cb591461030257600080fd5b80635c975abb146102be5780635e3e9fef146102c957600080fd5b8063248a9ca31161012f57806336568abe1161011457806336568abe146102835780633f4ba83a146102965780635b1125911461029e57600080fd5b8063248a9ca31461023f5780632f2ff15d1461027057600080fd5b8063106e629011610160578063106e6290146101b9578063116191b6146101cc57806321e093b11461021857600080fd5b806301ffc9a71461017c57806302d5c899146101a4575b600080fd5b61018f61018a36600461128d565b6103c2565b60405190151581526020015b60405180910390f35b6101b76101b23660046112ff565b61045b565b005b6101b76101c7366004611391565b610768565b6101f37f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161019b565b6101f37f000000000000000000000000000000000000000000000000000000000000000081565b61026261024d3660046113c4565b60009081526002602052604090206001015490565b60405190815260200161019b565b6101b761027e3660046113dd565b610985565b6101b76102913660046113dd565b6109b0565b6101b7610a09565b6003546101f39073ffffffffffffffffffffffffffffffffffffffff1681565b60015460ff1661018f565b6101b76102d73660046112ff565b610a3e565b6101b76102ea3660046113c4565b610d31565b6101b76102fd3660046113c4565b610d9f565b6101b7610e49565b6102627f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e481565b61018f61033f3660046113dd565b600091825260026020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b610262600081565b6101b761038d3660046113dd565b610e7b565b61026260045481565b6102627f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061045557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b610463610ea0565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e461048d81610ee3565b610495610eed565b6004547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610503573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105279190611409565b6105319087611422565b1115610569576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1e458bee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201879052604482018490527f00000000000000000000000000000000000000000000000000000000000000001690631e458bee90606401600060405180830381600087803b15801561062057600080fd5b505af1158015610634573d6000803e3d6000fd5b50506040517fb8969bd400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016925063b8969bd491506106d2907f0000000000000000000000000000000000000000000000000000000000000000908a908a908a908a906004016114a5565b600060405180830381600087803b1580156106ec57600080fd5b505af1158015610700573d6000803e3d6000fd5b505050508573ffffffffffffffffffffffffffffffffffffffff167fba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe86868660405161074e93929190611502565b60405180910390a2506107616001600055565b5050505050565b610770610ea0565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e461079a81610ee3565b6107a2610eed565b6004547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610810573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108349190611409565b61083e9085611422565b1115610876576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1e458bee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015260248201859052604482018490527f00000000000000000000000000000000000000000000000000000000000000001690631e458bee90606401600060405180830381600087803b15801561090d57600080fd5b505af1158015610921573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243648460405161096d91815260200190565b60405180910390a2506109806001600055565b505050565b6000828152600260205260409020600101546109a081610ee3565b6109aa8383610f2c565b50505050565b73ffffffffffffffffffffffffffffffffffffffff811633146109ff576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610980828261102c565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610a3381610ee3565b610a3b6110eb565b50565b610a46610ea0565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e4610a7081610ee3565b610a78610eed565b6004547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0a9190611409565b610b149087611422565b1115610b4c576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1e458bee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201879052604482018490527f00000000000000000000000000000000000000000000000000000000000000001690631e458bee90606401600060405180830381600087803b158015610c0357600080fd5b505af1158015610c17573d6000803e3d6000fd5b50506040517f5131ab5900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169250635131ab599150610cb5907f0000000000000000000000000000000000000000000000000000000000000000908a908a908a908a906004016114a5565b600060405180830381600087803b158015610ccf57600080fd5b505af1158015610ce3573d6000803e3d6000fd5b505050508573ffffffffffffffffffffffffffffffffffffffff167f7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced86868660405161074e93929190611502565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e4610d5b81610ee3565b610d63610eed565b60048290556040518281527f7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c9060200160405180910390a15050565b610da7610eed565b6040517f79cc6790000000000000000000000000000000000000000000000000000000008152336004820152602481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906379cc679090604401600060405180830381600087803b158015610e3557600080fd5b505af1158015610761573d6000803e3d6000fd5b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610e7381610ee3565b610a3b611168565b600082815260026020526040902060010154610e9681610ee3565b6109aa838361102c565b600260005403610edc576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b610a3b81336111c1565b60015460ff1615610f2a576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600082815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff1661102457600083815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610fc23390565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610455565b506000610455565b600082815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff161561102457600083815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610455565b6110f3611251565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b611170610eed565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2583361113e565b600082815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1661124d576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526024810183905260440160405180910390fd5b5050565b60015460ff16610f2a576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006020828403121561129f57600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146112cf57600080fd5b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146112fa57600080fd5b919050565b60008060008060006080868803121561131757600080fd5b611320866112d6565b945060208601359350604086013567ffffffffffffffff81111561134357600080fd5b8601601f8101881361135457600080fd5b803567ffffffffffffffff81111561136b57600080fd5b88602082840101111561137d57600080fd5b959894975060200195606001359392505050565b6000806000606084860312156113a657600080fd5b6113af846112d6565b95602085013595506040909401359392505050565b6000602082840312156113d657600080fd5b5035919050565b600080604083850312156113f057600080fd5b82359150611400602084016112d6565b90509250929050565b60006020828403121561141b57600080fd5b5051919050565b80820180821115610455577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff851660208201528360408201526080606082015260006114f760808301848661145c565b979650505050505050565b83815260406020820152600061151c60408301848661145c565b9594505050505056fea2646970667358221220c864e28878a70f2d629a9a8bcc8540adbc24308f0bdca4bb9f799c9b08a4b8fc64736f6c634300081a00336080604052348015600f57600080fd5b506001600055610d3a806100246000396000f3fe6080604052600436106100635760003560e01c8063c513169111610040578063c5131691146100c1578063e04d4f97146100e1578063f05b6abf146100f457005b8063357fc5a21461006c5780636ed701691461008c5780638fcaa0b5146100a157005b3661006a57005b005b34801561007857600080fd5b5061006a6100873660046106c0565b610114565b34801561009857600080fd5b5061006a6101aa565b3480156100ad57600080fd5b5061006a6100bc3660046106fc565b6101df565b3480156100cd57600080fd5b5061006a6100dc3660046106c0565b61021e565b61006a6100ef366004610895565b6102f9565b34801561010057600080fd5b5061006a61010f366004610981565b61033d565b61011c610372565b61013e73ffffffffffffffffffffffffffffffffffffffff83163383866103b5565b604080513381526020810185905273ffffffffffffffffffffffffffffffffffffffff848116828401528316606082015290517f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af609181900360800190a16101a56001600055565b505050565b6040513381527fbcaadb46b82a48af60b608f58959ae6b8310d1b0a0d094c2e9ec3208ed39f2a09060200160405180910390a1565b7f0d3f65f00e631663aa85c96330b5c7a83bb29af3630c0063776f985edc3037aa33838360405161021293929190610a6b565b60405180910390a15050565b610226610372565b6000610233600285610ad5565b90508060000361026f576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61029173ffffffffffffffffffffffffffffffffffffffff84163384846103b5565b604080513381526020810183905273ffffffffffffffffffffffffffffffffffffffff858116828401528416606082015290517f2b58128f24a9f59127cc5b5430d70542b22220f2d9adaa86e442b816ab98af609181900360800190a1506101a56001600055565b7f1f1ff1f5fb41346850b2f5c04e6c767e2f1c8a525c5c0c5cdb60cdf3ca5f62fa3334858585604051610330959493929190610b7e565b60405180910390a1505050565b7f74a53cd528a921fca7dbdee62f86819051d3cc98f214951f4238e8843f20b146338484846040516103309493929190610c08565b6002600054036103ae576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017905261044a908590610450565b50505050565b600061047273ffffffffffffffffffffffffffffffffffffffff8416836104eb565b905080516000141580156104975750808060200190518101906104959190610ccb565b155b156101a5576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024015b60405180910390fd5b60606104f983836000610500565b9392505050565b60608147101561053e576040517fcd7860590000000000000000000000000000000000000000000000000000000081523060048201526024016104e2565b6000808573ffffffffffffffffffffffffffffffffffffffff1684866040516105679190610ce8565b60006040518083038185875af1925050503d80600081146105a4576040519150601f19603f3d011682016040523d82523d6000602084013e6105a9565b606091505b50915091506105b98683836105c3565b9695505050505050565b6060826105d8576105d382610652565b6104f9565b81511580156105fc575073ffffffffffffffffffffffffffffffffffffffff84163b155b1561064b576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016104e2565b50806104f9565b8051156106625780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b803573ffffffffffffffffffffffffffffffffffffffff811681146106bb57600080fd5b919050565b6000806000606084860312156106d557600080fd5b833592506106e560208501610697565b91506106f360408501610697565b90509250925092565b6000806020838503121561070f57600080fd5b823567ffffffffffffffff81111561072657600080fd5b8301601f8101851361073757600080fd5b803567ffffffffffffffff81111561074e57600080fd5b85602082840101111561076057600080fd5b6020919091019590945092505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156107e6576107e6610770565b604052919050565b600082601f8301126107ff57600080fd5b813567ffffffffffffffff81111561081957610819610770565b61084a60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160161079f565b81815284602083860101111561085f57600080fd5b816020850160208301376000918101602001919091529392505050565b801515811461069457600080fd5b80356106bb8161087c565b6000806000606084860312156108aa57600080fd5b833567ffffffffffffffff8111156108c157600080fd5b6108cd868287016107ee565b9350506020840135915060408401356108e58161087c565b809150509250925092565b600067ffffffffffffffff82111561090a5761090a610770565b5060051b60200190565b600082601f83011261092557600080fd5b8135610938610933826108f0565b61079f565b8082825260208201915060208360051b86010192508583111561095a57600080fd5b602085015b8381101561097757803583526020928301920161095f565b5095945050505050565b60008060006060848603121561099657600080fd5b833567ffffffffffffffff8111156109ad57600080fd5b8401601f810186136109be57600080fd5b80356109cc610933826108f0565b8082825260208201915060208360051b8501019250888311156109ee57600080fd5b602084015b83811015610a3057803567ffffffffffffffff811115610a1257600080fd5b610a218b6020838901016107ee565b845250602092830192016109f3565b509550505050602084013567ffffffffffffffff811115610a5057600080fd5b610a5c86828701610914565b9250506106f36040850161088a565b73ffffffffffffffffffffffffffffffffffffffff8416815260406020820152816040820152818360608301376000818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b600082610b0b577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60005b83811015610b2b578181015183820152602001610b13565b50506000910152565b60008151808452610b4c816020860160208601610b10565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b73ffffffffffffffffffffffffffffffffffffffff8616815284602082015260a060408201526000610bb360a0830186610b34565b6060830194909452509015156080909101529392505050565b600081518084526020840193506020830160005b82811015610bfe578151865260209586019590910190600101610be0565b5093949350505050565b60006080820173ffffffffffffffffffffffffffffffffffffffff871683526080602084015280865180835260a08501915060a08160051b86010192506020880160005b82811015610c9b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60878603018452610c86858351610b34565b94506020938401939190910190600101610c4c565b505050508281036040840152610cb18186610bcc565b915050610cc2606083018415159052565b95945050505050565b600060208284031215610cdd57600080fd5b81516104f98161087c565b60008251610cfa818460208701610b10565b919091019291505056fea2646970667358221220556072e1abafc3c4063b8cce832228b4f309b93726aaa6a6dfab20cb880c6d1864736f6c634300081a0033a264697066735822122049bb636b102be587bd8860316de0ccc099b1bf45bf33a7d054bec099acc25c6264736f6c634300081a0033", +} + +// 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) +} + +// WITHDRAWERROLE is a free data retrieval call binding the contract method 0x85f438c1. +// +// Solidity: function WITHDRAWER_ROLE() view returns(bytes32) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestCaller) WITHDRAWERROLE(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _ZetaConnectorNonNativeTest.contract.Call(opts, &out, "WITHDRAWER_ROLE") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// WITHDRAWERROLE is a free data retrieval call binding the contract method 0x85f438c1. +// +// Solidity: function WITHDRAWER_ROLE() view returns(bytes32) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestSession) WITHDRAWERROLE() ([32]byte, error) { + return _ZetaConnectorNonNativeTest.Contract.WITHDRAWERROLE(&_ZetaConnectorNonNativeTest.CallOpts) +} + +// WITHDRAWERROLE is a free data retrieval call binding the contract method 0x85f438c1. +// +// Solidity: function WITHDRAWER_ROLE() view returns(bytes32) +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestCallerSession) WITHDRAWERROLE() ([32]byte, error) { + return _ZetaConnectorNonNativeTest.Contract.WITHDRAWERROLE(&_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) +} + +// TestWithdraw is a paid mutator transaction binding the contract method 0xd509b16c. +// +// Solidity: function testWithdraw() returns() +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestTransactor) TestWithdraw(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaConnectorNonNativeTest.contract.Transact(opts, "testWithdraw") +} + +// TestWithdraw is a paid mutator transaction binding the contract method 0xd509b16c. +// +// Solidity: function testWithdraw() returns() +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestSession) TestWithdraw() (*types.Transaction, error) { + return _ZetaConnectorNonNativeTest.Contract.TestWithdraw(&_ZetaConnectorNonNativeTest.TransactOpts) +} + +// TestWithdraw is a paid mutator transaction binding the contract method 0xd509b16c. +// +// Solidity: function testWithdraw() returns() +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestTransactorSession) TestWithdraw() (*types.Transaction, error) { + return _ZetaConnectorNonNativeTest.Contract.TestWithdraw(&_ZetaConnectorNonNativeTest.TransactOpts) +} + +// TestWithdrawAndCallReceiveERC20 is a paid mutator transaction binding the contract method 0x3cba0107. +// +// Solidity: function testWithdrawAndCallReceiveERC20() returns() +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestTransactor) TestWithdrawAndCallReceiveERC20(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaConnectorNonNativeTest.contract.Transact(opts, "testWithdrawAndCallReceiveERC20") +} + +// TestWithdrawAndCallReceiveERC20 is a paid mutator transaction binding the contract method 0x3cba0107. +// +// Solidity: function testWithdrawAndCallReceiveERC20() returns() +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestSession) TestWithdrawAndCallReceiveERC20() (*types.Transaction, error) { + return _ZetaConnectorNonNativeTest.Contract.TestWithdrawAndCallReceiveERC20(&_ZetaConnectorNonNativeTest.TransactOpts) +} + +// TestWithdrawAndCallReceiveERC20 is a paid mutator transaction binding the contract method 0x3cba0107. +// +// Solidity: function testWithdrawAndCallReceiveERC20() returns() +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestTransactorSession) TestWithdrawAndCallReceiveERC20() (*types.Transaction, error) { + return _ZetaConnectorNonNativeTest.Contract.TestWithdrawAndCallReceiveERC20(&_ZetaConnectorNonNativeTest.TransactOpts) +} + +// TestWithdrawAndCallReceiveERC20FailsIfSenderIsNotWithdrawer is a paid mutator transaction binding the contract method 0xc1909972. +// +// Solidity: function testWithdrawAndCallReceiveERC20FailsIfSenderIsNotWithdrawer() returns() +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestTransactor) TestWithdrawAndCallReceiveERC20FailsIfSenderIsNotWithdrawer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaConnectorNonNativeTest.contract.Transact(opts, "testWithdrawAndCallReceiveERC20FailsIfSenderIsNotWithdrawer") +} + +// TestWithdrawAndCallReceiveERC20FailsIfSenderIsNotWithdrawer is a paid mutator transaction binding the contract method 0xc1909972. +// +// Solidity: function testWithdrawAndCallReceiveERC20FailsIfSenderIsNotWithdrawer() returns() +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestSession) TestWithdrawAndCallReceiveERC20FailsIfSenderIsNotWithdrawer() (*types.Transaction, error) { + return _ZetaConnectorNonNativeTest.Contract.TestWithdrawAndCallReceiveERC20FailsIfSenderIsNotWithdrawer(&_ZetaConnectorNonNativeTest.TransactOpts) +} + +// TestWithdrawAndCallReceiveERC20FailsIfSenderIsNotWithdrawer is a paid mutator transaction binding the contract method 0xc1909972. +// +// Solidity: function testWithdrawAndCallReceiveERC20FailsIfSenderIsNotWithdrawer() returns() +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestTransactorSession) TestWithdrawAndCallReceiveERC20FailsIfSenderIsNotWithdrawer() (*types.Transaction, error) { + return _ZetaConnectorNonNativeTest.Contract.TestWithdrawAndCallReceiveERC20FailsIfSenderIsNotWithdrawer(&_ZetaConnectorNonNativeTest.TransactOpts) +} + +// TestWithdrawAndCallReceiveERC20Partial is a paid mutator transaction binding the contract method 0xdcf7d037. +// +// Solidity: function testWithdrawAndCallReceiveERC20Partial() returns() +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestTransactor) TestWithdrawAndCallReceiveERC20Partial(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaConnectorNonNativeTest.contract.Transact(opts, "testWithdrawAndCallReceiveERC20Partial") +} + +// TestWithdrawAndCallReceiveERC20Partial is a paid mutator transaction binding the contract method 0xdcf7d037. +// +// Solidity: function testWithdrawAndCallReceiveERC20Partial() returns() +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestSession) TestWithdrawAndCallReceiveERC20Partial() (*types.Transaction, error) { + return _ZetaConnectorNonNativeTest.Contract.TestWithdrawAndCallReceiveERC20Partial(&_ZetaConnectorNonNativeTest.TransactOpts) +} + +// TestWithdrawAndCallReceiveERC20Partial is a paid mutator transaction binding the contract method 0xdcf7d037. +// +// Solidity: function testWithdrawAndCallReceiveERC20Partial() returns() +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestTransactorSession) TestWithdrawAndCallReceiveERC20Partial() (*types.Transaction, error) { + return _ZetaConnectorNonNativeTest.Contract.TestWithdrawAndCallReceiveERC20Partial(&_ZetaConnectorNonNativeTest.TransactOpts) +} + +// TestWithdrawAndCallReceiveNoParams is a paid mutator transaction binding the contract method 0x49346558. +// +// Solidity: function testWithdrawAndCallReceiveNoParams() returns() +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestTransactor) TestWithdrawAndCallReceiveNoParams(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaConnectorNonNativeTest.contract.Transact(opts, "testWithdrawAndCallReceiveNoParams") +} + +// TestWithdrawAndCallReceiveNoParams is a paid mutator transaction binding the contract method 0x49346558. +// +// Solidity: function testWithdrawAndCallReceiveNoParams() returns() +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestSession) TestWithdrawAndCallReceiveNoParams() (*types.Transaction, error) { + return _ZetaConnectorNonNativeTest.Contract.TestWithdrawAndCallReceiveNoParams(&_ZetaConnectorNonNativeTest.TransactOpts) +} + +// TestWithdrawAndCallReceiveNoParams is a paid mutator transaction binding the contract method 0x49346558. +// +// Solidity: function testWithdrawAndCallReceiveNoParams() returns() +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestTransactorSession) TestWithdrawAndCallReceiveNoParams() (*types.Transaction, error) { + return _ZetaConnectorNonNativeTest.Contract.TestWithdrawAndCallReceiveNoParams(&_ZetaConnectorNonNativeTest.TransactOpts) +} + +// TestWithdrawAndRevert is a paid mutator transaction binding the contract method 0xde1cb76c. +// +// Solidity: function testWithdrawAndRevert() returns() +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestTransactor) TestWithdrawAndRevert(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaConnectorNonNativeTest.contract.Transact(opts, "testWithdrawAndRevert") +} + +// TestWithdrawAndRevert is a paid mutator transaction binding the contract method 0xde1cb76c. +// +// Solidity: function testWithdrawAndRevert() returns() +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestSession) TestWithdrawAndRevert() (*types.Transaction, error) { + return _ZetaConnectorNonNativeTest.Contract.TestWithdrawAndRevert(&_ZetaConnectorNonNativeTest.TransactOpts) +} + +// TestWithdrawAndRevert is a paid mutator transaction binding the contract method 0xde1cb76c. +// +// Solidity: function testWithdrawAndRevert() returns() +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestTransactorSession) TestWithdrawAndRevert() (*types.Transaction, error) { + return _ZetaConnectorNonNativeTest.Contract.TestWithdrawAndRevert(&_ZetaConnectorNonNativeTest.TransactOpts) +} + +// TestWithdrawAndRevertFailsIfSenderIsNotWithdrawer is a paid mutator transaction binding the contract method 0x82832014. +// +// Solidity: function testWithdrawAndRevertFailsIfSenderIsNotWithdrawer() returns() +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestTransactor) TestWithdrawAndRevertFailsIfSenderIsNotWithdrawer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaConnectorNonNativeTest.contract.Transact(opts, "testWithdrawAndRevertFailsIfSenderIsNotWithdrawer") +} + +// TestWithdrawAndRevertFailsIfSenderIsNotWithdrawer is a paid mutator transaction binding the contract method 0x82832014. +// +// Solidity: function testWithdrawAndRevertFailsIfSenderIsNotWithdrawer() returns() +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestSession) TestWithdrawAndRevertFailsIfSenderIsNotWithdrawer() (*types.Transaction, error) { + return _ZetaConnectorNonNativeTest.Contract.TestWithdrawAndRevertFailsIfSenderIsNotWithdrawer(&_ZetaConnectorNonNativeTest.TransactOpts) +} + +// TestWithdrawAndRevertFailsIfSenderIsNotWithdrawer is a paid mutator transaction binding the contract method 0x82832014. +// +// Solidity: function testWithdrawAndRevertFailsIfSenderIsNotWithdrawer() returns() +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestTransactorSession) TestWithdrawAndRevertFailsIfSenderIsNotWithdrawer() (*types.Transaction, error) { + return _ZetaConnectorNonNativeTest.Contract.TestWithdrawAndRevertFailsIfSenderIsNotWithdrawer(&_ZetaConnectorNonNativeTest.TransactOpts) +} + +// TestWithdrawFailsIfSenderIsNotWithdrawer is a paid mutator transaction binding the contract method 0xfe574f84. +// +// Solidity: function testWithdrawFailsIfSenderIsNotWithdrawer() returns() +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestTransactor) TestWithdrawFailsIfSenderIsNotWithdrawer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZetaConnectorNonNativeTest.contract.Transact(opts, "testWithdrawFailsIfSenderIsNotWithdrawer") +} + +// TestWithdrawFailsIfSenderIsNotWithdrawer is a paid mutator transaction binding the contract method 0xfe574f84. +// +// Solidity: function testWithdrawFailsIfSenderIsNotWithdrawer() returns() +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestSession) TestWithdrawFailsIfSenderIsNotWithdrawer() (*types.Transaction, error) { + return _ZetaConnectorNonNativeTest.Contract.TestWithdrawFailsIfSenderIsNotWithdrawer(&_ZetaConnectorNonNativeTest.TransactOpts) +} + +// TestWithdrawFailsIfSenderIsNotWithdrawer is a paid mutator transaction binding the contract method 0xfe574f84. +// +// Solidity: function testWithdrawFailsIfSenderIsNotWithdrawer() returns() +func (_ZetaConnectorNonNativeTest *ZetaConnectorNonNativeTestTransactorSession) TestWithdrawFailsIfSenderIsNotWithdrawer() (*types.Transaction, error) { + return _ZetaConnectorNonNativeTest.Contract.TestWithdrawFailsIfSenderIsNotWithdrawer(&_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/zrc20.sol/zrc20.go b/v2/pkg/zrc20.sol/zrc20.go new file mode 100644 index 00000000..f0b38baa --- /dev/null +++ b/v2/pkg/zrc20.sol/zrc20.go @@ -0,0 +1,1831 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package zrc20 + +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 +) + +// ZRC20MetaData contains all meta data concerning the ZRC20 contract. +var ZRC20MetaData = &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: "0x60c060405234801561001057600080fd5b506040516119e83803806119e883398101604081905261002f916101db565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461006357604051632b2add3d60e01b815260040160405180910390fd5b600761006f898261032d565b50600861007c888261032d565b506009805460ff191660ff881617905560808590528360028111156100a3576100a36103eb565b60a08160028111156100b7576100b76103eb565b905250600292909255600080546001600160a01b039283166001600160a01b03199182161790915560018054929093169116179055506104019350505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261011e57600080fd5b81516001600160401b03811115610137576101376100f7565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610165576101656100f7565b60405281815283820160200185101561017d57600080fd5b60005b8281101561019c57602081860181015183830182015201610180565b506000918101602001919091529392505050565b8051600381106101bf57600080fd5b919050565b80516001600160a01b03811681146101bf57600080fd5b600080600080600080600080610100898b0312156101f857600080fd5b88516001600160401b0381111561020e57600080fd5b61021a8b828c0161010d565b60208b015190995090506001600160401b0381111561023857600080fd5b6102448b828c0161010d565b975050604089015160ff8116811461025b57600080fd5b60608a0151909650945061027160808a016101b0565b60a08a0151909450925061028760c08a016101c4565b915061029560e08a016101c4565b90509295985092959890939650565b600181811c908216806102b857607f821691505b6020821081036102d857634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561032857806000526020600020601f840160051c810160208510156103055750805b601f840160051c820191505b818110156103255760008155600101610311565b50505b505050565b81516001600160401b03811115610346576103466100f7565b61035a8161035484546102a4565b846102de565b6020601f82116001811461038e57600083156103765750848201515b600019600385901b1c1916600184901b178455610325565b600084815260208120601f198516915b828110156103be578785015182556020948501946001909201910161039e565b50848210156103dc5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b600052602160045260246000fd5b60805160a0516115b461043460003960006102f30152600081816102c4015281816109430152610a4901526115b46000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c806385e1f4d0116100e3578063d9eeebed1161008c578063eddeb12311610066578063eddeb123146103f7578063f2441b321461040a578063f687d12a1461042a57600080fd5b8063d9eeebed1461035d578063dd62ed3e14610391578063e2f535b8146103d757600080fd5b8063a9059cbb116100bd578063a9059cbb14610322578063c701262614610335578063c835d7cc1461034857600080fd5b806385e1f4d0146102bf57806395d89b41146102e6578063a3413d03146102ee57600080fd5b8063313ce5671161014557806347e7ef241161011f57806347e7ef241461026d5780634d8943bb1461028057806370a082311461028957600080fd5b8063313ce567146102055780633ce4a5bc1461021a57806342966c681461025a57600080fd5b8063095ea7b311610176578063095ea7b3146101c757806318160ddd146101ea57806323b872dd146101f257600080fd5b806306fdde0314610192578063091d2788146101b0575b600080fd5b61019a61043d565b6040516101a79190611193565b60405180910390f35b6101b960025481565b6040519081526020016101a7565b6101da6101d53660046111d2565b6104cf565b60405190151581526020016101a7565b6006546101b9565b6101da6102003660046111fe565b6104e6565b60095460405160ff90911681526020016101a7565b61023573735b14bb79463307aacbed86daf3322b1e6226ab81565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a7565b6101da61026836600461123f565b61057d565b6101da61027b3660046111d2565b610591565b6101b960035481565b6101b9610297366004611258565b73ffffffffffffffffffffffffffffffffffffffff1660009081526004602052604090205490565b6101b97f000000000000000000000000000000000000000000000000000000000000000081565b61019a6106e5565b6103157f000000000000000000000000000000000000000000000000000000000000000081565b6040516101a79190611275565b6101da6103303660046111d2565b6106f4565b6101da6103433660046112e5565b610701565b61035b610356366004611258565b610850565b005b610365610917565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526020830191909152016101a7565b6101b961039f3660046113dd565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020908152604080832093909416825291909152205490565b6001546102359073ffffffffffffffffffffffffffffffffffffffff1681565b61035b61040536600461123f565b610b35565b6000546102359073ffffffffffffffffffffffffffffffffffffffff1681565b61035b61043836600461123f565b610bb7565b60606007805461044c90611416565b80601f016020809104026020016040519081016040528092919081815260200182805461047890611416565b80156104c55780601f1061049a576101008083540402835291602001916104c5565b820191906000526020600020905b8154815290600101906020018083116104a857829003601f168201915b5050505050905090565b60006104dc338484610c39565b5060015b92915050565b60006104f3848484610d42565b73ffffffffffffffffffffffffffffffffffffffff841660009081526005602090815260408083203384529091529020548281101561055e576040517f10bad14700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610572853361056d8685611498565b610c39565b506001949350505050565b60006105893383610efd565b506001919050565b60003373735b14bb79463307aacbed86daf3322b1e6226ab148015906105cf575060005473ffffffffffffffffffffffffffffffffffffffff163314155b80156105f3575060015473ffffffffffffffffffffffffffffffffffffffff163314155b1561062a576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610634838361103f565b6040517f735b14bb79463307aacbed86daf3322b1e6226ab000000000000000000000000602082015273ffffffffffffffffffffffffffffffffffffffff8416907f67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab390603401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526106d49186906114ab565b60405180910390a250600192915050565b60606008805461044c90611416565b60006104dc338484610d42565b600080600061070e610917565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273735b14bb79463307aacbed86daf3322b1e6226ab602482015260448101829052919350915073ffffffffffffffffffffffffffffffffffffffff8316906323b872dd906064016020604051808303816000875af11580156107a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c491906114cd565b6107fa576040517f0a7cd6d600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108043385610efd565b60035460405133917f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d9559161083d918991899187916114ef565b60405180910390a2506001949350505050565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461089d576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae906020015b60405180910390a150565b600080546040517f0be155470000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000060048201528291829173ffffffffffffffffffffffffffffffffffffffff90911690630be1554790602401602060405180830381865afa1580156109aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ce919061151e565b905073ffffffffffffffffffffffffffffffffffffffff8116610a1d576040517f78fff39600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080546040517fd7fd7afb0000000000000000000000000000000000000000000000000000000081527f0000000000000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff9091169063d7fd7afb90602401602060405180830381865afa158015610aac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad0919061153b565b905080600003610b0c576040517fe661aed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060035460025483610b1f9190611554565b610b29919061156b565b92959294509192505050565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610b82576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60038190556040518181527fef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f9060200161090c565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610c04576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028190556040518181527fff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a9060200161090c565b73ffffffffffffffffffffffffffffffffffffffff8316610c86576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610cd3576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316610d8f576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610ddc576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff831660009081526004602052604090205481811015610e3c576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e468282611498565b73ffffffffffffffffffffffffffffffffffffffff8086166000908152600460205260408082209390935590851681529081208054849290610e8990849061156b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610eef91815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff8216610f4a576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081526004602052604090205481811015610faa576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fb48282611498565b73ffffffffffffffffffffffffffffffffffffffff841660009081526004602052604081209190915560068054849290610fef908490611498565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610d35565b73ffffffffffffffffffffffffffffffffffffffff821661108c576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806006600082825461109e919061156b565b909155505073ffffffffffffffffffffffffffffffffffffffff8216600090815260046020526040812080548392906110d890849061156b565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6000815180845260005b8181101561115557602081850181015186830182015201611139565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006111a6602083018461112f565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff811681146111cf57600080fd5b50565b600080604083850312156111e557600080fd5b82356111f0816111ad565b946020939093013593505050565b60008060006060848603121561121357600080fd5b833561121e816111ad565b9250602084013561122e816111ad565b929592945050506040919091013590565b60006020828403121561125157600080fd5b5035919050565b60006020828403121561126a57600080fd5b81356111a6816111ad565b60208101600383106112b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156112f857600080fd5b823567ffffffffffffffff81111561130f57600080fd5b8301601f8101851361132057600080fd5b803567ffffffffffffffff81111561133a5761133a6112b6565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff821117156113a6576113a66112b6565b6040528181528282016020018710156113be57600080fd5b8160208401602083013760006020928201830152969401359450505050565b600080604083850312156113f057600080fd5b82356113fb816111ad565b9150602083013561140b816111ad565b809150509250929050565b600181811c9082168061142a57607f821691505b602082108103611463577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156104e0576104e0611469565b6040815260006114be604083018561112f565b90508260208301529392505050565b6000602082840312156114df57600080fd5b815180151581146111a657600080fd5b608081526000611502608083018761112f565b6020830195909552506040810192909252606090910152919050565b60006020828403121561153057600080fd5b81516111a6816111ad565b60006020828403121561154d57600080fd5b5051919050565b80820281158282048414176104e0576104e0611469565b808201808211156104e0576104e061146956fea264697066735822122062e8c81bc642fb8e9a1eaabde5abdece7e58510051b4aa2bee706dc57435041764736f6c634300081a0033", +} + +// ZRC20ABI is the input ABI used to generate the binding from. +// Deprecated: Use ZRC20MetaData.ABI instead. +var ZRC20ABI = ZRC20MetaData.ABI + +// ZRC20Bin is the compiled bytecode used for deploying new contracts. +// Deprecated: Use ZRC20MetaData.Bin instead. +var ZRC20Bin = ZRC20MetaData.Bin + +// DeployZRC20 deploys a new Ethereum contract, binding an instance of ZRC20 to it. +func DeployZRC20(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, *ZRC20, error) { + parsed, err := ZRC20MetaData.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(ZRC20Bin), backend, name_, symbol_, decimals_, chainid_, coinType_, gasLimit_, systemContractAddress_, gatewayContractAddress_) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &ZRC20{ZRC20Caller: ZRC20Caller{contract: contract}, ZRC20Transactor: ZRC20Transactor{contract: contract}, ZRC20Filterer: ZRC20Filterer{contract: contract}}, nil +} + +// ZRC20 is an auto generated Go binding around an Ethereum contract. +type ZRC20 struct { + ZRC20Caller // Read-only binding to the contract + ZRC20Transactor // Write-only binding to the contract + ZRC20Filterer // Log filterer for contract events +} + +// ZRC20Caller is an auto generated read-only Go binding around an Ethereum contract. +type ZRC20Caller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZRC20Transactor is an auto generated write-only Go binding around an Ethereum contract. +type ZRC20Transactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZRC20Filterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ZRC20Filterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ZRC20Session is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ZRC20Session struct { + Contract *ZRC20 // 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 +} + +// ZRC20CallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ZRC20CallerSession struct { + Contract *ZRC20Caller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ZRC20TransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ZRC20TransactorSession struct { + Contract *ZRC20Transactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ZRC20Raw is an auto generated low-level Go binding around an Ethereum contract. +type ZRC20Raw struct { + Contract *ZRC20 // Generic contract binding to access the raw methods on +} + +// ZRC20CallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ZRC20CallerRaw struct { + Contract *ZRC20Caller // Generic read-only contract binding to access the raw methods on +} + +// ZRC20TransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ZRC20TransactorRaw struct { + Contract *ZRC20Transactor // Generic write-only contract binding to access the raw methods on +} + +// NewZRC20 creates a new instance of ZRC20, bound to a specific deployed contract. +func NewZRC20(address common.Address, backend bind.ContractBackend) (*ZRC20, error) { + contract, err := bindZRC20(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ZRC20{ZRC20Caller: ZRC20Caller{contract: contract}, ZRC20Transactor: ZRC20Transactor{contract: contract}, ZRC20Filterer: ZRC20Filterer{contract: contract}}, nil +} + +// NewZRC20Caller creates a new read-only instance of ZRC20, bound to a specific deployed contract. +func NewZRC20Caller(address common.Address, caller bind.ContractCaller) (*ZRC20Caller, error) { + contract, err := bindZRC20(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ZRC20Caller{contract: contract}, nil +} + +// NewZRC20Transactor creates a new write-only instance of ZRC20, bound to a specific deployed contract. +func NewZRC20Transactor(address common.Address, transactor bind.ContractTransactor) (*ZRC20Transactor, error) { + contract, err := bindZRC20(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ZRC20Transactor{contract: contract}, nil +} + +// NewZRC20Filterer creates a new log filterer instance of ZRC20, bound to a specific deployed contract. +func NewZRC20Filterer(address common.Address, filterer bind.ContractFilterer) (*ZRC20Filterer, error) { + contract, err := bindZRC20(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ZRC20Filterer{contract: contract}, nil +} + +// bindZRC20 binds a generic wrapper to an already deployed contract. +func bindZRC20(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := ZRC20MetaData.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 (_ZRC20 *ZRC20Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ZRC20.Contract.ZRC20Caller.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 (_ZRC20 *ZRC20Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZRC20.Contract.ZRC20Transactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ZRC20 *ZRC20Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ZRC20.Contract.ZRC20Transactor.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 (_ZRC20 *ZRC20CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ZRC20.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 (_ZRC20 *ZRC20TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ZRC20.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ZRC20 *ZRC20TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ZRC20.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 (_ZRC20 *ZRC20Caller) CHAINID(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _ZRC20.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 (_ZRC20 *ZRC20Session) CHAINID() (*big.Int, error) { + return _ZRC20.Contract.CHAINID(&_ZRC20.CallOpts) +} + +// CHAINID is a free data retrieval call binding the contract method 0x85e1f4d0. +// +// Solidity: function CHAIN_ID() view returns(uint256) +func (_ZRC20 *ZRC20CallerSession) CHAINID() (*big.Int, error) { + return _ZRC20.Contract.CHAINID(&_ZRC20.CallOpts) +} + +// COINTYPE is a free data retrieval call binding the contract method 0xa3413d03. +// +// Solidity: function COIN_TYPE() view returns(uint8) +func (_ZRC20 *ZRC20Caller) COINTYPE(opts *bind.CallOpts) (uint8, error) { + var out []interface{} + err := _ZRC20.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 (_ZRC20 *ZRC20Session) COINTYPE() (uint8, error) { + return _ZRC20.Contract.COINTYPE(&_ZRC20.CallOpts) +} + +// COINTYPE is a free data retrieval call binding the contract method 0xa3413d03. +// +// Solidity: function COIN_TYPE() view returns(uint8) +func (_ZRC20 *ZRC20CallerSession) COINTYPE() (uint8, error) { + return _ZRC20.Contract.COINTYPE(&_ZRC20.CallOpts) +} + +// FUNGIBLEMODULEADDRESS is a free data retrieval call binding the contract method 0x3ce4a5bc. +// +// Solidity: function FUNGIBLE_MODULE_ADDRESS() view returns(address) +func (_ZRC20 *ZRC20Caller) FUNGIBLEMODULEADDRESS(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ZRC20.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 (_ZRC20 *ZRC20Session) FUNGIBLEMODULEADDRESS() (common.Address, error) { + return _ZRC20.Contract.FUNGIBLEMODULEADDRESS(&_ZRC20.CallOpts) +} + +// FUNGIBLEMODULEADDRESS is a free data retrieval call binding the contract method 0x3ce4a5bc. +// +// Solidity: function FUNGIBLE_MODULE_ADDRESS() view returns(address) +func (_ZRC20 *ZRC20CallerSession) FUNGIBLEMODULEADDRESS() (common.Address, error) { + return _ZRC20.Contract.FUNGIBLEMODULEADDRESS(&_ZRC20.CallOpts) +} + +// GASLIMIT is a free data retrieval call binding the contract method 0x091d2788. +// +// Solidity: function GAS_LIMIT() view returns(uint256) +func (_ZRC20 *ZRC20Caller) GASLIMIT(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _ZRC20.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 (_ZRC20 *ZRC20Session) GASLIMIT() (*big.Int, error) { + return _ZRC20.Contract.GASLIMIT(&_ZRC20.CallOpts) +} + +// GASLIMIT is a free data retrieval call binding the contract method 0x091d2788. +// +// Solidity: function GAS_LIMIT() view returns(uint256) +func (_ZRC20 *ZRC20CallerSession) GASLIMIT() (*big.Int, error) { + return _ZRC20.Contract.GASLIMIT(&_ZRC20.CallOpts) +} + +// GATEWAYCONTRACTADDRESS is a free data retrieval call binding the contract method 0xe2f535b8. +// +// Solidity: function GATEWAY_CONTRACT_ADDRESS() view returns(address) +func (_ZRC20 *ZRC20Caller) GATEWAYCONTRACTADDRESS(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ZRC20.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 (_ZRC20 *ZRC20Session) GATEWAYCONTRACTADDRESS() (common.Address, error) { + return _ZRC20.Contract.GATEWAYCONTRACTADDRESS(&_ZRC20.CallOpts) +} + +// GATEWAYCONTRACTADDRESS is a free data retrieval call binding the contract method 0xe2f535b8. +// +// Solidity: function GATEWAY_CONTRACT_ADDRESS() view returns(address) +func (_ZRC20 *ZRC20CallerSession) GATEWAYCONTRACTADDRESS() (common.Address, error) { + return _ZRC20.Contract.GATEWAYCONTRACTADDRESS(&_ZRC20.CallOpts) +} + +// PROTOCOLFLATFEE is a free data retrieval call binding the contract method 0x4d8943bb. +// +// Solidity: function PROTOCOL_FLAT_FEE() view returns(uint256) +func (_ZRC20 *ZRC20Caller) PROTOCOLFLATFEE(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _ZRC20.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 (_ZRC20 *ZRC20Session) PROTOCOLFLATFEE() (*big.Int, error) { + return _ZRC20.Contract.PROTOCOLFLATFEE(&_ZRC20.CallOpts) +} + +// PROTOCOLFLATFEE is a free data retrieval call binding the contract method 0x4d8943bb. +// +// Solidity: function PROTOCOL_FLAT_FEE() view returns(uint256) +func (_ZRC20 *ZRC20CallerSession) PROTOCOLFLATFEE() (*big.Int, error) { + return _ZRC20.Contract.PROTOCOLFLATFEE(&_ZRC20.CallOpts) +} + +// SYSTEMCONTRACTADDRESS is a free data retrieval call binding the contract method 0xf2441b32. +// +// Solidity: function SYSTEM_CONTRACT_ADDRESS() view returns(address) +func (_ZRC20 *ZRC20Caller) SYSTEMCONTRACTADDRESS(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ZRC20.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 (_ZRC20 *ZRC20Session) SYSTEMCONTRACTADDRESS() (common.Address, error) { + return _ZRC20.Contract.SYSTEMCONTRACTADDRESS(&_ZRC20.CallOpts) +} + +// SYSTEMCONTRACTADDRESS is a free data retrieval call binding the contract method 0xf2441b32. +// +// Solidity: function SYSTEM_CONTRACT_ADDRESS() view returns(address) +func (_ZRC20 *ZRC20CallerSession) SYSTEMCONTRACTADDRESS() (common.Address, error) { + return _ZRC20.Contract.SYSTEMCONTRACTADDRESS(&_ZRC20.CallOpts) +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(address owner, address spender) view returns(uint256) +func (_ZRC20 *ZRC20Caller) Allowance(opts *bind.CallOpts, owner common.Address, spender common.Address) (*big.Int, error) { + var out []interface{} + err := _ZRC20.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 (_ZRC20 *ZRC20Session) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { + return _ZRC20.Contract.Allowance(&_ZRC20.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 (_ZRC20 *ZRC20CallerSession) Allowance(owner common.Address, spender common.Address) (*big.Int, error) { + return _ZRC20.Contract.Allowance(&_ZRC20.CallOpts, owner, spender) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_ZRC20 *ZRC20Caller) BalanceOf(opts *bind.CallOpts, account common.Address) (*big.Int, error) { + var out []interface{} + err := _ZRC20.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 (_ZRC20 *ZRC20Session) BalanceOf(account common.Address) (*big.Int, error) { + return _ZRC20.Contract.BalanceOf(&_ZRC20.CallOpts, account) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(address account) view returns(uint256) +func (_ZRC20 *ZRC20CallerSession) BalanceOf(account common.Address) (*big.Int, error) { + return _ZRC20.Contract.BalanceOf(&_ZRC20.CallOpts, account) +} + +// Decimals is a free data retrieval call binding the contract method 0x313ce567. +// +// Solidity: function decimals() view returns(uint8) +func (_ZRC20 *ZRC20Caller) Decimals(opts *bind.CallOpts) (uint8, error) { + var out []interface{} + err := _ZRC20.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 (_ZRC20 *ZRC20Session) Decimals() (uint8, error) { + return _ZRC20.Contract.Decimals(&_ZRC20.CallOpts) +} + +// Decimals is a free data retrieval call binding the contract method 0x313ce567. +// +// Solidity: function decimals() view returns(uint8) +func (_ZRC20 *ZRC20CallerSession) Decimals() (uint8, error) { + return _ZRC20.Contract.Decimals(&_ZRC20.CallOpts) +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string) +func (_ZRC20 *ZRC20Caller) Name(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _ZRC20.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 (_ZRC20 *ZRC20Session) Name() (string, error) { + return _ZRC20.Contract.Name(&_ZRC20.CallOpts) +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() view returns(string) +func (_ZRC20 *ZRC20CallerSession) Name() (string, error) { + return _ZRC20.Contract.Name(&_ZRC20.CallOpts) +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string) +func (_ZRC20 *ZRC20Caller) Symbol(opts *bind.CallOpts) (string, error) { + var out []interface{} + err := _ZRC20.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 (_ZRC20 *ZRC20Session) Symbol() (string, error) { + return _ZRC20.Contract.Symbol(&_ZRC20.CallOpts) +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() view returns(string) +func (_ZRC20 *ZRC20CallerSession) Symbol() (string, error) { + return _ZRC20.Contract.Symbol(&_ZRC20.CallOpts) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_ZRC20 *ZRC20Caller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _ZRC20.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 (_ZRC20 *ZRC20Session) TotalSupply() (*big.Int, error) { + return _ZRC20.Contract.TotalSupply(&_ZRC20.CallOpts) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() view returns(uint256) +func (_ZRC20 *ZRC20CallerSession) TotalSupply() (*big.Int, error) { + return _ZRC20.Contract.TotalSupply(&_ZRC20.CallOpts) +} + +// WithdrawGasFee is a free data retrieval call binding the contract method 0xd9eeebed. +// +// Solidity: function withdrawGasFee() view returns(address, uint256) +func (_ZRC20 *ZRC20Caller) WithdrawGasFee(opts *bind.CallOpts) (common.Address, *big.Int, error) { + var out []interface{} + err := _ZRC20.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 (_ZRC20 *ZRC20Session) WithdrawGasFee() (common.Address, *big.Int, error) { + return _ZRC20.Contract.WithdrawGasFee(&_ZRC20.CallOpts) +} + +// WithdrawGasFee is a free data retrieval call binding the contract method 0xd9eeebed. +// +// Solidity: function withdrawGasFee() view returns(address, uint256) +func (_ZRC20 *ZRC20CallerSession) WithdrawGasFee() (common.Address, *big.Int, error) { + return _ZRC20.Contract.WithdrawGasFee(&_ZRC20.CallOpts) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 amount) returns(bool) +func (_ZRC20 *ZRC20Transactor) Approve(opts *bind.TransactOpts, spender common.Address, amount *big.Int) (*types.Transaction, error) { + return _ZRC20.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 (_ZRC20 *ZRC20Session) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) { + return _ZRC20.Contract.Approve(&_ZRC20.TransactOpts, spender, amount) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(address spender, uint256 amount) returns(bool) +func (_ZRC20 *ZRC20TransactorSession) Approve(spender common.Address, amount *big.Int) (*types.Transaction, error) { + return _ZRC20.Contract.Approve(&_ZRC20.TransactOpts, spender, amount) +} + +// Burn is a paid mutator transaction binding the contract method 0x42966c68. +// +// Solidity: function burn(uint256 amount) returns(bool) +func (_ZRC20 *ZRC20Transactor) Burn(opts *bind.TransactOpts, amount *big.Int) (*types.Transaction, error) { + return _ZRC20.contract.Transact(opts, "burn", amount) +} + +// Burn is a paid mutator transaction binding the contract method 0x42966c68. +// +// Solidity: function burn(uint256 amount) returns(bool) +func (_ZRC20 *ZRC20Session) Burn(amount *big.Int) (*types.Transaction, error) { + return _ZRC20.Contract.Burn(&_ZRC20.TransactOpts, amount) +} + +// Burn is a paid mutator transaction binding the contract method 0x42966c68. +// +// Solidity: function burn(uint256 amount) returns(bool) +func (_ZRC20 *ZRC20TransactorSession) Burn(amount *big.Int) (*types.Transaction, error) { + return _ZRC20.Contract.Burn(&_ZRC20.TransactOpts, amount) +} + +// Deposit is a paid mutator transaction binding the contract method 0x47e7ef24. +// +// Solidity: function deposit(address to, uint256 amount) returns(bool) +func (_ZRC20 *ZRC20Transactor) Deposit(opts *bind.TransactOpts, to common.Address, amount *big.Int) (*types.Transaction, error) { + return _ZRC20.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 (_ZRC20 *ZRC20Session) Deposit(to common.Address, amount *big.Int) (*types.Transaction, error) { + return _ZRC20.Contract.Deposit(&_ZRC20.TransactOpts, to, amount) +} + +// Deposit is a paid mutator transaction binding the contract method 0x47e7ef24. +// +// Solidity: function deposit(address to, uint256 amount) returns(bool) +func (_ZRC20 *ZRC20TransactorSession) Deposit(to common.Address, amount *big.Int) (*types.Transaction, error) { + return _ZRC20.Contract.Deposit(&_ZRC20.TransactOpts, to, amount) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address recipient, uint256 amount) returns(bool) +func (_ZRC20 *ZRC20Transactor) Transfer(opts *bind.TransactOpts, recipient common.Address, amount *big.Int) (*types.Transaction, error) { + return _ZRC20.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 (_ZRC20 *ZRC20Session) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) { + return _ZRC20.Contract.Transfer(&_ZRC20.TransactOpts, recipient, amount) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(address recipient, uint256 amount) returns(bool) +func (_ZRC20 *ZRC20TransactorSession) Transfer(recipient common.Address, amount *big.Int) (*types.Transaction, error) { + return _ZRC20.Contract.Transfer(&_ZRC20.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 (_ZRC20 *ZRC20Transactor) TransferFrom(opts *bind.TransactOpts, sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) { + return _ZRC20.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 (_ZRC20 *ZRC20Session) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) { + return _ZRC20.Contract.TransferFrom(&_ZRC20.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 (_ZRC20 *ZRC20TransactorSession) TransferFrom(sender common.Address, recipient common.Address, amount *big.Int) (*types.Transaction, error) { + return _ZRC20.Contract.TransferFrom(&_ZRC20.TransactOpts, sender, recipient, amount) +} + +// UpdateGasLimit is a paid mutator transaction binding the contract method 0xf687d12a. +// +// Solidity: function updateGasLimit(uint256 gasLimit) returns() +func (_ZRC20 *ZRC20Transactor) UpdateGasLimit(opts *bind.TransactOpts, gasLimit *big.Int) (*types.Transaction, error) { + return _ZRC20.contract.Transact(opts, "updateGasLimit", gasLimit) +} + +// UpdateGasLimit is a paid mutator transaction binding the contract method 0xf687d12a. +// +// Solidity: function updateGasLimit(uint256 gasLimit) returns() +func (_ZRC20 *ZRC20Session) UpdateGasLimit(gasLimit *big.Int) (*types.Transaction, error) { + return _ZRC20.Contract.UpdateGasLimit(&_ZRC20.TransactOpts, gasLimit) +} + +// UpdateGasLimit is a paid mutator transaction binding the contract method 0xf687d12a. +// +// Solidity: function updateGasLimit(uint256 gasLimit) returns() +func (_ZRC20 *ZRC20TransactorSession) UpdateGasLimit(gasLimit *big.Int) (*types.Transaction, error) { + return _ZRC20.Contract.UpdateGasLimit(&_ZRC20.TransactOpts, gasLimit) +} + +// UpdateProtocolFlatFee is a paid mutator transaction binding the contract method 0xeddeb123. +// +// Solidity: function updateProtocolFlatFee(uint256 protocolFlatFee) returns() +func (_ZRC20 *ZRC20Transactor) UpdateProtocolFlatFee(opts *bind.TransactOpts, protocolFlatFee *big.Int) (*types.Transaction, error) { + return _ZRC20.contract.Transact(opts, "updateProtocolFlatFee", protocolFlatFee) +} + +// UpdateProtocolFlatFee is a paid mutator transaction binding the contract method 0xeddeb123. +// +// Solidity: function updateProtocolFlatFee(uint256 protocolFlatFee) returns() +func (_ZRC20 *ZRC20Session) UpdateProtocolFlatFee(protocolFlatFee *big.Int) (*types.Transaction, error) { + return _ZRC20.Contract.UpdateProtocolFlatFee(&_ZRC20.TransactOpts, protocolFlatFee) +} + +// UpdateProtocolFlatFee is a paid mutator transaction binding the contract method 0xeddeb123. +// +// Solidity: function updateProtocolFlatFee(uint256 protocolFlatFee) returns() +func (_ZRC20 *ZRC20TransactorSession) UpdateProtocolFlatFee(protocolFlatFee *big.Int) (*types.Transaction, error) { + return _ZRC20.Contract.UpdateProtocolFlatFee(&_ZRC20.TransactOpts, protocolFlatFee) +} + +// UpdateSystemContractAddress is a paid mutator transaction binding the contract method 0xc835d7cc. +// +// Solidity: function updateSystemContractAddress(address addr) returns() +func (_ZRC20 *ZRC20Transactor) UpdateSystemContractAddress(opts *bind.TransactOpts, addr common.Address) (*types.Transaction, error) { + return _ZRC20.contract.Transact(opts, "updateSystemContractAddress", addr) +} + +// UpdateSystemContractAddress is a paid mutator transaction binding the contract method 0xc835d7cc. +// +// Solidity: function updateSystemContractAddress(address addr) returns() +func (_ZRC20 *ZRC20Session) UpdateSystemContractAddress(addr common.Address) (*types.Transaction, error) { + return _ZRC20.Contract.UpdateSystemContractAddress(&_ZRC20.TransactOpts, addr) +} + +// UpdateSystemContractAddress is a paid mutator transaction binding the contract method 0xc835d7cc. +// +// Solidity: function updateSystemContractAddress(address addr) returns() +func (_ZRC20 *ZRC20TransactorSession) UpdateSystemContractAddress(addr common.Address) (*types.Transaction, error) { + return _ZRC20.Contract.UpdateSystemContractAddress(&_ZRC20.TransactOpts, addr) +} + +// Withdraw is a paid mutator transaction binding the contract method 0xc7012626. +// +// Solidity: function withdraw(bytes to, uint256 amount) returns(bool) +func (_ZRC20 *ZRC20Transactor) Withdraw(opts *bind.TransactOpts, to []byte, amount *big.Int) (*types.Transaction, error) { + return _ZRC20.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 (_ZRC20 *ZRC20Session) Withdraw(to []byte, amount *big.Int) (*types.Transaction, error) { + return _ZRC20.Contract.Withdraw(&_ZRC20.TransactOpts, to, amount) +} + +// Withdraw is a paid mutator transaction binding the contract method 0xc7012626. +// +// Solidity: function withdraw(bytes to, uint256 amount) returns(bool) +func (_ZRC20 *ZRC20TransactorSession) Withdraw(to []byte, amount *big.Int) (*types.Transaction, error) { + return _ZRC20.Contract.Withdraw(&_ZRC20.TransactOpts, to, amount) +} + +// ZRC20ApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the ZRC20 contract. +type ZRC20ApprovalIterator struct { + Event *ZRC20Approval // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZRC20ApprovalIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZRC20Approval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZRC20Approval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZRC20ApprovalIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZRC20ApprovalIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZRC20Approval represents a Approval event raised by the ZRC20 contract. +type ZRC20Approval 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 (_ZRC20 *ZRC20Filterer) FilterApproval(opts *bind.FilterOpts, owner []common.Address, spender []common.Address) (*ZRC20ApprovalIterator, 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 := _ZRC20.contract.FilterLogs(opts, "Approval", ownerRule, spenderRule) + if err != nil { + return nil, err + } + return &ZRC20ApprovalIterator{contract: _ZRC20.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 (_ZRC20 *ZRC20Filterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *ZRC20Approval, 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 := _ZRC20.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(ZRC20Approval) + if err := _ZRC20.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 (_ZRC20 *ZRC20Filterer) ParseApproval(log types.Log) (*ZRC20Approval, error) { + event := new(ZRC20Approval) + if err := _ZRC20.contract.UnpackLog(event, "Approval", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZRC20DepositIterator is returned from FilterDeposit and is used to iterate over the raw logs and unpacked data for Deposit events raised by the ZRC20 contract. +type ZRC20DepositIterator struct { + Event *ZRC20Deposit // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZRC20DepositIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZRC20Deposit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZRC20Deposit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZRC20DepositIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZRC20DepositIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZRC20Deposit represents a Deposit event raised by the ZRC20 contract. +type ZRC20Deposit 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 (_ZRC20 *ZRC20Filterer) FilterDeposit(opts *bind.FilterOpts, to []common.Address) (*ZRC20DepositIterator, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZRC20.contract.FilterLogs(opts, "Deposit", toRule) + if err != nil { + return nil, err + } + return &ZRC20DepositIterator{contract: _ZRC20.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 (_ZRC20 *ZRC20Filterer) WatchDeposit(opts *bind.WatchOpts, sink chan<- *ZRC20Deposit, to []common.Address) (event.Subscription, error) { + + var toRule []interface{} + for _, toItem := range to { + toRule = append(toRule, toItem) + } + + logs, sub, err := _ZRC20.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(ZRC20Deposit) + if err := _ZRC20.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 (_ZRC20 *ZRC20Filterer) ParseDeposit(log types.Log) (*ZRC20Deposit, error) { + event := new(ZRC20Deposit) + if err := _ZRC20.contract.UnpackLog(event, "Deposit", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZRC20TransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the ZRC20 contract. +type ZRC20TransferIterator struct { + Event *ZRC20Transfer // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZRC20TransferIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZRC20Transfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZRC20Transfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZRC20TransferIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZRC20TransferIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZRC20Transfer represents a Transfer event raised by the ZRC20 contract. +type ZRC20Transfer 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 (_ZRC20 *ZRC20Filterer) FilterTransfer(opts *bind.FilterOpts, from []common.Address, to []common.Address) (*ZRC20TransferIterator, 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 := _ZRC20.contract.FilterLogs(opts, "Transfer", fromRule, toRule) + if err != nil { + return nil, err + } + return &ZRC20TransferIterator{contract: _ZRC20.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 (_ZRC20 *ZRC20Filterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *ZRC20Transfer, 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 := _ZRC20.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(ZRC20Transfer) + if err := _ZRC20.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 (_ZRC20 *ZRC20Filterer) ParseTransfer(log types.Log) (*ZRC20Transfer, error) { + event := new(ZRC20Transfer) + if err := _ZRC20.contract.UnpackLog(event, "Transfer", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZRC20UpdatedGasLimitIterator is returned from FilterUpdatedGasLimit and is used to iterate over the raw logs and unpacked data for UpdatedGasLimit events raised by the ZRC20 contract. +type ZRC20UpdatedGasLimitIterator struct { + Event *ZRC20UpdatedGasLimit // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZRC20UpdatedGasLimitIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZRC20UpdatedGasLimit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZRC20UpdatedGasLimit) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZRC20UpdatedGasLimitIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZRC20UpdatedGasLimitIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZRC20UpdatedGasLimit represents a UpdatedGasLimit event raised by the ZRC20 contract. +type ZRC20UpdatedGasLimit 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 (_ZRC20 *ZRC20Filterer) FilterUpdatedGasLimit(opts *bind.FilterOpts) (*ZRC20UpdatedGasLimitIterator, error) { + + logs, sub, err := _ZRC20.contract.FilterLogs(opts, "UpdatedGasLimit") + if err != nil { + return nil, err + } + return &ZRC20UpdatedGasLimitIterator{contract: _ZRC20.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 (_ZRC20 *ZRC20Filterer) WatchUpdatedGasLimit(opts *bind.WatchOpts, sink chan<- *ZRC20UpdatedGasLimit) (event.Subscription, error) { + + logs, sub, err := _ZRC20.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(ZRC20UpdatedGasLimit) + if err := _ZRC20.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 (_ZRC20 *ZRC20Filterer) ParseUpdatedGasLimit(log types.Log) (*ZRC20UpdatedGasLimit, error) { + event := new(ZRC20UpdatedGasLimit) + if err := _ZRC20.contract.UnpackLog(event, "UpdatedGasLimit", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZRC20UpdatedProtocolFlatFeeIterator is returned from FilterUpdatedProtocolFlatFee and is used to iterate over the raw logs and unpacked data for UpdatedProtocolFlatFee events raised by the ZRC20 contract. +type ZRC20UpdatedProtocolFlatFeeIterator struct { + Event *ZRC20UpdatedProtocolFlatFee // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZRC20UpdatedProtocolFlatFeeIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZRC20UpdatedProtocolFlatFee) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZRC20UpdatedProtocolFlatFee) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZRC20UpdatedProtocolFlatFeeIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZRC20UpdatedProtocolFlatFeeIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZRC20UpdatedProtocolFlatFee represents a UpdatedProtocolFlatFee event raised by the ZRC20 contract. +type ZRC20UpdatedProtocolFlatFee 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 (_ZRC20 *ZRC20Filterer) FilterUpdatedProtocolFlatFee(opts *bind.FilterOpts) (*ZRC20UpdatedProtocolFlatFeeIterator, error) { + + logs, sub, err := _ZRC20.contract.FilterLogs(opts, "UpdatedProtocolFlatFee") + if err != nil { + return nil, err + } + return &ZRC20UpdatedProtocolFlatFeeIterator{contract: _ZRC20.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 (_ZRC20 *ZRC20Filterer) WatchUpdatedProtocolFlatFee(opts *bind.WatchOpts, sink chan<- *ZRC20UpdatedProtocolFlatFee) (event.Subscription, error) { + + logs, sub, err := _ZRC20.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(ZRC20UpdatedProtocolFlatFee) + if err := _ZRC20.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 (_ZRC20 *ZRC20Filterer) ParseUpdatedProtocolFlatFee(log types.Log) (*ZRC20UpdatedProtocolFlatFee, error) { + event := new(ZRC20UpdatedProtocolFlatFee) + if err := _ZRC20.contract.UnpackLog(event, "UpdatedProtocolFlatFee", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZRC20UpdatedSystemContractIterator is returned from FilterUpdatedSystemContract and is used to iterate over the raw logs and unpacked data for UpdatedSystemContract events raised by the ZRC20 contract. +type ZRC20UpdatedSystemContractIterator struct { + Event *ZRC20UpdatedSystemContract // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZRC20UpdatedSystemContractIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZRC20UpdatedSystemContract) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZRC20UpdatedSystemContract) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZRC20UpdatedSystemContractIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZRC20UpdatedSystemContractIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZRC20UpdatedSystemContract represents a UpdatedSystemContract event raised by the ZRC20 contract. +type ZRC20UpdatedSystemContract 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 (_ZRC20 *ZRC20Filterer) FilterUpdatedSystemContract(opts *bind.FilterOpts) (*ZRC20UpdatedSystemContractIterator, error) { + + logs, sub, err := _ZRC20.contract.FilterLogs(opts, "UpdatedSystemContract") + if err != nil { + return nil, err + } + return &ZRC20UpdatedSystemContractIterator{contract: _ZRC20.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 (_ZRC20 *ZRC20Filterer) WatchUpdatedSystemContract(opts *bind.WatchOpts, sink chan<- *ZRC20UpdatedSystemContract) (event.Subscription, error) { + + logs, sub, err := _ZRC20.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(ZRC20UpdatedSystemContract) + if err := _ZRC20.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 (_ZRC20 *ZRC20Filterer) ParseUpdatedSystemContract(log types.Log) (*ZRC20UpdatedSystemContract, error) { + event := new(ZRC20UpdatedSystemContract) + if err := _ZRC20.contract.UnpackLog(event, "UpdatedSystemContract", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ZRC20WithdrawalIterator is returned from FilterWithdrawal and is used to iterate over the raw logs and unpacked data for Withdrawal events raised by the ZRC20 contract. +type ZRC20WithdrawalIterator struct { + Event *ZRC20Withdrawal // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ZRC20WithdrawalIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ZRC20Withdrawal) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ZRC20Withdrawal) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ZRC20WithdrawalIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ZRC20WithdrawalIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ZRC20Withdrawal represents a Withdrawal event raised by the ZRC20 contract. +type ZRC20Withdrawal 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 (_ZRC20 *ZRC20Filterer) FilterWithdrawal(opts *bind.FilterOpts, from []common.Address) (*ZRC20WithdrawalIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + + logs, sub, err := _ZRC20.contract.FilterLogs(opts, "Withdrawal", fromRule) + if err != nil { + return nil, err + } + return &ZRC20WithdrawalIterator{contract: _ZRC20.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 (_ZRC20 *ZRC20Filterer) WatchWithdrawal(opts *bind.WatchOpts, sink chan<- *ZRC20Withdrawal, from []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + + logs, sub, err := _ZRC20.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(ZRC20Withdrawal) + if err := _ZRC20.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 (_ZRC20 *ZRC20Filterer) ParseWithdrawal(log types.Log) (*ZRC20Withdrawal, error) { + event := new(ZRC20Withdrawal) + if err := _ZRC20.contract.UnpackLog(event, "Withdrawal", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/pkg/contracts/zevm/zrc20new.sol/zrc20errors.go b/v2/pkg/zrc20.sol/zrc20errors.go similarity index 93% rename from pkg/contracts/zevm/zrc20new.sol/zrc20errors.go rename to v2/pkg/zrc20.sol/zrc20errors.go index 6939b531..5a845463 100644 --- a/pkg/contracts/zevm/zrc20new.sol/zrc20errors.go +++ b/v2/pkg/zrc20.sol/zrc20errors.go @@ -1,7 +1,7 @@ // Code generated - DO NOT EDIT. // This file is a generated binding and any manual changes will be lost. -package zrc20new +package zrc20 import ( "errors" @@ -31,7 +31,7 @@ var ( // ZRC20ErrorsMetaData contains all meta data concerning the ZRC20Errors contract. var ZRC20ErrorsMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"name\":\"CallerIsNotFungibleModule\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GasFeeTransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LowAllowance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LowBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroGasCoin\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroGasPrice\",\"type\":\"error\"}]", + 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. 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 new file mode 100644 index 00000000..85a4fb70 --- /dev/null +++ b/v2/scripts/localnet/EvmCall.s.sol @@ -0,0 +1,36 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.26; + +import "forge-std/Script.sol"; +import "src/evm/GatewayEVM.sol"; +import "test/utils/TestZContract.sol"; + +// EvmCallScript executes call method on GatewayEVM and it should be used on localnet. +// It uses anvil private key, and sets default contract addresses deployed on fresh localnet, that can be overriden with env vars. +contract EvmCallScript is Script { + function run() external { + address payable gatewayEVMAddress = payable(vm.envOr("GATEWAY_EVM", 0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0)); + address payable zContractAddress = payable(vm.envOr("Z_CONTRACT", 0x68B1D87F95878fE05B998F19b66F4baba5De1aed)); + string memory mnemonic = "test test test test test test test test test test test junk"; + uint256 privateKey = vm.deriveKey(mnemonic, 0); + address deployer = vm.rememberKey(privateKey); + + vm.startBroadcast(deployer); + + GatewayEVM gatewayEVM = GatewayEVM(gatewayEVMAddress); + TestZContract zContract = TestZContract(zContractAddress); + + // Encode the message + bytes memory message = abi.encode("hello"); + + // Call the function on GatewayEVM + try gatewayEVM.call(zContractAddress, message) { + console.log("TestZContract called from EVM."); + } catch (bytes memory err) { + console.log("Error calling TestZContract:"); + console.logBytes(err); + } + + vm.stopBroadcast(); + } +} diff --git a/v2/scripts/localnet/EvmDepositAndCall.s.sol b/v2/scripts/localnet/EvmDepositAndCall.s.sol new file mode 100644 index 00000000..e44c3e88 --- /dev/null +++ b/v2/scripts/localnet/EvmDepositAndCall.s.sol @@ -0,0 +1,48 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.26; + +import "forge-std/Script.sol"; +import "src/evm/GatewayEVM.sol"; +import "test/utils/TestZContract.sol"; +import "test/utils/TestERC20.sol"; + +// EvmDepositAndCallScript executes depositAndCall method on GatewayEVM and it should be used on localnet. +// It uses anvil private key, and sets default contract addresses deployed on fresh localnet, that can be overriden with env vars. +contract EvmDepositAndCallScript is Script { + function run() external { + address payable gatewayEVMAddress = payable(vm.envOr("GATEWAY_EVM", 0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0)); + address payable zContractAddress = payable(vm.envOr("Z_CONTRACT", 0x68B1D87F95878fE05B998F19b66F4baba5De1aed)); + address erc20Address = vm.envOr("ERC20", 0x9A676e781A523b5d0C0e43731313A708CB607508); + uint256 amount = vm.envOr("AMOUNT", uint256(1)); + string memory mnemonic = "test test test test test test test test test test test junk"; + uint256 privateKey = vm.deriveKey(mnemonic, 0); + address deployer = vm.rememberKey(privateKey); + + vm.startBroadcast(deployer); + + GatewayEVM gatewayEVM = GatewayEVM(gatewayEVMAddress); + TestZContract zContract = TestZContract(zContractAddress); + TestERC20 erc20 = TestERC20(erc20Address); + + // Approve the ERC20 transfer + erc20.approve(gatewayEVMAddress, amount); + + // Encode the payload + bytes memory payload = abi.encode("hello"); + + // Call the depositAndCall function on GatewayEVM + try gatewayEVM.depositAndCall( + zContractAddress, + amount, + erc20Address, + payload + ) { + console.log("TestZContract called from EVM."); + } catch (bytes memory err) { + console.log("Error calling TestZContract:"); + console.logBytes(err); + } + + vm.stopBroadcast(); + } +} diff --git a/v2/scripts/localnet/ZevmCall.s.sol b/v2/scripts/localnet/ZevmCall.s.sol new file mode 100644 index 00000000..977c4646 --- /dev/null +++ b/v2/scripts/localnet/ZevmCall.s.sol @@ -0,0 +1,46 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.26; + +import "forge-std/Script.sol"; +import "src/zevm/GatewayZEVM.sol"; +import "test/utils/ReceiverEVM.sol"; + +// ZevmCallScript executes call method on GatewayZEVM and it should be used on localnet. +// It uses anvil private key, and sets default contract addresses deployed on fresh localnet, that can be overriden with env vars. +contract ZevmCallScript is Script { + function run() external { + address payable gatewayZEVMAddress = payable(vm.envOr("GATEWAY_ZEVM", 0x610178dA211FEF7D417bC0e6FeD39F05609AD788)); + address payable receiverEVMAddress = payable(vm.envOr("RECEIVER_EVM", 0x0B306BF915C4d645ff596e518fAf3F9669b97016)); + string memory mnemonic = "test test test test test test test test test test test junk"; + uint256 privateKey = vm.deriveKey(mnemonic, 0); + address deployer = vm.rememberKey(privateKey); + + vm.startBroadcast(deployer); + + GatewayZEVM gatewayZEVM = GatewayZEVM(gatewayZEVMAddress); + ReceiverEVM receiverEVM = ReceiverEVM(receiverEVMAddress); + + string memory str = "Hello!"; + uint256 num = 42; + bool flag = true; + uint256 chainId = 1; + + // Encode the function call data + bytes memory message = abi.encodeWithSelector( + receiverEVM.receivePayable.selector, + str, + num, + flag + ); + + // Call the function on GatewayZEVM + try gatewayZEVM.call(abi.encodePacked(address(receiverEVM)), chainId, message) { + console.log("ReceiverEVM called from ZEVM."); + } catch (bytes memory err) { + console.log("Error calling ReceiverEVM:"); + console.logBytes(err); + } + + vm.stopBroadcast(); + } +} \ No newline at end of file diff --git a/v2/scripts/localnet/ZevmWithdrawAndCall.s.sol b/v2/scripts/localnet/ZevmWithdrawAndCall.s.sol new file mode 100644 index 00000000..fed5bf3b --- /dev/null +++ b/v2/scripts/localnet/ZevmWithdrawAndCall.s.sol @@ -0,0 +1,53 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.26; + +import "forge-std/Script.sol"; +import "src/zevm/GatewayZEVM.sol"; +import "test/utils/ReceiverEVM.sol"; +import "test/utils/ZRC20.sol"; + +// ZevmWithdrawAndCallScript executes withdrawAndCall method on GatewayZEVM and it should be used on localnet. +// It uses anvil private key, and sets default contract addresses deployed on fresh localnet, that can be overriden with env vars. +contract ZevmWithdrawAndCallScript is Script { + function run() external { + address payable gatewayZEVMAddress = payable(vm.envOr("GATEWAY_ZEVM", 0x610178dA211FEF7D417bC0e6FeD39F05609AD788)); + address payable receiverEVMAddress = payable(vm.envOr("RECEIVER_EVM", 0x0B306BF915C4d645ff596e518fAf3F9669b97016)); + address zrc20Address = vm.envOr("ZRC20", 0x2ca7d64A7EFE2D62A725E2B35Cf7230D6677FfEe); + uint256 amount = vm.envOr("AMOUNT", uint256(1)); + string memory mnemonic = "test test test test test test test test test test test junk"; + uint256 privateKey = vm.deriveKey(mnemonic, 0); + address deployer = vm.rememberKey(privateKey); + + vm.startBroadcast(deployer); + + GatewayZEVM gatewayZEVM = GatewayZEVM(gatewayZEVMAddress); + ReceiverEVM receiverEVM = ReceiverEVM(receiverEVMAddress); + ZRC20 zrc20 = ZRC20(zrc20Address); + + string memory str = "Hello!"; + uint256 num = 42; + bool flag = true; + + // Encode the function call data + bytes memory message = abi.encodeWithSelector( + receiverEVM.receivePayable.selector, + str, + num, + flag + ); + + try gatewayZEVM.withdrawAndCall( + abi.encodePacked(receiverEVMAddress), + amount, + address(zrc20), + message + ) { + console.log("ReceiverEVM called from ZEVM."); + } catch (bytes memory err) { + console.log("Error calling ReceiverEVM:"); + console.logBytes(err); + } + + vm.stopBroadcast(); + } +} diff --git a/v2_localnet.md b/v2/scripts/localnet/v2_localnet.md similarity index 80% rename from v2_localnet.md rename to v2/scripts/localnet/v2_localnet.md index 4b162346..e473d663 100644 --- a/v2_localnet.md +++ b/v2/scripts/localnet/v2_localnet.md @@ -9,8 +9,6 @@ The new architecture aims to streamline the developer experience for building Un * `GatewayEVM`: Deployed on each connected chain to interact with ZetaChain. * `GatewayZEVM`: Deployed on ZetaChain to interact with connected chains. -V2 contracts source code is currently located in [prototypes](/contracts/prototypes/) - ## Contract Interfaces The interface of the gateway contracts is centered around the deposit, withdraw, and call terminology: @@ -19,7 +17,6 @@ The interface of the gateway contracts is centered around the deposit, withdraw, * Withdraw: Transfer of assets from ZetaChain to a connected chain. * Call: Smart contract call involved in cross-chain transactions. - In consequence, the interface is as follow: * `GatewayEVM`: `deposit`, `depositAndCall`, and `call` * `GatewayZEVM`: `withdraw`, `withdrawAndCall`, and `call` @@ -80,12 +77,12 @@ function call(bytes memory receiver, bytes calldata message) external ## Experimenting with the New Architecture -To experiment with the new architecture, you can deploy a local network using Hardhat and test the gateways using the following commands: +To experiment with the new architecture, you can deploy a local network using Anvil and test the gateways using the following commands: Clone the repository ``` git clone https://github.com/zeta-chain/protocol-contracts.git -cd protocol-contracts +cd v2 ``` Start the local environment network @@ -97,7 +94,7 @@ yarn localnet --hide="NODE" The `localnet` command launches two processes: -- A local Ethereum network (using Hardhat) with the two gateway contracts deployed +- A local Ethereum network (using Anvil) with the two gateway contracts deployed - A background worker that relay messages between the two gateway contracts. It simulates the cross-chain message relaying that would normally happen between live networks with the [observers/signers](https://www.zetachain.com/docs/developers/architecture/observers/) mechanism. This allows to simulate a cross-chain environment on a single local chain. Running the command will deploy the two gateway contracts: @@ -109,7 +106,7 @@ Running the command will deploy the two gateway contracts: The developers can develop application using these addresses, the messages will automatically be relayed by the worker. -The local environment uses Hardhat localnet. Therefore, the default Hardhat localnet accounts can be used to interact with the network. +The local environment uses Anvil localnet. Therefore, the default Anvil localnet accounts can be used to interact with the network. ``` Account #0: 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 (10000 ETH) @@ -126,14 +123,14 @@ Private Key: 0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a The example contracts demonstrate how the V2 interface can be leveraged to build Universal Apps. -* [TestZContract](/contracts/prototypes/zevm/TestZContract.sol): ZetaChain contract (Universal App) that can be called from a connected chains -* [SenderZEVM](/contracts/prototypes/zevm/SenderZEVM.sol): ZetaChain contract calling a smart contract on a connected chains -* [ReceiverEVM](/contracts/prototypes/evm/ReceiverEVM.sol): contract on connected chain that can be called from ZetaChain +* [TestZContract](/test/utils/TestZContract.sol): ZetaChain contract (Universal App) that can be called from a connected chains +* [SenderZEVM](/test/utils/SenderZEVM.sol): ZetaChain contract calling a smart contract on a connected chains +* [ReceiverEVM](/test/utils/evm/ReceiverEVM.sol): contract on connected chain that can be called from ZetaChain The following commands can be used to test interactions between these contracts: ``` -npx hardhat zevm-call --network localhost -npx hardhat zevm-withdraw-and-call --network localhost -npx hardhat evm-call --network localhost -npx hardhat evm-deposit-and-call --network localhost +forge script scripts/localnet/ZevmCall.s.sol --rpc-url 127.0.0.1:8545 --broadcast +forge script scripts/localnet/ZevmWithdrawAndCall.s.sol --rpc-url 127.0.0.1:8545 --broadcast +forge script scripts/localnet/EvmCall.s.sol --rpc-url 127.0.0.1:8545 --broadcast +forge script scripts/localnet/EvmDepositAndCall.s.sol --rpc-url 127.0.0.1:8545 --broadcast ``` \ No newline at end of file diff --git a/v2/scripts/localnet/worker.ts b/v2/scripts/localnet/worker.ts new file mode 100644 index 00000000..ed3f37d3 --- /dev/null +++ b/v2/scripts/localnet/worker.ts @@ -0,0 +1,300 @@ +import { ethers, NonceManager, Signer } from "ethers"; +import * as GatewayEVM from "../../out/GatewayEVM.sol/GatewayEVM.json"; +import * as Custody from "../../out/ERC20Custody.sol/ERC20Custody.json"; +import * as ReceiverEVM from "../../out/ReceiverEVM.sol/ReceiverEVM.json"; +import * as SenderZEVM from "../../out/SenderZEVM.sol/SenderZEVM.json"; +import * as ERC1967Proxy from "../../out/ERC1967Proxy.sol/ERC1967Proxy.json"; +import * as TestERC20 from "../../out/TestERC20.sol/TestERC20.json"; +import * as SystemContract from "../../out/SystemContractMock.sol/SystemContractMock.json"; +import * as GatewayZEVM from "../../out/GatewayZEVM.sol/GatewayZEVM.json"; +import * as TestZContract from "../../out/TestZContract.sol/TestZContract.json"; +import * as ZRC20 from "../../out/ZRC20.sol/ZRC20.json"; +import * as ZetaConnectorNonNative from "../../out/ZetaConnectorNonNative.sol/ZetaConnectorNonNative.json"; +import * as WETH9 from "../../out/WZETA.sol/WETH9.json"; +/* eslint-disable @typescript-eslint/no-explicit-any */ + +const FUNGIBLE_MODULE_ADDRESS = "0x735b14BB79463307AAcBED86DAf3322B1e6226aB"; + +let protocolContracts: any; +let testContracts: any; +let deployer: Signer; +const deployOpts = { + gasPrice: 10000000000, + gasLimit: 6721975, +}; +const provider = new ethers.JsonRpcProvider("http://127.0.0.1:8545"); +provider.pollingInterval = 100; + +const deployProtocolContracts = async (deployer: Signer, fungibleModuleSigner: Signer) => { + // Prepare EVM + // Deploy protocol contracts (gateway and custody) + const testERC20Factory = new ethers.ContractFactory(TestERC20.abi, TestERC20.bytecode, deployer); + const testEVMZeta = await testERC20Factory.deploy("zeta", "ZETA", deployOpts); + + const gatewayEVMFactory = new ethers.ContractFactory(GatewayEVM.abi, GatewayEVM.bytecode, deployer); + const gatewayEVMImpl = await gatewayEVMFactory.deploy(deployOpts); + + const gatewayEVMInterface = new ethers.Interface(GatewayEVM.abi); + const gatewayEVMInitFragment = gatewayEVMInterface.getFunction("initialize"); + const gatewayEVMInitdata = gatewayEVMInterface.encodeFunctionData(gatewayEVMInitFragment as ethers.FunctionFragment, [ + await deployer.getAddress(), + testEVMZeta.target, + await deployer.getAddress(), + ]); + + const proxyEVMFactory = new ethers.ContractFactory(ERC1967Proxy.abi, ERC1967Proxy.bytecode, deployer); + const proxyEVM = (await proxyEVMFactory.deploy(gatewayEVMImpl.target, gatewayEVMInitdata, deployOpts)) as any; + + const gatewayEVM = new ethers.Contract(proxyEVM.target, GatewayEVM.abi, deployer); + console.log("GatewayEVM:", gatewayEVM.target); + + const zetaConnectorFactory = new ethers.ContractFactory( + ZetaConnectorNonNative.abi, + ZetaConnectorNonNative.bytecode, + deployer + ); + const zetaConnector = await zetaConnectorFactory.deploy(gatewayEVM.target, testEVMZeta.target, await deployer.getAddress(), await deployer.getAddress(), deployOpts); + + const custodyFactory = new ethers.ContractFactory(Custody.abi, Custody.bytecode, deployer); + const custody = await custodyFactory.deploy(gatewayEVM.target, await deployer.getAddress(), await deployer.getAddress(), deployOpts); + + await (gatewayEVM as any).connect(deployer).setCustody(custody.target, deployOpts); + await (gatewayEVM as any).connect(deployer).setConnector(zetaConnector.target, deployOpts); + + // Prepare ZEVM + // Deploy protocol contracts (gateway and system) + const weth9Factory = new ethers.ContractFactory(WETH9.abi, WETH9.bytecode, deployer); + const wzeta = await weth9Factory.deploy(deployOpts); + + const systemContractFactory = new ethers.ContractFactory(SystemContract.abi, SystemContract.bytecode, deployer); + const systemContract = await systemContractFactory.deploy( + ethers.ZeroAddress, + ethers.ZeroAddress, + ethers.ZeroAddress, + deployOpts + ); + + const gatewayZEVMFactory = new ethers.ContractFactory(GatewayZEVM.abi, GatewayZEVM.bytecode, deployer); + const gatewayZEVMImpl = await gatewayZEVMFactory.deploy(deployOpts); + + const gatewayZEVMInterface = new ethers.Interface(GatewayZEVM.abi); + const gatewayZEVMInitFragment = gatewayZEVMInterface.getFunction("initialize"); + const gatewayZEVMInitData = gatewayEVMInterface.encodeFunctionData( + gatewayZEVMInitFragment as ethers.FunctionFragment, + [wzeta.target, await deployer.getAddress()] + ); + + const proxyZEVMFactory = new ethers.ContractFactory(ERC1967Proxy.abi, ERC1967Proxy.bytecode, deployer); + const proxyZEVM = (await proxyZEVMFactory.deploy(gatewayZEVMImpl.target, gatewayZEVMInitData, deployOpts)) as any; + + const gatewayZEVM = new ethers.Contract(proxyZEVM.target, GatewayZEVM.abi, deployer); + console.log("GatewayZEVM:", gatewayZEVM.target); + + await (wzeta as any).connect(fungibleModuleSigner).deposit({ ...deployOpts, value: ethers.parseEther("10") }); + await (wzeta as any).connect(fungibleModuleSigner).approve(gatewayZEVM.target, ethers.parseEther("10"), deployOpts); + await (wzeta as any).connect(deployer).deposit({ ...deployOpts, value: ethers.parseEther("10") }); + await (wzeta as any).connect(deployer).approve(gatewayZEVM.target, ethers.parseEther("10"), deployOpts); + + return { + custody, + zetaConnector, + gatewayEVM, + gatewayZEVM, + systemContract, + testEVMZeta, + wzeta, + }; +}; + +const deployTestContracts = async (protocolContracts: any, deployer: Signer, fungibleModuleSigner: Signer) => { + // Prepare EVM + // Deploy test contracts (erc20, receiver) and mint funds to test accounts + const deployOpts = { + gasPrice: 10000000000, + gasLimit: 6721975, + }; + const testERC20Factory = new ethers.ContractFactory(TestERC20.abi, TestERC20.bytecode, deployer); + await testERC20Factory.deploy("zeta", "ZETA", deployOpts); + + const token = await testERC20Factory.deploy("Test Token", "TTK", deployOpts); + + const receiverEVMFactory = new ethers.ContractFactory(ReceiverEVM.abi, ReceiverEVM.bytecode, deployer); + const receiverEVM = await receiverEVMFactory.deploy(deployOpts); + + await (token as any).connect(deployer).mint(await deployer.getAddress(), ethers.parseEther("1000"), deployOpts); + await (token as any) + .connect(deployer) + .transfer(protocolContracts.custody.target, ethers.parseEther("500"), deployOpts); + + // Prepare ZEVM + // Deploy test contracts (test zContract, zrc20, sender) and mint funds to test accounts + const testZContractFactory = new ethers.ContractFactory(TestZContract.abi, TestZContract.bytecode, deployer); + const testZContract = await testZContractFactory.deploy(deployOpts); + + const zrc20Factory = new ethers.ContractFactory(ZRC20.abi, ZRC20.bytecode, deployer); + const zrc20 = await zrc20Factory + .connect(fungibleModuleSigner) + .deploy( + "TOKEN", + "TKN", + 18, + 1, + 1, + 0, + protocolContracts.systemContract.target, + protocolContracts.gatewayZEVM.target, + deployOpts + ); + + await protocolContracts.systemContract.setGasCoinZRC20(1, zrc20.target, deployOpts); + await protocolContracts.systemContract.setGasPrice(1, zrc20.target, deployOpts); + await (zrc20 as any) + .connect(fungibleModuleSigner) + .deposit(await deployer.getAddress(), ethers.parseEther("100"), deployOpts); + await (zrc20 as any) + .connect(deployer) + .approve(protocolContracts.gatewayZEVM.target, ethers.parseEther("100"), deployOpts); + + // Include abi of gatewayZEVM events, so hardhat can decode them automatically + const senderABI = [...SenderZEVM.abi, ...GatewayZEVM.abi.filter((f: any) => f.type === "event")]; + + const senderZEVMFactory = new ethers.ContractFactory(senderABI, SenderZEVM.bytecode, deployer); + const senderZEVM = await senderZEVMFactory.deploy(protocolContracts.gatewayZEVM.target, deployOpts); + await (zrc20 as any).connect(fungibleModuleSigner).deposit(senderZEVM.target, ethers.parseEther("100"), deployOpts); + + return { + zrc20, + receiverEVM, + senderZEVM, + testZContract, + }; +}; + +const startWorker = async () => { + // anvil test mnemonic + const mnemonic = "test test test test test test test test test test test junk"; + + // impersonate and fund fungible module account + await provider.send("anvil_impersonateAccount", [FUNGIBLE_MODULE_ADDRESS]); + await provider.send("anvil_setBalance", [FUNGIBLE_MODULE_ADDRESS, ethers.parseEther("100000").toString()]); + const fungibleModuleSigner = await provider.getSigner(FUNGIBLE_MODULE_ADDRESS); + + deployer = new NonceManager(ethers.Wallet.fromPhrase(mnemonic, provider)); + deployer.connect(provider); + + protocolContracts = await deployProtocolContracts(deployer, fungibleModuleSigner); + testContracts = await deployTestContracts(protocolContracts, deployer, fungibleModuleSigner); + + // Listen to contracts events + // event Call(address indexed sender, uint256 indexed chainId, bytes receiver, bytes message); + protocolContracts.gatewayZEVM.on("Call", async (...args: Array) => { + console.log("Worker: Call event on GatewayZEVM."); + console.log("Worker: Calling ReceiverEVM through GatewayEVM..."); + try { + (deployer as NonceManager).reset(); + + const receiver = args[2]; + const message = args[3]; + + const executeTx = await protocolContracts.gatewayEVM.connect(deployer).execute(receiver, message, deployOpts); + await executeTx.wait(); + } catch (e) { + console.error("failed:", e); + } + }); + + // event Withdrawal(address indexed sender, uint256 indexed chainId, bytes receiver, address zrc20, uint256 value, uint256 gasfee, uint256 protocolFlatFee, bytes message); + protocolContracts.gatewayZEVM.on("Withdrawal", async (...args: Array) => { + console.log("Worker: Withdrawal event on GatewayZEVM."); + console.log("Worker: Calling ReceiverEVM through GatewayEVM..."); + try { + const receiver = args[2]; + const message = args[7]; + (deployer as NonceManager).reset(); + + if (message != "0x") { + const executeTx = await protocolContracts.gatewayEVM.connect(deployer).execute(receiver, message, deployOpts); + await executeTx.wait(); + } + } catch (e) { + console.error("failed:", e); + } + }); + + testContracts.receiverEVM.on("ReceivedPayable", () => { + console.log("ReceiverEVM: receivePayable called!"); + }); + + // event Call(address indexed sender, address indexed receiver, bytes payload); + protocolContracts.gatewayEVM.on("Call", async (...args: Array) => { + console.log("Worker: Call event on GatewayEVM."); + console.log("Worker: Calling TestZContract through GatewayZEVM..."); + try { + const zContract = args[1]; + const payload = args[2]; + (deployer as NonceManager).reset(); + // Encode the parameters + const origin = protocolContracts.gatewayZEVM.target; + const sender = await fungibleModuleSigner.getAddress(); + const chainID = 1; + + // Call the execute function + const executeTx = await protocolContracts.gatewayZEVM.connect(fungibleModuleSigner).execute( + { + origin, + sender, + chainID, + }, + testContracts.zrc20.target, + 0, + zContract, + payload, + deployOpts + ); + await executeTx.wait(); + } catch (e) { + console.error("failed:", e); + } + }); + + // event Deposit(address indexed sender, address indexed receiver, uint256 amount, address asset, bytes payload); + protocolContracts.gatewayEVM.on("Deposit", async (...args: Array) => { + console.log("Worker: Deposit event on GatewayEVM."); + console.log("Worker: Calling TestZContract through GatewayZEVM..."); + try { + const receiver = args[1]; + const asset = args[3]; + const payload = args[4]; + if (payload != "0x") { + const executeTx = await (protocolContracts.gatewayZEVM as any) + .connect(fungibleModuleSigner) + .execute( + [protocolContracts.gatewayZEVM.target, await fungibleModuleSigner.getAddress(), 1], + asset, + 0, + receiver, + payload, + deployOpts + ); + await executeTx.wait(); + } + } catch (e) { + console.error("failed:", e); + } + }); + + testContracts.testZContract.on("ContextData", async () => { + console.log("TestZContract: onCrosschainCall called!"); + }); + + process.stdin.resume(); +}; + +startWorker() + .then(() => { + console.log("Setup complete, monitoring events. Press CTRL+C to exit."); + }) + .catch((error) => { + console.error("Failed to deploy contracts or set up listeners:", error); + process.exit(1); + }); diff --git a/v2/slither.config.json b/v2/slither.config.json new file mode 100644 index 00000000..5ed196ed --- /dev/null +++ b/v2/slither.config.json @@ -0,0 +1,4 @@ +{ + "detectors_to_exclude": "", + "filter_paths": "artifacts,cache,data,dist,docs,lib,node_modules,pkg,scripts,test,testing,typechain-types" +} diff --git a/contracts/prototypes/evm/ERC20CustodyNew.sol b/v2/src/evm/ERC20Custody.sol similarity index 55% rename from contracts/prototypes/evm/ERC20CustodyNew.sol rename to v2/src/evm/ERC20Custody.sol index ca88c764..b7e948e2 100644 --- a/contracts/prototypes/evm/ERC20CustodyNew.sol +++ b/v2/src/evm/ERC20Custody.sol @@ -1,17 +1,19 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; +pragma solidity 0.8.26; +import "./interfaces//IGatewayEVM.sol"; +import "./interfaces/IERC20Custody.sol"; + +import "@openzeppelin/contracts/access/AccessControl.sol"; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; -import "@openzeppelin/contracts/security/ReentrancyGuard.sol"; - -import "./IGatewayEVM.sol"; -import "./IERC20CustodyNew.sol"; +import "@openzeppelin/contracts/utils/Pausable.sol"; +import "@openzeppelin/contracts/utils/ReentrancyGuard.sol"; -/// @title ERC20CustodyNew +/// @title ERC20Custody /// @notice Holds the ERC20 tokens deposited on ZetaChain and includes functionality to call a contract. /// @dev This contract does not call smart contracts directly, it passes through the Gateway contract. -contract ERC20CustodyNew is IERC20CustodyNewEvents, IERC20CustodyNewErrors, ReentrancyGuard { +contract ERC20Custody is IERC20CustodyEvents, IERC20CustodyErrors, ReentrancyGuard, AccessControl, Pausable { using SafeERC20 for IERC20; /// @notice Gateway contract. @@ -19,20 +21,32 @@ contract ERC20CustodyNew is IERC20CustodyNewEvents, IERC20CustodyNewErrors, Reen /// @notice TSS address. address public tssAddress; - /// @notice Only TSS address allowed modifier. - modifier onlyTSS() { - if (msg.sender != tssAddress) { - revert InvalidSender(); - } - _; - } + /// @notice New role identifier for pauser role. + bytes32 public constant PAUSER_ROLE = keccak256("PAUSER_ROLE"); + /// @notice New role identifier for withdrawer role. + bytes32 public constant WITHDRAWER_ROLE = keccak256("WITHDRAWER_ROLE"); - constructor(address _gateway, address _tssAddress) { + /// @notice Constructor for ERC20Custody. + /// @dev Set admin as default admin and pauser, and tssAddress as tss role. + constructor(address _gateway, address _tssAddress, address _admin) { if (_gateway == address(0) || _tssAddress == address(0)) { revert ZeroAddress(); } gateway = IGatewayEVM(_gateway); tssAddress = _tssAddress; + _grantRole(DEFAULT_ADMIN_ROLE, _admin); + _grantRole(PAUSER_ROLE, _admin); + _grantRole(WITHDRAWER_ROLE, _tssAddress); + } + + /// @notice Pause contract. + function pause() external onlyRole(PAUSER_ROLE) { + _pause(); + } + + /// @notice Unpause contract. + function unpause() external onlyRole(PAUSER_ROLE) { + _unpause(); } /// @notice Withdraw directly transfers the tokens to the destination address without contract call. @@ -40,7 +54,16 @@ contract ERC20CustodyNew is IERC20CustodyNewEvents, IERC20CustodyNewErrors, Reen /// @param token Address of the ERC20 token. /// @param to Destination address for the tokens. /// @param amount Amount of tokens to withdraw. - function withdraw(address token, address to, uint256 amount) external nonReentrant onlyTSS { + function withdraw( + address token, + address to, + uint256 amount + ) + external + nonReentrant + onlyRole(WITHDRAWER_ROLE) + whenNotPaused + { IERC20(token).safeTransfer(to, amount); emit Withdraw(token, to, amount); @@ -52,7 +75,17 @@ contract ERC20CustodyNew is IERC20CustodyNewEvents, IERC20CustodyNewErrors, Reen /// @param to Address of the contract to call. /// @param amount Amount of tokens to withdraw. /// @param data Calldata to pass to the contract call. - function withdrawAndCall(address token, address to, uint256 amount, bytes calldata data) public nonReentrant onlyTSS { + function withdrawAndCall( + address token, + address to, + uint256 amount, + bytes calldata data + ) + public + nonReentrant + onlyRole(WITHDRAWER_ROLE) + whenNotPaused + { // Transfer the tokens to the Gateway contract IERC20(token).safeTransfer(address(gateway), amount); @@ -62,13 +95,24 @@ contract ERC20CustodyNew is IERC20CustodyNewEvents, IERC20CustodyNewErrors, Reen emit WithdrawAndCall(token, to, amount, data); } - /// @notice WithdrawAndRevert transfers tokens to Gateway and call a contract with a revert functionality through the Gateway. + /// @notice WithdrawAndRevert transfers tokens to Gateway and call a contract with a revert functionality through + /// the Gateway. /// @dev This function can only be called by the TSS address. /// @param token Address of the ERC20 token. /// @param to Address of the contract to call. /// @param amount Amount of tokens to withdraw. /// @param data Calldata to pass to the contract call. - function withdrawAndRevert(address token, address to, uint256 amount, bytes calldata data) public nonReentrant onlyTSS { + function withdrawAndRevert( + address token, + address to, + uint256 amount, + bytes calldata data + ) + public + nonReentrant + onlyRole(WITHDRAWER_ROLE) + whenNotPaused + { // Transfer the tokens to the Gateway contract IERC20(token).safeTransfer(address(gateway), amount); @@ -77,4 +121,4 @@ contract ERC20CustodyNew is IERC20CustodyNewEvents, IERC20CustodyNewErrors, Reen emit WithdrawAndRevert(token, to, amount, data); } -} \ No newline at end of file +} diff --git a/contracts/prototypes/evm/GatewayEVM.sol b/v2/src/evm/GatewayEVM.sol similarity index 70% rename from contracts/prototypes/evm/GatewayEVM.sol rename to v2/src/evm/GatewayEVM.sol index 73201482..3959fae7 100644 --- a/contracts/prototypes/evm/GatewayEVM.sol +++ b/v2/src/evm/GatewayEVM.sol @@ -1,20 +1,29 @@ // 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/utils/SafeERC20.sol"; +import "./ZetaConnectorBase.sol"; +import "./interfaces/IGatewayEVM.sol"; + +import "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol"; import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; -import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; import "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; -import "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol"; - -import "./IGatewayEVM.sol"; -import "./ZetaConnectorNewBase.sol"; +import "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol"; +import "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol"; +import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; /// @title GatewayEVM /// @notice The GatewayEVM contract is the endpoint to call smart contracts on external chains. /// @dev The contract doesn't hold any funds and should never have active allowances. -contract GatewayEVM is Initializable, OwnableUpgradeable, UUPSUpgradeable, IGatewayEVMErrors, IGatewayEVMEvents, ReentrancyGuardUpgradeable { +contract GatewayEVM is + Initializable, + AccessControlUpgradeable, + UUPSUpgradeable, + IGatewayEVMErrors, + IGatewayEVMEvents, + ReentrancyGuardUpgradeable, + PausableUpgradeable +{ using SafeERC20 for IERC20; /// @notice The address of the custody contract. @@ -26,64 +35,71 @@ contract GatewayEVM is Initializable, OwnableUpgradeable, UUPSUpgradeable, IGate /// @notice The address of the Zeta token contract. address public zetaToken; - /// @notice Only TSS address allowed modifier. - modifier onlyTSS() { - if (msg.sender != tssAddress) { - revert InvalidSender(); - } - _; - } - - /// @notice Only custody or connector address allowed modifier. - modifier onlyAssetHandler() { - if (msg.sender != custody && msg.sender != zetaConnector) { - revert InvalidSender(); - } - _; - } + /// @notice New role identifier for tss role. + bytes32 public constant TSS_ROLE = keccak256("TSS_ROLE"); + /// @notice New role identifier for asset handler role. + bytes32 public constant ASSET_HANDLER_ROLE = keccak256("ASSET_HANDLER_ROLE"); + /// @notice New role identifier for pauser role. + bytes32 public constant PAUSER_ROLE = keccak256("PAUSER_ROLE"); /// @custom:oz-upgrades-unsafe-allow constructor constructor() { _disableInitializers(); } - function initialize(address _tssAddress, address _zetaToken) public initializer { + /// @notice Initialize with tss address. address of zeta token and admin account set as DEFAULT_ADMIN_ROLE. + /// @dev Using admin to authorize upgrades and pause, and tss for tss role. + function initialize(address _tssAddress, address _zetaToken, address _admin) public initializer { if (_tssAddress == address(0) || _zetaToken == address(0)) { revert ZeroAddress(); } - - __Ownable_init(); __UUPSUpgradeable_init(); __ReentrancyGuard_init(); + __AccessControl_init(); + __Pausable_init(); + _grantRole(DEFAULT_ADMIN_ROLE, _admin); + _grantRole(PAUSER_ROLE, _admin); tssAddress = _tssAddress; + _grantRole(TSS_ROLE, _tssAddress); + zetaToken = _zetaToken; } /// @dev Authorizes the upgrade of the contract, sender must be owner. /// @param newImplementation Address of the new implementation. - function _authorizeUpgrade(address newImplementation) internal override onlyOwner() {} + function _authorizeUpgrade(address newImplementation) internal override onlyRole(DEFAULT_ADMIN_ROLE) { } /// @dev Internal function to execute a call to a destination address. /// @param destination Address to call. /// @param data Calldata to pass to the call. /// @return The result of the call. function _execute(address destination, bytes calldata data) internal returns (bytes memory) { - (bool success, bytes memory result) = destination.call{value: msg.value}(data); + (bool success, bytes memory result) = destination.call{ value: msg.value }(data); if (!success) revert ExecutionFailed(); return result; } + /// @notice Pause contract. + function pause() external onlyRole(PAUSER_ROLE) { + _pause(); + } + + /// @notice Unpause contract. + function unpause() external onlyRole(PAUSER_ROLE) { + _unpause(); + } + /// @notice Transfers msg.value to destination contract and executes it's onRevert function. /// @dev This function can only be called by the TSS address and it is payable. /// @param destination Address to call. /// @param data Calldata to pass to the call. - function executeRevert(address destination, bytes calldata data) public payable onlyTSS { - (bool success, bytes memory result) = destination.call{value: msg.value}(""); + function executeRevert(address destination, bytes calldata data) public payable onlyRole(TSS_ROLE) whenNotPaused { + (bool success, bytes memory result) = destination.call{ value: msg.value }(""); if (!success) revert ExecutionFailed(); Revertable(destination).onRevert(data); - + emit Reverted(destination, msg.value, data); } @@ -92,7 +108,16 @@ contract GatewayEVM is Initializable, OwnableUpgradeable, UUPSUpgradeable, IGate /// @param destination Address to call. /// @param data Calldata to pass to the call. /// @return The result of the call. - function execute(address destination, bytes calldata data) external payable onlyTSS returns (bytes memory) { + function execute( + address destination, + bytes calldata data + ) + external + payable + onlyRole(TSS_ROLE) + whenNotPaused + returns (bytes memory) + { bytes memory result = _execute(destination, data); emit Executed(destination, msg.value, data); @@ -112,16 +137,21 @@ contract GatewayEVM is Initializable, OwnableUpgradeable, UUPSUpgradeable, IGate address to, uint256 amount, bytes calldata data - ) public nonReentrant onlyAssetHandler { + ) + public + nonReentrant + onlyRole(ASSET_HANDLER_ROLE) + whenNotPaused + { if (amount == 0) revert InsufficientERC20Amount(); // Approve the target contract to spend the tokens - if(!resetApproval(token, to)) revert ApprovalFailed(); - if(!IERC20(token).approve(to, amount)) revert ApprovalFailed(); + if (!resetApproval(token, to)) revert ApprovalFailed(); + if (!IERC20(token).approve(to, amount)) revert ApprovalFailed(); // Execute the call on the target contract bytes memory result = _execute(to, data); // Reset approval - if(!resetApproval(token, to)) revert ApprovalFailed(); + if (!resetApproval(token, to)) revert ApprovalFailed(); // Transfer any remaining tokens back to the custody/connector contract uint256 remainingBalance = IERC20(token).balanceOf(address(this)); @@ -143,7 +173,12 @@ contract GatewayEVM is Initializable, OwnableUpgradeable, UUPSUpgradeable, IGate address to, uint256 amount, bytes calldata data - ) external nonReentrant onlyAssetHandler { + ) + external + nonReentrant + onlyRole(ASSET_HANDLER_ROLE) + whenNotPaused + { if (amount == 0) revert InsufficientERC20Amount(); IERC20(token).safeTransfer(address(to), amount); @@ -154,12 +189,12 @@ contract GatewayEVM is Initializable, OwnableUpgradeable, UUPSUpgradeable, IGate /// @notice Deposits ETH to the TSS address. /// @param receiver Address of the receiver. - function deposit(address receiver) external payable { + function deposit(address receiver) external payable whenNotPaused { if (msg.value == 0) revert InsufficientETHAmount(); - (bool deposited, ) = tssAddress.call{value: msg.value}(""); + (bool deposited,) = tssAddress.call{ value: msg.value }(""); if (deposited == false) revert DepositFailed(); - + emit Deposit(msg.sender, receiver, msg.value, address(0), ""); } @@ -167,7 +202,7 @@ contract GatewayEVM is Initializable, OwnableUpgradeable, UUPSUpgradeable, IGate /// @param receiver Address of the receiver. /// @param amount Amount of tokens to deposit. /// @param asset Address of the ERC20 token. - function deposit(address receiver, uint256 amount, address asset) external { + function deposit(address receiver, uint256 amount, address asset) external whenNotPaused { if (amount == 0) revert InsufficientERC20Amount(); transferFromToAssetHandler(msg.sender, asset, amount); @@ -178,12 +213,12 @@ contract GatewayEVM is Initializable, OwnableUpgradeable, UUPSUpgradeable, IGate /// @notice Deposits ETH to the TSS address and calls an omnichain smart contract. /// @param receiver Address of the receiver. /// @param payload Calldata to pass to the call. - function depositAndCall(address receiver, bytes calldata payload) external payable { + function depositAndCall(address receiver, bytes calldata payload) external payable whenNotPaused { if (msg.value == 0) revert InsufficientETHAmount(); - (bool deposited, ) = tssAddress.call{value: msg.value}(""); + (bool deposited,) = tssAddress.call{ value: msg.value }(""); if (deposited == false) revert DepositFailed(); - + emit Deposit(msg.sender, receiver, msg.value, address(0), payload); } @@ -192,9 +227,17 @@ contract GatewayEVM is Initializable, OwnableUpgradeable, UUPSUpgradeable, IGate /// @param amount Amount of tokens to deposit. /// @param asset Address of the ERC20 token. /// @param payload Calldata to pass to the call. - function depositAndCall(address receiver, uint256 amount, address asset, bytes calldata payload) external { + function depositAndCall( + address receiver, + uint256 amount, + address asset, + bytes calldata payload + ) + external + whenNotPaused + { if (amount == 0) revert InsufficientERC20Amount(); - + transferFromToAssetHandler(msg.sender, asset, amount); emit Deposit(msg.sender, receiver, amount, asset, payload); @@ -203,25 +246,27 @@ contract GatewayEVM is Initializable, OwnableUpgradeable, UUPSUpgradeable, IGate /// @notice Calls an omnichain smart contract without asset transfer. /// @param receiver Address of the receiver. /// @param payload Calldata to pass to the call. - function call(address receiver, bytes calldata payload) external { + function call(address receiver, bytes calldata payload) external whenNotPaused { emit Call(msg.sender, receiver, payload); } /// @notice Sets the custody contract address. /// @param _custody Address of the custody contract. - function setCustody(address _custody) external onlyTSS { + function setCustody(address _custody) external onlyRole(DEFAULT_ADMIN_ROLE) { if (custody != address(0)) revert CustodyInitialized(); if (_custody == address(0)) revert ZeroAddress(); + _grantRole(ASSET_HANDLER_ROLE, _custody); custody = _custody; } /// @notice Sets the connector contract address. /// @param _zetaConnector Address of the connector contract. - function setConnector(address _zetaConnector) external onlyTSS { + function setConnector(address _zetaConnector) external onlyRole(DEFAULT_ADMIN_ROLE) { if (zetaConnector != address(0)) revert CustodyInitialized(); if (_zetaConnector == address(0)) revert ZeroAddress(); + _grantRole(ASSET_HANDLER_ROLE, _zetaConnector); zetaConnector = _zetaConnector; } @@ -235,34 +280,40 @@ contract GatewayEVM is Initializable, OwnableUpgradeable, UUPSUpgradeable, IGate } /// @dev Transfers tokens from the sender to the asset handler. - /// This function handles the transfer of tokens to either the connector or custody contract based on the asset type. + /// This function handles the transfer of tokens to either the connector or custody contract based on the asset + /// type. /// @param from Address of the sender. /// @param token Address of the ERC20 token. /// @param amount Amount of tokens to transfer. function transferFromToAssetHandler(address from, address token, uint256 amount) private { - if (token == zetaToken) { // transfer to connector + if (token == zetaToken) { + // transfer to connector // transfer amount to gateway IERC20(token).safeTransferFrom(from, address(this), amount); // approve connector to handle tokens depending on connector version (eg. lock or burn) IERC20(token).approve(zetaConnector, amount); // send tokens to connector - ZetaConnectorNewBase(zetaConnector).receiveTokens(amount); - } else { // transfer to custody + ZetaConnectorBase(zetaConnector).receiveTokens(amount); + } else { + // transfer to custody IERC20(token).safeTransferFrom(from, custody, amount); } } /// @dev Transfers tokens to the asset handler. - /// This function handles the transfer of tokens to either the connector or custody contract based on the asset type. + /// This function handles the transfer of tokens to either the connector or custody contract based on the asset + /// type. /// @param token Address of the ERC20 token. /// @param amount Amount of tokens to transfer. function transferToAssetHandler(address token, uint256 amount) private { - if (token == zetaToken) { // transfer to connector + if (token == zetaToken) { + // transfer to connector // approve connector to handle tokens depending on connector version (eg. lock or burn) IERC20(token).approve(zetaConnector, amount); // send tokens to connector - ZetaConnectorNewBase(zetaConnector).receiveTokens(amount); - } else { // transfer to custody + ZetaConnectorBase(zetaConnector).receiveTokens(amount); + } else { + // transfer to custody IERC20(token).safeTransfer(custody, amount); } } diff --git a/contracts/prototypes/evm/ZetaConnectorNewBase.sol b/v2/src/evm/ZetaConnectorBase.sol similarity index 59% rename from contracts/prototypes/evm/ZetaConnectorNewBase.sol rename to v2/src/evm/ZetaConnectorBase.sol index df775a95..5aa31bf6 100644 --- a/contracts/prototypes/evm/ZetaConnectorNewBase.sol +++ b/v2/src/evm/ZetaConnectorBase.sol @@ -1,23 +1,23 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.7; +pragma solidity 0.8.26; +import "@openzeppelin/contracts/access/AccessControl.sol"; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; -import "@openzeppelin/contracts/security/ReentrancyGuard.sol"; +import "@openzeppelin/contracts/utils/Pausable.sol"; +import "@openzeppelin/contracts/utils/ReentrancyGuard.sol"; -import "./IGatewayEVM.sol"; -import "./IZetaConnector.sol"; +import "src/evm/interfaces/IGatewayEVM.sol"; +import "src/evm/interfaces/IZetaConnector.sol"; -/// @title ZetaConnectorNewBase +/// @title ZetaConnectorBase /// @notice Abstract base contract for ZetaConnector. /// @dev This contract implements basic functionality for handling tokens and interacting with the Gateway contract. -abstract contract ZetaConnectorNewBase is IZetaConnectorEvents, ReentrancyGuard { +abstract contract ZetaConnectorBase is IZetaConnectorEvents, ReentrancyGuard, Pausable, AccessControl { using SafeERC20 for IERC20; /// @notice Error indicating that a zero address was provided. error ZeroAddress(); - /// @notice Error indicating that the sender is invalid. - error InvalidSender(); /// @notice The Gateway contract used for executing cross-chain calls. IGatewayEVM public immutable gateway; @@ -26,21 +26,34 @@ abstract contract ZetaConnectorNewBase is IZetaConnectorEvents, ReentrancyGuard /// @notice The address of the TSS (Threshold Signature Scheme) contract. address public tssAddress; - /// @dev Only TSS address allowed modifier. - modifier onlyTSS() { - if (msg.sender != tssAddress) { - revert InvalidSender(); - } - _; - } + /// @notice New role identifier for withdrawer role. + bytes32 public constant WITHDRAWER_ROLE = keccak256("WITHDRAWER_ROLE"); + /// @notice New role identifier for pauser role. + bytes32 public constant PAUSER_ROLE = keccak256("PAUSER_ROLE"); - constructor(address _gateway, address _zetaToken, address _tssAddress) { + /// @notice Constructor for ZetaConnectors. + /// @dev Set admin as default admin and pauser, and tssAddress as tss role. + constructor(address _gateway, address _zetaToken, address _tssAddress, address _admin) { if (_gateway == address(0) || _zetaToken == address(0) || _tssAddress == address(0)) { revert ZeroAddress(); } gateway = IGatewayEVM(_gateway); zetaToken = _zetaToken; tssAddress = _tssAddress; + + _grantRole(DEFAULT_ADMIN_ROLE, _admin); + _grantRole(WITHDRAWER_ROLE, _tssAddress); + _grantRole(PAUSER_ROLE, _admin); + } + + /// @notice Pause contract. + function pause() external onlyRole(PAUSER_ROLE) { + _pause(); + } + + /// @notice Unpause contract. + function unpause() external onlyRole(PAUSER_ROLE) { + _unpause(); } /// @notice Withdraw tokens to a specified address. @@ -54,14 +67,28 @@ abstract contract ZetaConnectorNewBase is IZetaConnectorEvents, ReentrancyGuard /// @param amount The amount of tokens to withdraw. /// @param data The calldata to pass to the contract call. /// @param internalSendHash A hash used for internal tracking of the transaction. - function withdrawAndCall(address to, uint256 amount, bytes calldata data, bytes32 internalSendHash) external virtual; + function withdrawAndCall( + address to, + uint256 amount, + bytes calldata data, + bytes32 internalSendHash + ) + external + virtual; /// @notice Withdraw tokens and call a contract with a revert callback through Gateway. /// @param to The address to withdraw tokens to. /// @param amount The amount of tokens to withdraw. /// @param data The calldata to pass to the contract call. /// @param internalSendHash A hash used for internal tracking of the transaction. - function withdrawAndRevert(address to, uint256 amount, bytes calldata data, bytes32 internalSendHash) external virtual; + function withdrawAndRevert( + address to, + uint256 amount, + bytes calldata data, + bytes32 internalSendHash + ) + external + virtual; /// @notice Handle received tokens. /// @param amount The amount of tokens received. diff --git a/contracts/prototypes/evm/ZetaConnectorNative.sol b/v2/src/evm/ZetaConnectorNative.sol similarity index 65% rename from contracts/prototypes/evm/ZetaConnectorNative.sol rename to v2/src/evm/ZetaConnectorNative.sol index 2e49b75b..40439f84 100644 --- a/contracts/prototypes/evm/ZetaConnectorNative.sol +++ b/v2/src/evm/ZetaConnectorNative.sol @@ -1,26 +1,41 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.7; +pragma solidity 0.8.26; -import "./ZetaConnectorNewBase.sol"; +import "./ZetaConnectorBase.sol"; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; /// @title ZetaConnectorNative -/// @notice Implementation of ZetaConnectorNewBase for native token handling. +/// @notice Implementation of ZetaConnectorBase for native token handling. /// @dev This contract directly transfers Zeta tokens and interacts with the Gateway contract. -contract ZetaConnectorNative is ZetaConnectorNewBase { +contract ZetaConnectorNative is ZetaConnectorBase { using SafeERC20 for IERC20; - constructor(address _gateway, address _zetaToken, address _tssAddress) - ZetaConnectorNewBase(_gateway, _zetaToken, _tssAddress) - {} + constructor( + address _gateway, + address _zetaToken, + address _tssAddress, + address _admin + ) + ZetaConnectorBase(_gateway, _zetaToken, _tssAddress, _admin) + { } /// @notice Withdraw tokens to a specified address. /// @param to The address to withdraw tokens to. /// @param amount The amount of tokens to withdraw. /// @param internalSendHash A hash used for internal tracking of the transaction. /// @dev This function can only be called by the TSS address. - function withdraw(address to, uint256 amount, bytes32 internalSendHash) external override nonReentrant onlyTSS { + function withdraw( + address to, + uint256 amount, + bytes32 internalSendHash + ) + external + override + nonReentrant + onlyRole(WITHDRAWER_ROLE) + whenNotPaused + { IERC20(zetaToken).safeTransfer(to, amount); emit Withdraw(to, amount); } @@ -31,7 +46,18 @@ contract ZetaConnectorNative is ZetaConnectorNewBase { /// @param data The calldata to pass to the contract call. /// @param internalSendHash A hash used for internal tracking of the transaction. /// @dev This function can only be called by the TSS address. - function withdrawAndCall(address to, uint256 amount, bytes calldata data, bytes32 internalSendHash) external override nonReentrant onlyTSS { + function withdrawAndCall( + address to, + uint256 amount, + bytes calldata data, + bytes32 internalSendHash + ) + external + override + nonReentrant + onlyRole(WITHDRAWER_ROLE) + whenNotPaused + { // Transfer zetaToken to the Gateway contract IERC20(zetaToken).safeTransfer(address(gateway), amount); @@ -47,7 +73,18 @@ contract ZetaConnectorNative is ZetaConnectorNewBase { /// @param data The calldata to pass to the contract call. /// @param internalSendHash A hash used for internal tracking of the transaction. /// @dev This function can only be called by the TSS address. - function withdrawAndRevert(address to, uint256 amount, bytes calldata data, bytes32 internalSendHash) external override nonReentrant onlyTSS { + function withdrawAndRevert( + address to, + uint256 amount, + bytes calldata data, + bytes32 internalSendHash + ) + external + override + nonReentrant + onlyRole(WITHDRAWER_ROLE) + whenNotPaused + { // Transfer zetaToken to the Gateway contract IERC20(zetaToken).safeTransfer(address(gateway), amount); @@ -59,7 +96,7 @@ contract ZetaConnectorNative is ZetaConnectorNewBase { /// @notice Handle received tokens. /// @param amount The amount of tokens received. - function receiveTokens(uint256 amount) external override { + function receiveTokens(uint256 amount) external override whenNotPaused { IERC20(zetaToken).safeTransferFrom(msg.sender, address(this), amount); } } diff --git a/contracts/prototypes/evm/ZetaConnectorNonNative.sol b/v2/src/evm/ZetaConnectorNonNative.sol similarity index 69% rename from contracts/prototypes/evm/ZetaConnectorNonNative.sol rename to v2/src/evm/ZetaConnectorNonNative.sol index d1414b9d..65605f79 100644 --- a/contracts/prototypes/evm/ZetaConnectorNonNative.sol +++ b/v2/src/evm/ZetaConnectorNonNative.sol @@ -1,31 +1,36 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.7; +pragma solidity 0.8.26; -import "./ZetaConnectorNewBase.sol"; -import "./IZetaNonEthNew.sol"; +import "./ZetaConnectorBase.sol"; +import "./interfaces/IZetaNonEthNew.sol"; import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol"; /// @title ZetaConnectorNonNative -/// @notice Implementation of ZetaConnectorNewBase for non-native token handling. +/// @notice Implementation of ZetaConnectorBase for non-native token handling. /// @dev This contract mints and burns Zeta tokens and interacts with the Gateway contract. -contract ZetaConnectorNonNative is ZetaConnectorNewBase { +contract ZetaConnectorNonNative is ZetaConnectorBase { /// @notice Max supply for minting. uint256 public maxSupply = type(uint256).max; /// @notice Event triggered when max supply is updated. /// @param maxSupply New max supply. event MaxSupplyUpdated(uint256 maxSupply); + error ExceedsMaxSupply(); - constructor(address _gateway, address _zetaToken, address _tssAddress) - ZetaConnectorNewBase(_gateway, _zetaToken, _tssAddress) - {} + constructor( + address _gateway, + address _zetaToken, + address _tssAddress, + address _admin + ) + ZetaConnectorBase(_gateway, _zetaToken, _tssAddress, _admin) + { } - /// @notice Set max supply for minting. /// @param _maxSupply New max supply. /// @dev This function can only be called by the TSS address. - function setMaxSupply(uint256 _maxSupply) external onlyTSS() { + function setMaxSupply(uint256 _maxSupply) external onlyRole(WITHDRAWER_ROLE) whenNotPaused { maxSupply = _maxSupply; emit MaxSupplyUpdated(_maxSupply); } @@ -35,7 +40,17 @@ contract ZetaConnectorNonNative is ZetaConnectorNewBase { /// @param amount The amount of tokens to withdraw. /// @param internalSendHash A hash used for internal tracking of the transaction. /// @dev This function can only be called by the TSS address. - function withdraw(address to, uint256 amount, bytes32 internalSendHash) external override nonReentrant onlyTSS { + function withdraw( + address to, + uint256 amount, + bytes32 internalSendHash + ) + external + override + nonReentrant + onlyRole(WITHDRAWER_ROLE) + whenNotPaused + { if (amount + IERC20(zetaToken).totalSupply() > maxSupply) revert ExceedsMaxSupply(); IZetaNonEthNew(zetaToken).mint(to, amount, internalSendHash); @@ -48,7 +63,18 @@ contract ZetaConnectorNonNative is ZetaConnectorNewBase { /// @param data The calldata to pass to the contract call. /// @param internalSendHash A hash used for internal tracking of the transaction. /// @dev This function can only be called by the TSS address, and mints if supply is not reached. - function withdrawAndCall(address to, uint256 amount, bytes calldata data, bytes32 internalSendHash) external override nonReentrant onlyTSS { + function withdrawAndCall( + address to, + uint256 amount, + bytes calldata data, + bytes32 internalSendHash + ) + external + override + nonReentrant + onlyRole(WITHDRAWER_ROLE) + whenNotPaused + { if (amount + IERC20(zetaToken).totalSupply() > maxSupply) revert ExceedsMaxSupply(); // Mint zetaToken to the Gateway contract @@ -66,7 +92,18 @@ contract ZetaConnectorNonNative is ZetaConnectorNewBase { /// @param data The calldata to pass to the contract call. /// @param internalSendHash A hash used for internal tracking of the transaction. /// @dev This function can only be called by the TSS address, and mints if supply is not reached. - function withdrawAndRevert(address to, uint256 amount, bytes calldata data, bytes32 internalSendHash) external override nonReentrant onlyTSS { + function withdrawAndRevert( + address to, + uint256 amount, + bytes calldata data, + bytes32 internalSendHash + ) + external + override + nonReentrant + onlyRole(WITHDRAWER_ROLE) + whenNotPaused + { if (amount + IERC20(zetaToken).totalSupply() > maxSupply) revert ExceedsMaxSupply(); // Mint zetaToken to the Gateway contract @@ -80,7 +117,7 @@ contract ZetaConnectorNonNative is ZetaConnectorNewBase { /// @notice Handle received tokens and burn them. /// @param amount The amount of tokens received. - function receiveTokens(uint256 amount) external override { + function receiveTokens(uint256 amount) external override whenNotPaused { IZetaNonEthNew(zetaToken).burnFrom(msg.sender, amount); } } diff --git a/contracts/prototypes/evm/IERC20CustodyNew.sol b/v2/src/evm/interfaces/IERC20Custody.sol similarity index 85% rename from contracts/prototypes/evm/IERC20CustodyNew.sol rename to v2/src/evm/interfaces/IERC20Custody.sol index add4b3cf..9ef282e2 100644 --- a/contracts/prototypes/evm/IERC20CustodyNew.sol +++ b/v2/src/evm/interfaces/IERC20Custody.sol @@ -1,9 +1,9 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; +pragma solidity 0.8.26; -/// @title IERC20CustodyNewEvents +/// @title IERC20CustodyEvents /// @notice Interface for the events emitted by the ERC20 custody contract. -interface IERC20CustodyNewEvents { +interface IERC20CustodyEvents { /// @notice Emitted when tokens are withdrawn. /// @param token The address of the ERC20 token. /// @param to The address receiving the tokens. @@ -25,12 +25,9 @@ interface IERC20CustodyNewEvents { event WithdrawAndRevert(address indexed token, address indexed to, uint256 amount, bytes data); } -/// @title IERC20CustodyNewErrors +/// @title IERC20CustodyErrors /// @notice Interface for the errors used in the ERC20 custody contract. -interface IERC20CustodyNewErrors { +interface IERC20CustodyErrors { /// @notice Error for zero address input. error ZeroAddress(); - - /// @notice Error for invalid sender. - error InvalidSender(); -} \ No newline at end of file +} diff --git a/contracts/prototypes/evm/IGatewayEVM.sol b/v2/src/evm/interfaces/IGatewayEVM.sol similarity index 92% rename from contracts/prototypes/evm/IGatewayEVM.sol rename to v2/src/evm/interfaces/IGatewayEVM.sol index 419049f3..c752d054 100644 --- a/contracts/prototypes/evm/IGatewayEVM.sol +++ b/v2/src/evm/interfaces/IGatewayEVM.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; +pragma solidity 0.8.26; /// @title IGatewayEVMEvents /// @notice Interface for the events emitted by the GatewayEVM contract. @@ -68,9 +68,6 @@ interface IGatewayEVMErrors { /// @notice Error for already initialized custody. error CustodyInitialized(); - - /// @notice Error for invalid sender. - error InvalidSender(); } /// @title IGatewayEVM @@ -81,12 +78,7 @@ interface IGatewayEVM { /// @param to The address of the contract to call. /// @param amount The amount of tokens to transfer. /// @param data The calldata to pass to the contract call. - function executeWithERC20( - address token, - address to, - uint256 amount, - bytes calldata data - ) external; + function executeWithERC20(address token, address to, uint256 amount, bytes calldata data) external; /// @notice Executes a call to a contract. /// @param destination The address of the contract to call. @@ -99,12 +91,7 @@ interface IGatewayEVM { /// @param to The address of the contract to call. /// @param amount The amount of tokens to transfer. /// @param data The calldata to pass to the contract call. - function revertWithERC20( - address token, - address to, - uint256 amount, - bytes calldata data - ) external; + function revertWithERC20(address token, address to, uint256 amount, bytes calldata data) external; } /// @title Revertable diff --git a/contracts/prototypes/evm/IZetaConnector.sol b/v2/src/evm/interfaces/IZetaConnector.sol similarity index 97% rename from contracts/prototypes/evm/IZetaConnector.sol rename to v2/src/evm/interfaces/IZetaConnector.sol index 9a3acf30..0e7794df 100644 --- a/contracts/prototypes/evm/IZetaConnector.sol +++ b/v2/src/evm/interfaces/IZetaConnector.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; +pragma solidity 0.8.26; /// @title IZetaConnectorEvents /// @notice Interface for the events emitted by the ZetaConnector contracts. diff --git a/contracts/prototypes/evm/IZetaNonEthNew.sol b/v2/src/evm/interfaces/IZetaNonEthNew.sol similarity index 97% rename from contracts/prototypes/evm/IZetaNonEthNew.sol rename to v2/src/evm/interfaces/IZetaNonEthNew.sol index 3c3a5375..11b9ee3c 100644 --- a/contracts/prototypes/evm/IZetaNonEthNew.sol +++ b/v2/src/evm/interfaces/IZetaNonEthNew.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"; @@ -18,4 +18,4 @@ interface IZetaNonEthNew is IERC20 { /// @param internalSendHash A hash used for internal tracking of the minting transaction. /// @dev Emits a {Transfer} event with `from` set to the zero address. function mint(address mintee, uint256 value, bytes32 internalSendHash) external; -} \ No newline at end of file +} diff --git a/contracts/prototypes/zevm/GatewayZEVM.sol b/v2/src/zevm/GatewayZEVM.sol similarity index 71% rename from contracts/prototypes/zevm/GatewayZEVM.sol rename to v2/src/zevm/GatewayZEVM.sol index 705eee7c..a05eb196 100644 --- a/contracts/prototypes/zevm/GatewayZEVM.sol +++ b/v2/src/zevm/GatewayZEVM.sol @@ -1,20 +1,29 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.7; +pragma solidity 0.8.26; +import "./interfaces/IGatewayZEVM.sol"; +import "./interfaces/IWZETA.sol"; +import "./interfaces/IZRC20.sol"; +import "./interfaces/zContract.sol"; +import "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol"; import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; -import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; import "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; -import "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol"; -import "@openzeppelin/contracts/security/ReentrancyGuard.sol"; -import "../../zevm/interfaces/IZRC20.sol"; -import "../../zevm/interfaces/zContract.sol"; -import "./IGatewayZEVM.sol"; -import "../../zevm/interfaces/IWZETA.sol"; + +import "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol"; +import "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol"; /// @title GatewayZEVM /// @notice The GatewayZEVM contract is the endpoint to call smart contracts on omnichain. /// @dev The contract doesn't hold any funds and should never have active allowances. -contract GatewayZEVM is IGatewayZEVMEvents, IGatewayZEVMErrors, Initializable, OwnableUpgradeable, UUPSUpgradeable, ReentrancyGuardUpgradeable { +contract GatewayZEVM is + IGatewayZEVMEvents, + IGatewayZEVMErrors, + Initializable, + AccessControlUpgradeable, + UUPSUpgradeable, + ReentrancyGuardUpgradeable, + PausableUpgradeable +{ /// @notice Error indicating a zero address was provided. error ZeroAddress(); @@ -23,6 +32,9 @@ contract GatewayZEVM is IGatewayZEVMEvents, IGatewayZEVMErrors, Initializable, O /// @notice The address of the Zeta token. address public zetaToken; + /// @notice New role identifier for pauser role. + bytes32 public constant PAUSER_ROLE = keccak256("PAUSER_ROLE"); + /// @dev Only Fungible module address allowed modifier. modifier onlyFungible() { if (msg.sender != FUNGIBLE_MODULE_ADDRESS) { @@ -36,26 +48,41 @@ contract GatewayZEVM is IGatewayZEVMEvents, IGatewayZEVMErrors, Initializable, O _disableInitializers(); } - function initialize(address _zetaToken) public initializer { + /// @notice Initialize with address of zeta token and admin account set as DEFAULT_ADMIN_ROLE. + /// @dev Using admin to authorize upgrades and pause. + function initialize(address _zetaToken, address _admin) public initializer { if (_zetaToken == address(0)) { revert ZeroAddress(); } - - __Ownable_init(); __UUPSUpgradeable_init(); + __AccessControl_init(); + __Pausable_init(); __ReentrancyGuard_init(); + + _grantRole(DEFAULT_ADMIN_ROLE, _admin); + _grantRole(PAUSER_ROLE, _admin); zetaToken = _zetaToken; } /// @dev Authorizes the upgrade of the contract. /// @param newImplementation The address of the new implementation. - function _authorizeUpgrade(address newImplementation) internal override onlyOwner() {} + function _authorizeUpgrade(address newImplementation) internal override onlyRole(DEFAULT_ADMIN_ROLE) { } /// @dev Receive function to receive ZETA from WETH9.withdraw(). - receive() external payable { + receive() external payable whenNotPaused { if (msg.sender != zetaToken && msg.sender != FUNGIBLE_MODULE_ADDRESS) revert OnlyWZETAOrFungible(); } + /// @notice Pause contract. + function pause() external onlyRole(PAUSER_ROLE) { + _pause(); + } + + /// @notice Unpause contract. + function unpause() external onlyRole(PAUSER_ROLE) { + _unpause(); + } + /// @dev Internal function to withdraw ZRC20 tokens. /// @param amount The amount of tokens to withdraw. /// @param zrc20 The address of the ZRC20 token. @@ -81,7 +108,7 @@ contract GatewayZEVM is IGatewayZEVMEvents, IGatewayZEVMErrors, Initializable, O function _transferZETA(uint256 amount, address to) internal { if (!IWETH9(zetaToken).transferFrom(msg.sender, address(this), amount)) revert FailedZetaSent(); IWETH9(zetaToken).withdraw(amount); - (bool sent, ) = to.call{value: amount}(""); + (bool sent,) = to.call{ value: amount }(""); if (!sent) revert FailedZetaSent(); } @@ -89,9 +116,9 @@ contract GatewayZEVM is IGatewayZEVMEvents, IGatewayZEVMErrors, Initializable, O /// @param receiver The receiver address on the external chain. /// @param amount The amount of tokens to withdraw. /// @param zrc20 The address of the ZRC20 token. - function withdraw(bytes memory receiver, uint256 amount, address zrc20) external nonReentrant { + function withdraw(bytes memory receiver, uint256 amount, address zrc20) external nonReentrant whenNotPaused { uint256 gasFee = _withdrawZRC20(amount, zrc20); - emit Withdrawal(msg.sender, zrc20, receiver, amount, gasFee, IZRC20(zrc20).PROTOCOL_FLAT_FEE(), ""); + emit Withdrawal(msg.sender, 0, receiver, zrc20, amount, gasFee, IZRC20(zrc20).PROTOCOL_FLAT_FEE(), ""); } /// @notice Withdraw ZRC20 tokens and call a smart contract on an external chain. @@ -99,42 +126,60 @@ contract GatewayZEVM is IGatewayZEVMEvents, IGatewayZEVMErrors, Initializable, O /// @param amount The amount of tokens to withdraw. /// @param zrc20 The address of the ZRC20 token. /// @param message The calldata to pass to the contract call. - function withdrawAndCall(bytes memory receiver, uint256 amount, address zrc20, bytes calldata message) external nonReentrant { + function withdrawAndCall( + bytes memory receiver, + uint256 amount, + address zrc20, + bytes calldata message + ) + external + nonReentrant + whenNotPaused + { uint256 gasFee = _withdrawZRC20(amount, zrc20); - emit Withdrawal(msg.sender, zrc20, receiver, amount, gasFee, IZRC20(zrc20).PROTOCOL_FLAT_FEE(), message); + emit Withdrawal(msg.sender, 0, receiver, zrc20, amount, gasFee, IZRC20(zrc20).PROTOCOL_FLAT_FEE(), message); } /// @notice Withdraw ZETA tokens to an external chain. /// @param amount The amount of tokens to withdraw. - function withdraw(uint256 amount) external nonReentrant { + function withdraw(uint256 amount, uint256 chainId) external nonReentrant whenNotPaused { _transferZETA(amount, FUNGIBLE_MODULE_ADDRESS); - emit Withdrawal(msg.sender, address(zetaToken), abi.encodePacked(FUNGIBLE_MODULE_ADDRESS), amount, 0, 0, ""); + emit Withdrawal( + msg.sender, chainId, abi.encodePacked(FUNGIBLE_MODULE_ADDRESS), address(zetaToken), amount, 0, 0, "" + ); } /// @notice Withdraw ZETA tokens and call a smart contract on an external chain. /// @param amount The amount of tokens to withdraw. + /// @param chainId Chain id of the external chain. /// @param message The calldata to pass to the contract call. - function withdrawAndCall(uint256 amount, bytes calldata message) external nonReentrant { + function withdrawAndCall( + uint256 amount, + uint256 chainId, + bytes calldata message + ) + external + nonReentrant + whenNotPaused + { _transferZETA(amount, FUNGIBLE_MODULE_ADDRESS); - emit Withdrawal(msg.sender, address(zetaToken), abi.encodePacked(FUNGIBLE_MODULE_ADDRESS), amount, 0, 0, message); + emit Withdrawal( + msg.sender, chainId, abi.encodePacked(FUNGIBLE_MODULE_ADDRESS), address(zetaToken), amount, 0, 0, message + ); } /// @notice Call a smart contract on an external chain without asset transfer. /// @param receiver The receiver address on the external chain. /// @param message The calldata to pass to the contract call. - function call(bytes memory receiver, bytes calldata message) external nonReentrant { - emit Call(msg.sender, receiver, message); + function call(bytes memory receiver, uint256 chainId, bytes calldata message) external nonReentrant whenNotPaused { + emit Call(msg.sender, chainId, receiver, message); } /// @notice Deposit foreign coins into ZRC20. /// @param zrc20 The address of the ZRC20 token. /// @param amount The amount of tokens to deposit. /// @param target The target address to receive the deposited tokens. - function deposit( - address zrc20, - uint256 amount, - address target - ) external onlyFungible { + function deposit(address zrc20, uint256 amount, address target) external onlyFungible whenNotPaused { if (target == FUNGIBLE_MODULE_ADDRESS || target == address(this)) revert InvalidTarget(); IZRC20(zrc20).deposit(target, amount); @@ -152,7 +197,11 @@ contract GatewayZEVM is IGatewayZEVMEvents, IGatewayZEVMErrors, Initializable, O uint256 amount, address target, bytes calldata message - ) external onlyFungible { + ) + external + onlyFungible + whenNotPaused + { UniversalContract(target).onCrossChainCall(context, zrc20, amount, message); } @@ -168,7 +217,11 @@ contract GatewayZEVM is IGatewayZEVMEvents, IGatewayZEVMErrors, Initializable, O uint256 amount, address target, bytes calldata message - ) external onlyFungible { + ) + external + onlyFungible + whenNotPaused + { if (target == FUNGIBLE_MODULE_ADDRESS || target == address(this)) revert InvalidTarget(); IZRC20(zrc20).deposit(target, amount); @@ -185,7 +238,11 @@ contract GatewayZEVM is IGatewayZEVMEvents, IGatewayZEVMErrors, Initializable, O uint256 amount, address target, bytes calldata message - ) external onlyFungible { + ) + external + onlyFungible + whenNotPaused + { if (target == FUNGIBLE_MODULE_ADDRESS || target == address(this)) revert InvalidTarget(); _transferZETA(amount, target); @@ -204,7 +261,11 @@ contract GatewayZEVM is IGatewayZEVMEvents, IGatewayZEVMErrors, Initializable, O uint256 amount, address target, bytes calldata message - ) external onlyFungible { + ) + external + onlyFungible + whenNotPaused + { UniversalContract(target).onRevert(context, zrc20, amount, message); } @@ -220,7 +281,11 @@ contract GatewayZEVM is IGatewayZEVMEvents, IGatewayZEVMErrors, Initializable, O uint256 amount, address target, bytes calldata message - ) external onlyFungible { + ) + external + onlyFungible + whenNotPaused + { if (target == FUNGIBLE_MODULE_ADDRESS || target == address(this)) revert InvalidTarget(); IZRC20(zrc20).deposit(target, amount); diff --git a/contracts/prototypes/zevm/IGatewayZEVM.sol b/v2/src/zevm/interfaces/IGatewayZEVM.sol similarity index 75% rename from contracts/prototypes/zevm/IGatewayZEVM.sol rename to v2/src/zevm/interfaces/IGatewayZEVM.sol index f2e7db32..6d7c2a19 100644 --- a/contracts/prototypes/zevm/IGatewayZEVM.sol +++ b/v2/src/zevm/interfaces/IGatewayZEVM.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.7; +pragma solidity 0.8.26; -import "../../zevm/interfaces/zContract.sol"; +import "./zContract.sol"; /// @title IGatewayZEVM /// @notice Interface for the GatewayZEVM contract. @@ -13,6 +13,10 @@ interface IGatewayZEVM { /// @param zrc20 The address of the ZRC20 token. function withdraw(bytes memory receiver, uint256 amount, address zrc20) external; + /// @notice Withdraw ZETA tokens to an external chain. + /// @param amount The amount of tokens to withdraw. + function withdraw(uint256 amount, uint256 chainId) external; + /// @notice Withdraw ZRC20 tokens and call a smart contract on an external chain. /// @param receiver The receiver address on the external chain. /// @param amount The amount of tokens to withdraw. @@ -20,20 +24,23 @@ interface IGatewayZEVM { /// @param message The calldata to pass to the contract call. function withdrawAndCall(bytes memory receiver, uint256 amount, address zrc20, bytes calldata message) external; + /// @notice Withdraw ZETA tokens and call a smart contract on an external chain. + /// @param amount The amount of tokens to withdraw. + /// @param chainId Chain id of the external chain. + /// @param message The calldata to pass to the contract call. + function withdrawAndCall(uint256 amount, uint256 chainId, bytes calldata message) external; + /// @notice Call a smart contract on an external chain without asset transfer. /// @param receiver The receiver address on the external chain. + /// @param chainId Chain id of the external chain. /// @param message The calldata to pass to the contract call. - function call(bytes memory receiver, bytes calldata message) external; + function call(bytes memory receiver, uint256 chainId, bytes calldata message) external; /// @notice Deposit foreign coins into ZRC20. /// @param zrc20 The address of the ZRC20 token. /// @param amount The amount of tokens to deposit. /// @param target The target address to receive the deposited tokens. - function deposit( - address zrc20, - uint256 amount, - address target - ) external; + function deposit(address zrc20, uint256 amount, address target) external; /// @notice Execute a user-specified contract on ZEVM. /// @param context The context of the cross-chain call. @@ -47,7 +54,8 @@ interface IGatewayZEVM { uint256 amount, address target, bytes calldata message - ) external; + ) + external; /// @notice Deposit foreign coins into ZRC20 and call a user-specified contract on ZEVM. /// @param context The context of the cross-chain call. @@ -61,7 +69,8 @@ interface IGatewayZEVM { uint256 amount, address target, bytes calldata message - ) external; + ) + external; } /// @title IGatewayZEVMEvents @@ -69,19 +78,30 @@ interface IGatewayZEVM { interface IGatewayZEVMEvents { /// @notice Emitted when a cross-chain call is made. /// @param sender The address of the sender. + /// @param chainId Chain id of external chain. /// @param receiver The receiver address on the external chain. /// @param message The calldata passed to the contract call. - event Call(address indexed sender, bytes receiver, bytes message); + event Call(address indexed sender, uint256 indexed chainId, bytes receiver, bytes message); /// @notice Emitted when a withdrawal is made. - /// @param from The address from which the tokens are withdrawn. + /// @param sender The address from which the tokens are withdrawn. + /// @param chainId Chain id of external chain. + /// @param receiver The receiver address on the external chain. /// @param zrc20 The address of the ZRC20 token. - /// @param to The receiver address on the external chain. /// @param value The amount of tokens withdrawn. /// @param gasfee The gas fee for the withdrawal. /// @param protocolFlatFee The protocol flat fee for the withdrawal. /// @param message The calldata passed to the contract call. - event Withdrawal(address indexed from, address zrc20, bytes to, uint256 value, uint256 gasfee, uint256 protocolFlatFee, bytes message); + event Withdrawal( + address indexed sender, + uint256 indexed chainId, + bytes receiver, + address zrc20, + uint256 value, + uint256 gasfee, + uint256 protocolFlatFee, + bytes message + ); } /// @title IGatewayZEVMErrors @@ -113,4 +133,4 @@ interface IGatewayZEVMErrors { /// @notice Error indicating that only WZETA or the Fungible module can call the function. error OnlyWZETAOrFungible(); -} \ No newline at end of file +} diff --git a/v2/src/zevm/interfaces/ISystem.sol b/v2/src/zevm/interfaces/ISystem.sol new file mode 100644 index 00000000..c91f2b4c --- /dev/null +++ b/v2/src/zevm/interfaces/ISystem.sol @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.26; + +/// @title ISystem +/// @notice Interface for the System contract. +/// @dev Defines functions for system contract callable by fungible module. +interface ISystem { + function FUNGIBLE_MODULE_ADDRESS() external view returns (address); + + function wZetaContractAddress() external view returns (address); + + function uniswapv2FactoryAddress() external view returns (address); + + function gasPriceByChainId(uint256 chainID) external view returns (uint256); + + function gasCoinZRC20ByChainId(uint256 chainID) external view returns (address); + + function gasZetaPoolByChainId(uint256 chainID) external view returns (address); +} diff --git a/v2/src/zevm/interfaces/IWZETA.sol b/v2/src/zevm/interfaces/IWZETA.sol new file mode 100644 index 00000000..1e0ada56 --- /dev/null +++ b/v2/src/zevm/interfaces/IWZETA.sol @@ -0,0 +1,27 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.26; + +/// @title IWETH9 +/// @notice Interface for the Weth9 contract. +interface IWETH9 { + event Approval(address indexed owner, address indexed spender, uint256 value); + event Transfer(address indexed from, address indexed to, uint256 value); + event Deposit(address indexed dst, uint256 wad); + event Withdrawal(address indexed src, uint256 wad); + + function totalSupply() external view returns (uint256); + + function balanceOf(address owner) external view returns (uint256); + + function allowance(address owner, address spender) external view returns (uint256); + + function approve(address spender, uint256 wad) external returns (bool); + + function transfer(address to, uint256 wad) external returns (bool); + + function transferFrom(address from, address to, uint256 wad) external returns (bool); + + function deposit() external payable; + + function withdraw(uint256 wad) external; +} diff --git a/v2/src/zevm/interfaces/IZRC20.sol b/v2/src/zevm/interfaces/IZRC20.sol new file mode 100644 index 00000000..8987c6ea --- /dev/null +++ b/v2/src/zevm/interfaces/IZRC20.sol @@ -0,0 +1,57 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.26; + +/// @title IZRC20 +/// @notice Interface for the ZRC20 token contract. +interface IZRC20 { + function totalSupply() external view returns (uint256); + + function balanceOf(address account) external view returns (uint256); + + function transfer(address recipient, uint256 amount) external returns (bool); + + function allowance(address owner, address spender) external view returns (uint256); + + function approve(address spender, uint256 amount) external returns (bool); + + function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); + + function deposit(address to, uint256 amount) external returns (bool); + + function burn(uint256 amount) external returns (bool); + + function withdraw(bytes memory to, uint256 amount) external returns (bool); + + function withdrawGasFee() external view returns (address, uint256); + + function PROTOCOL_FLAT_FEE() external view returns (uint256); +} + +/// @title IZRC20Metadata +/// @notice Interface for the ZRC20 metadata. +interface IZRC20Metadata is IZRC20 { + function name() external view returns (string memory); + + function symbol() external view returns (string memory); + + function decimals() external view returns (uint8); +} + +/// @title ZRC20Events +/// @notice Interface for the ZRC20 events. +interface ZRC20Events { + event Transfer(address indexed from, address indexed to, uint256 value); + event Approval(address indexed owner, address indexed spender, uint256 value); + event Deposit(bytes from, address indexed to, uint256 value); + event Withdrawal(address indexed from, bytes to, uint256 value, uint256 gasFee, uint256 protocolFlatFee); + event UpdatedSystemContract(address systemContract); + event UpdatedGasLimit(uint256 gasLimit); + event UpdatedProtocolFlatFee(uint256 protocolFlatFee); +} + +/// @dev Coin types for ZRC20. Zeta value should not be used. +enum CoinType { + Zeta, + Gas, + ERC20 +} diff --git a/v2/src/zevm/interfaces/zContract.sol b/v2/src/zevm/interfaces/zContract.sol new file mode 100644 index 00000000..45013a93 --- /dev/null +++ b/v2/src/zevm/interfaces/zContract.sol @@ -0,0 +1,38 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.26; + +struct zContext { + bytes origin; + address sender; + uint256 chainID; +} + +// TODO: define revertContext +struct revertContext { + bytes origin; + address sender; + uint256 chainID; +} + +interface zContract { + function onCrossChainCall( + zContext calldata context, + address zrc20, + uint256 amount, + bytes calldata message + ) + external; +} + +interface UniversalContract { + function onCrossChainCall( + zContext calldata context, + address zrc20, + uint256 amount, + bytes calldata message + ) + external; + + // TODO: define onRevert + function onRevert(revertContext calldata context, address zrc20, uint256 amount, bytes calldata message) external; +} diff --git a/testFoundry/GatewayEVM.t.sol b/v2/test/GatewayEVM.t.sol similarity index 75% rename from testFoundry/GatewayEVM.t.sol rename to v2/test/GatewayEVM.t.sol index 46cefda4..002f43a6 100644 --- a/testFoundry/GatewayEVM.t.sol +++ b/v2/test/GatewayEVM.t.sol @@ -1,30 +1,32 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; +pragma solidity 0.8.26; import "forge-std/Test.sol"; import "forge-std/Vm.sol"; -import "contracts/prototypes/evm/GatewayEVM.sol"; -import "contracts/prototypes/evm/ReceiverEVM.sol"; -import "contracts/prototypes/evm/ERC20CustodyNew.sol"; -import "contracts/prototypes/evm/ZetaConnectorNonNative.sol"; -import "contracts/prototypes/evm/TestERC20.sol"; +import "./utils/ReceiverEVM.sol"; + +import "./utils/TestERC20.sol"; + +import { ERC1967Proxy } from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; -import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; -import {Upgrades} from "openzeppelin-foundry-upgrades/LegacyUpgrades.sol"; +import { Upgrades } from "openzeppelin-foundry-upgrades/Upgrades.sol"; -import "contracts/prototypes/evm/IGatewayEVM.sol"; -import "contracts/prototypes/evm/IERC20CustodyNew.sol"; -import "contracts/prototypes/evm/IReceiverEVM.sol"; +import "./utils/IReceiverEVM.sol"; +import "src/evm/ERC20Custody.sol"; +import "src/evm/GatewayEVM.sol"; +import "src/evm/ZetaConnectorNonNative.sol"; +import "src/evm/interfaces/IERC20Custody.sol"; +import "src/evm/interfaces/IGatewayEVM.sol"; -contract GatewayEVMTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, IReceiverEVMEvents, IERC20CustodyNewEvents { +contract GatewayEVMTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, IReceiverEVMEvents, IERC20CustodyEvents { using SafeERC20 for IERC20; address proxy; GatewayEVM gateway; ReceiverEVM receiver; - ERC20CustodyNew custody; + ERC20Custody custody; ZetaConnectorNonNative zetaConnector; TestERC20 token; TestERC20 zeta; @@ -32,6 +34,14 @@ contract GatewayEVMTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, IReceiver address destination; address tssAddress; + error EnforcedPause(); + error AccessControlUnauthorizedAccount(address account, bytes32 neededRole); + + bytes32 public constant TSS_ROLE = keccak256("TSS_ROLE"); + bytes32 public constant WITHDRAWER_ROLE = keccak256("WITHDRAWER_ROLE"); + bytes32 public constant ASSET_HANDLER_ROLE = keccak256("ASSET_HANDLER_ROLE"); + bytes32 public constant PAUSER_ROLE = keccak256("PAUSER_ROLE"); + function setUp() public { owner = address(this); destination = address(0x1234); @@ -40,24 +50,23 @@ contract GatewayEVMTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, IReceiver token = new TestERC20("test", "TTK"); zeta = new TestERC20("zeta", "ZETA"); - proxy = address(new ERC1967Proxy( - address(new GatewayEVM()), - abi.encodeWithSelector(GatewayEVM.initialize.selector, tssAddress, address(zeta)) - )); + proxy = Upgrades.deployUUPSProxy( + "GatewayEVM.sol", abi.encodeCall(GatewayEVM.initialize, (tssAddress, address(zeta), owner)) + ); gateway = GatewayEVM(proxy); - custody = new ERC20CustodyNew(address(gateway), tssAddress); - zetaConnector = new ZetaConnectorNonNative(address(gateway), address(zeta), tssAddress); + custody = new ERC20Custody(address(gateway), tssAddress, owner); + zetaConnector = new ZetaConnectorNonNative(address(gateway), address(zeta), tssAddress, owner); receiver = new ReceiverEVM(); vm.deal(tssAddress, 1 ether); - vm.startPrank(tssAddress); + vm.startPrank(owner); gateway.setCustody(address(custody)); gateway.setConnector(address(zetaConnector)); vm.stopPrank(); - token.mint(owner, 1000000); - token.transfer(address(custody), 500000); + token.mint(owner, 1_000_000); + token.transfer(address(custody), 500_000); vm.deal(tssAddress, 1 ether); } @@ -70,7 +79,7 @@ contract GatewayEVMTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, IReceiver bool flag = true; bytes memory data = abi.encodeWithSignature("receiveNonPayable(string[],uint256[],bool)", str, num, flag); - + vm.expectCall(address(receiver), 0, data); vm.expectEmit(true, true, true, true, address(receiver)); emit ReceivedNonPayable(address(gateway), str, num, flag); @@ -87,9 +96,9 @@ contract GatewayEVMTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, IReceiver num[0] = 42; bool flag = true; bytes memory data = abi.encodeWithSignature("receiveNonPayable(string[],uint256[],bool)", str, num, flag); - + vm.prank(owner); - vm.expectRevert(InvalidSender.selector); + vm.expectRevert(abi.encodeWithSelector(AccessControlUnauthorizedAccount.selector, owner, TSS_ROLE)); gateway.execute(address(receiver), data); } @@ -101,21 +110,51 @@ contract GatewayEVMTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, IReceiver assertEq(0, address(receiver).balance); bytes memory data = abi.encodeWithSignature("receivePayable(string,uint256,bool)", str, num, flag); - + vm.expectCall(address(receiver), 1 ether, data); vm.expectEmit(true, true, true, true, address(receiver)); emit ReceivedPayable(address(gateway), value, str, num, flag); vm.expectEmit(true, true, true, true, address(gateway)); emit Executed(address(receiver), 1 ether, data); vm.prank(tssAddress); - gateway.execute{value: value}(address(receiver), data); + gateway.execute{ value: value }(address(receiver), data); assertEq(value, address(receiver).balance); } function testForwardCallToReceiveNoParams() public { bytes memory data = abi.encodeWithSignature("receiveNoParams()"); - + + vm.expectCall(address(receiver), 0, data); + vm.expectEmit(true, true, true, true, address(receiver)); + emit ReceivedNoParams(address(gateway)); + vm.expectEmit(true, true, true, true, address(gateway)); + emit Executed(address(receiver), 0, data); + vm.prank(tssAddress); + gateway.execute(address(receiver), data); + } + + function testForwardCallToReceiveNoParamsTogglePause() public { + vm.prank(tssAddress); + vm.expectRevert(abi.encodeWithSelector(AccessControlUnauthorizedAccount.selector, tssAddress, PAUSER_ROLE)); + gateway.pause(); + + vm.prank(tssAddress); + vm.expectRevert(abi.encodeWithSelector(AccessControlUnauthorizedAccount.selector, tssAddress, PAUSER_ROLE)); + gateway.unpause(); + + vm.prank(owner); + gateway.pause(); + + bytes memory data = abi.encodeWithSignature("receiveNoParams()"); + + vm.expectRevert(EnforcedPause.selector); + vm.prank(tssAddress); + gateway.execute(address(receiver), data); + + vm.prank(owner); + gateway.unpause(); + vm.expectCall(address(receiver), 0, data); vm.expectEmit(true, true, true, true, address(receiver)); emit ReceivedNoParams(address(gateway)); @@ -126,26 +165,29 @@ contract GatewayEVMTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, IReceiver } function testExecuteWithERC20FailsIfNotCustoryOrConnector() public { - uint256 amount = 100000; - bytes memory data = abi.encodeWithSignature("receiveERC20(uint256,address,address)", amount, address(token), destination); + uint256 amount = 100_000; + bytes memory data = + abi.encodeWithSignature("receiveERC20(uint256,address,address)", amount, address(token), destination); vm.prank(owner); - vm.expectRevert(InvalidSender.selector); + vm.expectRevert(abi.encodeWithSelector(AccessControlUnauthorizedAccount.selector, owner, ASSET_HANDLER_ROLE)); gateway.executeWithERC20(address(token), destination, amount, data); } function testRevertWithERC20FailsIfNotCustoryOrConnector() public { - uint256 amount = 100000; - bytes memory data = abi.encodeWithSignature("receiveERC20(uint256,address,address)", amount, address(token), destination); + uint256 amount = 100_000; + bytes memory data = + abi.encodeWithSignature("receiveERC20(uint256,address,address)", amount, address(token), destination); vm.prank(owner); - vm.expectRevert(InvalidSender.selector); + vm.expectRevert(abi.encodeWithSelector(AccessControlUnauthorizedAccount.selector, owner, ASSET_HANDLER_ROLE)); gateway.revertWithERC20(address(token), destination, amount, data); } function testForwardCallToReceiveERC20ThroughCustody() public { - uint256 amount = 100000; - bytes memory data = abi.encodeWithSignature("receiveERC20(uint256,address,address)", amount, address(token), destination); + uint256 amount = 100_000; + bytes memory data = + abi.encodeWithSignature("receiveERC20(uint256,address,address)", amount, address(token), destination); uint256 balanceBefore = token.balanceOf(destination); assertEq(balanceBefore, 0); uint256 balanceBeforeCustody = token.balanceOf(address(custody)); @@ -176,27 +218,30 @@ contract GatewayEVMTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, IReceiver assertEq(balanceGateway, 0); } - function testForwardCallToReceiveERC20ThroughCustodyFailsIfSenderIsNotTSS() public { - uint256 amount = 100000; - bytes memory data = abi.encodeWithSignature("receiveERC20(uint256,address,address)", amount, address(token), destination); + function testForwardCallToReceiveERC20ThroughCustodyFailsIfSenderIsNotWithdrawer() public { + uint256 amount = 100_000; + bytes memory data = + abi.encodeWithSignature("receiveERC20(uint256,address,address)", amount, address(token), destination); vm.prank(owner); - vm.expectRevert(InvalidSender.selector); + vm.expectRevert(abi.encodeWithSelector(AccessControlUnauthorizedAccount.selector, owner, WITHDRAWER_ROLE)); custody.withdrawAndCall(address(token), address(receiver), amount, data); } function testForwardCallToReceiveERC20ThroughCustodyFailsIfAmountIs0() public { uint256 amount = 0; - bytes memory data = abi.encodeWithSignature("receiveERC20(uint256,address,address)", amount, address(token), destination); - + bytes memory data = + abi.encodeWithSignature("receiveERC20(uint256,address,address)", amount, address(token), destination); + vm.prank(tssAddress); vm.expectRevert(InsufficientERC20Amount.selector); custody.withdrawAndCall(address(token), address(receiver), amount, data); } function testForwardCallToReceiveERC20PartialThroughCustody() public { - uint256 amount = 100000; - bytes memory data = abi.encodeWithSignature("receiveERC20Partial(uint256,address,address)", amount, address(token), destination); + uint256 amount = 100_000; + bytes memory data = + abi.encodeWithSignature("receiveERC20Partial(uint256,address,address)", amount, address(token), destination); uint256 balanceBefore = token.balanceOf(destination); assertEq(balanceBefore, 0); uint256 balanceBeforeCustody = token.balanceOf(address(custody)); @@ -227,26 +272,28 @@ contract GatewayEVMTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, IReceiver assertEq(balanceGateway, 0); } - function testForwardCallToReceiveERC20PartialThroughCustodyFailsIfSenderIsNotTSS() public { - uint256 amount = 100000; - bytes memory data = abi.encodeWithSignature("receiveERC20Partial(uint256,address,address)", amount, address(token), destination); - + function testForwardCallToReceiveERC20PartialThroughCustodyFailsIfSenderIsNotWithdrawer() public { + uint256 amount = 100_000; + bytes memory data = + abi.encodeWithSignature("receiveERC20Partial(uint256,address,address)", amount, address(token), destination); + vm.prank(owner); - vm.expectRevert(InvalidSender.selector); + vm.expectRevert(abi.encodeWithSelector(AccessControlUnauthorizedAccount.selector, owner, WITHDRAWER_ROLE)); custody.withdrawAndCall(address(token), address(receiver), amount, data); } function testForwardCallToReceiveERC20PartialThroughCustodyFailsIfAmountIs0() public { uint256 amount = 0; - bytes memory data = abi.encodeWithSignature("receiveERC20Partial(uint256,address,address)", amount, address(token), destination); - + bytes memory data = + abi.encodeWithSignature("receiveERC20Partial(uint256,address,address)", amount, address(token), destination); + vm.prank(tssAddress); vm.expectRevert(InsufficientERC20Amount.selector); custody.withdrawAndCall(address(token), address(receiver), amount, data); } function testForwardCallToReceiveNoParamsThroughCustody() public { - uint256 amount = 100000; + uint256 amount = 100_000; bytes memory data = abi.encodeWithSignature("receiveNoParams()"); uint256 balanceBefore = token.balanceOf(destination); assertEq(balanceBefore, 0); @@ -279,7 +326,7 @@ contract GatewayEVMTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, IReceiver } function testWithdrawThroughCustody() public { - uint256 amount = 100000; + uint256 amount = 100_000; uint256 balanceBefore = token.balanceOf(destination); assertEq(balanceBefore, 0); uint256 balanceBeforeCustody = token.balanceOf(address(custody)); @@ -304,16 +351,16 @@ contract GatewayEVMTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, IReceiver assertEq(balanceGateway, 0); } - function testWithdrawThroughCustodyFailsIfSenderIsNotTSS() public { - uint256 amount = 100000; + function testWithdrawThroughCustodyFailsIfSenderIsNotWithdrawer() public { + uint256 amount = 100_000; vm.prank(owner); - vm.expectRevert(InvalidSender.selector); + vm.expectRevert(abi.encodeWithSelector(AccessControlUnauthorizedAccount.selector, owner, WITHDRAWER_ROLE)); custody.withdraw(address(token), destination, amount); } function testWithdrawAndRevertThroughCustody() public { - uint256 amount = 100000; + uint256 amount = 100_000; bytes memory data = abi.encodePacked("hello"); uint256 balanceBefore = token.balanceOf(address(receiver)); assertEq(balanceBefore, 0); @@ -348,12 +395,12 @@ contract GatewayEVMTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, IReceiver assertEq(balanceGateway, 0); } - function testWithdrawAndRevertThroughCustodyFailsIfSenderIsNotTSS() public { - uint256 amount = 100000; + function testWithdrawAndRevertThroughCustodyFailsIfSenderIsNotWithdrawer() public { + uint256 amount = 100_000; bytes memory data = abi.encodePacked("hello"); vm.prank(owner); - vm.expectRevert(InvalidSender.selector); + vm.expectRevert(abi.encodeWithSelector(AccessControlUnauthorizedAccount.selector, owner, WITHDRAWER_ROLE)); custody.withdrawAndRevert(address(token), address(receiver), amount, data); } @@ -378,7 +425,7 @@ contract GatewayEVMTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, IReceiver vm.expectEmit(true, true, true, true, address(gateway)); emit Reverted(address(receiver), 1 ether, data); vm.prank(tssAddress); - gateway.executeRevert{value: value}(address(receiver), data); + gateway.executeRevert{ value: value }(address(receiver), data); // Verify that the tokens were transferred to the receiver address uint256 balanceAfter = address(receiver).balance; @@ -390,16 +437,17 @@ contract GatewayEVMTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, IReceiver bytes memory data = abi.encodePacked("hello"); vm.prank(owner); - vm.expectRevert(InvalidSender.selector); - gateway.executeRevert{value: value}(address(receiver), data); + vm.expectRevert(abi.encodeWithSelector(AccessControlUnauthorizedAccount.selector, owner, TSS_ROLE)); + gateway.executeRevert{ value: value }(address(receiver), data); } } contract GatewayEVMInboundTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, IReceiverEVMEvents { using SafeERC20 for IERC20; + address proxy; GatewayEVM gateway; - ERC20CustodyNew custody; + ERC20Custody custody; ZetaConnectorNonNative zetaConnector; TestERC20 token; TestERC20 zeta; @@ -407,7 +455,7 @@ contract GatewayEVMInboundTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, IR address destination; address tssAddress; - uint256 ownerAmount = 1000000; + uint256 ownerAmount = 1_000_000; function setUp() public { owner = address(this); @@ -416,17 +464,17 @@ contract GatewayEVMInboundTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, IR token = new TestERC20("test", "TTK"); zeta = new TestERC20("zeta", "ZETA"); - address proxy = address(new ERC1967Proxy( - address(new GatewayEVM()), - abi.encodeWithSelector(GatewayEVM.initialize.selector, tssAddress, address(zeta)) - )); + + proxy = Upgrades.deployUUPSProxy( + "GatewayEVM.sol", abi.encodeCall(GatewayEVM.initialize, (tssAddress, address(zeta), owner)) + ); gateway = GatewayEVM(proxy); - custody = new ERC20CustodyNew(address(gateway), tssAddress); - zetaConnector = new ZetaConnectorNonNative(address(gateway), address(zeta), tssAddress); + custody = new ERC20Custody(address(gateway), tssAddress, owner); + zetaConnector = new ZetaConnectorNonNative(address(gateway), address(zeta), tssAddress, owner); vm.deal(tssAddress, 1 ether); - vm.startPrank(tssAddress); + vm.startPrank(owner); gateway.setCustody(address(custody)); gateway.setConnector(address(zetaConnector)); vm.stopPrank(); @@ -435,7 +483,7 @@ contract GatewayEVMInboundTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, IR } function testDepositERC20ToCustody() public { - uint256 amount = 100000; + uint256 amount = 100_000; uint256 custodyBalanceBefore = token.balanceOf(address(custody)); assertEq(0, custodyBalanceBefore); @@ -462,12 +510,12 @@ contract GatewayEVMInboundTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, IR } function testDepositEthToTss() public { - uint256 amount = 100000; + uint256 amount = 100_000; uint256 tssBalanceBefore = tssAddress.balance; vm.expectEmit(true, true, true, true, address(gateway)); emit Deposit(owner, destination, amount, address(0), ""); - gateway.deposit{value: amount}(destination); + gateway.deposit{ value: amount }(destination); uint256 tssBalanceAfter = tssAddress.balance; assertEq(tssBalanceBefore + amount, tssBalanceAfter); @@ -477,11 +525,11 @@ contract GatewayEVMInboundTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, IR uint256 amount = 0; vm.expectRevert("InsufficientETHAmount"); - gateway.deposit{value: amount}(destination); + gateway.deposit{ value: amount }(destination); } function testDepositERC20ToCustodyWithPayload() public { - uint256 amount = 100000; + uint256 amount = 100_000; uint256 custodyBalanceBefore = token.balanceOf(address(custody)); assertEq(0, custodyBalanceBefore); @@ -510,13 +558,13 @@ contract GatewayEVMInboundTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, IR } function testDepositEthToTssWithPayload() public { - uint256 amount = 100000; + uint256 amount = 100_000; uint256 tssBalanceBefore = tssAddress.balance; bytes memory payload = abi.encodeWithSignature("hello(address)", destination); vm.expectEmit(true, true, true, true, address(gateway)); emit Deposit(owner, destination, amount, address(0), payload); - gateway.depositAndCall{value: amount}(destination, payload); + gateway.depositAndCall{ value: amount }(destination, payload); uint256 tssBalanceAfter = tssAddress.balance; assertEq(tssBalanceBefore + amount, tssBalanceAfter); @@ -527,7 +575,7 @@ contract GatewayEVMInboundTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, IR bytes memory payload = abi.encodeWithSignature("hello(address)", destination); vm.expectRevert("InsufficientETHAmount"); - gateway.depositAndCall{value: amount}(destination, payload); + gateway.depositAndCall{ value: amount }(destination, payload); } function testCallWithPayload() public { @@ -537,4 +585,4 @@ contract GatewayEVMInboundTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, IR emit Call(owner, destination, payload); gateway.call(destination, payload); } -} \ No newline at end of file +} diff --git a/testFoundry/GatewayEVMUpgrade.t.sol b/v2/test/GatewayEVMUpgrade.t.sol similarity index 63% rename from testFoundry/GatewayEVMUpgrade.t.sol rename to v2/test/GatewayEVMUpgrade.t.sol index 84e563a7..8fcb1ac6 100644 --- a/testFoundry/GatewayEVMUpgrade.t.sol +++ b/v2/test/GatewayEVMUpgrade.t.sol @@ -1,30 +1,37 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; +pragma solidity 0.8.26; import "forge-std/Test.sol"; import "forge-std/Vm.sol"; -import "contracts/prototypes/evm/GatewayEVM.sol"; -import "contracts/prototypes/evm/GatewayEVMUpgradeTest.sol"; -import "contracts/prototypes/evm/ReceiverEVM.sol"; -import "contracts/prototypes/evm/ERC20CustodyNew.sol"; -import "contracts/prototypes/evm/ZetaConnectorNonNative.sol"; -import "contracts/prototypes/evm/TestERC20.sol"; +import "./utils/GatewayEVMUpgradeTest.sol"; + +import "./utils/IReceiverEVM.sol"; +import "./utils/ReceiverEVM.sol"; +import "./utils/TestERC20.sol"; +import { ERC1967Proxy } from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; + +import { ERC1967Proxy } from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; -import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; -import {Upgrades} from "openzeppelin-foundry-upgrades/LegacyUpgrades.sol"; +import { Upgrades } from "openzeppelin-foundry-upgrades/Upgrades.sol"; + +import "./utils/IReceiverEVM.sol"; + +import "src/evm/ERC20Custody.sol"; +import "src/evm/GatewayEVM.sol"; +import "src/evm/ZetaConnectorNonNative.sol"; +import "src/evm/interfaces/IGatewayEVM.sol"; -import "contracts/prototypes/evm/IGatewayEVM.sol"; -import "contracts/prototypes/evm/IReceiverEVM.sol"; contract GatewayEVMUUPSUpgradeTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, IReceiverEVMEvents { using SafeERC20 for IERC20; + event ExecutedV2(address indexed destination, uint256 value, bytes data); address proxy; GatewayEVM gateway; ReceiverEVM receiver; - ERC20CustodyNew custody; + ERC20Custody custody; ZetaConnectorNonNative zetaConnector; TestERC20 token; TestERC20 zeta; @@ -40,25 +47,24 @@ contract GatewayEVMUUPSUpgradeTest is Test, IGatewayEVMErrors, IGatewayEVMEvents token = new TestERC20("test", "TTK"); zeta = new TestERC20("zeta", "ZETA"); - proxy = address(new ERC1967Proxy( - address(new GatewayEVM()), - abi.encodeWithSelector(GatewayEVM.initialize.selector, tssAddress, zeta) - )); + proxy = Upgrades.deployUUPSProxy( + "GatewayEVM.sol", abi.encodeCall(GatewayEVM.initialize, (tssAddress, address(zeta), owner)) + ); gateway = GatewayEVM(proxy); - custody = new ERC20CustodyNew(address(gateway), tssAddress); - zetaConnector = new ZetaConnectorNonNative(address(gateway), address(zeta), tssAddress); + custody = new ERC20Custody(address(gateway), tssAddress, owner); + zetaConnector = new ZetaConnectorNonNative(address(gateway), address(zeta), tssAddress, owner); receiver = new ReceiverEVM(); vm.deal(tssAddress, 1 ether); - vm.startPrank(tssAddress); + vm.startPrank(owner); gateway.setCustody(address(custody)); gateway.setConnector(address(zetaConnector)); vm.stopPrank(); - token.mint(owner, 1000000); - token.transfer(address(custody), 500000); + token.mint(owner, 1_000_000); + token.transfer(address(custody), 500_000); vm.deal(tssAddress, 1 ether); } @@ -72,13 +78,7 @@ contract GatewayEVMUUPSUpgradeTest is Test, IGatewayEVMErrors, IGatewayEVMEvents bool flag = true; uint256 value = 1 ether; - vm.prank(owner); - Upgrades.upgradeProxy( - proxy, - "GatewayEVMUpgradeTest.sol", - "", - owner - ); + Upgrades.upgradeProxy(proxy, "GatewayEVMUpgradeTest.sol", "", owner); bytes memory data = abi.encodeWithSignature("receivePayable(string,uint256,bool)", str, num, flag); GatewayEVMUpgradeTest gatewayUpgradeTest = GatewayEVMUpgradeTest(proxy); @@ -89,9 +89,9 @@ contract GatewayEVMUUPSUpgradeTest is Test, IGatewayEVMErrors, IGatewayEVMEvents vm.expectEmit(true, true, true, true, address(gateway)); emit ExecutedV2(address(receiver), value, data); vm.prank(tssAddress); - gatewayUpgradeTest.execute{value: value}(address(receiver), data); + gatewayUpgradeTest.execute{ value: value }(address(receiver), data); assertEq(custodyBeforeUpgrade, gateway.custody()); assertEq(tssBeforeUpgrade, gateway.tssAddress()); } -} \ No newline at end of file +} diff --git a/testFoundry/GatewayEVMZEVM.t.sol b/v2/test/GatewayEVMZEVM.t.sol similarity index 66% rename from testFoundry/GatewayEVMZEVM.t.sol rename to v2/test/GatewayEVMZEVM.t.sol index 8859013e..322cc0e9 100644 --- a/testFoundry/GatewayEVMZEVM.t.sol +++ b/v2/test/GatewayEVMZEVM.t.sol @@ -1,36 +1,44 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.7; +pragma solidity 0.8.26; import "forge-std/Test.sol"; import "forge-std/Vm.sol"; -import "contracts/prototypes/evm/GatewayEVM.sol"; -import "contracts/prototypes/evm/ReceiverEVM.sol"; -import "contracts/prototypes/evm/ERC20CustodyNew.sol"; -import "contracts/prototypes/evm/ZetaConnectorNonNative.sol"; -import "contracts/prototypes/evm/TestERC20.sol"; -import "contracts/prototypes/evm/ReceiverEVM.sol"; +import "./utils/ReceiverEVM.sol"; -import "contracts/prototypes/zevm/GatewayZEVM.sol"; -import "contracts/prototypes/zevm/SenderZEVM.sol"; -import "contracts/zevm/ZRC20New.sol"; -import "contracts/zevm/testing/SystemContractMock.sol"; +import "./utils/TestERC20.sol"; +import "src/evm/ERC20Custody.sol"; +import "src/evm/GatewayEVM.sol"; +import "src/evm/ZetaConnectorNonNative.sol"; + +import "./utils/SenderZEVM.sol"; + +import "./utils/SystemContractMock.sol"; +import "./utils/ZRC20.sol"; +import "src/zevm/GatewayZEVM.sol"; + +import "./utils/IReceiverEVM.sol"; +import "src/evm/interfaces/IGatewayEVM.sol"; +import "src/zevm/interfaces/IGatewayZEVM.sol"; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; -import "contracts/prototypes/evm/IGatewayEVM.sol"; -import "contracts/prototypes/evm/IReceiverEVM.sol"; -import "contracts/prototypes/zevm/IGatewayZEVM.sol"; -import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; -import {Upgrades} from "openzeppelin-foundry-upgrades/LegacyUpgrades.sol"; - -contract GatewayEVMZEVMTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, IGatewayZEVMEvents, IGatewayZEVMErrors, IReceiverEVMEvents { +import { Upgrades } from "openzeppelin-foundry-upgrades/Upgrades.sol"; + +contract GatewayEVMZEVMTest is + Test, + IGatewayEVMErrors, + IGatewayEVMEvents, + IGatewayZEVMEvents, + IGatewayZEVMErrors, + IReceiverEVMEvents +{ // evm using SafeERC20 for IERC20; address proxyEVM; GatewayEVM gatewayEVM; - ERC20CustodyNew custody; + ERC20Custody custody; ZetaConnectorNonNative zetaConnector; TestERC20 token; TestERC20 zeta; @@ -44,9 +52,9 @@ contract GatewayEVMZEVMTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, IGate GatewayZEVM gatewayZEVM; SenderZEVM senderZEVM; SystemContractMock systemContract; - ZRC20New zrc20; + ZRC20 zrc20; address ownerZEVM; - + function setUp() public { // evm ownerEVM = address(this); @@ -57,45 +65,46 @@ contract GatewayEVMZEVMTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, IGate token = new TestERC20("test", "TTK"); zeta = new TestERC20("zeta", "ZETA"); - proxyEVM = address(new ERC1967Proxy( - address(new GatewayEVM()), - abi.encodeWithSelector(GatewayEVM.initialize.selector, tssAddress, address(zeta)) - )); + proxyEVM = Upgrades.deployUUPSProxy( + "GatewayEVM.sol", abi.encodeCall(GatewayEVM.initialize, (tssAddress, address(zeta), ownerEVM)) + ); gatewayEVM = GatewayEVM(proxyEVM); - custody = new ERC20CustodyNew(address(gatewayEVM), tssAddress); - zetaConnector = new ZetaConnectorNonNative(address(gatewayEVM), address(zeta), tssAddress); + custody = new ERC20Custody(address(gatewayEVM), tssAddress, ownerEVM); + zetaConnector = new ZetaConnectorNonNative(address(gatewayEVM), address(zeta), tssAddress, ownerEVM); vm.deal(tssAddress, 1 ether); - vm.startPrank(tssAddress); + vm.startPrank(ownerEVM); gatewayEVM.setCustody(address(custody)); gatewayEVM.setConnector(address(zetaConnector)); vm.stopPrank(); - token.mint(ownerEVM, 1000000); - token.transfer(address(custody), 500000); + token.mint(ownerEVM, 1_000_000); + token.transfer(address(custody), 500_000); receiverEVM = new ReceiverEVM(); // zevm - proxyZEVM = payable(address(new ERC1967Proxy( - address(new GatewayZEVM()), - abi.encodeWithSelector(GatewayZEVM.initialize.selector, "") - ))); + proxyZEVM = payable( + Upgrades.deployUUPSProxy( + "GatewayZEVM.sol", abi.encodeCall(GatewayZEVM.initialize, (address(zeta), ownerZEVM)) + ) + ); gatewayZEVM = GatewayZEVM(proxyZEVM); + senderZEVM = new SenderZEVM(address(gatewayZEVM)); address fungibleModuleAddress = address(0x735b14BB79463307AAcBED86DAf3322B1e6226aB); vm.startPrank(fungibleModuleAddress); systemContract = new SystemContractMock(address(0), address(0), address(0)); - zrc20 = new ZRC20New("TOKEN", "TKN", 18, 1, CoinType.Zeta, 0, address(systemContract), address(gatewayZEVM)); + zrc20 = new ZRC20("TOKEN", "TKN", 18, 1, CoinType.Zeta, 0, address(systemContract), address(gatewayZEVM)); systemContract.setGasCoinZRC20(1, address(zrc20)); systemContract.setGasPrice(1, 1); - zrc20.deposit(ownerZEVM, 1000000); - zrc20.deposit(address(senderZEVM), 1000000); + zrc20.deposit(ownerZEVM, 1_000_000); + zrc20.deposit(address(senderZEVM), 1_000_000); vm.stopPrank(); vm.prank(ownerZEVM); - zrc20.approve(address(gatewayZEVM), 1000000); + zrc20.approve(address(gatewayZEVM), 1_000_000); vm.deal(tssAddress, 1 ether); } @@ -105,20 +114,21 @@ contract GatewayEVMZEVMTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, IGate uint256 num = 42; bool flag = true; uint256 value = 1 ether; + uint256 chainId = 1; // Encode the function call data and call on zevm bytes memory message = abi.encodeWithSelector(receiverEVM.receivePayable.selector, str, num, flag); vm.prank(ownerZEVM); vm.expectEmit(true, true, true, true, address(gatewayZEVM)); - emit Call(address(ownerZEVM), abi.encodePacked(receiverEVM), message); - gatewayZEVM.call(abi.encodePacked(receiverEVM), message); + emit Call(address(ownerZEVM), chainId, abi.encodePacked(receiverEVM), message); + gatewayZEVM.call(abi.encodePacked(receiverEVM), chainId, message); // Call execute on evm vm.deal(address(gatewayEVM), value); vm.expectEmit(true, true, true, true, address(gatewayEVM)); emit Executed(address(receiverEVM), value, message); vm.prank(tssAddress); - gatewayEVM.execute{value: value}(address(receiverEVM), message); + gatewayEVM.execute{ value: value }(address(receiverEVM), message); } function testCallReceiverEVMFromSenderZEVM() public { @@ -126,13 +136,15 @@ contract GatewayEVMZEVMTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, IGate uint256 num = 42; bool flag = true; uint256 value = 1 ether; + uint256 chainId = 1; // Encode the function call data and call on zevm bytes memory message = abi.encodeWithSelector(receiverEVM.receivePayable.selector, str, num, flag); - bytes memory data = abi.encodeWithSignature("call(bytes,bytes)", abi.encodePacked(receiverEVM), message); + bytes memory data = + abi.encodeWithSignature("call(bytes,uint256,bytes)", abi.encodePacked(receiverEVM), chainId, message); vm.expectCall(address(gatewayZEVM), 0, data); vm.prank(ownerZEVM); - senderZEVM.callReceiver(abi.encodePacked(receiverEVM), str, num, flag); + senderZEVM.callReceiver(abi.encodePacked(receiverEVM), chainId, str, num, flag); // Call execute on evm vm.deal(address(gatewayEVM), value); @@ -141,7 +153,7 @@ contract GatewayEVMZEVMTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, IGate vm.expectEmit(true, true, true, true, address(gatewayEVM)); emit Executed(address(receiverEVM), value, message); vm.prank(tssAddress); - gatewayEVM.execute{value: value}(address(receiverEVM), message); + gatewayEVM.execute{ value: value }(address(receiverEVM), message); } function testWithdrawAndCallReceiverEVMFromZEVM() public { @@ -155,20 +167,16 @@ contract GatewayEVMZEVMTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, IGate vm.expectEmit(true, true, true, true, address(gatewayZEVM)); emit Withdrawal( ownerZEVM, - address(zrc20), + 0, abi.encodePacked(receiverEVM), - 1000000, + address(zrc20), + 1_000_000, 0, zrc20.PROTOCOL_FLAT_FEE(), message ); vm.prank(ownerZEVM); - gatewayZEVM.withdrawAndCall( - abi.encodePacked(receiverEVM), - 1000000, - address(zrc20), - message - ); + gatewayZEVM.withdrawAndCall(abi.encodePacked(receiverEVM), 1_000_000, address(zrc20), message); // Check the balance after withdrawal uint256 balanceOfAfterWithdrawal = zrc20.balanceOf(ownerZEVM); @@ -181,7 +189,7 @@ contract GatewayEVMZEVMTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, IGate vm.expectEmit(true, true, true, true, address(gatewayEVM)); emit Executed(address(receiverEVM), value, message); vm.prank(tssAddress); - gatewayEVM.execute{value: value}(address(receiverEVM), message); + gatewayEVM.execute{ value: value }(address(receiverEVM), message); } function testWithdrawAndCallReceiverEVMFromSenderZEVM() public { @@ -193,10 +201,16 @@ contract GatewayEVMZEVMTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, IGate // Encode the function call data and call on zevm uint256 senderBalanceBeforeWithdrawal = IZRC20(zrc20).balanceOf(address(senderZEVM)); bytes memory message = abi.encodeWithSelector(receiverEVM.receivePayable.selector, str, num, flag); - bytes memory data = abi.encodeWithSignature("withdrawAndCall(bytes,uint256,address,bytes)", abi.encodePacked(receiverEVM), 1000000, address(zrc20), message); + bytes memory data = abi.encodeWithSignature( + "withdrawAndCall(bytes,uint256,address,bytes)", + abi.encodePacked(receiverEVM), + 1_000_000, + address(zrc20), + message + ); vm.expectCall(address(gatewayZEVM), 0, data); vm.prank(ownerZEVM); - senderZEVM.withdrawAndCallReceiver(abi.encodePacked(receiverEVM), 1000000, address(zrc20), str, num, flag); + senderZEVM.withdrawAndCallReceiver(abi.encodePacked(receiverEVM), 1_000_000, address(zrc20), str, num, flag); // Call execute on evm vm.deal(address(gatewayEVM), value); @@ -205,10 +219,10 @@ contract GatewayEVMZEVMTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, IGate vm.expectEmit(true, true, true, true, address(gatewayEVM)); emit Executed(address(receiverEVM), value, message); vm.prank(tssAddress); - gatewayEVM.execute{value: value}(address(receiverEVM), message); + gatewayEVM.execute{ value: value }(address(receiverEVM), message); // Check the balance after withdrawal uint256 senderBalanceAfterWithdrawal = IZRC20(zrc20).balanceOf(address(senderZEVM)); - assertEq(senderBalanceAfterWithdrawal, senderBalanceBeforeWithdrawal - 1000000); + assertEq(senderBalanceAfterWithdrawal, senderBalanceBeforeWithdrawal - 1_000_000); } -} \ No newline at end of file +} diff --git a/testFoundry/GatewayZEVM.t.sol b/v2/test/GatewayZEVM.t.sol similarity index 71% rename from testFoundry/GatewayZEVM.t.sol rename to v2/test/GatewayZEVM.t.sol index 4ea85486..3cd5c7df 100644 --- a/testFoundry/GatewayZEVM.t.sol +++ b/v2/test/GatewayZEVM.t.sol @@ -1,24 +1,24 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; +pragma solidity 0.8.26; import "forge-std/Test.sol"; import "forge-std/Vm.sol"; -import "contracts/prototypes/zevm/GatewayZEVM.sol"; -import "contracts/zevm/ZRC20New.sol"; -import "contracts/zevm/SystemContract.sol"; -import "contracts/zevm/interfaces/IZRC20.sol"; -import "contracts/prototypes/zevm/TestZContract.sol"; -import "contracts/prototypes/zevm/IGatewayZEVM.sol"; -import "contracts/zevm/WZETA.sol"; -import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; -import {Upgrades} from "openzeppelin-foundry-upgrades/LegacyUpgrades.sol"; -import "forge-std/console.sol"; +import "./utils/SystemContract.sol"; + +import "./utils/TestZContract.sol"; + +import "./utils/WZETA.sol"; +import "./utils/ZRC20.sol"; +import { Upgrades } from "openzeppelin-foundry-upgrades/Upgrades.sol"; +import "src/zevm/GatewayZEVM.sol"; +import "src/zevm/interfaces/IGatewayZEVM.sol"; +import "src/zevm/interfaces/IZRC20.sol"; contract GatewayZEVMInboundTest is Test, IGatewayZEVMEvents, IGatewayZEVMErrors { address payable proxy; GatewayZEVM gateway; - ZRC20New zrc20; + ZRC20 zrc20; WETH9 zetaToken; SystemContract systemContract; TestZContract testZContract; @@ -32,28 +32,30 @@ contract GatewayZEVMInboundTest is Test, IGatewayZEVMEvents, IGatewayZEVMErrors zetaToken = new WETH9(); - proxy = payable(address(new ERC1967Proxy( - address(new GatewayZEVM()), - abi.encodeWithSelector(GatewayZEVM.initialize.selector, address(zetaToken)) - ))); + proxy = payable( + Upgrades.deployUUPSProxy( + "GatewayZEVM.sol", abi.encodeCall(GatewayZEVM.initialize, (address(zetaToken), owner)) + ) + ); gateway = GatewayZEVM(proxy); + fungibleModule = gateway.FUNGIBLE_MODULE_ADDRESS(); testZContract = new TestZContract(); vm.startPrank(fungibleModule); systemContract = new SystemContract(address(0), address(0), address(0)); - zrc20 = new ZRC20New("TOKEN", "TKN", 18, 1, CoinType.Gas, 0, address(systemContract), address(gateway)); + zrc20 = new ZRC20("TOKEN", "TKN", 18, 1, CoinType.Gas, 0, address(systemContract), address(gateway)); systemContract.setGasCoinZRC20(1, address(zrc20)); systemContract.setGasPrice(1, 1); - vm.deal(fungibleModule, 1000000000); - zetaToken.deposit{value: 10}(); + vm.deal(fungibleModule, 1_000_000_000); + zetaToken.deposit{ value: 10 }(); zetaToken.approve(address(gateway), 10); - zrc20.deposit(owner, 100000); + zrc20.deposit(owner, 100_000); vm.stopPrank(); vm.startPrank(owner); - zrc20.approve(address(gateway), 100000); - zetaToken.deposit{value: 10}(); + zrc20.approve(address(gateway), 100_000); + zetaToken.deposit{ value: 10 }(); zetaToken.approve(address(gateway), 10); vm.stopPrank(); } @@ -63,8 +65,8 @@ contract GatewayZEVMInboundTest is Test, IGatewayZEVMEvents, IGatewayZEVMErrors uint256 ownerBalanceBefore = zrc20.balanceOf(owner); vm.expectEmit(true, true, true, true, address(gateway)); - emit Withdrawal(owner, address(zrc20), abi.encodePacked(addr1), amount, 0, zrc20.PROTOCOL_FLAT_FEE(), ""); - gateway.withdraw(abi.encodePacked(addr1), 1, address(zrc20)); + emit Withdrawal(owner, 0, abi.encodePacked(addr1), address(zrc20), amount, 0, zrc20.PROTOCOL_FLAT_FEE(), ""); + gateway.withdraw(abi.encodePacked(addr1), amount, address(zrc20)); uint256 ownerBalanceAfter = zrc20.balanceOf(owner); assertEq(ownerBalanceBefore - amount, ownerBalanceAfter); @@ -73,6 +75,7 @@ contract GatewayZEVMInboundTest is Test, IGatewayZEVMEvents, IGatewayZEVMErrors function testWithdrawZRC20FailsIfNoAllowance() public { uint256 amount = 1; uint256 ownerBalanceBefore = zrc20.balanceOf(owner); + // Remove allowance for gateway vm.prank(owner); zrc20.approve(address(gateway), 0); @@ -88,6 +91,7 @@ contract GatewayZEVMInboundTest is Test, IGatewayZEVMEvents, IGatewayZEVMErrors function testWithdrawZRC20WithMessageFailsIfNoAllowance() public { uint256 amount = 1; uint256 ownerBalanceBefore = zrc20.balanceOf(owner); + // Remove allowance for gateway vm.prank(owner); zrc20.approve(address(gateway), 0); @@ -107,7 +111,9 @@ contract GatewayZEVMInboundTest is Test, IGatewayZEVMEvents, IGatewayZEVMErrors bytes memory message = abi.encodeWithSignature("hello(address)", addr1); vm.expectEmit(true, true, true, true, address(gateway)); - emit Withdrawal(owner, address(zrc20), abi.encodePacked(addr1), amount, 0, zrc20.PROTOCOL_FLAT_FEE(), message); + emit Withdrawal( + owner, 0, abi.encodePacked(addr1), address(zrc20), amount, 0, zrc20.PROTOCOL_FLAT_FEE(), message + ); gateway.withdrawAndCall(abi.encodePacked(addr1), amount, address(zrc20), message); uint256 ownerBalanceAfter = zrc20.balanceOf(owner); @@ -119,17 +125,18 @@ contract GatewayZEVMInboundTest is Test, IGatewayZEVMEvents, IGatewayZEVMErrors uint256 ownerBalanceBefore = zetaToken.balanceOf(owner); uint256 gatewayBalanceBefore = zetaToken.balanceOf(address(gateway)); uint256 fungibleModuleBalanceBefore = fungibleModule.balance; + uint256 chainId = 1; vm.expectEmit(true, true, true, true, address(gateway)); - emit Withdrawal(owner, address(zetaToken), abi.encodePacked(fungibleModule), amount, 0, 0, ""); - gateway.withdraw(amount); + emit Withdrawal(owner, chainId, abi.encodePacked(fungibleModule), address(zetaToken), amount, 0, 0, ""); + gateway.withdraw(amount, chainId); uint256 ownerBalanceAfter = zetaToken.balanceOf(owner); assertEq(ownerBalanceBefore - 1, ownerBalanceAfter); uint256 gatewayBalanceAfter = zetaToken.balanceOf(address(gateway)); assertEq(gatewayBalanceBefore, gatewayBalanceAfter); - + // Verify amount is transfered to fungible module assertEq(fungibleModuleBalanceBefore + 1, fungibleModule.balance); } @@ -139,12 +146,14 @@ contract GatewayZEVMInboundTest is Test, IGatewayZEVMEvents, IGatewayZEVMErrors uint256 ownerBalanceBefore = zetaToken.balanceOf(owner); uint256 gatewayBalanceBefore = zetaToken.balanceOf(address(gateway)); uint256 fungibleModuleBalanceBefore = fungibleModule.balance; + uint256 chainId = 1; + // Remove allowance for gateway vm.prank(owner); zetaToken.approve(address(gateway), 0); vm.expectRevert(); - gateway.withdraw(amount); + gateway.withdraw(amount, chainId); // Verify balances not changed uint256 ownerBalanceAfter = zetaToken.balanceOf(owner); @@ -152,7 +161,7 @@ contract GatewayZEVMInboundTest is Test, IGatewayZEVMEvents, IGatewayZEVMErrors uint256 gatewayBalanceAfter = zetaToken.balanceOf(address(gateway)); assertEq(gatewayBalanceBefore, gatewayBalanceAfter); - + assertEq(fungibleModuleBalanceBefore, fungibleModule.balance); } @@ -162,17 +171,18 @@ contract GatewayZEVMInboundTest is Test, IGatewayZEVMEvents, IGatewayZEVMErrors uint256 gatewayBalanceBefore = zetaToken.balanceOf(address(gateway)); uint256 fungibleModuleBalanceBefore = fungibleModule.balance; bytes memory message = abi.encodeWithSignature("hello(address)", addr1); + uint256 chainId = 1; vm.expectEmit(true, true, true, true, address(gateway)); - emit Withdrawal(owner, address(zetaToken), abi.encodePacked(fungibleModule), amount, 0, 0, message); - gateway.withdrawAndCall(amount, message); + emit Withdrawal(owner, chainId, abi.encodePacked(fungibleModule), address(zetaToken), amount, 0, 0, message); + gateway.withdrawAndCall(amount, chainId, message); uint256 ownerBalanceAfter = zetaToken.balanceOf(owner); assertEq(ownerBalanceBefore - 1, ownerBalanceAfter); uint256 gatewayBalanceAfter = zetaToken.balanceOf(address(gateway)); assertEq(gatewayBalanceBefore, gatewayBalanceAfter); - + // Verify amount is transfered to fungible module assertEq(fungibleModuleBalanceBefore + 1, fungibleModule.balance); } @@ -183,12 +193,14 @@ contract GatewayZEVMInboundTest is Test, IGatewayZEVMEvents, IGatewayZEVMErrors uint256 gatewayBalanceBefore = zetaToken.balanceOf(address(gateway)); uint256 fungibleModuleBalanceBefore = fungibleModule.balance; bytes memory message = abi.encodeWithSignature("hello(address)", addr1); + uint256 chainId = 1; + // Remove allowance for gateway vm.prank(owner); zetaToken.approve(address(gateway), 0); vm.expectRevert(); - gateway.withdrawAndCall(amount, message); + gateway.withdrawAndCall(amount, chainId, message); // Verify balances not changed uint256 ownerBalanceAfter = zetaToken.balanceOf(owner); @@ -196,22 +208,24 @@ contract GatewayZEVMInboundTest is Test, IGatewayZEVMEvents, IGatewayZEVMErrors uint256 gatewayBalanceAfter = zetaToken.balanceOf(address(gateway)); assertEq(gatewayBalanceBefore, gatewayBalanceAfter); - + assertEq(fungibleModuleBalanceBefore, fungibleModule.balance); } function testCall() public { bytes memory message = abi.encodeWithSignature("hello(address)", addr1); vm.expectEmit(true, true, true, true, address(gateway)); - emit Call(owner, abi.encodePacked(addr1), message); - gateway.call(abi.encodePacked(addr1), message); + uint256 chainId = 1; + + emit Call(owner, chainId, abi.encodePacked(addr1), message); + gateway.call(abi.encodePacked(addr1), chainId, message); } } contract GatewayZEVMOutboundTest is Test, IGatewayZEVMEvents, IGatewayZEVMErrors { address payable proxy; GatewayZEVM gateway; - ZRC20New zrc20; + ZRC20 zrc20; WETH9 zetaToken; SystemContract systemContract; TestZContract testZContract; @@ -222,35 +236,42 @@ contract GatewayZEVMOutboundTest is Test, IGatewayZEVMEvents, IGatewayZEVMErrors event ContextData(bytes origin, address sender, uint256 chainID, address msgSender, string message); event ContextDataRevert(bytes origin, address sender, uint256 chainID, address msgSender, string message); + error EnforcedPause(); + error AccessControlUnauthorizedAccount(address account, bytes32 neededRole); + + bytes32 public constant PAUSER_ROLE = keccak256("PAUSER_ROLE"); + function setUp() public { owner = address(this); addr1 = address(0x1234); zetaToken = new WETH9(); - proxy = payable(address(new ERC1967Proxy( - address(new GatewayZEVM()), - abi.encodeWithSelector(GatewayZEVM.initialize.selector, address(zetaToken)) - ))); + proxy = payable( + Upgrades.deployUUPSProxy( + "GatewayZEVM.sol", abi.encodeCall(GatewayZEVM.initialize, (address(zetaToken), owner)) + ) + ); gateway = GatewayZEVM(proxy); + fungibleModule = gateway.FUNGIBLE_MODULE_ADDRESS(); testZContract = new TestZContract(); vm.startPrank(fungibleModule); systemContract = new SystemContract(address(0), address(0), address(0)); - zrc20 = new ZRC20New("TOKEN", "TKN", 18, 1, CoinType.Gas, 0, address(systemContract), address(gateway)); + zrc20 = new ZRC20("TOKEN", "TKN", 18, 1, CoinType.Gas, 0, address(systemContract), address(gateway)); systemContract.setGasCoinZRC20(1, address(zrc20)); systemContract.setGasPrice(1, 1); - vm.deal(fungibleModule, 1000000000); - zetaToken.deposit{value: 10}(); + vm.deal(fungibleModule, 1_000_000_000); + zetaToken.deposit{ value: 10 }(); zetaToken.approve(address(gateway), 10); - zrc20.deposit(owner, 100000); + zrc20.deposit(owner, 100_000); vm.stopPrank(); vm.startPrank(owner); - zrc20.approve(address(gateway), 100000); - zetaToken.deposit{value: 10}(); + zrc20.approve(address(gateway), 100_000); + zetaToken.deposit{ value: 10 }(); zetaToken.approve(address(gateway), 10); vm.stopPrank(); } @@ -267,6 +288,37 @@ contract GatewayZEVMOutboundTest is Test, IGatewayZEVMEvents, IGatewayZEVMErrors assertEq(amount, balanceAfter); } + function testDepositTogglePause() public { + vm.prank(fungibleModule); + vm.expectRevert(abi.encodeWithSelector(AccessControlUnauthorizedAccount.selector, fungibleModule, PAUSER_ROLE)); + gateway.pause(); + + vm.prank(fungibleModule); + vm.expectRevert(abi.encodeWithSelector(AccessControlUnauthorizedAccount.selector, fungibleModule, PAUSER_ROLE)); + gateway.unpause(); + + vm.prank(owner); + gateway.pause(); + + uint256 amount = 1; + + vm.expectRevert(EnforcedPause.selector); + vm.prank(fungibleModule); + gateway.deposit(address(zrc20), amount, addr1); + + vm.prank(owner); + gateway.unpause(); + + uint256 balanceBefore = zrc20.balanceOf(addr1); + assertEq(0, balanceBefore); + + vm.prank(fungibleModule); + gateway.deposit(address(zrc20), amount, addr1); + + uint256 balanceAfter = zrc20.balanceOf(addr1); + assertEq(amount, balanceAfter); + } + function testDepositFailsIfSenderNotFungibleModule() public { uint256 amount = 1; uint256 balanceBefore = zrc20.balanceOf(addr1); @@ -297,11 +349,8 @@ contract GatewayZEVMOutboundTest is Test, IGatewayZEVMEvents, IGatewayZEVMErrors function testExecuteZContract() public { bytes memory message = abi.encode("hello"); - zContext memory context = zContext({ - origin: abi.encodePacked(address(gateway)), - sender: fungibleModule, - chainID: 1 - }); + zContext memory context = + zContext({ origin: abi.encodePacked(address(gateway)), sender: fungibleModule, chainID: 1 }); vm.expectEmit(true, true, true, true, address(testZContract)); emit ContextData(abi.encodePacked(gateway), fungibleModule, 1, address(gateway), "hello"); @@ -311,11 +360,8 @@ contract GatewayZEVMOutboundTest is Test, IGatewayZEVMEvents, IGatewayZEVMErrors function testExecuteZContractFailsIfSenderIsNotFungibleModule() public { bytes memory message = abi.encode("hello"); - zContext memory context = zContext({ - origin: abi.encodePacked(address(gateway)), - sender: fungibleModule, - chainID: 1 - }); + zContext memory context = + zContext({ origin: abi.encodePacked(address(gateway)), sender: fungibleModule, chainID: 1 }); vm.expectRevert(CallerIsNotFungibleModule.selector); vm.prank(owner); @@ -324,11 +370,8 @@ contract GatewayZEVMOutboundTest is Test, IGatewayZEVMEvents, IGatewayZEVMErrors function testExecuteRevertZContract() public { bytes memory message = abi.encode("hello"); - revertContext memory context = revertContext({ - origin: abi.encodePacked(address(gateway)), - sender: fungibleModule, - chainID: 1 - }); + revertContext memory context = + revertContext({ origin: abi.encodePacked(address(gateway)), sender: fungibleModule, chainID: 1 }); vm.expectEmit(true, true, true, true, address(testZContract)); emit ContextDataRevert(abi.encodePacked(gateway), fungibleModule, 1, address(gateway), "hello"); @@ -336,30 +379,24 @@ contract GatewayZEVMOutboundTest is Test, IGatewayZEVMEvents, IGatewayZEVMErrors gateway.executeRevert(context, address(zrc20), 1, address(testZContract), message); } - function testExecuteRevertZContractIfSenderIsNotFungibleModule() public { + function testExecuteRevertZContractIfSenderIsNotFungibleModule() public { bytes memory message = abi.encode("hello"); - revertContext memory context = revertContext({ - origin: abi.encodePacked(address(gateway)), - sender: fungibleModule, - chainID: 1 - }); + revertContext memory context = + revertContext({ origin: abi.encodePacked(address(gateway)), sender: fungibleModule, chainID: 1 }); vm.expectRevert(CallerIsNotFungibleModule.selector); vm.prank(owner); gateway.executeRevert(context, address(zrc20), 1, address(testZContract), message); } - + function testDepositZRC20AndCallZContract() public { uint256 balanceBefore = zrc20.balanceOf(address(testZContract)); assertEq(0, balanceBefore); bytes memory message = abi.encode("hello"); - zContext memory context = zContext({ - origin: abi.encodePacked(address(gateway)), - sender: fungibleModule, - chainID: 1 - }); - + zContext memory context = + zContext({ origin: abi.encodePacked(address(gateway)), sender: fungibleModule, chainID: 1 }); + vm.expectEmit(true, true, true, true, address(testZContract)); emit ContextData(abi.encodePacked(gateway), fungibleModule, 1, address(gateway), "hello"); vm.prank(fungibleModule); @@ -371,12 +408,9 @@ contract GatewayZEVMOutboundTest is Test, IGatewayZEVMEvents, IGatewayZEVMErrors function testDepositZRC20AndCallZContractFailsIfSenderIsNotFungibleModule() public { bytes memory message = abi.encode("hello"); - zContext memory context = zContext({ - origin: abi.encodePacked(address(gateway)), - sender: fungibleModule, - chainID: 1 - }); - + zContext memory context = + zContext({ origin: abi.encodePacked(address(gateway)), sender: fungibleModule, chainID: 1 }); + vm.expectRevert(CallerIsNotFungibleModule.selector); vm.prank(owner); gateway.depositAndCall(context, address(zrc20), 1, address(testZContract), message); @@ -384,12 +418,9 @@ contract GatewayZEVMOutboundTest is Test, IGatewayZEVMEvents, IGatewayZEVMErrors function testDepositZRC20AndCallZContractIfTargetIsFungibleModule() public { bytes memory message = abi.encode("hello"); - zContext memory context = zContext({ - origin: abi.encodePacked(address(gateway)), - sender: fungibleModule, - chainID: 1 - }); - + zContext memory context = + zContext({ origin: abi.encodePacked(address(gateway)), sender: fungibleModule, chainID: 1 }); + vm.expectRevert(InvalidTarget.selector); vm.prank(fungibleModule); gateway.depositAndCall(context, address(zrc20), 1, fungibleModule, message); @@ -397,12 +428,9 @@ contract GatewayZEVMOutboundTest is Test, IGatewayZEVMEvents, IGatewayZEVMErrors function testDepositZRC20AndCallZContractIfTargetIsGateway() public { bytes memory message = abi.encode("hello"); - zContext memory context = zContext({ - origin: abi.encodePacked(address(gateway)), - sender: fungibleModule, - chainID: 1 - }); - + zContext memory context = + zContext({ origin: abi.encodePacked(address(gateway)), sender: fungibleModule, chainID: 1 }); + vm.expectRevert(InvalidTarget.selector); vm.prank(fungibleModule); gateway.depositAndCall(context, address(zrc20), 1, address(gateway), message); @@ -413,12 +441,9 @@ contract GatewayZEVMOutboundTest is Test, IGatewayZEVMEvents, IGatewayZEVMErrors assertEq(0, balanceBefore); bytes memory message = abi.encode("hello"); - revertContext memory context = revertContext({ - origin: abi.encodePacked(address(gateway)), - sender: fungibleModule, - chainID: 1 - }); - + revertContext memory context = + revertContext({ origin: abi.encodePacked(address(gateway)), sender: fungibleModule, chainID: 1 }); + vm.expectEmit(true, true, true, true, address(testZContract)); emit ContextDataRevert(abi.encodePacked(gateway), fungibleModule, 1, address(gateway), "hello"); vm.prank(fungibleModule); @@ -430,12 +455,9 @@ contract GatewayZEVMOutboundTest is Test, IGatewayZEVMEvents, IGatewayZEVMErrors function testDepositAndRevertZRC20AndCallZContractFailsIfSenderIsNotFungibleModule() public { bytes memory message = abi.encode("hello"); - revertContext memory context = revertContext({ - origin: abi.encodePacked(address(gateway)), - sender: fungibleModule, - chainID: 1 - }); - + revertContext memory context = + revertContext({ origin: abi.encodePacked(address(gateway)), sender: fungibleModule, chainID: 1 }); + vm.expectRevert(CallerIsNotFungibleModule.selector); vm.prank(owner); gateway.depositAndRevert(context, address(zrc20), 1, address(testZContract), message); @@ -443,25 +465,19 @@ contract GatewayZEVMOutboundTest is Test, IGatewayZEVMEvents, IGatewayZEVMErrors function testDepositAndRevertZRC20AndCallZContractFailsITargetIsFungibleModule() public { bytes memory message = abi.encode("hello"); - revertContext memory context = revertContext({ - origin: abi.encodePacked(address(gateway)), - sender: fungibleModule, - chainID: 1 - }); - + revertContext memory context = + revertContext({ origin: abi.encodePacked(address(gateway)), sender: fungibleModule, chainID: 1 }); + vm.expectRevert(InvalidTarget.selector); vm.prank(fungibleModule); gateway.depositAndRevert(context, address(zrc20), 1, fungibleModule, message); } - function testDepositAndRevertZRC20AndCallZContractFailsITargetIsGateway() public { + function testDepositAndRevertZRC20AndCallZContractFailsITargetIsGateway() public { bytes memory message = abi.encode("hello"); - revertContext memory context = revertContext({ - origin: abi.encodePacked(address(gateway)), - sender: fungibleModule, - chainID: 1 - }); - + revertContext memory context = + revertContext({ origin: abi.encodePacked(address(gateway)), sender: fungibleModule, chainID: 1 }); + vm.expectRevert(InvalidTarget.selector); vm.prank(fungibleModule); gateway.depositAndRevert(context, address(zrc20), 1, address(gateway), message); @@ -473,11 +489,8 @@ contract GatewayZEVMOutboundTest is Test, IGatewayZEVMEvents, IGatewayZEVMErrors uint256 gatewayBalanceBefore = zetaToken.balanceOf(address(gateway)); uint256 destinationBalanceBefore = address(testZContract).balance; bytes memory message = abi.encode("hello"); - zContext memory context = zContext({ - origin: abi.encodePacked(address(gateway)), - sender: fungibleModule, - chainID: 1 - }); + zContext memory context = + zContext({ origin: abi.encodePacked(address(gateway)), sender: fungibleModule, chainID: 1 }); vm.expectEmit(true, true, true, true, address(testZContract)); emit ContextData(abi.encodePacked(gateway), fungibleModule, amount, address(gateway), "hello"); @@ -489,7 +502,7 @@ contract GatewayZEVMOutboundTest is Test, IGatewayZEVMEvents, IGatewayZEVMErrors uint256 gatewayBalanceAfter = zetaToken.balanceOf(address(gateway)); assertEq(gatewayBalanceBefore, gatewayBalanceAfter); - + // Verify amount is transfered to destination assertEq(destinationBalanceBefore + amount, address(testZContract).balance); } @@ -497,11 +510,8 @@ contract GatewayZEVMOutboundTest is Test, IGatewayZEVMEvents, IGatewayZEVMErrors function testDepositZETAAndCallZContractFailsIfSenderIsNotFungibleModule() public { uint256 amount = 1; bytes memory message = abi.encode("hello"); - zContext memory context = zContext({ - origin: abi.encodePacked(address(gateway)), - sender: fungibleModule, - chainID: 1 - }); + zContext memory context = + zContext({ origin: abi.encodePacked(address(gateway)), sender: fungibleModule, chainID: 1 }); vm.expectRevert(CallerIsNotFungibleModule.selector); vm.prank(owner); @@ -511,28 +521,22 @@ contract GatewayZEVMOutboundTest is Test, IGatewayZEVMEvents, IGatewayZEVMErrors function testDepositZETAAndCallZContractFailsIfTargetIsFungibleModule() public { uint256 amount = 1; bytes memory message = abi.encode("hello"); - zContext memory context = zContext({ - origin: abi.encodePacked(address(gateway)), - sender: fungibleModule, - chainID: 1 - }); + zContext memory context = + zContext({ origin: abi.encodePacked(address(gateway)), sender: fungibleModule, chainID: 1 }); vm.expectRevert(InvalidTarget.selector); vm.prank(fungibleModule); gateway.depositAndCall(context, amount, fungibleModule, message); } - function testDepositZETAAndCallZContractFailsIfTargetIsGateway() public { + function testDepositZETAAndCallZContractFailsIfTargetIsGateway() public { uint256 amount = 1; bytes memory message = abi.encode("hello"); - zContext memory context = zContext({ - origin: abi.encodePacked(address(gateway)), - sender: fungibleModule, - chainID: 1 - }); + zContext memory context = + zContext({ origin: abi.encodePacked(address(gateway)), sender: fungibleModule, chainID: 1 }); vm.expectRevert(InvalidTarget.selector); vm.prank(fungibleModule); gateway.depositAndCall(context, amount, address(gateway), message); } -} \ No newline at end of file +} diff --git a/testFoundry/ZetaConnectorNative.t.sol b/v2/test/ZetaConnectorNative.t.sol similarity index 78% rename from testFoundry/ZetaConnectorNative.t.sol rename to v2/test/ZetaConnectorNative.t.sol index 9c20be84..87c0c1d6 100644 --- a/testFoundry/ZetaConnectorNative.t.sol +++ b/v2/test/ZetaConnectorNative.t.sol @@ -1,36 +1,49 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; +pragma solidity 0.8.26; import "forge-std/Test.sol"; import "forge-std/Vm.sol"; -import "contracts/prototypes/evm/GatewayEVM.sol"; -import "contracts/prototypes/evm/ReceiverEVM.sol"; -import "contracts/prototypes/evm/ERC20CustodyNew.sol"; -import "contracts/prototypes/evm/ZetaConnectorNative.sol"; -import "contracts/prototypes/evm/TestERC20.sol"; -import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; -import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; -import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; -import {Upgrades} from "openzeppelin-foundry-upgrades/LegacyUpgrades.sol"; +import "./utils/ReceiverEVM.sol"; -import "contracts/prototypes/evm/IGatewayEVM.sol"; -import "contracts/prototypes/evm/IReceiverEVM.sol"; -import "contracts/prototypes/evm/IZetaConnector.sol"; +import "./utils/TestERC20.sol"; -contract ZetaConnectorNativeTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, IReceiverEVMEvents, IZetaConnectorEvents { +import { ERC1967Proxy } from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; +import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; +import { Upgrades } from "openzeppelin-foundry-upgrades/Upgrades.sol"; + +import "./utils/IReceiverEVM.sol"; + +import "src/evm/ERC20Custody.sol"; +import "src/evm/GatewayEVM.sol"; +import "src/evm/ZetaConnectorNative.sol"; +import "src/evm/interfaces/IGatewayEVM.sol"; +import "src/evm/interfaces/IZetaConnector.sol"; + +contract ZetaConnectorNativeTest is + Test, + IGatewayEVMErrors, + IGatewayEVMEvents, + IReceiverEVMEvents, + IZetaConnectorEvents +{ using SafeERC20 for IERC20; address proxy; GatewayEVM gateway; ReceiverEVM receiver; - ERC20CustodyNew custody; + ERC20Custody custody; ZetaConnectorNative zetaConnector; TestERC20 zetaToken; address owner; address destination; address tssAddress; + error AccessControlUnauthorizedAccount(address account, bytes32 neededRole); + + bytes32 public constant WITHDRAWER_ROLE = keccak256("WITHDRAWER_ROLE"); + function setUp() public { owner = address(this); destination = address(0x1234); @@ -38,30 +51,29 @@ contract ZetaConnectorNativeTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, zetaToken = new TestERC20("zeta", "ZETA"); - proxy = address(new ERC1967Proxy( - address(new GatewayEVM()), - abi.encodeWithSelector(GatewayEVM.initialize.selector, tssAddress, address(zetaToken)) - )); + proxy = Upgrades.deployUUPSProxy( + "GatewayEVM.sol", abi.encodeCall(GatewayEVM.initialize, (tssAddress, address(zetaToken), owner)) + ); gateway = GatewayEVM(proxy); - custody = new ERC20CustodyNew(address(gateway), tssAddress); - zetaConnector = new ZetaConnectorNative(address(gateway), address(zetaToken), tssAddress); + custody = new ERC20Custody(address(gateway), tssAddress, owner); + zetaConnector = new ZetaConnectorNative(address(gateway), address(zetaToken), tssAddress, owner); receiver = new ReceiverEVM(); vm.deal(tssAddress, 1 ether); - vm.startPrank(tssAddress); + vm.startPrank(owner); gateway.setCustody(address(custody)); gateway.setConnector(address(zetaConnector)); vm.stopPrank(); - zetaToken.mint(address(zetaConnector), 5000000); + zetaToken.mint(address(zetaConnector), 5_000_000); vm.deal(tssAddress, 1 ether); } function testWithdraw() public { - uint256 amount = 100000; + uint256 amount = 100_000; bytes32 internalSendHash = ""; uint256 balanceBefore = zetaToken.balanceOf(destination); assertEq(balanceBefore, 0); @@ -76,19 +88,20 @@ contract ZetaConnectorNativeTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, assertEq(balanceAfter, amount); } - function testWithdrawFailsIfSenderIsNotTSS() public { - uint256 amount = 100000; + function testWithdrawFailsIfSenderIsNotWithdrawer() public { + uint256 amount = 100_000; bytes32 internalSendHash = ""; vm.prank(owner); - vm.expectRevert(InvalidSender.selector); + vm.expectRevert(abi.encodeWithSelector(AccessControlUnauthorizedAccount.selector, owner, WITHDRAWER_ROLE)); zetaConnector.withdraw(destination, amount, internalSendHash); } function testWithdrawAndCallReceiveERC20() public { - uint256 amount = 100000; + uint256 amount = 100_000; bytes32 internalSendHash = ""; - bytes memory data = abi.encodeWithSignature("receiveERC20(uint256,address,address)", amount, address(zetaToken), destination); + bytes memory data = + abi.encodeWithSignature("receiveERC20(uint256,address,address)", amount, address(zetaToken), destination); uint256 balanceBefore = zetaToken.balanceOf(destination); assertEq(balanceBefore, 0); uint256 balanceBeforeZetaConnector = zetaToken.balanceOf(address(zetaConnector)); @@ -119,18 +132,19 @@ contract ZetaConnectorNativeTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, assertEq(balanceGateway, 0); } - function testWithdrawAndCallReceiveERC20FailsIfSenderIsNotTSS() public { - uint256 amount = 100000; + function testWithdrawAndCallReceiveERC20FailsIfSenderIsNotWithdrawer() public { + uint256 amount = 100_000; bytes32 internalSendHash = ""; - bytes memory data = abi.encodeWithSignature("receiveERC20(uint256,address,address)", amount, address(zetaToken), destination); + bytes memory data = + abi.encodeWithSignature("receiveERC20(uint256,address,address)", amount, address(zetaToken), destination); vm.prank(owner); - vm.expectRevert(InvalidSender.selector); + vm.expectRevert(abi.encodeWithSelector(AccessControlUnauthorizedAccount.selector, owner, WITHDRAWER_ROLE)); zetaConnector.withdrawAndCall(address(receiver), amount, data, internalSendHash); } function testWithdrawAndCallReceiveNoParams() public { - uint256 amount = 100000; + uint256 amount = 100_000; bytes32 internalSendHash = ""; bytes memory data = abi.encodeWithSignature("receiveNoParams()"); uint256 balanceBefore = zetaToken.balanceOf(destination); @@ -164,9 +178,11 @@ contract ZetaConnectorNativeTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, } function testWithdrawAndCallReceiveERC20Partial() public { - uint256 amount = 100000; + uint256 amount = 100_000; bytes32 internalSendHash = ""; - bytes memory data = abi.encodeWithSignature("receiveERC20Partial(uint256,address,address)", amount, address(zetaToken), destination); + bytes memory data = abi.encodeWithSignature( + "receiveERC20Partial(uint256,address,address)", amount, address(zetaToken), destination + ); uint256 balanceBefore = zetaToken.balanceOf(destination); assertEq(balanceBefore, 0); uint256 balanceBeforeZetaConnector = zetaToken.balanceOf(address(zetaConnector)); @@ -198,7 +214,7 @@ contract ZetaConnectorNativeTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, } function testWithdrawAndRevert() public { - uint256 amount = 100000; + uint256 amount = 100_000; bytes32 internalSendHash = ""; bytes memory data = abi.encodePacked("hello"); uint256 balanceBefore = zetaToken.balanceOf(address(receiver)); @@ -234,13 +250,13 @@ contract ZetaConnectorNativeTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, assertEq(balanceGateway, 0); } - function testWithdrawAndRevertFailsIfSenderIsNotTSS() public { - uint256 amount = 100000; + function testWithdrawAndRevertFailsIfSenderIsNotWithdrawer() public { + uint256 amount = 100_000; bytes32 internalSendHash = ""; bytes memory data = abi.encodePacked("hello"); vm.prank(owner); - vm.expectRevert(InvalidSender.selector); + vm.expectRevert(abi.encodeWithSelector(AccessControlUnauthorizedAccount.selector, owner, WITHDRAWER_ROLE)); zetaConnector.withdrawAndRevert(address(receiver), amount, data, internalSendHash); } -} \ No newline at end of file +} diff --git a/testFoundry/ZetaConnectorNonNative.t.sol b/v2/test/ZetaConnectorNonNative.t.sol similarity index 72% rename from testFoundry/ZetaConnectorNonNative.t.sol rename to v2/test/ZetaConnectorNonNative.t.sol index a8f5540a..01739e69 100644 --- a/testFoundry/ZetaConnectorNonNative.t.sol +++ b/v2/test/ZetaConnectorNonNative.t.sol @@ -1,37 +1,49 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; +pragma solidity 0.8.26; import "forge-std/Test.sol"; import "forge-std/Vm.sol"; -import "contracts/prototypes/evm/GatewayEVM.sol"; -import "contracts/prototypes/evm/ReceiverEVM.sol"; -import "contracts/prototypes/evm/ERC20CustodyNew.sol"; -import "contracts/prototypes/evm/ZetaConnectorNonNative.sol"; -import "contracts/prototypes/evm/TestERC20.sol"; -import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; -import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; -import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; -import {Upgrades} from "openzeppelin-foundry-upgrades/LegacyUpgrades.sol"; +import "./utils/ReceiverEVM.sol"; -import "contracts/evm/Zeta.non-eth.sol"; -import "contracts/prototypes/evm/IGatewayEVM.sol"; -import "contracts/prototypes/evm/IReceiverEVM.sol"; -import "contracts/prototypes/evm/IZetaConnector.sol"; +import "./utils/TestERC20.sol"; -contract ZetaConnectorNonNativeTest is Test, IGatewayEVMErrors, IGatewayEVMEvents, IReceiverEVMEvents, IZetaConnectorEvents { +import { ERC1967Proxy } from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; +import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; +import { Upgrades } from "openzeppelin-foundry-upgrades/Upgrades.sol"; +import "src/evm/ERC20Custody.sol"; +import "src/evm/GatewayEVM.sol"; +import "src/evm/ZetaConnectorNonNative.sol"; + +import "./utils/IReceiverEVM.sol"; +import "./utils/Zeta.non-eth.sol"; +import "src/evm/interfaces/IGatewayEVM.sol"; +import "src/evm/interfaces/IZetaConnector.sol"; + +contract ZetaConnectorNonNativeTest is + Test, + IGatewayEVMErrors, + IGatewayEVMEvents, + IReceiverEVMEvents, + IZetaConnectorEvents +{ using SafeERC20 for IERC20; address proxy; GatewayEVM gateway; ReceiverEVM receiver; - ERC20CustodyNew custody; + ERC20Custody custody; ZetaConnectorNonNative zetaConnector; ZetaNonEth zetaToken; address owner; address destination; address tssAddress; + error AccessControlUnauthorizedAccount(address account, bytes32 neededRole); + + bytes32 public constant WITHDRAWER_ROLE = keccak256("WITHDRAWER_ROLE"); + function setUp() public { owner = address(this); destination = address(0x1234); @@ -39,13 +51,13 @@ contract ZetaConnectorNonNativeTest is Test, IGatewayEVMErrors, IGatewayEVMEvent zetaToken = new ZetaNonEth(tssAddress, tssAddress); - proxy = address(new ERC1967Proxy( - address(new GatewayEVM()), - abi.encodeWithSelector(GatewayEVM.initialize.selector, tssAddress, address(zetaToken)) - )); + proxy = Upgrades.deployUUPSProxy( + "GatewayEVM.sol", abi.encodeCall(GatewayEVM.initialize, (tssAddress, address(zetaToken), owner)) + ); gateway = GatewayEVM(proxy); - custody = new ERC20CustodyNew(address(gateway), tssAddress); - zetaConnector = new ZetaConnectorNonNative(address(gateway), address(zetaToken), tssAddress); + + custody = new ERC20Custody(address(gateway), tssAddress, owner); + zetaConnector = new ZetaConnectorNonNative(address(gateway), address(zetaToken), tssAddress, owner); vm.prank(tssAddress); zetaToken.updateTssAndConnectorAddresses(tssAddress, address(zetaConnector)); @@ -54,21 +66,20 @@ contract ZetaConnectorNonNativeTest is Test, IGatewayEVMErrors, IGatewayEVMEvent vm.deal(tssAddress, 1 ether); - vm.startPrank(tssAddress); + vm.startPrank(owner); gateway.setCustody(address(custody)); gateway.setConnector(address(zetaConnector)); vm.stopPrank(); - - vm.deal(tssAddress, 1 ether); } function testWithdraw() public { - uint256 amount = 100000; + uint256 amount = 100_000; uint256 balanceBefore = zetaToken.balanceOf(destination); assertEq(balanceBefore, 0); bytes32 internalSendHash = ""; - bytes memory data = abi.encodeWithSignature("mint(address,uint256,bytes32)", destination, amount, internalSendHash); + bytes memory data = + abi.encodeWithSignature("mint(address,uint256,bytes32)", destination, amount, internalSendHash); vm.expectCall(address(zetaToken), 0, data); vm.expectEmit(true, true, true, true, address(zetaConnector)); emit Withdraw(destination, amount); @@ -78,25 +89,27 @@ contract ZetaConnectorNonNativeTest is Test, IGatewayEVMErrors, IGatewayEVMEvent assertEq(balanceAfter, amount); } - function testWithdrawFailsIfSenderIsNotTSS() public { - uint256 amount = 100000; + function testWithdrawFailsIfSenderIsNotWithdrawer() public { + uint256 amount = 100_000; bytes32 internalSendHash = ""; vm.prank(owner); - vm.expectRevert(InvalidSender.selector); + vm.expectRevert(abi.encodeWithSelector(AccessControlUnauthorizedAccount.selector, owner, WITHDRAWER_ROLE)); zetaConnector.withdraw(destination, amount, internalSendHash); } function testWithdrawAndCallReceiveERC20() public { - uint256 amount = 100000; + uint256 amount = 100_000; bytes32 internalSendHash = ""; - bytes memory data = abi.encodeWithSignature("receiveERC20(uint256,address,address)", amount, address(zetaToken), destination); + bytes memory data = + abi.encodeWithSignature("receiveERC20(uint256,address,address)", amount, address(zetaToken), destination); uint256 balanceBefore = zetaToken.balanceOf(destination); assertEq(balanceBefore, 0); uint256 balanceBeforeZetaConnector = zetaToken.balanceOf(address(zetaConnector)); assertEq(balanceBeforeZetaConnector, 0); - bytes memory mintData = abi.encodeWithSignature("mint(address,uint256,bytes32)", address(gateway), amount, internalSendHash); + bytes memory mintData = + abi.encodeWithSignature("mint(address,uint256,bytes32)", address(gateway), amount, internalSendHash); vm.expectCall(address(zetaToken), 0, mintData); vm.expectEmit(true, true, true, true, address(receiver)); emit ReceivedERC20(address(gateway), amount, address(zetaToken), destination); @@ -122,18 +135,19 @@ contract ZetaConnectorNonNativeTest is Test, IGatewayEVMErrors, IGatewayEVMEvent assertEq(balanceGateway, 0); } - function testWithdrawAndCallReceiveERC20FailsIfSenderIsNotTSS() public { - uint256 amount = 100000; + function testWithdrawAndCallReceiveERC20FailsIfSenderIsNotWithdrawer() public { + uint256 amount = 100_000; bytes32 internalSendHash = ""; - bytes memory data = abi.encodeWithSignature("receiveERC20(uint256,address,address)", amount, address(zetaToken), destination); + bytes memory data = + abi.encodeWithSignature("receiveERC20(uint256,address,address)", amount, address(zetaToken), destination); vm.prank(owner); - vm.expectRevert(InvalidSender.selector); + vm.expectRevert(abi.encodeWithSelector(AccessControlUnauthorizedAccount.selector, owner, WITHDRAWER_ROLE)); zetaConnector.withdrawAndCall(address(receiver), amount, data, internalSendHash); } function testWithdrawAndCallReceiveNoParams() public { - uint256 amount = 100000; + uint256 amount = 100_000; bytes32 internalSendHash = ""; bytes memory data = abi.encodeWithSignature("receiveNoParams()"); uint256 balanceBefore = zetaToken.balanceOf(destination); @@ -141,7 +155,8 @@ contract ZetaConnectorNonNativeTest is Test, IGatewayEVMErrors, IGatewayEVMEvent uint256 balanceBeforeZetaConnector = zetaToken.balanceOf(address(zetaConnector)); assertEq(balanceBeforeZetaConnector, 0); - bytes memory mintData = abi.encodeWithSignature("mint(address,uint256,bytes32)", address(gateway), amount, internalSendHash); + bytes memory mintData = + abi.encodeWithSignature("mint(address,uint256,bytes32)", address(gateway), amount, internalSendHash); vm.expectCall(address(zetaToken), 0, mintData); vm.expectEmit(true, true, true, true, address(receiver)); emit ReceivedNoParams(address(gateway)); @@ -168,15 +183,18 @@ contract ZetaConnectorNonNativeTest is Test, IGatewayEVMErrors, IGatewayEVMEvent } function testWithdrawAndCallReceiveERC20Partial() public { - uint256 amount = 100000; + uint256 amount = 100_000; bytes32 internalSendHash = ""; - bytes memory data = abi.encodeWithSignature("receiveERC20Partial(uint256,address,address)", amount, address(zetaToken), destination); + bytes memory data = abi.encodeWithSignature( + "receiveERC20Partial(uint256,address,address)", amount, address(zetaToken), destination + ); uint256 balanceBefore = zetaToken.balanceOf(destination); assertEq(balanceBefore, 0); uint256 balanceBeforeZetaConnector = zetaToken.balanceOf(address(zetaConnector)); assertEq(balanceBeforeZetaConnector, 0); - bytes memory mintData = abi.encodeWithSignature("mint(address,uint256,bytes32)", address(gateway), amount, internalSendHash); + bytes memory mintData = + abi.encodeWithSignature("mint(address,uint256,bytes32)", address(gateway), amount, internalSendHash); vm.expectCall(address(zetaToken), 0, mintData); vm.expectEmit(true, true, true, true, address(receiver)); emit ReceivedERC20(address(gateway), amount / 2, address(zetaToken), destination); @@ -203,14 +221,15 @@ contract ZetaConnectorNonNativeTest is Test, IGatewayEVMErrors, IGatewayEVMEvent } function testWithdrawAndRevert() public { - uint256 amount = 100000; + uint256 amount = 100_000; bytes32 internalSendHash = ""; bytes memory data = abi.encodePacked("hello"); uint256 balanceBefore = zetaToken.balanceOf(address(receiver)); assertEq(balanceBefore, 0); uint256 balanceBeforeZetaConnector = zetaToken.balanceOf(address(zetaConnector)); - bytes memory mintData = abi.encodeWithSignature("mint(address,uint256,bytes32)", address(gateway), amount, internalSendHash); + bytes memory mintData = + abi.encodeWithSignature("mint(address,uint256,bytes32)", address(gateway), amount, internalSendHash); vm.expectCall(address(zetaToken), 0, mintData); // Verify that onRevert callback was called vm.expectEmit(true, true, true, true, address(receiver)); @@ -239,13 +258,13 @@ contract ZetaConnectorNonNativeTest is Test, IGatewayEVMErrors, IGatewayEVMEvent assertEq(balanceGateway, 0); } - function testWithdrawAndRevertFailsIfSenderIsNotTSS() public { - uint256 amount = 100000; + function testWithdrawAndRevertFailsIfSenderIsNotWithdrawer() public { + uint256 amount = 100_000; bytes32 internalSendHash = ""; bytes memory data = abi.encodePacked("hello"); - + vm.prank(owner); - vm.expectRevert(InvalidSender.selector); + vm.expectRevert(abi.encodeWithSelector(AccessControlUnauthorizedAccount.selector, owner, WITHDRAWER_ROLE)); zetaConnector.withdrawAndRevert(address(receiver), amount, data, internalSendHash); } -} \ No newline at end of file +} diff --git a/test/fuzz/ERC20CustodyNewEchidnaTest.sol b/v2/test/fuzz/ERC20CustodyEchidnaTest.sol similarity index 58% rename from test/fuzz/ERC20CustodyNewEchidnaTest.sol rename to v2/test/fuzz/ERC20CustodyEchidnaTest.sol index f29e2bbf..adbcbe03 100644 --- a/test/fuzz/ERC20CustodyNewEchidnaTest.sol +++ b/v2/test/fuzz/ERC20CustodyEchidnaTest.sol @@ -1,27 +1,25 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; +pragma solidity 0.8.26; -import "../../contracts/prototypes/evm/TestERC20.sol"; -import "../../contracts/prototypes/evm/ERC20CustodyNew.sol"; -import "../../contracts/prototypes/evm/GatewayEVM.sol"; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; -import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; -import {Upgrades} from "openzeppelin-foundry-upgrades/LegacyUpgrades.sol"; +import { Upgrades } from "openzeppelin-foundry-upgrades/Upgrades.sol"; +import "src/evm/ERC20Custody.sol"; +import "src/evm/GatewayEVM.sol"; +import "test/utils/TestERC20.sol"; -contract ERC20CustodyNewEchidnaTest is ERC20CustodyNew { +contract ERC20CustodyEchidnaTest is ERC20Custody { using SafeERC20 for IERC20; TestERC20 public testERC20; address public echidnaCaller = msg.sender; - address proxy = address(new ERC1967Proxy( - address(new GatewayEVM()), - abi.encodeWithSelector(GatewayEVM.initialize.selector, (echidnaCaller, address(0x123))) - )); + address proxy = Upgrades.deployUUPSProxy( + "GatewayEVM.sol", abi.encodeCall(GatewayEVM.initialize, (echidnaCaller, address(0x123), address(0x123))) + ); GatewayEVM testGateway = GatewayEVM(proxy); - constructor() ERC20CustodyNew(address(testGateway)) { + constructor() ERC20Custody(address(testGateway), echidnaCaller, echidnaCaller) { testERC20 = new TestERC20("test", "TEST"); testGateway.setCustody(address(this)); } @@ -37,4 +35,4 @@ contract ERC20CustodyNewEchidnaTest is ERC20CustodyNew { // Assertion to ensure no ERC20 tokens are left in the gateway contract after execution assert(testERC20.balanceOf(address(gateway)) == 0); } -} \ No newline at end of file +} diff --git a/test/fuzz/GatewayEVMEchidnaTest.sol b/v2/test/fuzz/GatewayEVMEchidnaTest.sol similarity index 75% rename from test/fuzz/GatewayEVMEchidnaTest.sol rename to v2/test/fuzz/GatewayEVMEchidnaTest.sol index b7d9eb61..ff740136 100644 --- a/test/fuzz/GatewayEVMEchidnaTest.sol +++ b/v2/test/fuzz/GatewayEVMEchidnaTest.sol @@ -1,11 +1,11 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; +pragma solidity 0.8.26; -import "../../contracts/prototypes/evm/GatewayEVM.sol"; -import "../../contracts/prototypes/evm/TestERC20.sol"; -import "../../contracts/prototypes/evm/ERC20CustodyNew.sol"; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; +import "src/evm/ERC20Custody.sol"; +import "src/evm/GatewayEVM.sol"; +import "test/utils/TestERC20.sol"; contract GatewayEVMEchidnaTest is GatewayEVM { using SafeERC20 for IERC20; @@ -17,7 +17,7 @@ contract GatewayEVMEchidnaTest is GatewayEVM { tssAddress = echidnaCaller; zetaConnector = address(0x123); testERC20 = new TestERC20("test", "TEST"); - custody = address(new ERC20CustodyNew(address(this), tssAddress)); + custody = address(new ERC20Custody(address(this), tssAddress, address(this))); } function testExecuteWithERC20(address to, uint256 amount, bytes calldata data) public { @@ -28,4 +28,4 @@ contract GatewayEVMEchidnaTest is GatewayEVM { // Assertion to ensure no ERC20 tokens are left in the contract after execution assert(testERC20.balanceOf(address(this)) == 0); } -} \ No newline at end of file +} diff --git a/test/fuzz/readme.md b/v2/test/fuzz/readme.md similarity index 57% rename from test/fuzz/readme.md rename to v2/test/fuzz/readme.md index 3c751a29..c69e0587 100644 --- a/test/fuzz/readme.md +++ b/v2/test/fuzz/readme.md @@ -2,12 +2,12 @@ ``` brew install echidna -solc-select use 0.8.7 +solc-select use 0.8.20 ``` ## Execute contract tests ``` -echidna test/fuzz/ERC20CustodyNewEchidnaTest.sol --contract ERC20CustodyNewEchidnaTest --config echidna.yaml +echidna test/fuzz/ERC20CustodyEchidnaTest.sol --contract ERC20CustodyEchidnaTest --config echidna.yaml echidna test/fuzz/GatewayEVMEchidnaTest.sol --contract GatewayEVMEchidnaTest --config echidna.yaml ``` \ No newline at end of file diff --git a/contracts/prototypes/evm/GatewayEVMUpgradeTest.sol b/v2/test/utils/GatewayEVMUpgradeTest.sol similarity index 72% rename from contracts/prototypes/evm/GatewayEVMUpgradeTest.sol rename to v2/test/utils/GatewayEVMUpgradeTest.sol index 501694a4..931bb542 100644 --- a/contracts/prototypes/evm/GatewayEVMUpgradeTest.sol +++ b/v2/test/utils/GatewayEVMUpgradeTest.sol @@ -1,21 +1,30 @@ // 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/utils/SafeERC20.sol"; +import "src/evm/ZetaConnectorBase.sol"; +import "src/evm/interfaces/IGatewayEVM.sol"; + +import "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol"; import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; -import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; import "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; -import "@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol"; - -import "./IGatewayEVM.sol"; -import "./ZetaConnectorNewBase.sol"; +import "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol"; +import "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol"; +import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; /// @title GatewayEVMUpgradeTest /// @notice Modified GatewayEVM contract for testing upgrades /// @dev The only difference is in event naming /// @custom:oz-upgrades-from GatewayEVM -contract GatewayEVMUpgradeTest is Initializable, OwnableUpgradeable, UUPSUpgradeable, IGatewayEVMErrors, IGatewayEVMEvents, ReentrancyGuardUpgradeable { +contract GatewayEVMUpgradeTest is + Initializable, + AccessControlUpgradeable, + UUPSUpgradeable, + IGatewayEVMErrors, + IGatewayEVMEvents, + ReentrancyGuardUpgradeable, + PausableUpgradeable +{ using SafeERC20 for IERC20; /// @notice The address of the custody contract. @@ -30,62 +39,71 @@ contract GatewayEVMUpgradeTest is Initializable, OwnableUpgradeable, UUPSUpgrade /// @dev Modified event for testing upgrade. event ExecutedV2(address indexed destination, uint256 value, bytes data); + /// @notice New role identifier for tss role. + bytes32 public constant TSS_ROLE = keccak256("TSS_ROLE"); + /// @notice New role identifier for asset handler role. + bytes32 public constant ASSET_HANDLER_ROLE = keccak256("ASSET_HANDLER_ROLE"); + /// @notice New role identifier for pauser role. + bytes32 public constant PAUSER_ROLE = keccak256("PAUSER_ROLE"); - /// @notice Only TSS address allowed modifier. - modifier onlyTSS() { - if (msg.sender != tssAddress) { - revert InvalidSender(); - } - _; + /// @custom:oz-upgrades-unsafe-allow constructor + constructor() { + _disableInitializers(); } - /// @notice Only custody or connector address allowed modifier. - modifier onlyCustodyOrConnector() { - if (msg.sender != custody && msg.sender != zetaConnector) { - revert InvalidSender(); - } - _; - } - - constructor() { } - - function initialize(address _tssAddress, address _zetaToken) public initializer { + /// @notice Initialize with tss address. address of zeta token and admin account set as DEFAULT_ADMIN_ROLE. + /// @dev Using admin to authorize upgrades and pause, and tss for tss role. + function initialize(address _tssAddress, address _zetaToken, address _admin) public initializer { if (_tssAddress == address(0) || _zetaToken == address(0)) { revert ZeroAddress(); } - - __Ownable_init(); __UUPSUpgradeable_init(); __ReentrancyGuard_init(); + __AccessControl_init(); + __Pausable_init(); + _grantRole(DEFAULT_ADMIN_ROLE, _admin); + _grantRole(PAUSER_ROLE, _admin); tssAddress = _tssAddress; + _grantRole(TSS_ROLE, _tssAddress); + zetaToken = _zetaToken; } /// @dev Authorizes the upgrade of the contract, sender must be owner. /// @param newImplementation Address of the new implementation. - function _authorizeUpgrade(address newImplementation) internal override onlyOwner() {} + function _authorizeUpgrade(address newImplementation) internal override onlyRole(DEFAULT_ADMIN_ROLE) { } /// @dev Internal function to execute a call to a destination address. /// @param destination Address to call. /// @param data Calldata to pass to the call. /// @return The result of the call. function _execute(address destination, bytes calldata data) internal returns (bytes memory) { - (bool success, bytes memory result) = destination.call{value: msg.value}(data); + (bool success, bytes memory result) = destination.call{ value: msg.value }(data); if (!success) revert ExecutionFailed(); return result; } + /// @notice Pause contract. + function pause() external onlyRole(PAUSER_ROLE) { + _pause(); + } + + /// @notice Unpause contract. + function unpause() external onlyRole(PAUSER_ROLE) { + _unpause(); + } + /// @notice Transfers msg.value to destination contract and executes it's onRevert function. /// @dev This function can only be called by the TSS address and it is payable. /// @param destination Address to call. /// @param data Calldata to pass to the call. - function executeRevert(address destination, bytes calldata data) public payable onlyTSS { - (bool success, bytes memory result) = destination.call{value: msg.value}(""); + function executeRevert(address destination, bytes calldata data) public payable onlyRole(TSS_ROLE) { + (bool success, bytes memory result) = destination.call{ value: msg.value }(""); if (!success) revert ExecutionFailed(); Revertable(destination).onRevert(data); - + emit Reverted(destination, msg.value, data); } @@ -94,7 +112,15 @@ contract GatewayEVMUpgradeTest is Initializable, OwnableUpgradeable, UUPSUpgrade /// @param destination Address to call. /// @param data Calldata to pass to the call. /// @return The result of the call. - function execute(address destination, bytes calldata data) external payable onlyTSS returns (bytes memory) { + function execute( + address destination, + bytes calldata data + ) + external + payable + onlyRole(TSS_ROLE) + returns (bytes memory) + { bytes memory result = _execute(destination, data); emit ExecutedV2(destination, msg.value, data); @@ -114,16 +140,20 @@ contract GatewayEVMUpgradeTest is Initializable, OwnableUpgradeable, UUPSUpgrade address to, uint256 amount, bytes calldata data - ) public nonReentrant onlyCustodyOrConnector { + ) + public + nonReentrant + onlyRole(ASSET_HANDLER_ROLE) + { if (amount == 0) revert InsufficientERC20Amount(); // Approve the target contract to spend the tokens - if(!resetApproval(token, to)) revert ApprovalFailed(); - if(!IERC20(token).approve(to, amount)) revert ApprovalFailed(); + if (!resetApproval(token, to)) revert ApprovalFailed(); + if (!IERC20(token).approve(to, amount)) revert ApprovalFailed(); // Execute the call on the target contract bytes memory result = _execute(to, data); // Reset approval - if(!resetApproval(token, to)) revert ApprovalFailed(); + if (!resetApproval(token, to)) revert ApprovalFailed(); // Transfer any remaining tokens back to the custody/connector contract uint256 remainingBalance = IERC20(token).balanceOf(address(this)); @@ -145,7 +175,11 @@ contract GatewayEVMUpgradeTest is Initializable, OwnableUpgradeable, UUPSUpgrade address to, uint256 amount, bytes calldata data - ) external nonReentrant onlyCustodyOrConnector { + ) + external + nonReentrant + onlyRole(ASSET_HANDLER_ROLE) + { if (amount == 0) revert InsufficientERC20Amount(); IERC20(token).safeTransfer(address(to), amount); @@ -158,10 +192,10 @@ contract GatewayEVMUpgradeTest is Initializable, OwnableUpgradeable, UUPSUpgrade /// @param receiver Address of the receiver. function deposit(address receiver) external payable { if (msg.value == 0) revert InsufficientETHAmount(); - (bool deposited, ) = tssAddress.call{value: msg.value}(""); + (bool deposited,) = tssAddress.call{ value: msg.value }(""); if (deposited == false) revert DepositFailed(); - + emit Deposit(msg.sender, receiver, msg.value, address(0), ""); } @@ -182,10 +216,10 @@ contract GatewayEVMUpgradeTest is Initializable, OwnableUpgradeable, UUPSUpgrade /// @param payload Calldata to pass to the call. function depositAndCall(address receiver, bytes calldata payload) external payable { if (msg.value == 0) revert InsufficientETHAmount(); - (bool deposited, ) = tssAddress.call{value: msg.value}(""); + (bool deposited,) = tssAddress.call{ value: msg.value }(""); if (deposited == false) revert DepositFailed(); - + emit Deposit(msg.sender, receiver, msg.value, address(0), payload); } @@ -196,7 +230,7 @@ contract GatewayEVMUpgradeTest is Initializable, OwnableUpgradeable, UUPSUpgrade /// @param payload Calldata to pass to the call. function depositAndCall(address receiver, uint256 amount, address asset, bytes calldata payload) external { if (amount == 0) revert InsufficientERC20Amount(); - + transferFromToAssetHandler(msg.sender, asset, amount); emit Deposit(msg.sender, receiver, amount, asset, payload); @@ -211,19 +245,21 @@ contract GatewayEVMUpgradeTest is Initializable, OwnableUpgradeable, UUPSUpgrade /// @notice Sets the custody contract address. /// @param _custody Address of the custody contract. - function setCustody(address _custody) external { + function setCustody(address _custody) external onlyRole(DEFAULT_ADMIN_ROLE) { if (custody != address(0)) revert CustodyInitialized(); if (_custody == address(0)) revert ZeroAddress(); + _grantRole(ASSET_HANDLER_ROLE, _custody); custody = _custody; } /// @notice Sets the connector contract address. /// @param _zetaConnector Address of the connector contract. - function setConnector(address _zetaConnector) external { + function setConnector(address _zetaConnector) external onlyRole(DEFAULT_ADMIN_ROLE) { if (zetaConnector != address(0)) revert CustodyInitialized(); if (_zetaConnector == address(0)) revert ZeroAddress(); + _grantRole(ASSET_HANDLER_ROLE, _zetaConnector); zetaConnector = _zetaConnector; } @@ -237,34 +273,40 @@ contract GatewayEVMUpgradeTest is Initializable, OwnableUpgradeable, UUPSUpgrade } /// @dev Transfers tokens from the sender to the asset handler. - /// This function handles the transfer of tokens to either the connector or custody contract based on the asset type. + /// This function handles the transfer of tokens to either the connector or custody contract based on the asset + /// type. /// @param from Address of the sender. /// @param token Address of the ERC20 token. /// @param amount Amount of tokens to transfer. function transferFromToAssetHandler(address from, address token, uint256 amount) private { - if (token == zetaToken) { // transfer to connector + if (token == zetaToken) { + // transfer to connector // transfer amount to gateway IERC20(token).safeTransferFrom(from, address(this), amount); // approve connector to handle tokens depending on connector version (eg. lock or burn) IERC20(token).approve(zetaConnector, amount); // send tokens to connector - ZetaConnectorNewBase(zetaConnector).receiveTokens(amount); - } else { // transfer to custody + ZetaConnectorBase(zetaConnector).receiveTokens(amount); + } else { + // transfer to custody IERC20(token).safeTransferFrom(from, custody, amount); } } /// @dev Transfers tokens to the asset handler. - /// This function handles the transfer of tokens to either the connector or custody contract based on the asset type. + /// This function handles the transfer of tokens to either the connector or custody contract based on the asset + /// type. /// @param token Address of the ERC20 token. /// @param amount Amount of tokens to transfer. function transferToAssetHandler(address token, uint256 amount) private { - if (token == zetaToken) { // transfer to connector + if (token == zetaToken) { + // transfer to connector // approve connector to handle tokens depending on connector version (eg. lock or burn) IERC20(token).approve(zetaConnector, amount); // send tokens to connector - ZetaConnectorNewBase(zetaConnector).receiveTokens(amount); - } else { // transfer to custody + ZetaConnectorBase(zetaConnector).receiveTokens(amount); + } else { + // transfer to custody IERC20(token).safeTransfer(custody, amount); } } diff --git a/contracts/prototypes/evm/IReceiverEVM.sol b/v2/test/utils/IReceiverEVM.sol similarity index 98% rename from contracts/prototypes/evm/IReceiverEVM.sol rename to v2/test/utils/IReceiverEVM.sol index 38d99062..3ed300f8 100644 --- a/contracts/prototypes/evm/IReceiverEVM.sol +++ b/v2/test/utils/IReceiverEVM.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; +pragma solidity 0.8.26; /// @title IReceiverEVMEvents /// @notice Interface for the events emitted by the ReceiverEVM contract. diff --git a/contracts/prototypes/evm/ReceiverEVM.sol b/v2/test/utils/ReceiverEVM.sol similarity index 95% rename from contracts/prototypes/evm/ReceiverEVM.sol rename to v2/test/utils/ReceiverEVM.sol index f46c9d3a..76d1272a 100644 --- a/contracts/prototypes/evm/ReceiverEVM.sol +++ b/v2/test/utils/ReceiverEVM.sol @@ -1,10 +1,10 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; +pragma solidity 0.8.26; +import "./IReceiverEVM.sol"; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; -import "@openzeppelin/contracts/security/ReentrancyGuard.sol"; -import "./IReceiverEVM.sol"; +import "@openzeppelin/contracts/utils/ReentrancyGuard.sol"; /// @title ReceiverEVM /// @notice This contract is used just for testing purposes. @@ -72,8 +72,8 @@ contract ReceiverEVM is IReceiverEVMEvents, ReentrancyGuard { } /// @notice Receives ETH. - receive() external payable {} + receive() external payable { } /// @notice Fallback function to receive ETH. - fallback() external payable {} + fallback() external payable { } } diff --git a/contracts/prototypes/zevm/SenderZEVM.sol b/v2/test/utils/SenderZEVM.sol similarity index 79% rename from contracts/prototypes/zevm/SenderZEVM.sol rename to v2/test/utils/SenderZEVM.sol index 457ca976..cd1f2703 100644 --- a/contracts/prototypes/zevm/SenderZEVM.sol +++ b/v2/test/utils/SenderZEVM.sol @@ -1,9 +1,9 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.7; +pragma solidity 0.8.26; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; -import "./IGatewayZEVM.sol"; -import "../../zevm/interfaces/IZRC20.sol"; +import "src/zevm/interfaces/IGatewayZEVM.sol"; +import "src/zevm/interfaces/IZRC20.sol"; /// @title SenderZEVM /// @notice This contract is used just for testing. @@ -21,16 +21,17 @@ contract SenderZEVM { /// @notice Call a receiver on EVM. /// @param receiver The address of the receiver on the external chain. + /// @param chainId Chain id of the external chain. /// @param str A string parameter to pass to the receiver's function. /// @param num A numeric parameter to pass to the receiver's function. /// @param flag A boolean parameter to pass to the receiver's function. /// @dev Encodes the function call and passes it to the gateway. - function callReceiver(bytes memory receiver, string memory str, uint256 num, bool flag) external { + function callReceiver(bytes memory receiver, uint256 chainId, string memory str, uint256 num, bool flag) external { // Encode the function call to the receiver's receivePayable method bytes memory message = abi.encodeWithSignature("receivePayable(string,uint256,bool)", str, num, flag); // Pass encoded call to gateway - IGatewayZEVM(gateway).call(receiver, message); + IGatewayZEVM(gateway).call(receiver, chainId, message); } /// @notice Withdraw and call a receiver on EVM. @@ -41,7 +42,16 @@ contract SenderZEVM { /// @param num A numeric parameter to pass to the receiver's function. /// @param flag A boolean parameter to pass to the receiver's function. /// @dev Approves the gateway to withdraw tokens and encodes the function call to pass to the gateway. - function withdrawAndCallReceiver(bytes memory receiver, uint256 amount, address zrc20, string memory str, uint256 num, bool flag) external { + function withdrawAndCallReceiver( + bytes memory receiver, + uint256 amount, + address zrc20, + string memory str, + uint256 num, + bool flag + ) + external + { // Encode the function call to the receiver's receivePayable method bytes memory message = abi.encodeWithSignature("receivePayable(string,uint256,bool)", str, num, flag); diff --git a/v2/test/utils/SystemContract.sol b/v2/test/utils/SystemContract.sol new file mode 100644 index 00000000..f11e2af1 --- /dev/null +++ b/v2/test/utils/SystemContract.sol @@ -0,0 +1,176 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.26; + +import "src/zevm/interfaces/IZRC20.sol"; +import "src/zevm/interfaces/zContract.sol"; + +/** + * @dev Custom errors for SystemContract + */ +interface SystemContractErrors { + error CallerIsNotFungibleModule(); + error InvalidTarget(); + error CantBeIdenticalAddresses(); + error CantBeZeroAddress(); + error ZeroAddress(); +} + +/** + * @dev The system contract it's called by the protocol to interact with the blockchain. + * Also includes a lot of tools to make easier to interact with ZetaChain. + */ +contract SystemContract is SystemContractErrors { + /// @notice Map to know the gas price of each chain given a chain id. + mapping(uint256 => uint256) public gasPriceByChainId; + /// @notice Map to know the ZRC20 address of a token given a chain id, ex zETH, zBNB etc. + mapping(uint256 => address) public gasCoinZRC20ByChainId; + // @dev: Map to know uniswap V2 pool of ZETA/ZRC20 given a chain id. This refer to the build in uniswap deployed at + // genesis. + mapping(uint256 => address) public gasZetaPoolByChainId; + + /// @notice Fungible address is always the same, it's on protocol level. + address public constant FUNGIBLE_MODULE_ADDRESS = 0x735b14BB79463307AAcBED86DAf3322B1e6226aB; + /// @notice Uniswap V2 addresses. + address public immutable uniswapv2FactoryAddress; + address public immutable uniswapv2Router02Address; + /// @notice Address of the wrapped ZETA to interact with Uniswap V2. + address public wZetaContractAddress; + /// @notice Address of ZEVM Zeta Connector. + address public zetaConnectorZEVMAddress; + + /// @notice Custom SystemContract errors. + event SystemContractDeployed(); + event SetGasPrice(uint256, uint256); + event SetGasCoin(uint256, address); + event SetGasZetaPool(uint256, address); + event SetWZeta(address); + event SetConnectorZEVM(address); + + /** + * @dev Only fungible module can deploy a system contract. + */ + constructor(address wzeta_, address uniswapv2Factory_, address uniswapv2Router02_) { + if (msg.sender != FUNGIBLE_MODULE_ADDRESS) revert CallerIsNotFungibleModule(); + wZetaContractAddress = wzeta_; + uniswapv2FactoryAddress = uniswapv2Factory_; + uniswapv2Router02Address = uniswapv2Router02_; + emit SystemContractDeployed(); + } + + /** + * @dev Deposit foreign coins into ZRC20 and call user specified contract on zEVM. + * @param context, context data for deposit. + * @param zrc20, zrc20 address for deposit. + * @param amount, amount to deposit. + * @param target, contract address to make a call after deposit. + * @param message, calldata for a call. + */ + function depositAndCall( + zContext calldata context, + address zrc20, + uint256 amount, + address target, + bytes calldata message + ) + external + { + if (msg.sender != FUNGIBLE_MODULE_ADDRESS) revert CallerIsNotFungibleModule(); + if (target == FUNGIBLE_MODULE_ADDRESS || target == address(this)) revert InvalidTarget(); + + IZRC20(zrc20).deposit(target, amount); + zContract(target).onCrossChainCall(context, zrc20, amount, message); + } + + /** + * @dev Sort token addresses lexicographically. Used to handle return values from pairs sorted in the order. + * @param tokenA, tokenA address. + * @param tokenB, tokenB address. + * @return token0 token1, returns sorted token addresses,. + */ + function sortTokens(address tokenA, address tokenB) internal pure returns (address token0, address token1) { + if (tokenA == tokenB) revert CantBeIdenticalAddresses(); + (token0, token1) = tokenA < tokenB ? (tokenA, tokenB) : (tokenB, tokenA); + if (token0 == address(0)) revert CantBeZeroAddress(); + } + + /** + * @dev Calculates the CREATE2 address for a pair without making any external calls. + * @param factory, factory address. + * @param tokenA, tokenA address. + * @param tokenB, tokenB address. + * @return pair tokens pair address. + */ + function uniswapv2PairFor(address factory, address tokenA, address tokenB) public pure returns (address pair) { + (address token0, address token1) = sortTokens(tokenA, tokenB); + pair = address( + uint160( + uint256( + keccak256( + abi.encodePacked( + hex"ff", + factory, + keccak256(abi.encodePacked(token0, token1)), + hex"96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f" // init code hash + ) + ) + ) + ) + ); + } + + /** + * @dev Fungible module updates the gas price oracle periodically. + * @param chainID, chain id. + * @param price, new gas price. + */ + function setGasPrice(uint256 chainID, uint256 price) external { + if (msg.sender != FUNGIBLE_MODULE_ADDRESS) revert CallerIsNotFungibleModule(); + gasPriceByChainId[chainID] = price; + emit SetGasPrice(chainID, price); + } + + /** + * @dev Setter for gasCoinZRC20ByChainId map. + * @param chainID, chain id. + * @param zrc20, ZRC20 address. + */ + function setGasCoinZRC20(uint256 chainID, address zrc20) external { + if (msg.sender != FUNGIBLE_MODULE_ADDRESS) revert CallerIsNotFungibleModule(); + gasCoinZRC20ByChainId[chainID] = zrc20; + emit SetGasCoin(chainID, zrc20); + } + + /** + * @dev Set the pool wzeta/erc20 address. + * @param chainID, chain id. + * @param erc20, pair for uniswap wzeta/erc20. + */ + function setGasZetaPool(uint256 chainID, address erc20) external { + if (msg.sender != FUNGIBLE_MODULE_ADDRESS) revert CallerIsNotFungibleModule(); + address pool = uniswapv2PairFor(uniswapv2FactoryAddress, wZetaContractAddress, erc20); + gasZetaPoolByChainId[chainID] = pool; + emit SetGasZetaPool(chainID, pool); + } + + /** + * @dev Setter for wrapped ZETA address. + * @param addr, wzeta new address. + */ + function setWZETAContractAddress(address addr) external { + if (msg.sender != FUNGIBLE_MODULE_ADDRESS) revert CallerIsNotFungibleModule(); + if (addr == address(0)) revert ZeroAddress(); + wZetaContractAddress = addr; + emit SetWZeta(wZetaContractAddress); + } + + /** + * @dev Setter for zetaConnector ZEVM Address + * @param addr, zeta connector new address. + */ + function setConnectorZEVMAddress(address addr) external { + if (msg.sender != FUNGIBLE_MODULE_ADDRESS) revert CallerIsNotFungibleModule(); + if (addr == address(0)) revert ZeroAddress(); + zetaConnectorZEVMAddress = addr; + emit SetConnectorZEVM(zetaConnectorZEVMAddress); + } +} diff --git a/v2/test/utils/SystemContractMock.sol b/v2/test/utils/SystemContractMock.sol new file mode 100644 index 00000000..446429e8 --- /dev/null +++ b/v2/test/utils/SystemContractMock.sol @@ -0,0 +1,85 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.26; + +import "src/zevm/interfaces/IZRC20.sol"; +import "src/zevm/interfaces/zContract.sol"; + +interface SystemContractErrors { + error CallerIsNotFungibleModule(); + + error InvalidTarget(); + + error CantBeIdenticalAddresses(); + + error CantBeZeroAddress(); +} + +contract SystemContractMock is SystemContractErrors { + mapping(uint256 => uint256) public gasPriceByChainId; + mapping(uint256 => address) public gasCoinZRC20ByChainId; + mapping(uint256 => address) public gasZetaPoolByChainId; + + address public wZetaContractAddress; + address public uniswapv2FactoryAddress; + address public uniswapv2Router02Address; + + event SystemContractDeployed(); + event SetGasPrice(uint256, uint256); + event SetGasCoin(uint256, address); + event SetGasZetaPool(uint256, address); + event SetWZeta(address); + + constructor(address wzeta_, address uniswapv2Factory_, address uniswapv2Router02_) { + wZetaContractAddress = wzeta_; + uniswapv2FactoryAddress = uniswapv2Factory_; + uniswapv2Router02Address = uniswapv2Router02_; + emit SystemContractDeployed(); + } + + // fungible module updates the gas price oracle periodically + function setGasPrice(uint256 chainID, uint256 price) external { + gasPriceByChainId[chainID] = price; + emit SetGasPrice(chainID, price); + } + + function setGasCoinZRC20(uint256 chainID, address zrc20) external { + gasCoinZRC20ByChainId[chainID] = zrc20; + emit SetGasCoin(chainID, zrc20); + } + + function setWZETAContractAddress(address addr) external { + wZetaContractAddress = addr; + emit SetWZeta(wZetaContractAddress); + } + + // returns sorted token addresses, used to handle return values from pairs sorted in this order + function sortTokens(address tokenA, address tokenB) internal pure returns (address token0, address token1) { + if (tokenA == tokenB) revert CantBeIdenticalAddresses(); + (token0, token1) = tokenA < tokenB ? (tokenA, tokenB) : (tokenB, tokenA); + if (token0 == address(0)) revert CantBeZeroAddress(); + } + + function uniswapv2PairFor(address factory, address tokenA, address tokenB) public pure returns (address pair) { + (address token0, address token1) = sortTokens(tokenA, tokenB); + pair = address( + uint160( + uint256( + keccak256( + abi.encodePacked( + hex"ff", + factory, + keccak256(abi.encodePacked(token0, token1)), + hex"96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f" // init code hash + ) + ) + ) + ) + ); + } + + function onCrossChainCall(address target, address zrc20, uint256 amount, bytes calldata message) external { + zContext memory context = zContext({ sender: msg.sender, origin: "", chainID: block.chainid }); + IZRC20(zrc20).transfer(target, amount); + zContract(target).onCrossChainCall(context, zrc20, amount, message); + } +} diff --git a/contracts/prototypes/evm/TestERC20.sol b/v2/test/utils/TestERC20.sol similarity index 94% rename from contracts/prototypes/evm/TestERC20.sol rename to v2/test/utils/TestERC20.sol index cf433213..5712f7fb 100644 --- a/contracts/prototypes/evm/TestERC20.sol +++ b/v2/test/utils/TestERC20.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; +pragma solidity 0.8.26; import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; @@ -7,7 +7,7 @@ import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; /// @notice This contract is used just for testing. /// @dev A simple ERC20 token contract with a mint function. contract TestERC20 is ERC20 { - constructor(string memory name, string memory symbol) ERC20(name, symbol) {} + constructor(string memory name, string memory symbol) ERC20(name, symbol) { } /// @notice Mints new tokens to the specified address. /// @param to The address to which the tokens will be minted. diff --git a/contracts/prototypes/zevm/TestZContract.sol b/v2/test/utils/TestZContract.sol similarity index 92% rename from contracts/prototypes/zevm/TestZContract.sol rename to v2/test/utils/TestZContract.sol index b8c88e82..62003285 100644 --- a/contracts/prototypes/zevm/TestZContract.sol +++ b/v2/test/utils/TestZContract.sol @@ -1,8 +1,8 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.7; +pragma solidity 0.8.26; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; -import "../../zevm/interfaces/zContract.sol"; +import "src/zevm/interfaces/zContract.sol"; /// @title TestZContract /// @notice This contract is used just for testing. @@ -35,7 +35,10 @@ contract TestZContract is UniversalContract { address zrc20, uint256 amount, bytes calldata message - ) external override { + ) + external + override + { string memory decodedMessage; if (message.length > 0) { decodedMessage = abi.decode(message, (string)); @@ -54,7 +57,10 @@ contract TestZContract is UniversalContract { address zrc20, uint256 amount, bytes calldata message - ) external override { + ) + external + override + { string memory decodedMessage; if (message.length > 0) { decodedMessage = abi.decode(message, (string)); @@ -63,8 +69,8 @@ contract TestZContract is UniversalContract { } /// @notice Allows the contract to receive ETH. - receive() external payable {} + receive() external payable { } /// @notice Fallback function to receive ETH. - fallback() external payable {} + fallback() external payable { } } diff --git a/v2/test/utils/WZETA.sol b/v2/test/utils/WZETA.sol new file mode 100644 index 00000000..2ecb7047 --- /dev/null +++ b/v2/test/utils/WZETA.sol @@ -0,0 +1,62 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.26; + +contract WETH9 { + string public name = "Wrapped Ether"; + string public symbol = "WETH"; + uint8 public decimals = 18; + + event Approval(address indexed src, address indexed guy, uint256 wad); + event Transfer(address indexed src, address indexed dst, uint256 wad); + event Deposit(address indexed dst, uint256 wad); + event Withdrawal(address indexed src, uint256 wad); + + mapping(address => uint256) public balanceOf; + mapping(address => mapping(address => uint256)) public allowance; + + receive() external payable { + deposit(); + } + + function deposit() public payable { + balanceOf[msg.sender] += msg.value; + emit Deposit(msg.sender, msg.value); + } + + function withdraw(uint256 wad) public { + require(balanceOf[msg.sender] >= wad, ""); + balanceOf[msg.sender] -= wad; + payable(msg.sender).transfer(wad); + emit Withdrawal(msg.sender, wad); + } + + function totalSupply() public view returns (uint256) { + return address(this).balance; + } + + function approve(address guy, uint256 wad) public returns (bool) { + allowance[msg.sender][guy] = wad; + emit Approval(msg.sender, guy, wad); + return true; + } + + function transfer(address dst, uint256 wad) public returns (bool) { + return transferFrom(msg.sender, dst, wad); + } + + function transferFrom(address src, address dst, uint256 wad) public returns (bool) { + require(balanceOf[src] >= wad, ""); + + if (src != msg.sender && allowance[src][msg.sender] != type(uint256).max) { + require(allowance[src][msg.sender] >= wad, ""); + allowance[src][msg.sender] -= wad; + } + + balanceOf[src] -= wad; + balanceOf[dst] += wad; + + emit Transfer(src, dst, wad); + + return true; + } +} diff --git a/contracts/zevm/ZRC20New.sol b/v2/test/utils/ZRC20.sol similarity index 94% rename from contracts/zevm/ZRC20New.sol rename to v2/test/utils/ZRC20.sol index 116661ef..8d69f45a 100644 --- a/contracts/zevm/ZRC20New.sol +++ b/v2/test/utils/ZRC20.sol @@ -1,7 +1,8 @@ // SPDX-License-Identifier: MIT -pragma solidity 0.8.7; -import "./interfaces/IZRC20.sol"; -import "./interfaces/ISystem.sol"; +pragma solidity 0.8.26; + +import "src/zevm/interfaces/ISystem.sol"; +import "src/zevm/interfaces/IZRC20.sol"; /** * @dev Custom errors for ZRC20 @@ -20,7 +21,7 @@ interface ZRC20Errors { // NOTE: this is exactly the same as ZRC20, except gateway contract address is set at deployment // and used to allow deposit. This is first version, it might change in the future. -contract ZRC20New is IZRC20Metadata, ZRC20Errors, ZRC20Events { +contract ZRC20 is IZRC20Metadata, ZRC20Errors, ZRC20Events { /// @notice Fungible address is always the same, maintained at the protocol level address public constant FUNGIBLE_MODULE_ADDRESS = 0x735b14BB79463307AAcBED86DAf3322B1e6226aB; /// @notice Chain id.abi @@ -29,7 +30,7 @@ contract ZRC20New is IZRC20Metadata, ZRC20Errors, ZRC20Events { CoinType public immutable COIN_TYPE; /// @notice System contract address. address public SYSTEM_CONTRACT_ADDRESS; - /// @notice Gateway contract address. + /// @notice Gateway contract address. address public GATEWAY_CONTRACT_ADDRESS; /// @notice Gas limit. uint256 public GAS_LIMIT; @@ -230,7 +231,10 @@ contract ZRC20New is IZRC20Metadata, ZRC20Errors, ZRC20Events { * @return true/false if succeeded/failed. */ function deposit(address to, uint256 amount) external override returns (bool) { - if (msg.sender != FUNGIBLE_MODULE_ADDRESS && msg.sender != SYSTEM_CONTRACT_ADDRESS && msg.sender != GATEWAY_CONTRACT_ADDRESS) revert InvalidSender(); + if ( + msg.sender != FUNGIBLE_MODULE_ADDRESS && msg.sender != SYSTEM_CONTRACT_ADDRESS + && msg.sender != GATEWAY_CONTRACT_ADDRESS + ) revert InvalidSender(); _mint(to, amount); emit Deposit(abi.encodePacked(FUNGIBLE_MODULE_ADDRESS), to, amount); return true; @@ -238,7 +242,8 @@ contract ZRC20New is IZRC20Metadata, ZRC20Errors, ZRC20Events { /** * @dev Withdraws gas fees. - * @return returns the ZRC20 address for gas on the same chain of this ZRC20, and calculates the gas fee for withdraw() + * @return returns the ZRC20 address for gas on the same chain of this ZRC20, and calculates the gas fee for + * withdraw() */ function withdrawGasFee() public view override returns (address, uint256) { address gasZRC20 = ISystem(SYSTEM_CONTRACT_ADDRESS).gasCoinZRC20ByChainId(CHAIN_ID); @@ -253,7 +258,8 @@ contract ZRC20New is IZRC20Metadata, ZRC20Errors, ZRC20Events { } /** - * @dev Withraws ZRC20 tokens to external chains, this function causes cctx module to send out outbound tx to the outbound chain + * @dev Withraws ZRC20 tokens to external chains, this function causes cctx module to send out outbound tx to the + * outbound chain * this contract should be given enough allowance of the gas ZRC20 to pay for outbound tx gas fee. * @param to, recipient address. * @param amount, amount to deposit. diff --git a/v2/test/utils/Zeta.non-eth.sol b/v2/test/utils/Zeta.non-eth.sol new file mode 100644 index 00000000..31414d7c --- /dev/null +++ b/v2/test/utils/Zeta.non-eth.sol @@ -0,0 +1,112 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.26; + +import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol"; + +/** + * @dev Common custom errors + */ +interface ZetaErrors { + // @dev Thrown when caller is not the address defined as TSS address + error CallerIsNotTss(address caller); + + // @dev Thrown when caller is not the address defined as connector address + error CallerIsNotConnector(address caller); + + // @dev Thrown when caller is not the address defined as TSS Updater address + error CallerIsNotTssUpdater(address caller); + + // @dev Thrown when caller is not the address defined as TSS or TSS Updater address + error CallerIsNotTssOrUpdater(address caller); + + // @dev Thrown when a contract receives an invalid address param, mostly zero address validation + error InvalidAddress(); + + // @dev Thrown when Zeta can't be transferred for some reason + error ZetaTransferError(); +} + +/** + * @dev ZetaNonEthInterface is a mintable / burnable version of IERC20 + */ +interface ZetaNonEthInterface is IERC20 { + function burnFrom(address account, uint256 amount) external; + + function mint(address mintee, uint256 value, bytes32 internalSendHash) external; +} + +contract ZetaNonEth is ZetaNonEthInterface, ERC20Burnable, ZetaErrors { + address public connectorAddress; + + /** + * @dev Collectively held by Zeta blockchain validators + */ + address public tssAddress; + + /** + * @dev Initially a multi-sig, eventually held by Zeta blockchain validators (via renounceTssAddressUpdater) + */ + address public tssAddressUpdater; + + event Minted(address indexed mintee, uint256 amount, bytes32 indexed internalSendHash); + + event Burnt(address indexed burnee, uint256 amount); + + event TSSAddressUpdated(address callerAddress, address newTssAddress); + + event TSSAddressUpdaterUpdated(address callerAddress, address newTssUpdaterAddress); + + event ConnectorAddressUpdated(address callerAddress, address newConnectorAddress); + + constructor(address tssAddress_, address tssAddressUpdater_) ERC20("Zeta", "ZETA") { + if (tssAddress_ == address(0) || tssAddressUpdater_ == address(0)) revert InvalidAddress(); + + tssAddress = tssAddress_; + tssAddressUpdater = tssAddressUpdater_; + } + + function updateTssAndConnectorAddresses(address tssAddress_, address connectorAddress_) external { + if (msg.sender != tssAddressUpdater && msg.sender != tssAddress) revert CallerIsNotTssOrUpdater(msg.sender); + if (tssAddress_ == address(0) || connectorAddress_ == address(0)) revert InvalidAddress(); + + tssAddress = tssAddress_; + connectorAddress = connectorAddress_; + + emit TSSAddressUpdated(msg.sender, tssAddress_); + emit ConnectorAddressUpdated(msg.sender, connectorAddress_); + } + + /** + * @dev Sets tssAddressUpdater to be tssAddress + */ + function renounceTssAddressUpdater() external { + if (msg.sender != tssAddressUpdater) revert CallerIsNotTssUpdater(msg.sender); + if (tssAddress == address(0)) revert InvalidAddress(); + + tssAddressUpdater = tssAddress; + emit TSSAddressUpdaterUpdated(msg.sender, tssAddress); + } + + function mint(address mintee, uint256 value, bytes32 internalSendHash) external override { + /** + * @dev Only Connector can mint. Minting requires burning the equivalent amount on another chain + */ + if (msg.sender != connectorAddress) revert CallerIsNotConnector(msg.sender); + + _mint(mintee, value); + + emit Minted(mintee, value, internalSendHash); + } + + function burnFrom(address account, uint256 amount) public override(ZetaNonEthInterface, ERC20Burnable) { + /** + * @dev Only Connector can burn. + */ + if (msg.sender != connectorAddress) revert CallerIsNotConnector(msg.sender); + + ERC20Burnable.burnFrom(account, amount); + + emit Burnt(account, amount); + } +} diff --git a/v2/tsconfig.json b/v2/tsconfig.json new file mode 100644 index 00000000..62f7fd81 --- /dev/null +++ b/v2/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "declaration": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "module": "commonjs", + "moduleResolution": "node", + "noImplicitAny": true, + "outDir": "dist", + "paths": { + }, + "resolveJsonModule": true, + "skipLibCheck": true, + "sourceMap": false, + "strict": true, + "target": "es2020", + "typeRoots": ["@types", "./node_modules/@types"] + }, + "exclude": [] + } + \ No newline at end of file diff --git a/v2/typechain-types/AccessControl.ts b/v2/typechain-types/AccessControl.ts new file mode 100644 index 00000000..9506ad31 --- /dev/null +++ b/v2/typechain-types/AccessControl.ts @@ -0,0 +1,324 @@ +/* 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 AccessControlInterface extends Interface { + getFunction( + nameOrSignature: + | "DEFAULT_ADMIN_ROLE" + | "getRoleAdmin" + | "grantRole" + | "hasRole" + | "renounceRole" + | "revokeRole" + | "supportsInterface" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: "RoleAdminChanged" | "RoleGranted" | "RoleRevoked" + ): EventFragment; + + encodeFunctionData( + functionFragment: "DEFAULT_ADMIN_ROLE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getRoleAdmin", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "grantRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "hasRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "renounceRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "revokeRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "supportsInterface", + values: [BytesLike] + ): string; + + decodeFunctionResult( + functionFragment: "DEFAULT_ADMIN_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getRoleAdmin", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "renounceRole", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "supportsInterface", + data: BytesLike + ): Result; +} + +export namespace RoleAdminChangedEvent { + export type InputTuple = [ + role: BytesLike, + previousAdminRole: BytesLike, + newAdminRole: BytesLike + ]; + export type OutputTuple = [ + role: string, + previousAdminRole: string, + newAdminRole: string + ]; + export interface OutputObject { + role: string; + previousAdminRole: string; + newAdminRole: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleGrantedEvent { + export type InputTuple = [ + role: BytesLike, + account: AddressLike, + sender: AddressLike + ]; + export type OutputTuple = [role: string, account: string, sender: string]; + export interface OutputObject { + role: string; + account: string; + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleRevokedEvent { + export type InputTuple = [ + role: BytesLike, + account: AddressLike, + sender: AddressLike + ]; + export type OutputTuple = [role: string, account: string, sender: string]; + export interface OutputObject { + role: string; + account: string; + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface AccessControl extends BaseContract { + connect(runner?: ContractRunner | null): AccessControl; + waitForDeployment(): Promise; + + interface: AccessControlInterface; + + 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; + + DEFAULT_ADMIN_ROLE: TypedContractMethod<[], [string], "view">; + + getRoleAdmin: TypedContractMethod<[role: BytesLike], [string], "view">; + + grantRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + hasRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [boolean], + "view" + >; + + renounceRole: TypedContractMethod< + [role: BytesLike, callerConfirmation: AddressLike], + [void], + "nonpayable" + >; + + revokeRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + supportsInterface: TypedContractMethod< + [interfaceId: BytesLike], + [boolean], + "view" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "DEFAULT_ADMIN_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "getRoleAdmin" + ): TypedContractMethod<[role: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "grantRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "hasRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [boolean], + "view" + >; + getFunction( + nameOrSignature: "renounceRole" + ): TypedContractMethod< + [role: BytesLike, callerConfirmation: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "revokeRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "supportsInterface" + ): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; + + getEvent( + key: "RoleAdminChanged" + ): TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + getEvent( + key: "RoleGranted" + ): TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + getEvent( + key: "RoleRevoked" + ): TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + + filters: { + "RoleAdminChanged(bytes32,bytes32,bytes32)": TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + RoleAdminChanged: TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + + "RoleGranted(bytes32,address,address)": TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + RoleGranted: TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + + "RoleRevoked(bytes32,address,address)": TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + RoleRevoked: TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/AccessControlUpgradeable.ts b/v2/typechain-types/AccessControlUpgradeable.ts new file mode 100644 index 00000000..f4d50e5a --- /dev/null +++ b/v2/typechain-types/AccessControlUpgradeable.ts @@ -0,0 +1,359 @@ +/* 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 AccessControlUpgradeableInterface extends Interface { + getFunction( + nameOrSignature: + | "DEFAULT_ADMIN_ROLE" + | "getRoleAdmin" + | "grantRole" + | "hasRole" + | "renounceRole" + | "revokeRole" + | "supportsInterface" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "Initialized" + | "RoleAdminChanged" + | "RoleGranted" + | "RoleRevoked" + ): EventFragment; + + encodeFunctionData( + functionFragment: "DEFAULT_ADMIN_ROLE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "getRoleAdmin", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "grantRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "hasRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "renounceRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "revokeRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "supportsInterface", + values: [BytesLike] + ): string; + + decodeFunctionResult( + functionFragment: "DEFAULT_ADMIN_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getRoleAdmin", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "renounceRole", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "supportsInterface", + 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 RoleAdminChangedEvent { + export type InputTuple = [ + role: BytesLike, + previousAdminRole: BytesLike, + newAdminRole: BytesLike + ]; + export type OutputTuple = [ + role: string, + previousAdminRole: string, + newAdminRole: string + ]; + export interface OutputObject { + role: string; + previousAdminRole: string; + newAdminRole: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleGrantedEvent { + export type InputTuple = [ + role: BytesLike, + account: AddressLike, + sender: AddressLike + ]; + export type OutputTuple = [role: string, account: string, sender: string]; + export interface OutputObject { + role: string; + account: string; + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleRevokedEvent { + export type InputTuple = [ + role: BytesLike, + account: AddressLike, + sender: AddressLike + ]; + export type OutputTuple = [role: string, account: string, sender: string]; + export interface OutputObject { + role: string; + account: string; + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface AccessControlUpgradeable extends BaseContract { + connect(runner?: ContractRunner | null): AccessControlUpgradeable; + waitForDeployment(): Promise; + + interface: AccessControlUpgradeableInterface; + + 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; + + DEFAULT_ADMIN_ROLE: TypedContractMethod<[], [string], "view">; + + getRoleAdmin: TypedContractMethod<[role: BytesLike], [string], "view">; + + grantRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + hasRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [boolean], + "view" + >; + + renounceRole: TypedContractMethod< + [role: BytesLike, callerConfirmation: AddressLike], + [void], + "nonpayable" + >; + + revokeRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + supportsInterface: TypedContractMethod< + [interfaceId: BytesLike], + [boolean], + "view" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "DEFAULT_ADMIN_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "getRoleAdmin" + ): TypedContractMethod<[role: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "grantRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "hasRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [boolean], + "view" + >; + getFunction( + nameOrSignature: "renounceRole" + ): TypedContractMethod< + [role: BytesLike, callerConfirmation: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "revokeRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "supportsInterface" + ): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; + + getEvent( + key: "Initialized" + ): TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + getEvent( + key: "RoleAdminChanged" + ): TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + getEvent( + key: "RoleGranted" + ): TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + getEvent( + key: "RoleRevoked" + ): TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + + filters: { + "Initialized(uint64)": TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + Initialized: TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + + "RoleAdminChanged(bytes32,bytes32,bytes32)": TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + RoleAdminChanged: TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + + "RoleGranted(bytes32,address,address)": TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + RoleGranted: TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + + "RoleRevoked(bytes32,address,address)": TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + RoleRevoked: TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + }; +} 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/ERC165.ts b/v2/typechain-types/ERC165.ts new file mode 100644 index 00000000..09a46c63 --- /dev/null +++ b/v2/typechain-types/ERC165.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 ERC165Interface extends Interface { + getFunction(nameOrSignature: "supportsInterface"): FunctionFragment; + + encodeFunctionData( + functionFragment: "supportsInterface", + values: [BytesLike] + ): string; + + decodeFunctionResult( + functionFragment: "supportsInterface", + data: BytesLike + ): Result; +} + +export interface ERC165 extends BaseContract { + connect(runner?: ContractRunner | null): ERC165; + waitForDeployment(): Promise; + + interface: ERC165Interface; + + 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/ERC165Upgradeable.ts b/v2/typechain-types/ERC165Upgradeable.ts new file mode 100644 index 00000000..3d6f2836 --- /dev/null +++ b/v2/typechain-types/ERC165Upgradeable.ts @@ -0,0 +1,130 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "./common"; + +export interface ERC165UpgradeableInterface extends Interface { + getFunction(nameOrSignature: "supportsInterface"): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment; + + encodeFunctionData( + functionFragment: "supportsInterface", + values: [BytesLike] + ): string; + + decodeFunctionResult( + functionFragment: "supportsInterface", + 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 interface ERC165Upgradeable extends BaseContract { + connect(runner?: ContractRunner | null): ERC165Upgradeable; + waitForDeployment(): Promise; + + interface: ERC165UpgradeableInterface; + + 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">; + + 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/typechain-types/contracts/prototypes/evm/GatewayEVM.t.sol/index.ts b/v2/typechain-types/ERC20/index.ts similarity index 61% rename from typechain-types/contracts/prototypes/evm/GatewayEVM.t.sol/index.ts rename to v2/typechain-types/ERC20/index.ts index 5c8fc539..8312ccd9 100644 --- a/typechain-types/contracts/prototypes/evm/GatewayEVM.t.sol/index.ts +++ b/v2/typechain-types/ERC20/index.ts @@ -1,4 +1,4 @@ /* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ -export type { GatewayEVMTest } from "./GatewayEVMTest"; +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/ERC20Custody.ts b/v2/typechain-types/ERC20Custody.ts new file mode 100644 index 00000000..f4bfcc0a --- /dev/null +++ b/v2/typechain-types/ERC20Custody.ts @@ -0,0 +1,669 @@ +/* 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 ERC20CustodyInterface extends Interface { + getFunction( + nameOrSignature: + | "DEFAULT_ADMIN_ROLE" + | "PAUSER_ROLE" + | "WITHDRAWER_ROLE" + | "gateway" + | "getRoleAdmin" + | "grantRole" + | "hasRole" + | "pause" + | "paused" + | "renounceRole" + | "revokeRole" + | "supportsInterface" + | "tssAddress" + | "unpause" + | "withdraw" + | "withdrawAndCall" + | "withdrawAndRevert" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "Paused" + | "RoleAdminChanged" + | "RoleGranted" + | "RoleRevoked" + | "Unpaused" + | "Withdraw" + | "WithdrawAndCall" + | "WithdrawAndRevert" + ): EventFragment; + + encodeFunctionData( + functionFragment: "DEFAULT_ADMIN_ROLE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "PAUSER_ROLE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "WITHDRAWER_ROLE", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "gateway", values?: undefined): string; + encodeFunctionData( + functionFragment: "getRoleAdmin", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "grantRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "hasRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData(functionFragment: "pause", values?: undefined): string; + encodeFunctionData(functionFragment: "paused", values?: undefined): string; + encodeFunctionData( + functionFragment: "renounceRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "revokeRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "supportsInterface", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "tssAddress", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "unpause", 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: "DEFAULT_ADMIN_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "PAUSER_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "WITHDRAWER_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "gateway", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getRoleAdmin", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "pause", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "paused", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "renounceRole", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "supportsInterface", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "tssAddress", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "unpause", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "withdrawAndCall", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "withdrawAndRevert", + data: BytesLike + ): Result; +} + +export namespace PausedEvent { + export type InputTuple = [account: AddressLike]; + export type OutputTuple = [account: string]; + export interface OutputObject { + account: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleAdminChangedEvent { + export type InputTuple = [ + role: BytesLike, + previousAdminRole: BytesLike, + newAdminRole: BytesLike + ]; + export type OutputTuple = [ + role: string, + previousAdminRole: string, + newAdminRole: string + ]; + export interface OutputObject { + role: string; + previousAdminRole: string; + newAdminRole: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleGrantedEvent { + export type InputTuple = [ + role: BytesLike, + account: AddressLike, + sender: AddressLike + ]; + export type OutputTuple = [role: string, account: string, sender: string]; + export interface OutputObject { + role: string; + account: string; + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleRevokedEvent { + export type InputTuple = [ + role: BytesLike, + account: AddressLike, + sender: AddressLike + ]; + export type OutputTuple = [role: string, account: string, sender: string]; + export interface OutputObject { + role: string; + account: string; + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UnpausedEvent { + export type InputTuple = [account: AddressLike]; + export type OutputTuple = [account: string]; + export interface OutputObject { + account: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +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 ERC20Custody extends BaseContract { + connect(runner?: ContractRunner | null): ERC20Custody; + waitForDeployment(): Promise; + + interface: ERC20CustodyInterface; + + 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; + + DEFAULT_ADMIN_ROLE: TypedContractMethod<[], [string], "view">; + + PAUSER_ROLE: TypedContractMethod<[], [string], "view">; + + WITHDRAWER_ROLE: TypedContractMethod<[], [string], "view">; + + gateway: TypedContractMethod<[], [string], "view">; + + getRoleAdmin: TypedContractMethod<[role: BytesLike], [string], "view">; + + grantRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + hasRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [boolean], + "view" + >; + + pause: TypedContractMethod<[], [void], "nonpayable">; + + paused: TypedContractMethod<[], [boolean], "view">; + + renounceRole: TypedContractMethod< + [role: BytesLike, callerConfirmation: AddressLike], + [void], + "nonpayable" + >; + + revokeRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + supportsInterface: TypedContractMethod< + [interfaceId: BytesLike], + [boolean], + "view" + >; + + tssAddress: TypedContractMethod<[], [string], "view">; + + unpause: TypedContractMethod<[], [void], "nonpayable">; + + 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: "DEFAULT_ADMIN_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "PAUSER_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "WITHDRAWER_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "gateway" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "getRoleAdmin" + ): TypedContractMethod<[role: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "grantRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "hasRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [boolean], + "view" + >; + getFunction( + nameOrSignature: "pause" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "paused" + ): TypedContractMethod<[], [boolean], "view">; + getFunction( + nameOrSignature: "renounceRole" + ): TypedContractMethod< + [role: BytesLike, callerConfirmation: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "revokeRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "supportsInterface" + ): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; + getFunction( + nameOrSignature: "tssAddress" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "unpause" + ): TypedContractMethod<[], [void], "nonpayable">; + 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: "Paused" + ): TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + getEvent( + key: "RoleAdminChanged" + ): TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + getEvent( + key: "RoleGranted" + ): TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + getEvent( + key: "RoleRevoked" + ): TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + getEvent( + key: "Unpaused" + ): TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.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: { + "Paused(address)": TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + Paused: TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + + "RoleAdminChanged(bytes32,bytes32,bytes32)": TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + RoleAdminChanged: TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + + "RoleGranted(bytes32,address,address)": TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + RoleGranted: TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + + "RoleRevoked(bytes32,address,address)": TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + RoleRevoked: TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + + "Unpaused(address)": TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.OutputObject + >; + Unpaused: TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.OutputObject + >; + + "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/ERC20CustodyEchidnaTest.ts b/v2/typechain-types/ERC20CustodyEchidnaTest.ts new file mode 100644 index 00000000..f9701fff --- /dev/null +++ b/v2/typechain-types/ERC20CustodyEchidnaTest.ts @@ -0,0 +1,713 @@ +/* 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 ERC20CustodyEchidnaTestInterface extends Interface { + getFunction( + nameOrSignature: + | "DEFAULT_ADMIN_ROLE" + | "PAUSER_ROLE" + | "WITHDRAWER_ROLE" + | "echidnaCaller" + | "gateway" + | "getRoleAdmin" + | "grantRole" + | "hasRole" + | "pause" + | "paused" + | "renounceRole" + | "revokeRole" + | "supportsInterface" + | "testERC20" + | "testWithdrawAndCall" + | "tssAddress" + | "unpause" + | "withdraw" + | "withdrawAndCall" + | "withdrawAndRevert" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "Paused" + | "RoleAdminChanged" + | "RoleGranted" + | "RoleRevoked" + | "Unpaused" + | "Withdraw" + | "WithdrawAndCall" + | "WithdrawAndRevert" + ): EventFragment; + + encodeFunctionData( + functionFragment: "DEFAULT_ADMIN_ROLE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "PAUSER_ROLE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "WITHDRAWER_ROLE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "echidnaCaller", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "gateway", values?: undefined): string; + encodeFunctionData( + functionFragment: "getRoleAdmin", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "grantRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "hasRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData(functionFragment: "pause", values?: undefined): string; + encodeFunctionData(functionFragment: "paused", values?: undefined): string; + encodeFunctionData( + functionFragment: "renounceRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "revokeRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "supportsInterface", + values: [BytesLike] + ): string; + encodeFunctionData(functionFragment: "testERC20", values?: undefined): string; + encodeFunctionData( + functionFragment: "testWithdrawAndCall", + values: [AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "tssAddress", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "unpause", 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: "DEFAULT_ADMIN_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "PAUSER_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "WITHDRAWER_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "echidnaCaller", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "gateway", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getRoleAdmin", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "pause", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "paused", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "renounceRole", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "supportsInterface", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "testERC20", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "testWithdrawAndCall", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "tssAddress", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "unpause", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "withdrawAndCall", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "withdrawAndRevert", + data: BytesLike + ): Result; +} + +export namespace PausedEvent { + export type InputTuple = [account: AddressLike]; + export type OutputTuple = [account: string]; + export interface OutputObject { + account: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleAdminChangedEvent { + export type InputTuple = [ + role: BytesLike, + previousAdminRole: BytesLike, + newAdminRole: BytesLike + ]; + export type OutputTuple = [ + role: string, + previousAdminRole: string, + newAdminRole: string + ]; + export interface OutputObject { + role: string; + previousAdminRole: string; + newAdminRole: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleGrantedEvent { + export type InputTuple = [ + role: BytesLike, + account: AddressLike, + sender: AddressLike + ]; + export type OutputTuple = [role: string, account: string, sender: string]; + export interface OutputObject { + role: string; + account: string; + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleRevokedEvent { + export type InputTuple = [ + role: BytesLike, + account: AddressLike, + sender: AddressLike + ]; + export type OutputTuple = [role: string, account: string, sender: string]; + export interface OutputObject { + role: string; + account: string; + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UnpausedEvent { + export type InputTuple = [account: AddressLike]; + export type OutputTuple = [account: string]; + export interface OutputObject { + account: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +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 ERC20CustodyEchidnaTest extends BaseContract { + connect(runner?: ContractRunner | null): ERC20CustodyEchidnaTest; + waitForDeployment(): Promise; + + interface: ERC20CustodyEchidnaTestInterface; + + 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; + + DEFAULT_ADMIN_ROLE: TypedContractMethod<[], [string], "view">; + + PAUSER_ROLE: TypedContractMethod<[], [string], "view">; + + WITHDRAWER_ROLE: TypedContractMethod<[], [string], "view">; + + echidnaCaller: TypedContractMethod<[], [string], "view">; + + gateway: TypedContractMethod<[], [string], "view">; + + getRoleAdmin: TypedContractMethod<[role: BytesLike], [string], "view">; + + grantRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + hasRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [boolean], + "view" + >; + + pause: TypedContractMethod<[], [void], "nonpayable">; + + paused: TypedContractMethod<[], [boolean], "view">; + + renounceRole: TypedContractMethod< + [role: BytesLike, callerConfirmation: AddressLike], + [void], + "nonpayable" + >; + + revokeRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + supportsInterface: TypedContractMethod< + [interfaceId: BytesLike], + [boolean], + "view" + >; + + testERC20: TypedContractMethod<[], [string], "view">; + + testWithdrawAndCall: TypedContractMethod< + [to: AddressLike, amount: BigNumberish, data: BytesLike], + [void], + "nonpayable" + >; + + tssAddress: TypedContractMethod<[], [string], "view">; + + unpause: TypedContractMethod<[], [void], "nonpayable">; + + 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: "DEFAULT_ADMIN_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "PAUSER_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "WITHDRAWER_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "echidnaCaller" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "gateway" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "getRoleAdmin" + ): TypedContractMethod<[role: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "grantRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "hasRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [boolean], + "view" + >; + getFunction( + nameOrSignature: "pause" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "paused" + ): TypedContractMethod<[], [boolean], "view">; + getFunction( + nameOrSignature: "renounceRole" + ): TypedContractMethod< + [role: BytesLike, callerConfirmation: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "revokeRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "supportsInterface" + ): TypedContractMethod<[interfaceId: BytesLike], [boolean], "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: "unpause" + ): TypedContractMethod<[], [void], "nonpayable">; + 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: "Paused" + ): TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + getEvent( + key: "RoleAdminChanged" + ): TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + getEvent( + key: "RoleGranted" + ): TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + getEvent( + key: "RoleRevoked" + ): TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + getEvent( + key: "Unpaused" + ): TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.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: { + "Paused(address)": TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + Paused: TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + + "RoleAdminChanged(bytes32,bytes32,bytes32)": TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + RoleAdminChanged: TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + + "RoleGranted(bytes32,address,address)": TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + RoleGranted: TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + + "RoleRevoked(bytes32,address,address)": TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + RoleRevoked: TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + + "Unpaused(address)": TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.OutputObject + >; + Unpaused: TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.OutputObject + >; + + "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..0c74f929 --- /dev/null +++ b/v2/typechain-types/GatewayEVM.ts @@ -0,0 +1,1119 @@ +/* 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: + | "ASSET_HANDLER_ROLE" + | "DEFAULT_ADMIN_ROLE" + | "PAUSER_ROLE" + | "TSS_ROLE" + | "UPGRADE_INTERFACE_VERSION" + | "call" + | "custody" + | "deposit(address)" + | "deposit(address,uint256,address)" + | "depositAndCall(address,bytes)" + | "depositAndCall(address,uint256,address,bytes)" + | "execute" + | "executeRevert" + | "executeWithERC20" + | "getRoleAdmin" + | "grantRole" + | "hasRole" + | "initialize" + | "pause" + | "paused" + | "proxiableUUID" + | "renounceRole" + | "revertWithERC20" + | "revokeRole" + | "setConnector" + | "setCustody" + | "supportsInterface" + | "tssAddress" + | "unpause" + | "upgradeToAndCall" + | "zetaConnector" + | "zetaToken" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "Call" + | "Deposit" + | "Executed" + | "ExecutedWithERC20" + | "Initialized" + | "Paused" + | "Reverted" + | "RevertedWithERC20" + | "RoleAdminChanged" + | "RoleGranted" + | "RoleRevoked" + | "Unpaused" + | "Upgraded" + ): EventFragment; + + encodeFunctionData( + functionFragment: "ASSET_HANDLER_ROLE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "DEFAULT_ADMIN_ROLE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "PAUSER_ROLE", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "TSS_ROLE", values?: undefined): string; + 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: "getRoleAdmin", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "grantRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "hasRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "initialize", + values: [AddressLike, AddressLike, AddressLike] + ): string; + encodeFunctionData(functionFragment: "pause", values?: undefined): string; + encodeFunctionData(functionFragment: "paused", values?: undefined): string; + encodeFunctionData( + functionFragment: "proxiableUUID", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "renounceRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "revertWithERC20", + values: [AddressLike, AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "revokeRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "setConnector", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "setCustody", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "supportsInterface", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "tssAddress", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "unpause", values?: undefined): string; + encodeFunctionData( + functionFragment: "upgradeToAndCall", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "zetaConnector", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "zetaToken", values?: undefined): string; + + decodeFunctionResult( + functionFragment: "ASSET_HANDLER_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "DEFAULT_ADMIN_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "PAUSER_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "TSS_ROLE", data: BytesLike): Result; + 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: "getRoleAdmin", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "pause", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "paused", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "proxiableUUID", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "renounceRole", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "revertWithERC20", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "setConnector", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "setCustody", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "supportsInterface", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "tssAddress", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "unpause", 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 PausedEvent { + export type InputTuple = [account: AddressLike]; + export type OutputTuple = [account: string]; + export interface OutputObject { + account: 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 RoleAdminChangedEvent { + export type InputTuple = [ + role: BytesLike, + previousAdminRole: BytesLike, + newAdminRole: BytesLike + ]; + export type OutputTuple = [ + role: string, + previousAdminRole: string, + newAdminRole: string + ]; + export interface OutputObject { + role: string; + previousAdminRole: string; + newAdminRole: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleGrantedEvent { + export type InputTuple = [ + role: BytesLike, + account: AddressLike, + sender: AddressLike + ]; + export type OutputTuple = [role: string, account: string, sender: string]; + export interface OutputObject { + role: string; + account: string; + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleRevokedEvent { + export type InputTuple = [ + role: BytesLike, + account: AddressLike, + sender: AddressLike + ]; + export type OutputTuple = [role: string, account: string, sender: string]; + export interface OutputObject { + role: string; + account: string; + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UnpausedEvent { + export type InputTuple = [account: AddressLike]; + export type OutputTuple = [account: string]; + export interface OutputObject { + account: 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; + + ASSET_HANDLER_ROLE: TypedContractMethod<[], [string], "view">; + + DEFAULT_ADMIN_ROLE: TypedContractMethod<[], [string], "view">; + + PAUSER_ROLE: TypedContractMethod<[], [string], "view">; + + TSS_ROLE: TypedContractMethod<[], [string], "view">; + + 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" + >; + + getRoleAdmin: TypedContractMethod<[role: BytesLike], [string], "view">; + + grantRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + hasRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [boolean], + "view" + >; + + initialize: TypedContractMethod< + [_tssAddress: AddressLike, _zetaToken: AddressLike, _admin: AddressLike], + [void], + "nonpayable" + >; + + pause: TypedContractMethod<[], [void], "nonpayable">; + + paused: TypedContractMethod<[], [boolean], "view">; + + proxiableUUID: TypedContractMethod<[], [string], "view">; + + renounceRole: TypedContractMethod< + [role: BytesLike, callerConfirmation: AddressLike], + [void], + "nonpayable" + >; + + revertWithERC20: TypedContractMethod< + [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + + revokeRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + setConnector: TypedContractMethod< + [_zetaConnector: AddressLike], + [void], + "nonpayable" + >; + + setCustody: TypedContractMethod< + [_custody: AddressLike], + [void], + "nonpayable" + >; + + supportsInterface: TypedContractMethod< + [interfaceId: BytesLike], + [boolean], + "view" + >; + + tssAddress: TypedContractMethod<[], [string], "view">; + + unpause: TypedContractMethod<[], [void], "nonpayable">; + + upgradeToAndCall: TypedContractMethod< + [newImplementation: AddressLike, data: BytesLike], + [void], + "payable" + >; + + zetaConnector: TypedContractMethod<[], [string], "view">; + + zetaToken: TypedContractMethod<[], [string], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "ASSET_HANDLER_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "DEFAULT_ADMIN_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "PAUSER_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "TSS_ROLE" + ): TypedContractMethod<[], [string], "view">; + 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: "getRoleAdmin" + ): TypedContractMethod<[role: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "grantRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "hasRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [boolean], + "view" + >; + getFunction( + nameOrSignature: "initialize" + ): TypedContractMethod< + [_tssAddress: AddressLike, _zetaToken: AddressLike, _admin: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "pause" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "paused" + ): TypedContractMethod<[], [boolean], "view">; + getFunction( + nameOrSignature: "proxiableUUID" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "renounceRole" + ): TypedContractMethod< + [role: BytesLike, callerConfirmation: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "revertWithERC20" + ): TypedContractMethod< + [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "revokeRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "setConnector" + ): TypedContractMethod<[_zetaConnector: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "setCustody" + ): TypedContractMethod<[_custody: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "supportsInterface" + ): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; + getFunction( + nameOrSignature: "tssAddress" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "unpause" + ): TypedContractMethod<[], [void], "nonpayable">; + 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: "Paused" + ): TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + getEvent( + key: "Reverted" + ): TypedContractEvent< + RevertedEvent.InputTuple, + RevertedEvent.OutputTuple, + RevertedEvent.OutputObject + >; + getEvent( + key: "RevertedWithERC20" + ): TypedContractEvent< + RevertedWithERC20Event.InputTuple, + RevertedWithERC20Event.OutputTuple, + RevertedWithERC20Event.OutputObject + >; + getEvent( + key: "RoleAdminChanged" + ): TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + getEvent( + key: "RoleGranted" + ): TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + getEvent( + key: "RoleRevoked" + ): TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + getEvent( + key: "Unpaused" + ): TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.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 + >; + + "Paused(address)": TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + Paused: TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.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 + >; + + "RoleAdminChanged(bytes32,bytes32,bytes32)": TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + RoleAdminChanged: TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + + "RoleGranted(bytes32,address,address)": TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + RoleGranted: TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + + "RoleRevoked(bytes32,address,address)": TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + RoleRevoked: TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + + "Unpaused(address)": TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.OutputObject + >; + Unpaused: TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.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..63ae6ddc --- /dev/null +++ b/v2/typechain-types/GatewayEVMEchidnaTest.ts @@ -0,0 +1,1163 @@ +/* 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: + | "ASSET_HANDLER_ROLE" + | "DEFAULT_ADMIN_ROLE" + | "PAUSER_ROLE" + | "TSS_ROLE" + | "UPGRADE_INTERFACE_VERSION" + | "call" + | "custody" + | "deposit(address)" + | "deposit(address,uint256,address)" + | "depositAndCall(address,bytes)" + | "depositAndCall(address,uint256,address,bytes)" + | "echidnaCaller" + | "execute" + | "executeRevert" + | "executeWithERC20" + | "getRoleAdmin" + | "grantRole" + | "hasRole" + | "initialize" + | "pause" + | "paused" + | "proxiableUUID" + | "renounceRole" + | "revertWithERC20" + | "revokeRole" + | "setConnector" + | "setCustody" + | "supportsInterface" + | "testERC20" + | "testExecuteWithERC20" + | "tssAddress" + | "unpause" + | "upgradeToAndCall" + | "zetaConnector" + | "zetaToken" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "Call" + | "Deposit" + | "Executed" + | "ExecutedWithERC20" + | "Initialized" + | "Paused" + | "Reverted" + | "RevertedWithERC20" + | "RoleAdminChanged" + | "RoleGranted" + | "RoleRevoked" + | "Unpaused" + | "Upgraded" + ): EventFragment; + + encodeFunctionData( + functionFragment: "ASSET_HANDLER_ROLE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "DEFAULT_ADMIN_ROLE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "PAUSER_ROLE", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "TSS_ROLE", values?: undefined): string; + 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: "getRoleAdmin", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "grantRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "hasRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "initialize", + values: [AddressLike, AddressLike, AddressLike] + ): string; + encodeFunctionData(functionFragment: "pause", values?: undefined): string; + encodeFunctionData(functionFragment: "paused", values?: undefined): string; + encodeFunctionData( + functionFragment: "proxiableUUID", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "renounceRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "revertWithERC20", + values: [AddressLike, AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "revokeRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "setConnector", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "setCustody", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "supportsInterface", + values: [BytesLike] + ): string; + encodeFunctionData(functionFragment: "testERC20", values?: undefined): string; + encodeFunctionData( + functionFragment: "testExecuteWithERC20", + values: [AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "tssAddress", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "unpause", values?: undefined): string; + encodeFunctionData( + functionFragment: "upgradeToAndCall", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "zetaConnector", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "zetaToken", values?: undefined): string; + + decodeFunctionResult( + functionFragment: "ASSET_HANDLER_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "DEFAULT_ADMIN_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "PAUSER_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "TSS_ROLE", data: BytesLike): Result; + 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: "getRoleAdmin", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "pause", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "paused", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "proxiableUUID", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "renounceRole", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "revertWithERC20", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "setConnector", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "setCustody", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "supportsInterface", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "testERC20", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "testExecuteWithERC20", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "tssAddress", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "unpause", 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 PausedEvent { + export type InputTuple = [account: AddressLike]; + export type OutputTuple = [account: string]; + export interface OutputObject { + account: 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 RoleAdminChangedEvent { + export type InputTuple = [ + role: BytesLike, + previousAdminRole: BytesLike, + newAdminRole: BytesLike + ]; + export type OutputTuple = [ + role: string, + previousAdminRole: string, + newAdminRole: string + ]; + export interface OutputObject { + role: string; + previousAdminRole: string; + newAdminRole: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleGrantedEvent { + export type InputTuple = [ + role: BytesLike, + account: AddressLike, + sender: AddressLike + ]; + export type OutputTuple = [role: string, account: string, sender: string]; + export interface OutputObject { + role: string; + account: string; + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleRevokedEvent { + export type InputTuple = [ + role: BytesLike, + account: AddressLike, + sender: AddressLike + ]; + export type OutputTuple = [role: string, account: string, sender: string]; + export interface OutputObject { + role: string; + account: string; + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UnpausedEvent { + export type InputTuple = [account: AddressLike]; + export type OutputTuple = [account: string]; + export interface OutputObject { + account: 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; + + ASSET_HANDLER_ROLE: TypedContractMethod<[], [string], "view">; + + DEFAULT_ADMIN_ROLE: TypedContractMethod<[], [string], "view">; + + PAUSER_ROLE: TypedContractMethod<[], [string], "view">; + + TSS_ROLE: TypedContractMethod<[], [string], "view">; + + 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" + >; + + getRoleAdmin: TypedContractMethod<[role: BytesLike], [string], "view">; + + grantRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + hasRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [boolean], + "view" + >; + + initialize: TypedContractMethod< + [_tssAddress: AddressLike, _zetaToken: AddressLike, _admin: AddressLike], + [void], + "nonpayable" + >; + + pause: TypedContractMethod<[], [void], "nonpayable">; + + paused: TypedContractMethod<[], [boolean], "view">; + + proxiableUUID: TypedContractMethod<[], [string], "view">; + + renounceRole: TypedContractMethod< + [role: BytesLike, callerConfirmation: AddressLike], + [void], + "nonpayable" + >; + + revertWithERC20: TypedContractMethod< + [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + + revokeRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + setConnector: TypedContractMethod< + [_zetaConnector: AddressLike], + [void], + "nonpayable" + >; + + setCustody: TypedContractMethod< + [_custody: AddressLike], + [void], + "nonpayable" + >; + + supportsInterface: TypedContractMethod< + [interfaceId: BytesLike], + [boolean], + "view" + >; + + testERC20: TypedContractMethod<[], [string], "view">; + + testExecuteWithERC20: TypedContractMethod< + [to: AddressLike, amount: BigNumberish, data: BytesLike], + [void], + "nonpayable" + >; + + tssAddress: TypedContractMethod<[], [string], "view">; + + unpause: TypedContractMethod<[], [void], "nonpayable">; + + upgradeToAndCall: TypedContractMethod< + [newImplementation: AddressLike, data: BytesLike], + [void], + "payable" + >; + + zetaConnector: TypedContractMethod<[], [string], "view">; + + zetaToken: TypedContractMethod<[], [string], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "ASSET_HANDLER_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "DEFAULT_ADMIN_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "PAUSER_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "TSS_ROLE" + ): TypedContractMethod<[], [string], "view">; + 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: "getRoleAdmin" + ): TypedContractMethod<[role: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "grantRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "hasRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [boolean], + "view" + >; + getFunction( + nameOrSignature: "initialize" + ): TypedContractMethod< + [_tssAddress: AddressLike, _zetaToken: AddressLike, _admin: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "pause" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "paused" + ): TypedContractMethod<[], [boolean], "view">; + getFunction( + nameOrSignature: "proxiableUUID" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "renounceRole" + ): TypedContractMethod< + [role: BytesLike, callerConfirmation: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "revertWithERC20" + ): TypedContractMethod< + [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "revokeRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "setConnector" + ): TypedContractMethod<[_zetaConnector: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "setCustody" + ): TypedContractMethod<[_custody: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "supportsInterface" + ): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; + getFunction( + nameOrSignature: "testERC20" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "testExecuteWithERC20" + ): TypedContractMethod< + [to: AddressLike, amount: BigNumberish, data: BytesLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "tssAddress" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "unpause" + ): TypedContractMethod<[], [void], "nonpayable">; + 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: "Paused" + ): TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + getEvent( + key: "Reverted" + ): TypedContractEvent< + RevertedEvent.InputTuple, + RevertedEvent.OutputTuple, + RevertedEvent.OutputObject + >; + getEvent( + key: "RevertedWithERC20" + ): TypedContractEvent< + RevertedWithERC20Event.InputTuple, + RevertedWithERC20Event.OutputTuple, + RevertedWithERC20Event.OutputObject + >; + getEvent( + key: "RoleAdminChanged" + ): TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + getEvent( + key: "RoleGranted" + ): TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + getEvent( + key: "RoleRevoked" + ): TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + getEvent( + key: "Unpaused" + ): TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.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 + >; + + "Paused(address)": TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + Paused: TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.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 + >; + + "RoleAdminChanged(bytes32,bytes32,bytes32)": TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + RoleAdminChanged: TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + + "RoleGranted(bytes32,address,address)": TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + RoleGranted: TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + + "RoleRevoked(bytes32,address,address)": TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + RoleRevoked: TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + + "Unpaused(address)": TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.OutputObject + >; + Unpaused: TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.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..c1bb34cb --- /dev/null +++ b/v2/typechain-types/GatewayEVMUpgradeTest.ts @@ -0,0 +1,1156 @@ +/* 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: + | "ASSET_HANDLER_ROLE" + | "DEFAULT_ADMIN_ROLE" + | "PAUSER_ROLE" + | "TSS_ROLE" + | "UPGRADE_INTERFACE_VERSION" + | "call" + | "custody" + | "deposit(address)" + | "deposit(address,uint256,address)" + | "depositAndCall(address,bytes)" + | "depositAndCall(address,uint256,address,bytes)" + | "execute" + | "executeRevert" + | "executeWithERC20" + | "getRoleAdmin" + | "grantRole" + | "hasRole" + | "initialize" + | "pause" + | "paused" + | "proxiableUUID" + | "renounceRole" + | "revertWithERC20" + | "revokeRole" + | "setConnector" + | "setCustody" + | "supportsInterface" + | "tssAddress" + | "unpause" + | "upgradeToAndCall" + | "zetaConnector" + | "zetaToken" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "Call" + | "Deposit" + | "Executed" + | "ExecutedV2" + | "ExecutedWithERC20" + | "Initialized" + | "Paused" + | "Reverted" + | "RevertedWithERC20" + | "RoleAdminChanged" + | "RoleGranted" + | "RoleRevoked" + | "Unpaused" + | "Upgraded" + ): EventFragment; + + encodeFunctionData( + functionFragment: "ASSET_HANDLER_ROLE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "DEFAULT_ADMIN_ROLE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "PAUSER_ROLE", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "TSS_ROLE", values?: undefined): string; + 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: "getRoleAdmin", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "grantRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "hasRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "initialize", + values: [AddressLike, AddressLike, AddressLike] + ): string; + encodeFunctionData(functionFragment: "pause", values?: undefined): string; + encodeFunctionData(functionFragment: "paused", values?: undefined): string; + encodeFunctionData( + functionFragment: "proxiableUUID", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "renounceRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "revertWithERC20", + values: [AddressLike, AddressLike, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "revokeRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "setConnector", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "setCustody", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "supportsInterface", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "tssAddress", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "unpause", values?: undefined): string; + encodeFunctionData( + functionFragment: "upgradeToAndCall", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "zetaConnector", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "zetaToken", values?: undefined): string; + + decodeFunctionResult( + functionFragment: "ASSET_HANDLER_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "DEFAULT_ADMIN_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "PAUSER_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "TSS_ROLE", data: BytesLike): Result; + 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: "getRoleAdmin", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "pause", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "paused", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "proxiableUUID", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "renounceRole", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "revertWithERC20", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "setConnector", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "setCustody", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "supportsInterface", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "tssAddress", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "unpause", 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 PausedEvent { + export type InputTuple = [account: AddressLike]; + export type OutputTuple = [account: string]; + export interface OutputObject { + account: 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 RoleAdminChangedEvent { + export type InputTuple = [ + role: BytesLike, + previousAdminRole: BytesLike, + newAdminRole: BytesLike + ]; + export type OutputTuple = [ + role: string, + previousAdminRole: string, + newAdminRole: string + ]; + export interface OutputObject { + role: string; + previousAdminRole: string; + newAdminRole: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleGrantedEvent { + export type InputTuple = [ + role: BytesLike, + account: AddressLike, + sender: AddressLike + ]; + export type OutputTuple = [role: string, account: string, sender: string]; + export interface OutputObject { + role: string; + account: string; + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleRevokedEvent { + export type InputTuple = [ + role: BytesLike, + account: AddressLike, + sender: AddressLike + ]; + export type OutputTuple = [role: string, account: string, sender: string]; + export interface OutputObject { + role: string; + account: string; + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UnpausedEvent { + export type InputTuple = [account: AddressLike]; + export type OutputTuple = [account: string]; + export interface OutputObject { + account: 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; + + ASSET_HANDLER_ROLE: TypedContractMethod<[], [string], "view">; + + DEFAULT_ADMIN_ROLE: TypedContractMethod<[], [string], "view">; + + PAUSER_ROLE: TypedContractMethod<[], [string], "view">; + + TSS_ROLE: TypedContractMethod<[], [string], "view">; + + 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" + >; + + getRoleAdmin: TypedContractMethod<[role: BytesLike], [string], "view">; + + grantRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + hasRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [boolean], + "view" + >; + + initialize: TypedContractMethod< + [_tssAddress: AddressLike, _zetaToken: AddressLike, _admin: AddressLike], + [void], + "nonpayable" + >; + + pause: TypedContractMethod<[], [void], "nonpayable">; + + paused: TypedContractMethod<[], [boolean], "view">; + + proxiableUUID: TypedContractMethod<[], [string], "view">; + + renounceRole: TypedContractMethod< + [role: BytesLike, callerConfirmation: AddressLike], + [void], + "nonpayable" + >; + + revertWithERC20: TypedContractMethod< + [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + + revokeRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + setConnector: TypedContractMethod< + [_zetaConnector: AddressLike], + [void], + "nonpayable" + >; + + setCustody: TypedContractMethod< + [_custody: AddressLike], + [void], + "nonpayable" + >; + + supportsInterface: TypedContractMethod< + [interfaceId: BytesLike], + [boolean], + "view" + >; + + tssAddress: TypedContractMethod<[], [string], "view">; + + unpause: TypedContractMethod<[], [void], "nonpayable">; + + upgradeToAndCall: TypedContractMethod< + [newImplementation: AddressLike, data: BytesLike], + [void], + "payable" + >; + + zetaConnector: TypedContractMethod<[], [string], "view">; + + zetaToken: TypedContractMethod<[], [string], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "ASSET_HANDLER_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "DEFAULT_ADMIN_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "PAUSER_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "TSS_ROLE" + ): TypedContractMethod<[], [string], "view">; + 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: "getRoleAdmin" + ): TypedContractMethod<[role: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "grantRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "hasRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [boolean], + "view" + >; + getFunction( + nameOrSignature: "initialize" + ): TypedContractMethod< + [_tssAddress: AddressLike, _zetaToken: AddressLike, _admin: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "pause" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "paused" + ): TypedContractMethod<[], [boolean], "view">; + getFunction( + nameOrSignature: "proxiableUUID" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "renounceRole" + ): TypedContractMethod< + [role: BytesLike, callerConfirmation: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "revertWithERC20" + ): TypedContractMethod< + [ + token: AddressLike, + to: AddressLike, + amount: BigNumberish, + data: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "revokeRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "setConnector" + ): TypedContractMethod<[_zetaConnector: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "setCustody" + ): TypedContractMethod<[_custody: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "supportsInterface" + ): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; + getFunction( + nameOrSignature: "tssAddress" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "unpause" + ): TypedContractMethod<[], [void], "nonpayable">; + 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: "Paused" + ): TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + getEvent( + key: "Reverted" + ): TypedContractEvent< + RevertedEvent.InputTuple, + RevertedEvent.OutputTuple, + RevertedEvent.OutputObject + >; + getEvent( + key: "RevertedWithERC20" + ): TypedContractEvent< + RevertedWithERC20Event.InputTuple, + RevertedWithERC20Event.OutputTuple, + RevertedWithERC20Event.OutputObject + >; + getEvent( + key: "RoleAdminChanged" + ): TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + getEvent( + key: "RoleGranted" + ): TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + getEvent( + key: "RoleRevoked" + ): TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + getEvent( + key: "Unpaused" + ): TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.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 + >; + + "Paused(address)": TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + Paused: TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.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 + >; + + "RoleAdminChanged(bytes32,bytes32,bytes32)": TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + RoleAdminChanged: TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + + "RoleGranted(bytes32,address,address)": TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + RoleGranted: TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + + "RoleRevoked(bytes32,address,address)": TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + RoleRevoked: TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + + "Unpaused(address)": TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.OutputObject + >; + Unpaused: TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.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..8a35b172 --- /dev/null +++ b/v2/typechain-types/GatewayZEVM.ts @@ -0,0 +1,1018 @@ +/* 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: + | "DEFAULT_ADMIN_ROLE" + | "FUNGIBLE_MODULE_ADDRESS" + | "PAUSER_ROLE" + | "UPGRADE_INTERFACE_VERSION" + | "call" + | "deposit" + | "depositAndCall((bytes,address,uint256),uint256,address,bytes)" + | "depositAndCall((bytes,address,uint256),address,uint256,address,bytes)" + | "depositAndRevert" + | "execute" + | "executeRevert" + | "getRoleAdmin" + | "grantRole" + | "hasRole" + | "initialize" + | "pause" + | "paused" + | "proxiableUUID" + | "renounceRole" + | "revokeRole" + | "supportsInterface" + | "unpause" + | "upgradeToAndCall" + | "withdraw(bytes,uint256,address)" + | "withdraw(uint256,uint256)" + | "withdrawAndCall(bytes,uint256,address,bytes)" + | "withdrawAndCall(uint256,uint256,bytes)" + | "zetaToken" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "Call" + | "Initialized" + | "Paused" + | "RoleAdminChanged" + | "RoleGranted" + | "RoleRevoked" + | "Unpaused" + | "Upgraded" + | "Withdrawal" + ): EventFragment; + + encodeFunctionData( + functionFragment: "DEFAULT_ADMIN_ROLE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "FUNGIBLE_MODULE_ADDRESS", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "PAUSER_ROLE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "UPGRADE_INTERFACE_VERSION", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "call", + values: [BytesLike, BigNumberish, 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: "getRoleAdmin", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "grantRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "hasRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "initialize", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData(functionFragment: "pause", values?: undefined): string; + encodeFunctionData(functionFragment: "paused", values?: undefined): string; + encodeFunctionData( + functionFragment: "proxiableUUID", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "renounceRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "revokeRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "supportsInterface", + values: [BytesLike] + ): string; + encodeFunctionData(functionFragment: "unpause", values?: undefined): string; + encodeFunctionData( + functionFragment: "upgradeToAndCall", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "withdraw(bytes,uint256,address)", + values: [BytesLike, BigNumberish, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "withdraw(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "withdrawAndCall(bytes,uint256,address,bytes)", + values: [BytesLike, BigNumberish, AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "withdrawAndCall(uint256,uint256,bytes)", + values: [BigNumberish, BigNumberish, BytesLike] + ): string; + encodeFunctionData(functionFragment: "zetaToken", values?: undefined): string; + + decodeFunctionResult( + functionFragment: "DEFAULT_ADMIN_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "FUNGIBLE_MODULE_ADDRESS", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "PAUSER_ROLE", + 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: "getRoleAdmin", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "pause", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "paused", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "proxiableUUID", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "renounceRole", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "supportsInterface", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "unpause", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "upgradeToAndCall", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "withdraw(bytes,uint256,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "withdraw(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "withdrawAndCall(bytes,uint256,address,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "withdrawAndCall(uint256,uint256,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "zetaToken", data: BytesLike): Result; +} + +export namespace CallEvent { + export type InputTuple = [ + sender: AddressLike, + chainId: BigNumberish, + receiver: BytesLike, + message: BytesLike + ]; + export type OutputTuple = [ + sender: string, + chainId: bigint, + receiver: string, + message: string + ]; + export interface OutputObject { + sender: string; + chainId: bigint; + 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 PausedEvent { + export type InputTuple = [account: AddressLike]; + export type OutputTuple = [account: string]; + export interface OutputObject { + account: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleAdminChangedEvent { + export type InputTuple = [ + role: BytesLike, + previousAdminRole: BytesLike, + newAdminRole: BytesLike + ]; + export type OutputTuple = [ + role: string, + previousAdminRole: string, + newAdminRole: string + ]; + export interface OutputObject { + role: string; + previousAdminRole: string; + newAdminRole: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleGrantedEvent { + export type InputTuple = [ + role: BytesLike, + account: AddressLike, + sender: AddressLike + ]; + export type OutputTuple = [role: string, account: string, sender: string]; + export interface OutputObject { + role: string; + account: string; + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleRevokedEvent { + export type InputTuple = [ + role: BytesLike, + account: AddressLike, + sender: AddressLike + ]; + export type OutputTuple = [role: string, account: string, sender: string]; + export interface OutputObject { + role: string; + account: string; + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UnpausedEvent { + export type InputTuple = [account: AddressLike]; + export type OutputTuple = [account: string]; + export interface OutputObject { + account: 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 = [ + sender: AddressLike, + chainId: BigNumberish, + receiver: BytesLike, + zrc20: AddressLike, + value: BigNumberish, + gasfee: BigNumberish, + protocolFlatFee: BigNumberish, + message: BytesLike + ]; + export type OutputTuple = [ + sender: string, + chainId: bigint, + receiver: string, + zrc20: string, + value: bigint, + gasfee: bigint, + protocolFlatFee: bigint, + message: string + ]; + export interface OutputObject { + sender: string; + chainId: bigint; + receiver: string; + zrc20: 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; + + DEFAULT_ADMIN_ROLE: TypedContractMethod<[], [string], "view">; + + FUNGIBLE_MODULE_ADDRESS: TypedContractMethod<[], [string], "view">; + + PAUSER_ROLE: TypedContractMethod<[], [string], "view">; + + UPGRADE_INTERFACE_VERSION: TypedContractMethod<[], [string], "view">; + + call: TypedContractMethod< + [receiver: BytesLike, chainId: BigNumberish, 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" + >; + + getRoleAdmin: TypedContractMethod<[role: BytesLike], [string], "view">; + + grantRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + hasRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [boolean], + "view" + >; + + initialize: TypedContractMethod< + [_zetaToken: AddressLike, _admin: AddressLike], + [void], + "nonpayable" + >; + + pause: TypedContractMethod<[], [void], "nonpayable">; + + paused: TypedContractMethod<[], [boolean], "view">; + + proxiableUUID: TypedContractMethod<[], [string], "view">; + + renounceRole: TypedContractMethod< + [role: BytesLike, callerConfirmation: AddressLike], + [void], + "nonpayable" + >; + + revokeRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + supportsInterface: TypedContractMethod< + [interfaceId: BytesLike], + [boolean], + "view" + >; + + unpause: TypedContractMethod<[], [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,uint256)": TypedContractMethod< + [amount: BigNumberish, chainId: BigNumberish], + [void], + "nonpayable" + >; + + "withdrawAndCall(bytes,uint256,address,bytes)": TypedContractMethod< + [ + receiver: BytesLike, + amount: BigNumberish, + zrc20: AddressLike, + message: BytesLike + ], + [void], + "nonpayable" + >; + + "withdrawAndCall(uint256,uint256,bytes)": TypedContractMethod< + [amount: BigNumberish, chainId: BigNumberish, message: BytesLike], + [void], + "nonpayable" + >; + + zetaToken: TypedContractMethod<[], [string], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "DEFAULT_ADMIN_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "FUNGIBLE_MODULE_ADDRESS" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "PAUSER_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "UPGRADE_INTERFACE_VERSION" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "call" + ): TypedContractMethod< + [receiver: BytesLike, chainId: BigNumberish, 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: "getRoleAdmin" + ): TypedContractMethod<[role: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "grantRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "hasRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [boolean], + "view" + >; + getFunction( + nameOrSignature: "initialize" + ): TypedContractMethod< + [_zetaToken: AddressLike, _admin: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "pause" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "paused" + ): TypedContractMethod<[], [boolean], "view">; + getFunction( + nameOrSignature: "proxiableUUID" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "renounceRole" + ): TypedContractMethod< + [role: BytesLike, callerConfirmation: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "revokeRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "supportsInterface" + ): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; + getFunction( + nameOrSignature: "unpause" + ): TypedContractMethod<[], [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,uint256)" + ): TypedContractMethod< + [amount: BigNumberish, chainId: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdrawAndCall(bytes,uint256,address,bytes)" + ): TypedContractMethod< + [ + receiver: BytesLike, + amount: BigNumberish, + zrc20: AddressLike, + message: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdrawAndCall(uint256,uint256,bytes)" + ): TypedContractMethod< + [amount: BigNumberish, chainId: BigNumberish, 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: "Paused" + ): TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + getEvent( + key: "RoleAdminChanged" + ): TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + getEvent( + key: "RoleGranted" + ): TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + getEvent( + key: "RoleRevoked" + ): TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + getEvent( + key: "Unpaused" + ): TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.OutputObject + >; + getEvent( + key: "Upgraded" + ): TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + getEvent( + key: "Withdrawal" + ): TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + + filters: { + "Call(address,uint256,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 + >; + + "Paused(address)": TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + Paused: TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + + "RoleAdminChanged(bytes32,bytes32,bytes32)": TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + RoleAdminChanged: TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + + "RoleGranted(bytes32,address,address)": TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + RoleGranted: TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + + "RoleRevoked(bytes32,address,address)": TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + RoleRevoked: TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + + "Unpaused(address)": TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.OutputObject + >; + Unpaused: TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.OutputObject + >; + + "Upgraded(address)": TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + Upgraded: TypedContractEvent< + UpgradedEvent.InputTuple, + UpgradedEvent.OutputTuple, + UpgradedEvent.OutputObject + >; + + "Withdrawal(address,uint256,bytes,address,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/IAccessControl.ts b/v2/typechain-types/IAccessControl.ts new file mode 100644 index 00000000..bb6fd58d --- /dev/null +++ b/v2/typechain-types/IAccessControl.ts @@ -0,0 +1,292 @@ +/* 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 IAccessControlInterface extends Interface { + getFunction( + nameOrSignature: + | "getRoleAdmin" + | "grantRole" + | "hasRole" + | "renounceRole" + | "revokeRole" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: "RoleAdminChanged" | "RoleGranted" | "RoleRevoked" + ): EventFragment; + + encodeFunctionData( + functionFragment: "getRoleAdmin", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "grantRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "hasRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "renounceRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "revokeRole", + values: [BytesLike, AddressLike] + ): string; + + decodeFunctionResult( + functionFragment: "getRoleAdmin", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "renounceRole", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result; +} + +export namespace RoleAdminChangedEvent { + export type InputTuple = [ + role: BytesLike, + previousAdminRole: BytesLike, + newAdminRole: BytesLike + ]; + export type OutputTuple = [ + role: string, + previousAdminRole: string, + newAdminRole: string + ]; + export interface OutputObject { + role: string; + previousAdminRole: string; + newAdminRole: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleGrantedEvent { + export type InputTuple = [ + role: BytesLike, + account: AddressLike, + sender: AddressLike + ]; + export type OutputTuple = [role: string, account: string, sender: string]; + export interface OutputObject { + role: string; + account: string; + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleRevokedEvent { + export type InputTuple = [ + role: BytesLike, + account: AddressLike, + sender: AddressLike + ]; + export type OutputTuple = [role: string, account: string, sender: string]; + export interface OutputObject { + role: string; + account: string; + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IAccessControl extends BaseContract { + connect(runner?: ContractRunner | null): IAccessControl; + waitForDeployment(): Promise; + + interface: IAccessControlInterface; + + 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; + + getRoleAdmin: TypedContractMethod<[role: BytesLike], [string], "view">; + + grantRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + hasRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [boolean], + "view" + >; + + renounceRole: TypedContractMethod< + [role: BytesLike, callerConfirmation: AddressLike], + [void], + "nonpayable" + >; + + revokeRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "getRoleAdmin" + ): TypedContractMethod<[role: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "grantRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "hasRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [boolean], + "view" + >; + getFunction( + nameOrSignature: "renounceRole" + ): TypedContractMethod< + [role: BytesLike, callerConfirmation: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "revokeRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + getEvent( + key: "RoleAdminChanged" + ): TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + getEvent( + key: "RoleGranted" + ): TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + getEvent( + key: "RoleRevoked" + ): TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + + filters: { + "RoleAdminChanged(bytes32,bytes32,bytes32)": TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + RoleAdminChanged: TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + + "RoleGranted(bytes32,address,address)": TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + RoleGranted: TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + + "RoleRevoked(bytes32,address,address)": TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + RoleRevoked: TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.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/IERC20Custody.sol/IERC20CustodyErrors.ts b/v2/typechain-types/IERC20Custody.sol/IERC20CustodyErrors.ts new file mode 100644 index 00000000..94bfbc59 --- /dev/null +++ b/v2/typechain-types/IERC20Custody.sol/IERC20CustodyErrors.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 IERC20CustodyErrorsInterface extends Interface {} + +export interface IERC20CustodyErrors extends BaseContract { + connect(runner?: ContractRunner | null): IERC20CustodyErrors; + waitForDeployment(): Promise; + + interface: IERC20CustodyErrorsInterface; + + 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/IERC20Custody.sol/IERC20CustodyEvents.ts b/v2/typechain-types/IERC20Custody.sol/IERC20CustodyEvents.ts new file mode 100644 index 00000000..af645748 --- /dev/null +++ b/v2/typechain-types/IERC20Custody.sol/IERC20CustodyEvents.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 IERC20CustodyEventsInterface 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 IERC20CustodyEvents extends BaseContract { + connect(runner?: ContractRunner | null): IERC20CustodyEvents; + waitForDeployment(): Promise; + + interface: IERC20CustodyEventsInterface; + + 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/IERC20Custody.sol/index.ts b/v2/typechain-types/IERC20Custody.sol/index.ts new file mode 100644 index 00000000..fa390d55 --- /dev/null +++ b/v2/typechain-types/IERC20Custody.sol/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { IERC20CustodyErrors } from "./IERC20CustodyErrors"; +export type { IERC20CustodyEvents } from "./IERC20CustodyEvents"; 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/typechain-types/forge-std/interfaces/IERC721.sol/index.ts b/v2/typechain-types/IERC721.sol/index.ts similarity index 100% rename from typechain-types/forge-std/interfaces/IERC721.sol/index.ts rename to v2/typechain-types/IERC721.sol/index.ts 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/typechain-types/contracts/prototypes/evm/IGatewayEVM.sol/index.ts b/v2/typechain-types/IGatewayEVM.sol/index.ts similarity index 100% rename from typechain-types/contracts/prototypes/evm/IGatewayEVM.sol/index.ts rename to v2/typechain-types/IGatewayEVM.sol/index.ts diff --git a/v2/typechain-types/IGatewayZEVM.sol/IGatewayZEVM.ts b/v2/typechain-types/IGatewayZEVM.sol/IGatewayZEVM.ts new file mode 100644 index 00000000..1c7f0d9a --- /dev/null +++ b/v2/typechain-types/IGatewayZEVM.sol/IGatewayZEVM.ts @@ -0,0 +1,294 @@ +/* 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(bytes,uint256,address)" + | "withdraw(uint256,uint256)" + | "withdrawAndCall(bytes,uint256,address,bytes)" + | "withdrawAndCall(uint256,uint256,bytes)" + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "call", + values: [BytesLike, BigNumberish, 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(bytes,uint256,address)", + values: [BytesLike, BigNumberish, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "withdraw(uint256,uint256)", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "withdrawAndCall(bytes,uint256,address,bytes)", + values: [BytesLike, BigNumberish, AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "withdrawAndCall(uint256,uint256,bytes)", + values: [BigNumberish, BigNumberish, 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(bytes,uint256,address)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "withdraw(uint256,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "withdrawAndCall(bytes,uint256,address,bytes)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "withdrawAndCall(uint256,uint256,bytes)", + 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, chainId: BigNumberish, 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(bytes,uint256,address)": TypedContractMethod< + [receiver: BytesLike, amount: BigNumberish, zrc20: AddressLike], + [void], + "nonpayable" + >; + + "withdraw(uint256,uint256)": TypedContractMethod< + [amount: BigNumberish, chainId: BigNumberish], + [void], + "nonpayable" + >; + + "withdrawAndCall(bytes,uint256,address,bytes)": TypedContractMethod< + [ + receiver: BytesLike, + amount: BigNumberish, + zrc20: AddressLike, + message: BytesLike + ], + [void], + "nonpayable" + >; + + "withdrawAndCall(uint256,uint256,bytes)": TypedContractMethod< + [amount: BigNumberish, chainId: BigNumberish, message: BytesLike], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "call" + ): TypedContractMethod< + [receiver: BytesLike, chainId: BigNumberish, 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(bytes,uint256,address)" + ): TypedContractMethod< + [receiver: BytesLike, amount: BigNumberish, zrc20: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdraw(uint256,uint256)" + ): TypedContractMethod< + [amount: BigNumberish, chainId: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdrawAndCall(bytes,uint256,address,bytes)" + ): TypedContractMethod< + [ + receiver: BytesLike, + amount: BigNumberish, + zrc20: AddressLike, + message: BytesLike + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "withdrawAndCall(uint256,uint256,bytes)" + ): TypedContractMethod< + [amount: BigNumberish, chainId: BigNumberish, 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..00517fd5 --- /dev/null +++ b/v2/typechain-types/IGatewayZEVM.sol/IGatewayZEVMEvents.ts @@ -0,0 +1,175 @@ +/* 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, + chainId: BigNumberish, + receiver: BytesLike, + message: BytesLike + ]; + export type OutputTuple = [ + sender: string, + chainId: bigint, + receiver: string, + message: string + ]; + export interface OutputObject { + sender: string; + chainId: bigint; + 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 = [ + sender: AddressLike, + chainId: BigNumberish, + receiver: BytesLike, + zrc20: AddressLike, + value: BigNumberish, + gasfee: BigNumberish, + protocolFlatFee: BigNumberish, + message: BytesLike + ]; + export type OutputTuple = [ + sender: string, + chainId: bigint, + receiver: string, + zrc20: string, + value: bigint, + gasfee: bigint, + protocolFlatFee: bigint, + message: string + ]; + export interface OutputObject { + sender: string; + chainId: bigint; + receiver: string; + zrc20: 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,uint256,bytes,bytes)": TypedContractEvent< + CallEvent.InputTuple, + CallEvent.OutputTuple, + CallEvent.OutputObject + >; + Call: TypedContractEvent< + CallEvent.InputTuple, + CallEvent.OutputTuple, + CallEvent.OutputObject + >; + + "Withdrawal(address,uint256,bytes,address,uint256,uint256,uint256,bytes)": TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + Withdrawal: TypedContractEvent< + WithdrawalEvent.InputTuple, + WithdrawalEvent.OutputTuple, + WithdrawalEvent.OutputObject + >; + }; +} diff --git a/typechain-types/contracts/prototypes/zevm/IGatewayZEVM.sol/index.ts b/v2/typechain-types/IGatewayZEVM.sol/index.ts similarity index 100% rename from typechain-types/contracts/prototypes/zevm/IGatewayZEVM.sol/index.ts rename to v2/typechain-types/IGatewayZEVM.sol/index.ts 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/typechain-types/contracts/prototypes/evm/IReceiverEVM.sol/index.ts b/v2/typechain-types/IReceiverEVM.sol/index.ts similarity index 100% rename from typechain-types/contracts/prototypes/evm/IReceiverEVM.sol/index.ts rename to v2/typechain-types/IReceiverEVM.sol/index.ts 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/typechain-types/factories/contracts/prototypes/interfaces.sol/index.ts b/v2/typechain-types/IWZETA.sol/index.ts similarity index 61% rename from typechain-types/factories/contracts/prototypes/interfaces.sol/index.ts rename to v2/typechain-types/IWZETA.sol/index.ts index d3a5c88a..95069327 100644 --- a/typechain-types/factories/contracts/prototypes/interfaces.sol/index.ts +++ b/v2/typechain-types/IWZETA.sol/index.ts @@ -1,4 +1,4 @@ /* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ -export { IGateway__factory } from "./IGateway__factory"; +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/typechain-types/contracts/prototypes/evm/IZetaConnector.sol/index.ts b/v2/typechain-types/IZetaConnector.sol/index.ts similarity index 100% rename from typechain-types/contracts/prototypes/evm/IZetaConnector.sol/index.ts rename to v2/typechain-types/IZetaConnector.sol/index.ts 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/Pausable.ts b/v2/typechain-types/Pausable.ts new file mode 100644 index 00000000..1db68441 --- /dev/null +++ b/v2/typechain-types/Pausable.ts @@ -0,0 +1,150 @@ +/* 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 PausableInterface extends Interface { + getFunction(nameOrSignature: "paused"): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "Paused" | "Unpaused"): EventFragment; + + encodeFunctionData(functionFragment: "paused", values?: undefined): string; + + decodeFunctionResult(functionFragment: "paused", data: BytesLike): Result; +} + +export namespace PausedEvent { + export type InputTuple = [account: AddressLike]; + export type OutputTuple = [account: string]; + export interface OutputObject { + account: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UnpausedEvent { + export type InputTuple = [account: AddressLike]; + export type OutputTuple = [account: string]; + export interface OutputObject { + account: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface Pausable extends BaseContract { + connect(runner?: ContractRunner | null): Pausable; + waitForDeployment(): Promise; + + interface: PausableInterface; + + 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; + + paused: TypedContractMethod<[], [boolean], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "paused" + ): TypedContractMethod<[], [boolean], "view">; + + getEvent( + key: "Paused" + ): TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + getEvent( + key: "Unpaused" + ): TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.OutputObject + >; + + filters: { + "Paused(address)": TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + Paused: TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + + "Unpaused(address)": TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.OutputObject + >; + Unpaused: TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.OutputObject + >; + }; +} diff --git a/v2/typechain-types/PausableUpgradeable.ts b/v2/typechain-types/PausableUpgradeable.ts new file mode 100644 index 00000000..75a71602 --- /dev/null +++ b/v2/typechain-types/PausableUpgradeable.ts @@ -0,0 +1,183 @@ +/* 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 PausableUpgradeableInterface extends Interface { + getFunction(nameOrSignature: "paused"): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: "Initialized" | "Paused" | "Unpaused" + ): EventFragment; + + encodeFunctionData(functionFragment: "paused", values?: undefined): string; + + decodeFunctionResult(functionFragment: "paused", 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 PausedEvent { + export type InputTuple = [account: AddressLike]; + export type OutputTuple = [account: string]; + export interface OutputObject { + account: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UnpausedEvent { + export type InputTuple = [account: AddressLike]; + export type OutputTuple = [account: string]; + export interface OutputObject { + account: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface PausableUpgradeable extends BaseContract { + connect(runner?: ContractRunner | null): PausableUpgradeable; + waitForDeployment(): Promise; + + interface: PausableUpgradeableInterface; + + 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; + + paused: TypedContractMethod<[], [boolean], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "paused" + ): TypedContractMethod<[], [boolean], "view">; + + getEvent( + key: "Initialized" + ): TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + getEvent( + key: "Paused" + ): TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + getEvent( + key: "Unpaused" + ): TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.OutputObject + >; + + filters: { + "Initialized(uint64)": TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + Initialized: TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + + "Paused(address)": TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + Paused: TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + + "Unpaused(address)": TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.OutputObject + >; + Unpaused: TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.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..90ae1c4d --- /dev/null +++ b/v2/typechain-types/SenderZEVM.ts @@ -0,0 +1,163 @@ +/* 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, BigNumberish, 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, + chainId: BigNumberish, + 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, + chainId: BigNumberish, + 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/typechain-types/forge-std/StdError.sol/index.ts b/v2/typechain-types/StdError.sol/index.ts similarity index 100% rename from typechain-types/forge-std/StdError.sol/index.ts rename to v2/typechain-types/StdError.sol/index.ts 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/typechain-types/forge-std/StdStorage.sol/index.ts b/v2/typechain-types/StdStorage.sol/index.ts similarity index 100% rename from typechain-types/forge-std/StdStorage.sol/index.ts rename to v2/typechain-types/StdStorage.sol/index.ts 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/typechain-types/forge-std/Vm.sol/index.ts b/v2/typechain-types/Vm.sol/index.ts similarity index 100% rename from typechain-types/forge-std/Vm.sol/index.ts rename to v2/typechain-types/Vm.sol/index.ts 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/typechain-types/contracts/prototypes/test/GatewayEVMZEVM.t.sol/index.ts b/v2/typechain-types/WZETA.sol/index.ts similarity index 58% rename from typechain-types/contracts/prototypes/test/GatewayEVMZEVM.t.sol/index.ts rename to v2/typechain-types/WZETA.sol/index.ts index b6ce7797..3f031232 100644 --- a/typechain-types/contracts/prototypes/test/GatewayEVMZEVM.t.sol/index.ts +++ b/v2/typechain-types/WZETA.sol/index.ts @@ -1,4 +1,4 @@ /* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ -export type { GatewayEVMZEVMTest } from "./GatewayEVMZEVMTest"; +export type { WETH9 } from "./WETH9"; diff --git a/v2/typechain-types/ZRC20.sol/ZRC20.ts b/v2/typechain-types/ZRC20.sol/ZRC20.ts new file mode 100644 index 00000000..4c02b922 --- /dev/null +++ b/v2/typechain-types/ZRC20.sol/ZRC20.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 ZRC20Interface 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 ZRC20 extends BaseContract { + connect(runner?: ContractRunner | null): ZRC20; + waitForDeployment(): Promise; + + interface: ZRC20Interface; + + 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/ZRC20.sol/ZRC20Errors.ts b/v2/typechain-types/ZRC20.sol/ZRC20Errors.ts new file mode 100644 index 00000000..4bac6254 --- /dev/null +++ b/v2/typechain-types/ZRC20.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/typechain-types/contracts/prototypes/zevm/ZRC20New.sol/index.ts b/v2/typechain-types/ZRC20.sol/index.ts similarity index 76% rename from typechain-types/contracts/prototypes/zevm/ZRC20New.sol/index.ts rename to v2/typechain-types/ZRC20.sol/index.ts index ea6138df..0a005122 100644 --- a/typechain-types/contracts/prototypes/zevm/ZRC20New.sol/index.ts +++ b/v2/typechain-types/ZRC20.sol/index.ts @@ -1,5 +1,5 @@ /* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ +export type { ZRC20 } from "./ZRC20"; 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/ZetaConnectorBase.ts b/v2/typechain-types/ZetaConnectorBase.ts new file mode 100644 index 00000000..f8abb37a --- /dev/null +++ b/v2/typechain-types/ZetaConnectorBase.ts @@ -0,0 +1,676 @@ +/* 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 ZetaConnectorBaseInterface extends Interface { + getFunction( + nameOrSignature: + | "DEFAULT_ADMIN_ROLE" + | "PAUSER_ROLE" + | "WITHDRAWER_ROLE" + | "gateway" + | "getRoleAdmin" + | "grantRole" + | "hasRole" + | "pause" + | "paused" + | "receiveTokens" + | "renounceRole" + | "revokeRole" + | "supportsInterface" + | "tssAddress" + | "unpause" + | "withdraw" + | "withdrawAndCall" + | "withdrawAndRevert" + | "zetaToken" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "Paused" + | "RoleAdminChanged" + | "RoleGranted" + | "RoleRevoked" + | "Unpaused" + | "Withdraw" + | "WithdrawAndCall" + | "WithdrawAndRevert" + ): EventFragment; + + encodeFunctionData( + functionFragment: "DEFAULT_ADMIN_ROLE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "PAUSER_ROLE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "WITHDRAWER_ROLE", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "gateway", values?: undefined): string; + encodeFunctionData( + functionFragment: "getRoleAdmin", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "grantRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "hasRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData(functionFragment: "pause", values?: undefined): string; + encodeFunctionData(functionFragment: "paused", values?: undefined): string; + encodeFunctionData( + functionFragment: "receiveTokens", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "renounceRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "revokeRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "supportsInterface", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "tssAddress", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "unpause", 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: "DEFAULT_ADMIN_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "PAUSER_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "WITHDRAWER_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "gateway", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getRoleAdmin", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "pause", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "paused", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "receiveTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "renounceRole", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "supportsInterface", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "tssAddress", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "unpause", 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 PausedEvent { + export type InputTuple = [account: AddressLike]; + export type OutputTuple = [account: string]; + export interface OutputObject { + account: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleAdminChangedEvent { + export type InputTuple = [ + role: BytesLike, + previousAdminRole: BytesLike, + newAdminRole: BytesLike + ]; + export type OutputTuple = [ + role: string, + previousAdminRole: string, + newAdminRole: string + ]; + export interface OutputObject { + role: string; + previousAdminRole: string; + newAdminRole: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleGrantedEvent { + export type InputTuple = [ + role: BytesLike, + account: AddressLike, + sender: AddressLike + ]; + export type OutputTuple = [role: string, account: string, sender: string]; + export interface OutputObject { + role: string; + account: string; + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleRevokedEvent { + export type InputTuple = [ + role: BytesLike, + account: AddressLike, + sender: AddressLike + ]; + export type OutputTuple = [role: string, account: string, sender: string]; + export interface OutputObject { + role: string; + account: string; + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UnpausedEvent { + export type InputTuple = [account: AddressLike]; + export type OutputTuple = [account: string]; + export interface OutputObject { + account: string; + } + 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 ZetaConnectorBase extends BaseContract { + connect(runner?: ContractRunner | null): ZetaConnectorBase; + waitForDeployment(): Promise; + + interface: ZetaConnectorBaseInterface; + + 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; + + DEFAULT_ADMIN_ROLE: TypedContractMethod<[], [string], "view">; + + PAUSER_ROLE: TypedContractMethod<[], [string], "view">; + + WITHDRAWER_ROLE: TypedContractMethod<[], [string], "view">; + + gateway: TypedContractMethod<[], [string], "view">; + + getRoleAdmin: TypedContractMethod<[role: BytesLike], [string], "view">; + + grantRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + hasRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [boolean], + "view" + >; + + pause: TypedContractMethod<[], [void], "nonpayable">; + + paused: TypedContractMethod<[], [boolean], "view">; + + receiveTokens: TypedContractMethod< + [amount: BigNumberish], + [void], + "nonpayable" + >; + + renounceRole: TypedContractMethod< + [role: BytesLike, callerConfirmation: AddressLike], + [void], + "nonpayable" + >; + + revokeRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + supportsInterface: TypedContractMethod< + [interfaceId: BytesLike], + [boolean], + "view" + >; + + tssAddress: TypedContractMethod<[], [string], "view">; + + unpause: TypedContractMethod<[], [void], "nonpayable">; + + 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: "DEFAULT_ADMIN_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "PAUSER_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "WITHDRAWER_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "gateway" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "getRoleAdmin" + ): TypedContractMethod<[role: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "grantRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "hasRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [boolean], + "view" + >; + getFunction( + nameOrSignature: "pause" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "paused" + ): TypedContractMethod<[], [boolean], "view">; + getFunction( + nameOrSignature: "receiveTokens" + ): TypedContractMethod<[amount: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "renounceRole" + ): TypedContractMethod< + [role: BytesLike, callerConfirmation: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "revokeRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "supportsInterface" + ): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; + getFunction( + nameOrSignature: "tssAddress" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "unpause" + ): TypedContractMethod<[], [void], "nonpayable">; + 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: "Paused" + ): TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + getEvent( + key: "RoleAdminChanged" + ): TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + getEvent( + key: "RoleGranted" + ): TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + getEvent( + key: "RoleRevoked" + ): TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + getEvent( + key: "Unpaused" + ): TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.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: { + "Paused(address)": TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + Paused: TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + + "RoleAdminChanged(bytes32,bytes32,bytes32)": TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + RoleAdminChanged: TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + + "RoleGranted(bytes32,address,address)": TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + RoleGranted: TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + + "RoleRevoked(bytes32,address,address)": TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + RoleRevoked: TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + + "Unpaused(address)": TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.OutputObject + >; + Unpaused: TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.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/ZetaConnectorNative.ts b/v2/typechain-types/ZetaConnectorNative.ts new file mode 100644 index 00000000..2e795f63 --- /dev/null +++ b/v2/typechain-types/ZetaConnectorNative.ts @@ -0,0 +1,676 @@ +/* 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: + | "DEFAULT_ADMIN_ROLE" + | "PAUSER_ROLE" + | "WITHDRAWER_ROLE" + | "gateway" + | "getRoleAdmin" + | "grantRole" + | "hasRole" + | "pause" + | "paused" + | "receiveTokens" + | "renounceRole" + | "revokeRole" + | "supportsInterface" + | "tssAddress" + | "unpause" + | "withdraw" + | "withdrawAndCall" + | "withdrawAndRevert" + | "zetaToken" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "Paused" + | "RoleAdminChanged" + | "RoleGranted" + | "RoleRevoked" + | "Unpaused" + | "Withdraw" + | "WithdrawAndCall" + | "WithdrawAndRevert" + ): EventFragment; + + encodeFunctionData( + functionFragment: "DEFAULT_ADMIN_ROLE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "PAUSER_ROLE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "WITHDRAWER_ROLE", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "gateway", values?: undefined): string; + encodeFunctionData( + functionFragment: "getRoleAdmin", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "grantRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "hasRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData(functionFragment: "pause", values?: undefined): string; + encodeFunctionData(functionFragment: "paused", values?: undefined): string; + encodeFunctionData( + functionFragment: "receiveTokens", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "renounceRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "revokeRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "supportsInterface", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "tssAddress", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "unpause", 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: "DEFAULT_ADMIN_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "PAUSER_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "WITHDRAWER_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "gateway", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getRoleAdmin", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "pause", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "paused", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "receiveTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "renounceRole", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "supportsInterface", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "tssAddress", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "unpause", 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 PausedEvent { + export type InputTuple = [account: AddressLike]; + export type OutputTuple = [account: string]; + export interface OutputObject { + account: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleAdminChangedEvent { + export type InputTuple = [ + role: BytesLike, + previousAdminRole: BytesLike, + newAdminRole: BytesLike + ]; + export type OutputTuple = [ + role: string, + previousAdminRole: string, + newAdminRole: string + ]; + export interface OutputObject { + role: string; + previousAdminRole: string; + newAdminRole: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleGrantedEvent { + export type InputTuple = [ + role: BytesLike, + account: AddressLike, + sender: AddressLike + ]; + export type OutputTuple = [role: string, account: string, sender: string]; + export interface OutputObject { + role: string; + account: string; + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleRevokedEvent { + export type InputTuple = [ + role: BytesLike, + account: AddressLike, + sender: AddressLike + ]; + export type OutputTuple = [role: string, account: string, sender: string]; + export interface OutputObject { + role: string; + account: string; + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UnpausedEvent { + export type InputTuple = [account: AddressLike]; + export type OutputTuple = [account: string]; + export interface OutputObject { + account: string; + } + 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 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; + + DEFAULT_ADMIN_ROLE: TypedContractMethod<[], [string], "view">; + + PAUSER_ROLE: TypedContractMethod<[], [string], "view">; + + WITHDRAWER_ROLE: TypedContractMethod<[], [string], "view">; + + gateway: TypedContractMethod<[], [string], "view">; + + getRoleAdmin: TypedContractMethod<[role: BytesLike], [string], "view">; + + grantRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + hasRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [boolean], + "view" + >; + + pause: TypedContractMethod<[], [void], "nonpayable">; + + paused: TypedContractMethod<[], [boolean], "view">; + + receiveTokens: TypedContractMethod< + [amount: BigNumberish], + [void], + "nonpayable" + >; + + renounceRole: TypedContractMethod< + [role: BytesLike, callerConfirmation: AddressLike], + [void], + "nonpayable" + >; + + revokeRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + supportsInterface: TypedContractMethod< + [interfaceId: BytesLike], + [boolean], + "view" + >; + + tssAddress: TypedContractMethod<[], [string], "view">; + + unpause: TypedContractMethod<[], [void], "nonpayable">; + + 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: "DEFAULT_ADMIN_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "PAUSER_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "WITHDRAWER_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "gateway" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "getRoleAdmin" + ): TypedContractMethod<[role: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "grantRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "hasRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [boolean], + "view" + >; + getFunction( + nameOrSignature: "pause" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "paused" + ): TypedContractMethod<[], [boolean], "view">; + getFunction( + nameOrSignature: "receiveTokens" + ): TypedContractMethod<[amount: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "renounceRole" + ): TypedContractMethod< + [role: BytesLike, callerConfirmation: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "revokeRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "supportsInterface" + ): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; + getFunction( + nameOrSignature: "tssAddress" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "unpause" + ): TypedContractMethod<[], [void], "nonpayable">; + 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: "Paused" + ): TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + getEvent( + key: "RoleAdminChanged" + ): TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + getEvent( + key: "RoleGranted" + ): TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + getEvent( + key: "RoleRevoked" + ): TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + getEvent( + key: "Unpaused" + ): TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.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: { + "Paused(address)": TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + Paused: TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + + "RoleAdminChanged(bytes32,bytes32,bytes32)": TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + RoleAdminChanged: TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + + "RoleGranted(bytes32,address,address)": TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + RoleGranted: TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + + "RoleRevoked(bytes32,address,address)": TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + RoleRevoked: TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + + "Unpaused(address)": TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.OutputObject + >; + Unpaused: TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.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/ZetaConnectorNonNative.ts b/v2/typechain-types/ZetaConnectorNonNative.ts new file mode 100644 index 00000000..e38595f5 --- /dev/null +++ b/v2/typechain-types/ZetaConnectorNonNative.ts @@ -0,0 +1,733 @@ +/* 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: + | "DEFAULT_ADMIN_ROLE" + | "PAUSER_ROLE" + | "WITHDRAWER_ROLE" + | "gateway" + | "getRoleAdmin" + | "grantRole" + | "hasRole" + | "maxSupply" + | "pause" + | "paused" + | "receiveTokens" + | "renounceRole" + | "revokeRole" + | "setMaxSupply" + | "supportsInterface" + | "tssAddress" + | "unpause" + | "withdraw" + | "withdrawAndCall" + | "withdrawAndRevert" + | "zetaToken" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "MaxSupplyUpdated" + | "Paused" + | "RoleAdminChanged" + | "RoleGranted" + | "RoleRevoked" + | "Unpaused" + | "Withdraw" + | "WithdrawAndCall" + | "WithdrawAndRevert" + ): EventFragment; + + encodeFunctionData( + functionFragment: "DEFAULT_ADMIN_ROLE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "PAUSER_ROLE", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "WITHDRAWER_ROLE", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "gateway", values?: undefined): string; + encodeFunctionData( + functionFragment: "getRoleAdmin", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "grantRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "hasRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData(functionFragment: "maxSupply", values?: undefined): string; + encodeFunctionData(functionFragment: "pause", values?: undefined): string; + encodeFunctionData(functionFragment: "paused", values?: undefined): string; + encodeFunctionData( + functionFragment: "receiveTokens", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "renounceRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "revokeRole", + values: [BytesLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "setMaxSupply", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "supportsInterface", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "tssAddress", + values?: undefined + ): string; + encodeFunctionData(functionFragment: "unpause", 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: "DEFAULT_ADMIN_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "PAUSER_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "WITHDRAWER_ROLE", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "gateway", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "getRoleAdmin", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "maxSupply", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "pause", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "paused", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "receiveTokens", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "renounceRole", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "setMaxSupply", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "supportsInterface", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "tssAddress", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "unpause", 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 PausedEvent { + export type InputTuple = [account: AddressLike]; + export type OutputTuple = [account: string]; + export interface OutputObject { + account: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleAdminChangedEvent { + export type InputTuple = [ + role: BytesLike, + previousAdminRole: BytesLike, + newAdminRole: BytesLike + ]; + export type OutputTuple = [ + role: string, + previousAdminRole: string, + newAdminRole: string + ]; + export interface OutputObject { + role: string; + previousAdminRole: string; + newAdminRole: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleGrantedEvent { + export type InputTuple = [ + role: BytesLike, + account: AddressLike, + sender: AddressLike + ]; + export type OutputTuple = [role: string, account: string, sender: string]; + export interface OutputObject { + role: string; + account: string; + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RoleRevokedEvent { + export type InputTuple = [ + role: BytesLike, + account: AddressLike, + sender: AddressLike + ]; + export type OutputTuple = [role: string, account: string, sender: string]; + export interface OutputObject { + role: string; + account: string; + sender: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace UnpausedEvent { + export type InputTuple = [account: AddressLike]; + export type OutputTuple = [account: string]; + export interface OutputObject { + account: string; + } + 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; + + DEFAULT_ADMIN_ROLE: TypedContractMethod<[], [string], "view">; + + PAUSER_ROLE: TypedContractMethod<[], [string], "view">; + + WITHDRAWER_ROLE: TypedContractMethod<[], [string], "view">; + + gateway: TypedContractMethod<[], [string], "view">; + + getRoleAdmin: TypedContractMethod<[role: BytesLike], [string], "view">; + + grantRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + hasRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [boolean], + "view" + >; + + maxSupply: TypedContractMethod<[], [bigint], "view">; + + pause: TypedContractMethod<[], [void], "nonpayable">; + + paused: TypedContractMethod<[], [boolean], "view">; + + receiveTokens: TypedContractMethod< + [amount: BigNumberish], + [void], + "nonpayable" + >; + + renounceRole: TypedContractMethod< + [role: BytesLike, callerConfirmation: AddressLike], + [void], + "nonpayable" + >; + + revokeRole: TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + + setMaxSupply: TypedContractMethod< + [_maxSupply: BigNumberish], + [void], + "nonpayable" + >; + + supportsInterface: TypedContractMethod< + [interfaceId: BytesLike], + [boolean], + "view" + >; + + tssAddress: TypedContractMethod<[], [string], "view">; + + unpause: TypedContractMethod<[], [void], "nonpayable">; + + 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: "DEFAULT_ADMIN_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "PAUSER_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "WITHDRAWER_ROLE" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "gateway" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "getRoleAdmin" + ): TypedContractMethod<[role: BytesLike], [string], "view">; + getFunction( + nameOrSignature: "grantRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "hasRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [boolean], + "view" + >; + getFunction( + nameOrSignature: "maxSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "pause" + ): TypedContractMethod<[], [void], "nonpayable">; + getFunction( + nameOrSignature: "paused" + ): TypedContractMethod<[], [boolean], "view">; + getFunction( + nameOrSignature: "receiveTokens" + ): TypedContractMethod<[amount: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "renounceRole" + ): TypedContractMethod< + [role: BytesLike, callerConfirmation: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "revokeRole" + ): TypedContractMethod< + [role: BytesLike, account: AddressLike], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "setMaxSupply" + ): TypedContractMethod<[_maxSupply: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "supportsInterface" + ): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; + getFunction( + nameOrSignature: "tssAddress" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "unpause" + ): TypedContractMethod<[], [void], "nonpayable">; + 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: "Paused" + ): TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + getEvent( + key: "RoleAdminChanged" + ): TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + getEvent( + key: "RoleGranted" + ): TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + getEvent( + key: "RoleRevoked" + ): TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + getEvent( + key: "Unpaused" + ): TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.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 + >; + + "Paused(address)": TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + Paused: TypedContractEvent< + PausedEvent.InputTuple, + PausedEvent.OutputTuple, + PausedEvent.OutputObject + >; + + "RoleAdminChanged(bytes32,bytes32,bytes32)": TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + RoleAdminChanged: TypedContractEvent< + RoleAdminChangedEvent.InputTuple, + RoleAdminChangedEvent.OutputTuple, + RoleAdminChangedEvent.OutputObject + >; + + "RoleGranted(bytes32,address,address)": TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + RoleGranted: TypedContractEvent< + RoleGrantedEvent.InputTuple, + RoleGrantedEvent.OutputTuple, + RoleGrantedEvent.OutputObject + >; + + "RoleRevoked(bytes32,address,address)": TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + RoleRevoked: TypedContractEvent< + RoleRevokedEvent.InputTuple, + RoleRevokedEvent.OutputTuple, + RoleRevokedEvent.OutputObject + >; + + "Unpaused(address)": TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.OutputObject + >; + Unpaused: TypedContractEvent< + UnpausedEvent.InputTuple, + UnpausedEvent.OutputTuple, + UnpausedEvent.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/AccessControlUpgradeable__factory.ts b/v2/typechain-types/factories/AccessControlUpgradeable__factory.ts new file mode 100644 index 00000000..bd2120b9 --- /dev/null +++ b/v2/typechain-types/factories/AccessControlUpgradeable__factory.ts @@ -0,0 +1,277 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + AccessControlUpgradeable, + AccessControlUpgradeableInterface, +} from "../AccessControlUpgradeable"; + +const _abi = [ + { + type: "function", + name: "DEFAULT_ADMIN_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getRoleAdmin", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "grantRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "hasRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "renounceRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "callerConfirmation", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "revokeRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "supportsInterface", + inputs: [ + { + name: "interfaceId", + type: "bytes4", + internalType: "bytes4", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "event", + name: "Initialized", + inputs: [ + { + name: "version", + type: "uint64", + indexed: false, + internalType: "uint64", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RoleAdminChanged", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "previousAdminRole", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "newAdminRole", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RoleGranted", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "account", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RoleRevoked", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "account", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "AccessControlBadConfirmation", + inputs: [], + }, + { + type: "error", + name: "AccessControlUnauthorizedAccount", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "neededRole", + type: "bytes32", + internalType: "bytes32", + }, + ], + }, + { + type: "error", + name: "InvalidInitialization", + inputs: [], + }, + { + type: "error", + name: "NotInitializing", + inputs: [], + }, +] as const; + +export class AccessControlUpgradeable__factory { + static readonly abi = _abi; + static createInterface(): AccessControlUpgradeableInterface { + return new Interface(_abi) as AccessControlUpgradeableInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): AccessControlUpgradeable { + return new Contract( + address, + _abi, + runner + ) as unknown as AccessControlUpgradeable; + } +} diff --git a/v2/typechain-types/factories/AccessControl__factory.ts b/v2/typechain-types/factories/AccessControl__factory.ts new file mode 100644 index 00000000..d30a4ac1 --- /dev/null +++ b/v2/typechain-types/factories/AccessControl__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 { AccessControl, AccessControlInterface } from "../AccessControl"; + +const _abi = [ + { + type: "function", + name: "DEFAULT_ADMIN_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getRoleAdmin", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "grantRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "hasRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "renounceRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "callerConfirmation", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "revokeRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "supportsInterface", + inputs: [ + { + name: "interfaceId", + type: "bytes4", + internalType: "bytes4", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "event", + name: "RoleAdminChanged", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "previousAdminRole", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "newAdminRole", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RoleGranted", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "account", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RoleRevoked", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "account", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "AccessControlBadConfirmation", + inputs: [], + }, + { + type: "error", + name: "AccessControlUnauthorizedAccount", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "neededRole", + type: "bytes32", + internalType: "bytes32", + }, + ], + }, +] as const; + +export class AccessControl__factory { + static readonly abi = _abi; + static createInterface(): AccessControlInterface { + return new Interface(_abi) as AccessControlInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): AccessControl { + return new Contract(address, _abi, runner) as unknown as AccessControl; + } +} 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/ERC165Upgradeable__factory.ts b/v2/typechain-types/factories/ERC165Upgradeable__factory.ts new file mode 100644 index 00000000..2bb47590 --- /dev/null +++ b/v2/typechain-types/factories/ERC165Upgradeable__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 { + ERC165Upgradeable, + ERC165UpgradeableInterface, +} from "../ERC165Upgradeable"; + +const _abi = [ + { + type: "function", + name: "supportsInterface", + inputs: [ + { + name: "interfaceId", + type: "bytes4", + internalType: "bytes4", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + 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 ERC165Upgradeable__factory { + static readonly abi = _abi; + static createInterface(): ERC165UpgradeableInterface { + return new Interface(_abi) as ERC165UpgradeableInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): ERC165Upgradeable { + return new Contract(address, _abi, runner) as unknown as ERC165Upgradeable; + } +} diff --git a/v2/typechain-types/factories/ERC165__factory.ts b/v2/typechain-types/factories/ERC165__factory.ts new file mode 100644 index 00000000..ca655955 --- /dev/null +++ b/v2/typechain-types/factories/ERC165__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 { ERC165, ERC165Interface } from "../ERC165"; + +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 ERC165__factory { + static readonly abi = _abi; + static createInterface(): ERC165Interface { + return new Interface(_abi) as ERC165Interface; + } + static connect(address: string, runner?: ContractRunner | null): ERC165 { + return new Contract(address, _abi, runner) as unknown as ERC165; + } +} 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/ERC20CustodyEchidnaTest__factory.ts b/v2/typechain-types/factories/ERC20CustodyEchidnaTest__factory.ts new file mode 100644 index 00000000..48bd1e82 --- /dev/null +++ b/v2/typechain-types/factories/ERC20CustodyEchidnaTest__factory.ts @@ -0,0 +1,681 @@ +/* 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 { + ERC20CustodyEchidnaTest, + ERC20CustodyEchidnaTestInterface, +} from "../ERC20CustodyEchidnaTest"; + +const _abi = [ + { + type: "constructor", + inputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "DEFAULT_ADMIN_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "PAUSER_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "WITHDRAWER_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + 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: "getRoleAdmin", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "grantRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "hasRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "pause", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "paused", + inputs: [], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "renounceRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "callerConfirmation", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "revokeRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + 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: "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: "unpause", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + 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: "Paused", + inputs: [ + { + name: "account", + type: "address", + indexed: false, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RoleAdminChanged", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "previousAdminRole", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "newAdminRole", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RoleGranted", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "account", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RoleRevoked", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "account", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Unpaused", + inputs: [ + { + name: "account", + type: "address", + indexed: false, + internalType: "address", + }, + ], + 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: "error", + name: "AccessControlBadConfirmation", + inputs: [], + }, + { + type: "error", + name: "AccessControlUnauthorizedAccount", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "neededRole", + type: "bytes32", + internalType: "bytes32", + }, + ], + }, + { + 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: "EnforcedPause", + inputs: [], + }, + { + type: "error", + name: "ExpectedPause", + inputs: [], + }, + { + type: "error", + name: "FailedInnerCall", + 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 = + "0x600580546001600160a01b03191633908117909155600e60809081526d11d85d195dd85e5155934b9cdbdb60921b60a05260e49190915261012361010481905261012452606460c090815261014460405260e080516001600160e01b0390811663c0c53b8b60e01b1790915261007792919061027f16565b600680546001600160a01b03929092166001600160a01b03199283168117909155600780549092161790553480156100ae57600080fd5b5060075460055460016000556002805460ff191690556001600160a01b039182169116808215806100e657506001600160a01b038216155b156101045760405163d92e233d60e01b815260040160405180910390fd5b60028054610100600160a81b0319166101006001600160a01b038681169190910291909117909155600380546001600160a01b03191691841691909117905561014e60008261029e565b506101797f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8261029e565b506101a47f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e48361029e565b505050506040516101b49061382a565b60408082526004908201819052631d195cdd60e21b606083015260806020830181905282015263151154d560e21b60a082015260c001604051809103906000f080158015610206573d6000803e3d6000fd5b50600480546001600160a01b0319166001600160a01b0392831617815560075460405163ae7a3a6f60e01b815230928101929092529091169063ae7a3a6f90602401600060405180830381600087803b15801561026257600080fd5b505af1158015610276573d6000803e3d6000fd5b505050506148ab565b6000610289613837565b610294848483610331565b9150505b92915050565b60008281526001602090815260408083206001600160a01b038516845290915281205460ff166103295760008381526001602081815260408084206001600160a01b0387168086529252808420805460ff19169093179092559051339286917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a4506001610298565b506000610298565b60008061033e85846103ad565b90506103a26040518060400160405280601d81526020017f4552433139363750726f78792e736f6c3a4552433139363750726f7879000000815250828660405160200161038c929190613940565b60408051601f19818403018152919052856103b9565b9150505b9392505050565b60006103a683836103ed565b60c081015151600090156103e3576103dc84848460c0015161040e60201b60201c565b90506103a6565b6103dc8484610587565b60006103f98383610654565b6103a6838360200151846103b960201b60201c565b600080610419610664565b9050600061042786836106fe565b905060006104448260600151836020015185610b2160201b60201c565b9050600061045483838989610cd6565b9050600061046182611952565b602081015181519192509060030b156104ba5789826040015160405160200161048b929190613964565b60408051601f198184030181529082905262461bcd60e51b82526104b1916004016139ca565b60405180910390fd5b60006105036040518060400160405280601581526020017f4465706c6f79656420746f20616464726573733a200000000000000000000000815250836001611ae960201b60201c565b60405163c6ce059d60e01b8152909150600080516020616ad08339815191529063c6ce059d906105379084906004016139ca565b602060405180830381865afa158015610554573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057891906139dd565b9b9a5050505050505050505050565b604051638d1cc92560e01b81526000908190600080516020616ad083398151915290638d1cc925906105bd9087906004016139ca565b600060405180830381865afa1580156105da573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106029190810190613ad2565b90506000610631828560405160200161061c929190613b06565b60408051601f19818403018152919052611c89565b90506001600160a01b03811661029457848460405160200161048b929190613b35565b61066082826000611c9c565b5050565b60408051808201825260038152621bdd5d60ea1b602082015290516334515cdb60e21b8152606091600080516020616ad083398151915291829063d145736c906106b2908490600401613bc4565b600060405180830381865afa1580156106cf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106f79190810190613bf9565b9250505090565b6107306040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b6000600080516020616ad083398151915290506107756040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b61077e85611d76565b6020820152600061078e86611fcb565b90506000836001600160a01b031663d930a0e66040518163ffffffff1660e01b8152600401600060405180830381865afa1580156107d0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107f89190810190613bf9565b868385602001516040516020016108129493929190613c41565b60408051601f19818403018152908290526360f9bb1160e01b825291506000906001600160a01b038616906360f9bb11906108519085906004016139ca565b600060405180830381865afa15801561086e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108969190810190613bf9565b604051636da11afb60e11b81529091506001600160a01b0386169063db4235f6906108c5908490600401613cd9565b602060405180830381865afa1580156108e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109069190613d12565b61091b578160405160200161048b9190613d34565b6040516309389f5960e31b81526001600160a01b038616906349c4fac890610947908490600401613dab565b600060405180830381865afa158015610964573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261098c9190810190613bf9565b8452604051636da11afb60e11b81526001600160a01b0386169063db4235f6906109ba908490600401613df1565b602060405180830381865afa1580156109d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fb9190613d12565b15610a77576040516309389f5960e31b81526001600160a01b038616906349c4fac890610a2c908490600401613df1565b600060405180830381865afa158015610a49573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a719190810190613bf9565b60408501525b846001600160a01b03166349c4fac8828660000151604051602001610a9c9190613e32565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401610ac8929190613e8d565b600060405180830381865afa158015610ae5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b0d9190810190613bf9565b606085015250608083015250949350505050565b60408051600480825260a0820190925260609160009190816020015b6060815260200190600190039081610b3d579050509050604051806040016040528060048152602001630677265760e41b81525081600081518110610b8457610b84613eb2565b6020026020010181905250604051806040016040528060038152602001620b5c9b60ea1b81525081600181518110610bbe57610bbe613eb2565b602002602001018190525084604051602001610bda9190613ec8565b60405160208183030381529060405281600281518110610bfc57610bfc613eb2565b602002602001018190525082604051602001610c189190613efd565b60405160208183030381529060405281600381518110610c3a57610c3a613eb2565b60209081029190910101526000610c5082611952565b9050600081602001519050610cb7610c8a60405180604001604052806005815260200164173539b7b760d91b81525061214e60201b60201c565b6040805180820182526000808252602091820152815180830190925284518252808501908201529061217b565b610ccc578560405160200161048b9190613f2c565b9695505050505050565b60a0810151604080518082018252600080825260209182015281518083019092528251808352928101910152606090600080516020616ad08339815191529015610d20565b511590565b610e3c57826020015115610db05760405162461bcd60e51b81526020600482015260586024820152600080516020616af083398151915260448201527f62652075736564207768656e207468652060736b6970566572696679536f757260648201527f6365436f646560206f7074696f6e206973206074727565600000000000000000608482015260a4016104b1565b8260c0015115610e3c5760405162461bcd60e51b81526020600482015260536024820152600080516020616af083398151915260448201527f62652075736564207768656e207468652060736b69704c6963656e736554797060648201527f6560206f7074696f6e2069732060747275656000000000000000000000000000608482015260a4016104b1565b6040805160ff8082526120008201909252600091816020015b6060815260200190600190039081610e555790505090506000604051806040016040528060038152602001620dce0f60eb1b815250828280610e9690613fc1565b935060ff1681518110610eab57610eab613eb2565b60200260200101819052506040518060400160405280600d81526020016c302e302e312d616c7068612e3760981b815250604051602001610eec9190613fe0565b604051602081830303815290604052828280610f0790613fc1565b935060ff1681518110610f1c57610f1c613eb2565b6020026020010181905250604051806040016040528060068152602001656465706c6f7960d01b815250828280610f5290613fc1565b935060ff1681518110610f6757610f67613eb2565b60200260200101819052506040518060400160405280600e81526020016d2d2d636f6e74726163744e616d6560901b815250828280610fa590613fc1565b935060ff1681518110610fba57610fba613eb2565b60200260200101819052508760200151828280610fd690613fc1565b935060ff1681518110610feb57610feb613eb2565b60200260200101819052506040518060400160405280600e81526020016d05a5ac6dedce8e4c2c6e8a0c2e8d60931b81525082828061102990613fc1565b935060ff168151811061103e5761103e613eb2565b60209081029190910101528751828261105681613fc1565b935060ff168151811061106b5761106b613eb2565b6020026020010181905250604051806040016040528060098152602001680b4b58da185a5b925960ba1b8152508282806110a490613fc1565b935060ff16815181106110b9576110b9613eb2565b60209081029190910101526110cd466121dc565b82826110d881613fc1565b935060ff16815181106110ed576110ed613eb2565b60200260200101819052506040518060400160405280600f81526020016e2d2d6275696c64496e666f46696c6560881b81525082828061112c90613fc1565b935060ff168151811061114157611141613eb2565b60200260200101819052508682828061115990613fc1565b935060ff168151811061116e5761116e613eb2565b602090810291909101015285511561127c5760408051808201909152601581527f2d2d636f6e7374727563746f7242797465636f64650000000000000000000000602082015282826111bf81613fc1565b935060ff16815181106111d4576111d4613eb2565b60209081029190910101526040516371aad10d60e01b81526001600160a01b038416906371aad10d9061120b9089906004016139ca565b600060405180830381865afa158015611228573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112509190810190613bf9565b828261125b81613fc1565b935060ff168151811061127057611270613eb2565b60200260200101819052505b846020015115611329576040805180820190915260128152712d2d766572696679536f75726365436f646560701b602082015282826112ba81613fc1565b935060ff16815181106112cf576112cf613eb2565b60200260200101819052506040518060400160405280600581526020016466616c736560d81b81525082828061130490613fc1565b935060ff168151811061131957611319613eb2565b6020026020010181905250611490565b61133f610d1b8660a0015161214e60201b60201c565b6113c25760408051808201909152600d81526c2d2d6c6963656e73655479706560981b6020820152828261137281613fc1565b935060ff168151811061138757611387613eb2565b60200260200101819052508460a001516040516020016113a79190613ec8565b60405160208183030381529060405282828061130490613fc1565b8460c001511580156113e757506113e5610d1b896040015161214e60201b60201c565b155b156114905760408051808201909152600d81526c2d2d6c6963656e73655479706560981b6020820152828261141b81613fc1565b935060ff168151811061143057611430613eb2565b60209081029190910101526114448861226e565b6040516020016114549190613ec8565b60405160208183030381529060405282828061146f90613fc1565b935060ff168151811061148457611484613eb2565b60200260200101819052505b6114a6610d1b866040015161214e60201b60201c565b6115295760408051808201909152600b81526a0b4b5c995b185e595c925960aa1b602082015282826114d781613fc1565b935060ff16815181106114ec576114ec613eb2565b6020026020010181905250846040015182828061150890613fc1565b935060ff168151811061151d5761151d613eb2565b60200260200101819052505b60608501511561161a576040805180820190915260068152650b4b5cd85b1d60d21b6020820152828261155b81613fc1565b935060ff168151811061157057611570613eb2565b60209081029190910101526060850151604051631623433d60e31b815260048101919091526001600160a01b0384169063b11a19e890602401600060405180830381865afa1580156115c6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115ee9190810190613bf9565b82826115f981613fc1565b935060ff168151811061160e5761160e613eb2565b60200260200101819052505b60e085015151156116ac5760408051808201909152600a8152690b4b59d85cd31a5b5a5d60b21b6020820152828261165181613fc1565b935060ff168151811061166657611666613eb2565b602090810291909101015260e085015151611680906121dc565b828261168b81613fc1565b935060ff16815181106116a0576116a0613eb2565b60200260200101819052505b60e085015160200151156117495760408051808201909152600a8152692d2d676173507269636560b01b602082015282826116e681613fc1565b935060ff16815181106116fb576116fb613eb2565b602002602001018190525061171d8560e00151602001516121dc60201b60201c565b828261172881613fc1565b935060ff168151811061173d5761173d613eb2565b60200260200101819052505b60e085015160400151156117ea5760408051808201909152600e81526d2d2d6d617846656550657247617360901b6020820152828261178781613fc1565b935060ff168151811061179c5761179c613eb2565b60200260200101819052506117be8560e00151604001516121dc60201b60201c565b82826117c981613fc1565b935060ff16815181106117de576117de613eb2565b60200260200101819052505b60e0850151606001511561189a5760408051808201909152601681527f2d2d6d61785072696f72697479466565506572476173000000000000000000006020820152828261183781613fc1565b935060ff168151811061184c5761184c613eb2565b602002602001018190525061186e8560e00151606001516121dc60201b60201c565b828261187981613fc1565b935060ff168151811061188e5761188e613eb2565b60200260200101819052505b60008160ff166001600160401b038111156118b7576118b7613a06565b6040519080825280602002602001820160405280156118ea57816020015b60608152602001906001900390816118d55790505b50905060005b8260ff168160ff16101561194357838160ff168151811061191357611913613eb2565b6020026020010151828260ff168151811061193057611930613eb2565b60209081029190910101526001016118f0565b5093505050505b949350505050565b6119796040518060600160405280600060030b815260200160608152602001606081525090565b6040805180820182526004808252630c4c2e6d60e31b602083015291516334515cdb60e21b8152600080516020616ad083398151915292600091849163d145736c916119c791869101614037565b600060405180830381865afa1580156119e4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a0c9190810190613bf9565b90506000611a1a8683612924565b90506000846001600160a01b031663f45c1ce7836040518263ffffffff1660e01b8152600401611a4a919061407e565b6000604051808303816000875af1158015611a69573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a9191908101906140e3565b805190915060030b15801590611aaa5750602081015151155b8015611ab95750604081015151155b15610ccc5781600081518110611ad157611ad1613eb2565b602002602001015160405160200161048b9190614196565b60606000611b1e8560408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b604080518082018252600080825260209182015281518083019092528651825280870190820152909150611b559082905b90612a5e565b15611c52576000611bd282611bcc81611bc6611b988a60408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b6040805180820182526000808252602091820152815180830190925282518252918201519181019190915290565b90612a85565b90612ae2565b9050611c06611bff604051806040016040528060018152602001600560f91b81525061214e60201b60201c565b8290612a5e565b15611c4057611c3d611c36604051806040016040528060018152602001600560f91b81525061214e60201b60201c565b8290612b67565b90505b611c4981612b8d565b925050506103a6565b8215611c6b57848460405160200161048b929190614366565b50506040805160208101909152600081526103a6565b509392505050565b6000808251602084016000f09392505050565b8160a0015115611cab57505050565b6000611cb8848484612bf2565b90506000611cc582611952565b602081015181519192509060030b158015611d385750611d38611d0c604051806040016040528060078152602001665355434345535360c81b81525061214e60201b60201c565b604080518082018252600080825260209182015281518083019092528451825280850190820152611b4f565b15611d4557505050505050565b60408201515115611d6557816040015160405160200161048b91906143e1565b8060405160200161048b919061442b565b60606000611dab8360408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b9050611de2611ddb604051806040016040528060048152602001630b9cdbdb60e21b81525061214e60201b60201c565b829061217b565b15611e24576103a6611e1f611e18604051806040016040528060048152602001630b9cdbdb60e21b81525061214e60201b60201c565b8390613105565b612b8d565b611e56611e4f604051806040016040528060018152602001601d60f91b81525061214e60201b60201c565b829061318f565b600103611ebe57611e88611c36604051806040016040528060018152602001601d60f91b81525061214e60201b60201c565b506103a6611e1f611eb7604051806040016040528060018152602001601d60f91b81525061214e60201b60201c565b8390612b67565b611eed611ddb60405180604001604052806005815260200164173539b7b760d91b81525061214e60201b60201c565b15611fba576000611f2582611f20604051806040016040528060018152602001602f60f81b81525061214e60201b60201c565b613224565b905060008160018351611f38919061447b565b81518110611f4857611f48613eb2565b60200260200101519050611fb1611e1f611f8460405180604001604052806005815260200164173539b7b760d91b81525061214e60201b60201c565b60408051808201825260008082526020918201528151808301909252855182528086019082015290613105565b95945050505050565b8260405160200161048b919061448e565b606060006120008360408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b9050612030611ddb604051806040016040528060048152602001630b9cdbdb60e21b81525061214e60201b60201c565b1561203e576103a681612b8d565b612069611e4f604051806040016040528060018152602001601d60f91b81525061214e60201b60201c565b60010361209e576103a6611e1f611eb7604051806040016040528060018152602001601d60f91b81525061214e60201b60201c565b6120cd611ddb60405180604001604052806005815260200164173539b7b760d91b81525061214e60201b60201c565b15611fba57600061210082611f20604051806040016040528060018152602001602f60f81b81525061214e60201b60201c565b905060018151111561213c57806002825161211b919061447b565b8151811061212b5761212b613eb2565b602002602001015192505050919050565b508260405160200161048b919061448e565b60408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b80518251600091111561219057506000610298565b815183516020850151600092916121a691614548565b6121b0919061447b565b9050826020015181036121c7576001915050610298565b82516020840151819020912014905092915050565b606060006121e9836132c8565b60010190506000816001600160401b0381111561220857612208613a06565b6040519080825280601f01601f191660200182016040528015612232576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461223c57509392505050565b60606000612285836040015161214e60201b60201c565b90506122c26122bb6040518060400160405280600a8152602001691553931250d15394d15160b21b81525061214e60201b60201c565b82906133aa565b156122e95750506040805180820190915260048152634e6f6e6560e01b6020820152919050565b61231c6122bb60405180604001604052806009815260200168556e6c6963656e736560b81b81525061214e60201b60201c565b15612348575050604080518082019091526009815268556e6c6963656e736560b81b6020820152919050565b6123756122bb6040518060400160405280600381526020016213525560ea1b81525061214e60201b60201c565b1561239b57505060408051808201909152600381526213525560ea1b6020820152919050565b6123d16122bb6040518060400160405280600c81526020016b47504c2d322e302d6f6e6c7960a01b81525061214e60201b60201c565b8061241157506124116122bb6040518060400160405280601081526020016f23a8261699171816b7b916b630ba32b960811b81525061214e60201b60201c565b1561243d57505060408051808201909152600981526823a72a9023a8263b1960b91b6020820152919050565b6124736122bb6040518060400160405280600c81526020016b47504c2d332e302d6f6e6c7960a01b81525061214e60201b60201c565b806124b357506124b36122bb6040518060400160405280601081526020016f23a8261699971816b7b916b630ba32b960811b81525061214e60201b60201c565b156124df575050604080518082019091526009815268474e552047504c763360b81b6020820152919050565b6125166122bb6040518060400160405280600d81526020016c4c47504c2d322e312d6f6e6c7960981b81525061214e60201b60201c565b8061255757506125576122bb604051806040016040528060118152602001702623a8261699171896b7b916b630ba32b960791b81525061214e60201b60201c565b1561258657505060408051808201909152600c81526b474e55204c47504c76322e3160a01b6020820152919050565b6125bd6122bb6040518060400160405280600d81526020016c4c47504c2d332e302d6f6e6c7960981b81525061214e60201b60201c565b806125fe57506125fe6122bb604051806040016040528060118152602001702623a8261699971816b7b916b630ba32b960791b81525061214e60201b60201c565b1561262b57505060408051808201909152600a815269474e55204c47504c763360b01b6020820152919050565b6126616122bb6040518060400160405280600c81526020016b4253442d322d436c6175736560a01b81525061214e60201b60201c565b1561269057505060408051808201909152600c81526b4253442d322d436c6175736560a01b6020820152919050565b6126c66122bb6040518060400160405280600c81526020016b4253442d332d436c6175736560a01b81525061214e60201b60201c565b156126f557505060408051808201909152600c81526b4253442d332d436c6175736560a01b6020820152919050565b6127266122bb6040518060400160405280600781526020016604d504c2d322e360cc1b81525061214e60201b60201c565b1561275057505060408051808201909152600781526604d504c2d322e360cc1b6020820152919050565b6127816122bb6040518060400160405280600781526020016604f534c2d332e360cc1b81525061214e60201b60201c565b156127ab57505060408051808201909152600781526604f534c2d332e360cc1b6020820152919050565b6127df6122bb6040518060400160405280600a81526020016904170616368652d322e360b41b81525061214e60201b60201c565b1561280c57505060408051808201909152600a81526904170616368652d322e360b41b6020820152919050565b6128436122bb6040518060400160405280600d81526020016c4147504c2d332e302d6f6e6c7960981b81525061214e60201b60201c565b8061288457506128846122bb6040518060400160405280601181526020017020a3a8261699971816b7b916b630ba32b960791b81525061214e60201b60201c565b156128b157505060408051808201909152600a815269474e55204147504c763360b01b6020820152919050565b6128e36122bb604051806040016040528060088152602001674255534c2d312e3160c01b81525061214e60201b60201c565b1561290d57505060408051808201909152600781526642534c20312e3160c81b6020820152919050565b6040808401518451915161048b929060200161455b565b60608060005b84518110156129af578185828151811061294657612946613eb2565b602002602001015160405160200161295f929190613b06565b60405160208183030381529060405291506001855161297e919061447b565b81146129a7578160405160200161299591906146ab565b60405160208183030381529060405291505b60010161292a565b5060408051600380825260808201909252600091816020015b60608152602001906001900390816129c857905050905083816000815181106129f3576129f3613eb2565b6020026020010181905250604051806040016040528060028152602001612d6360f01b81525081600181518110612a2c57612a2c613eb2565b60200260200101819052508181600281518110612a4b57612a4b613eb2565b6020908102919091010152949350505050565b6020808301518351835192840151600093612a7c92918491906133be565b14159392505050565b6040805180820190915260008082526020808301829052845185820151855192860151612ab293906134cf565b9050836020015181612ac4919061447b565b84518590612ad390839061447b565b90525060208401525090919050565b6040805180820190915260008082526020820152815183511015612b07575081610298565b6020808301519084015160019114612b2e5750815160208481015190840151829020919020145b8015612b5f57825184518590612b4590839061447b565b9052508251602085018051612b5b908390614548565b9052505b509192915050565b6040805180820190915260008082526020820152612b868383836135ef565b5092915050565b6060600082600001516001600160401b03811115612bad57612bad613a06565b6040519080825280601f01601f191660200182016040528015612bd7576020820181803683370190505b50602084810151855192935090830191612b86918391613695565b60606000612bfe610664565b6040805160ff808252612000820190925291925060009190816020015b6060815260200190600190039081612c1b5790505090506000604051806040016040528060038152602001620dce0f60eb1b815250828280612c5c90613fc1565b935060ff1681518110612c7157612c71613eb2565b6020026020010181905250604051806040016040528060078152602001665e312e33322e3360c81b815250604051602001612cac91906146d0565b604051602081830303815290604052828280612cc790613fc1565b935060ff1681518110612cdc57612cdc613eb2565b60200260200101819052506040518060400160405280600881526020016776616c696461746560c01b815250828280612d1490613fc1565b935060ff1681518110612d2957612d29613eb2565b602002602001018190525082604051602001612d459190613efd565b604051602081830303815290604052828280612d6090613fc1565b935060ff1681518110612d7557612d75613eb2565b60200260200101819052506040518060400160405280600a8152602001690b4b58dbdb9d1c9858dd60b21b815250828280612daf90613fc1565b935060ff1681518110612dc457612dc4613eb2565b6020908102919091010152612dd9878461370f565b8282612de481613fc1565b935060ff1681518110612df957612df9613eb2565b602090810291909101015285515115612e915760408051808201909152600b81526a2d2d7265666572656e636560a81b60208201528282612e3981613fc1565b935060ff1681518110612e4e57612e4e613eb2565b60209081029190910101528551612e65908461370f565b8282612e7081613fc1565b935060ff1681518110612e8557612e85613eb2565b60200260200101819052505b856080015115612eff5760408051808201909152601881527f2d2d756e73616665536b697053746f72616765436865636b000000000000000060208201528282612eda81613fc1565b935060ff1681518110612eef57612eef613eb2565b6020026020010181905250612f5a565b8415612f5a576040805180820190915260128152712d2d726571756972655265666572656e636560701b60208201528282612f3981613fc1565b935060ff1681518110612f4e57612f4e613eb2565b60200260200101819052505b60408601515115612fe65760408051808201909152600d81526c2d2d756e73616665416c6c6f7760981b60208201528282612f9481613fc1565b935060ff1681518110612fa957612fa9613eb2565b60200260200101819052508560400151828280612fc590613fc1565b935060ff1681518110612fda57612fda613eb2565b60200260200101819052505b8560600151156130505760408051808201909152601481527f2d2d756e73616665416c6c6f7752656e616d65730000000000000000000000006020820152828261302f81613fc1565b935060ff168151811061304457613044613eb2565b60200260200101819052505b60008160ff166001600160401b0381111561306d5761306d613a06565b6040519080825280602002602001820160405280156130a057816020015b606081526020019060019003908161308b5790505b50905060005b8260ff168160ff1610156130f957838160ff16815181106130c9576130c9613eb2565b6020026020010151828260ff16815181106130e6576130e6613eb2565b60209081029190910101526001016130a6565b50979650505050505050565b604080518082019091526000808252602082015281518351101561312a575081610298565b8151835160208501516000929161314091614548565b61314a919061447b565b6020840151909150600190821461316b575082516020840151819020908220145b80156131865783518551869061318290839061447b565b9052505b50929392505050565b8051825160208085015190840151600093849390926131af9284906134cf565b6131b99190614548565b90505b835160208501516131cd9190614548565b8111612b8657816131dd81614715565b92505082600001516132138560200151836131f8919061447b565b8651613204919061447b565b855160208701518591906134cf565b61321d9190614548565b90506131bc565b60606000613232848461318f565b61323d906001614548565b6001600160401b0381111561325457613254613a06565b60405190808252806020026020018201604052801561328757816020015b60608152602001906001900390816132725790505b50905060005b8151811015611c81576132a3611e1f8686612b67565b8282815181106132b5576132b5613eb2565b602090810291909101015260010161328d565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310613311577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef8100000000831061333d576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061335b57662386f26fc10000830492506010015b6305f5e1008310613373576305f5e100830492506008015b612710831061338757612710830492506004015b60648310613399576064830492506002015b600a83106102985760010192915050565b60006133b6838361374f565b159392505050565b6000808584116134c5576020841161347157600084156134095760016133e586602061447b565b6133f090600861472e565b6133fb90600261482c565b613405919061447b565b1990505b83518116856134188989614548565b613422919061447b565b805190935082165b81811461345c57878411613444578794505050505061194a565b8361344e81614838565b94505082845116905061342a565b6134668785614548565b94505050505061194a565b83832061347e858861447b565b6134889087614548565b91505b8582106134c3578482208082036134b0576134a68684614548565b935050505061194a565b6134bb60018461447b565b92505061348b565b505b5092949350505050565b600083818685116135da5760208511613589576000851561351b5760016134f787602061447b565b61350290600861472e565b61350d90600261482c565b613517919061447b565b1990505b8451811660008761352c8b8b614548565b613536919061447b565b855190915083165b82811461357b57818610613563576135568b8b614548565b965050505050505061194a565b8561356d81614715565b96505083865116905061353e565b85965050505050505061194a565b508383206000905b61359b868961447b565b82116135d8578583208082036135b7578394505050505061194a565b6135c2600185614548565b93505081806135d090614715565b925050613591565b505b6135e48787614548565b979650505050505050565b604080518082019091526000808252602080830182905285518682015186519287015161361c93906134cf565b602080870180519186019190915251909150613638908261447b565b83528451602086015161364b9190614548565b810361365a576000855261368c565b835183516136689190614548565b8551869061367790839061447b565b90525083516136869082614548565b60208601525b50909392505050565b602081106136cd57815183526136ac602084614548565b92506136b9602083614548565b91506136c660208261447b565b9050613695565b60001981156136fc5760016136e383602061447b565b6136ef9061010061482c565b6136f9919061447b565b90505b9151835183169219169190911790915250565b6060600061371d84846106fe565b80516020808301516040519394506137379390910161484f565b60405160208183030381529060405291505092915050565b8151815160009190811115613762575081515b6020808501519084015160005b8381101561381b57825182518082146137eb5760001960208710156137ca5760018461379c89602061447b565b6137a69190614548565b6137b190600861472e565b6137bc90600261482c565b6137c6919061447b565b1990505b81811683821681810391146137e85797506102989650505050505050565b50505b6137f6602086614548565b9450613803602085614548565b935050506020816138149190614548565b905061376f565b5084518651610ccc919061488b565b610c9f80615e3183390190565b6040518060e0016040528060608152602001606081526020016060815260200160001515815260200160001515815260200160001515815260200161387a61387f565b905290565b6040518061010001604052806000151581526020016000151581526020016060815260200160008019168152602001606081526020016060815260200160001515815260200161387a6040518060800160405280600081526020016000815260200160008152602001600081525090565b60005b8381101561390b5781810151838201526020016138f3565b50506000910152565b6000815180845261392c8160208601602086016138f0565b601f01601f19169290920160200192915050565b6001600160a01b038316815260406020820181905260009061194a90830184613914565b7f4661696c656420746f206465706c6f7920636f6e74726163742000000000000081526000835161399c81601a8501602088016138f0565b6101d160f51b601a9184019182015283516139be81601c8401602088016138f0565b01601c01949350505050565b6020815260006103a66020830184613914565b6000602082840312156139ef57600080fd5b81516001600160a01b03811681146103a657600080fd5b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715613a3e57613a3e613a06565b60405290565b6000806001600160401b03841115613a5e57613a5e613a06565b50604051601f19601f85018116603f011681018181106001600160401b0382111715613a8c57613a8c613a06565b604052838152905080828401851015613aa457600080fd5b611c818460208301856138f0565b600082601f830112613ac357600080fd5b6103a683835160208501613a44565b600060208284031215613ae457600080fd5b81516001600160401b03811115613afa57600080fd5b61029484828501613ab2565b60008351613b188184602088016138f0565b835190830190613b2c8183602088016138f0565b01949350505050565b7f4661696c656420746f206465706c6f7920636f6e747261637420000000000000815260008351613b6d81601a8501602088016138f0565b7f207573696e6720636f6e7374727563746f722064617461202200000000000000601a918401918201528351613baa8160338401602088016138f0565b601160f91b60339290910191820152603401949350505050565b60408152600b60408201526a1193d55391149657d3d55560aa1b60608201526080602082015260006103a66080830184613914565b600060208284031215613c0b57600080fd5b81516001600160401b03811115613c2157600080fd5b8201601f81018413613c3257600080fd5b61029484825160208401613a44565b60008551613c53818460208a016138f0565b602f60f81b9083019081528551613c71816001840160208a016138f0565b602f60f81b600192909101918201528451613c938160028401602089016138f0565b600181830101915050602f60f81b60018201528351613cb98160028401602088016138f0565b64173539b7b760d91b600292909101918201526007019695505050505050565b604081526000613cec6040830184613914565b828103602084015260048152630b985cdd60e21b60208201526040810191505092915050565b600060208284031215613d2457600080fd5b815180151581146103a657600080fd5b7f436f756c64206e6f742066696e642041535420696e2061727469666163742000815260008251613d6c81601f8501602087016138f0565b7f2e205365742060617374203d20747275656020696e20666f756e6472792e746f601f939091019283015250611b5b60f21b603f820152604101919050565b604081526000613dbe6040830184613914565b8281036020840152601181527005cc2e6e85cc2c4e6ded8eae8caa0c2e8d607b1b60208201526040810191505092915050565b604081526000613e046040830184613914565b8281036020840152600c81526b2e6173742e6c6963656e736560a01b60208201526040810191505092915050565b7f2e6d657461646174612e736f75726365732e5b27000000000000000000000000815260008251613e6a8160148501602087016138f0565b6b13ae9735b2b1b1b0b5991a9b60a11b6014939091019283015250602001919050565b604081526000613ea06040830185613914565b82810360208401526103a28185613914565b634e487b7160e01b600052603260045260246000fd5b601160f91b81528151600090613ee58160018501602087016138f0565b601160f91b6001939091019283015250600201919050565b60008251613f0f8184602087016138f0565b6a2f6275696c642d696e666f60a81b920191825250600b01919050565b7f436f756c64206e6f742066696e64206275696c642d696e666f2066696c65207781527f697468206d61746368696e6720736f7572636520636f6465206861736820666f60208201526a0391031b7b73a3930b1ba160ad1b604082015260008251613f9e81604b8501602087016138f0565b91909101604b0192915050565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff8103613fd757613fd7613fab565b60010192915050565b7f406f70656e7a657070656c696e2f646566656e6465722d6465706c6f792d636c81526801a595b9d0b58db1a560be1b60208201526000825161402a8160298501602087016138f0565b9190910160290192915050565b60408152601660408201527f4f50454e5a455050454c494e5f424153485f504154480000000000000000000060608201526080602082015260006103a66080830184613914565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b828110156140d757603f198786030184526140c2858351613914565b945060209384019391909101906001016140a6565b50929695505050505050565b6000602082840312156140f557600080fd5b81516001600160401b0381111561410b57600080fd5b82016060818503121561411d57600080fd5b614125613a1c565b81518060030b811461413657600080fd5b815260208201516001600160401b0381111561415157600080fd5b61415d86828501613ab2565b60208301525060408201516001600160401b0381111561417c57600080fd5b61418886828501613ab2565b604083015250949350505050565b7f4661696c656420746f2072756e206261736820636f6d6d616e642077697468208152601160f91b6020820152600082516141d88160218501602087016138f0565b7f222e20496620796f7520617265207573696e672057696e646f77732c2073657460219390910192830152507f20746865204f50454e5a455050454c494e5f424153485f5041544820656e766960418201527f726f6e6d656e74207661726961626c6520746f207468652066756c6c7920717560618201527f616c69666965642070617468206f66207468652062617368206578656375746160818201527f626c652e20466f72206578616d706c652c20696620796f75206172652075736960a18201527f6e672047697420666f722057696e646f77732c206164642074686520666f6c6c60c18201527f6f77696e67206c696e6520696e20746865202e656e762066696c65206f66207960e18201527f6f75722070726f6a65637420287573696e6720666f727761726420736c6173686101018201527f6573293a0a4f50454e5a455050454c494e5f424153485f504154483d22433a2f6101218201527f50726f6772616d2046696c65732f4769742f62696e2f6261736822000000000061014182015261015c01919050565b7f4661696c656420746f2066696e64206c696e65207769746820707265666978208152602760f81b6020820152600083516143a88160218501602088016138f0565b6c0139034b71037baba383aba1d1609d1b60219184019182015283516143d581602e8401602088016138f0565b01602e01949350505050565b7f4661696c656420746f2072756e2075706772616465207361666574792076616c815268034b230ba34b7b71d160bd1b60208201526000825161402a8160298501602087016138f0565b7f55706772616465207361666574792076616c69646174696f6e206661696c65648152611d0560f11b60208201526000825161446e8160228501602087016138f0565b9190910160220192915050565b8181038181111561029857610298613fab565b6d021b7b73a3930b1ba103730b6b2960951b8152600082516144b781600e8501602087016138f0565b7f206d75737420626520696e2074686520666f726d6174204d79436f6e74726163600e9390910192830152507f742e736f6c3a4d79436f6e7472616374206f72204d79436f6e74726163742e73602e8201527f6f6c206f72206f75742f4d79436f6e74726163742e736f6c2f4d79436f6e7472604e8201526730b1ba173539b7b760c11b606e820152607601919050565b8082018082111561029857610298613fab565b7f53504458206c6963656e7365206964656e7469666965722000000000000000008152600083516145938160188501602088016138f0565b6301034b7160e51b60189184019182015283516145b781601c8401602088016138f0565b7f20646f6573206e6f74206c6f6f6b206c696b65206120737570706f7274656420601c92909101918201527f6c6963656e736520666f7220626c6f636b206578706c6f726572207665726966603c8201527f69636174696f6e2e205573652074686520606c6963656e73655479706560206f605c8201527f7074696f6e20746f20737065636966792061206c6963656e736520747970652c607c8201527f206f7220736574207468652060736b69704c6963656e73655479706560206f70609c8201527f74696f6e20746f2060747275656020746f20736b69702e00000000000000000060bc82015260d301949350505050565b600082516146bd8184602087016138f0565b600160fd1b920191825250600101919050565b7f406f70656e7a657070656c696e2f75706772616465732d636f7265400000000081526000825161470881601c8501602087016138f0565b91909101601c0192915050565b60006001820161472757614727613fab565b5060010190565b808202811582820484141761029857610298613fab565b6001815b60018411156147805780850481111561476457614764613fab565b600184161561477257908102905b60019390931c928002614749565b935093915050565b60008261479757506001610298565b816147a457506000610298565b81600181146147ba57600281146147c4576147e0565b6001915050610298565b60ff8411156147d5576147d5613fab565b50506001821b610298565b5060208310610133831016604e8410600b8410161715614803575081810a610298565b6148106000198484614745565b806000190482111561482457614824613fab565b029392505050565b60006103a68383614788565b60008161484757614847613fab565b506000190190565b600083516148618184602088016138f0565b601d60f91b908301908152835161487f8160018401602088016138f0565b01600101949350505050565b8181036000831280158383131683831282161715612b8657612b86613fab565b611577806148ba6000396000f3fe608060405234801561001057600080fd5b506004361061016c5760003560e01c80636133b4bb116100cd578063a217fddf11610081578063d547741f11610066578063d547741f14610366578063d9caed1214610379578063e63ab1e91461038c57600080fd5b8063a217fddf1461034b578063c8a023621461035357600080fd5b80638456cb59116100b25780638456cb59146102d657806385f438c1146102de57806391d148541461030557600080fd5b80636133b4bb146102a357806381100bf0146102b657600080fd5b806336568abe116101245780633f4ba83a116101095780633f4ba83a146102705780635b112591146102785780635c975abb1461029857600080fd5b806336568abe1461023d5780633c2f05a81461025057600080fd5b806321fc65f21161015557806321fc65f2146101e3578063248a9ca3146101f85780632f2ff15d1461022a57600080fd5b806301ffc9a714610171578063116191b614610199575b600080fd5b61018461017f3660046111a6565b6103b3565b60405190151581526020015b60405180910390f35b6002546101be90610100900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610190565b6101f66101f136600461125a565b61044c565b005b61021c6102063660046112c9565b6000908152600160208190526040909120015490565b604051908152602001610190565b6101f66102383660046112e2565b6105c1565b6101f661024b3660046112e2565b6105ed565b6004546101be9073ffffffffffffffffffffffffffffffffffffffff1681565b6101f661064b565b6003546101be9073ffffffffffffffffffffffffffffffffffffffff1681565b60025460ff16610184565b6101f66102b136600461130e565b610680565b6005546101be9073ffffffffffffffffffffffffffffffffffffffff1681565b6101f661089f565b61021c7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e481565b6101846103133660046112e2565b600091825260016020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b61021c600081565b6101f661036136600461125a565b6108d1565b6101f66103743660046112e2565b610a2c565b6101f6610387366004611368565b610a52565b61021c7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061044657507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b610454610b1f565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e461047e81610b62565b610486610b6c565b6002546104b29073ffffffffffffffffffffffffffffffffffffffff8881169161010090041686610bab565b6002546040517f5131ab5900000000000000000000000000000000000000000000000000000000815261010090910473ffffffffffffffffffffffffffffffffffffffff1690635131ab599061051490899089908990899089906004016113ee565b600060405180830381600087803b15801561052e57600080fd5b505af1158015610542573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e8686866040516105a79392919061144b565b60405180910390a3506105ba6001600055565b5050505050565b600082815260016020819052604090912001546105dd81610b62565b6105e78383610c38565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8116331461063c576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106468282610d03565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61067581610b62565b61067d610dc2565b50565b60045473ffffffffffffffffffffffffffffffffffffffff166340c10f19306106aa86600561146e565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff90921660048301526024820152604401600060405180830381600087803b15801561071557600080fd5b505af1158015610729573d6000803e3d6000fd5b5050600480546007546040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216938101939093526005602484015216925063a9059cbb91506044016020604051808303816000875af11580156107aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ce91906114a8565b506004546107f59073ffffffffffffffffffffffffffffffffffffffff168585858561044c565b600480546002546040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff61010090920482169381019390935216906370a0823190602401602060405180830381865afa15801561086e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089291906114ca565b156105e7576105e76114e3565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6108c981610b62565b61067d610e3f565b6108d9610b1f565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e461090381610b62565b61090b610b6c565b6002546109379073ffffffffffffffffffffffffffffffffffffffff8881169161010090041686610bab565b6002546040517fb8969bd400000000000000000000000000000000000000000000000000000000815261010090910473ffffffffffffffffffffffffffffffffffffffff169063b8969bd49061099990899089908990899089906004016113ee565b600060405180830381600087803b1580156109b357600080fd5b505af11580156109c7573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c88686866040516105a79392919061144b565b60008281526001602081905260409091200154610a4881610b62565b6105e78383610d03565b610a5a610b1f565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e4610a8481610b62565b610a8c610b6c565b610aad73ffffffffffffffffffffffffffffffffffffffff85168484610bab565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb84604051610b0c91815260200190565b60405180910390a3506106466001600055565b600260005403610b5b576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b61067d8133610e9a565b60025460ff1615610ba9576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610646908490610f2b565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff16610cfb57600083815260016020818152604080842073ffffffffffffffffffffffffffffffffffffffff8716808652925280842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169093179092559051339286917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a4506001610446565b506000610446565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff1615610cfb57600083815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610446565b610dca610fc1565b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b610e47610b6c565b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610e153390565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610f27576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602481018390526044015b60405180910390fd5b5050565b6000610f4d73ffffffffffffffffffffffffffffffffffffffff841683610ffd565b90508051600014158015610f72575080806020019051810190610f7091906114a8565b155b15610646576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602401610f1e565b60025460ff16610ba9576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606061100b83836000611012565b9392505050565b606081471015611050576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610f1e565b6000808573ffffffffffffffffffffffffffffffffffffffff1684866040516110799190611512565b60006040518083038185875af1925050503d80600081146110b6576040519150601f19603f3d011682016040523d82523d6000602084013e6110bb565b606091505b50915091506110cb8683836110d5565b9695505050505050565b6060826110ea576110e582611164565b61100b565b815115801561110e575073ffffffffffffffffffffffffffffffffffffffff84163b155b1561115d576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610f1e565b508061100b565b8051156111745780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000602082840312156111b857600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461100b57600080fd5b803573ffffffffffffffffffffffffffffffffffffffff8116811461120c57600080fd5b919050565b60008083601f84011261122357600080fd5b50813567ffffffffffffffff81111561123b57600080fd5b60208301915083602082850101111561125357600080fd5b9250929050565b60008060008060006080868803121561127257600080fd5b61127b866111e8565b9450611289602087016111e8565b935060408601359250606086013567ffffffffffffffff8111156112ac57600080fd5b6112b888828901611211565b969995985093965092949392505050565b6000602082840312156112db57600080fd5b5035919050565b600080604083850312156112f557600080fd5b82359150611305602084016111e8565b90509250929050565b6000806000806060858703121561132457600080fd5b61132d856111e8565b935060208501359250604085013567ffffffffffffffff81111561135057600080fd5b61135c87828801611211565b95989497509550505050565b60008060006060848603121561137d57600080fd5b611386846111e8565b9250611394602085016111e8565b929592945050506040919091013590565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff851660208201528360408201526080606082015260006114406080830184866113a5565b979650505050505050565b8381526040602082015260006114656040830184866113a5565b95945050505050565b80820180821115610446577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000602082840312156114ba57600080fd5b8151801515811461100b57600080fd5b6000602082840312156114dc57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b6000825160005b818110156115335760208186018101518583015201611519565b50600092019182525091905056fea2646970667358221220e3eceeff6045b5584ad5b26814ad7e9728c8428c7219e4a4930ed3899cab596964736f6c634300081a0033608060405234801561001057600080fd5b50604051610c9f380380610c9f83398101604081905261002f9161010d565b8181600361003d83826101ff565b50600461004a82826101ff565b50505050506102bd565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261007b57600080fd5b81516001600160401b0381111561009457610094610054565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100c2576100c2610054565b6040528181528382016020018510156100da57600080fd5b60005b828110156100f9576020818601810151838301820152016100dd565b506000918101602001919091529392505050565b6000806040838503121561012057600080fd5b82516001600160401b0381111561013657600080fd5b6101428582860161006a565b602085015190935090506001600160401b0381111561016057600080fd5b61016c8582860161006a565b9150509250929050565b600181811c9082168061018a57607f821691505b6020821081036101aa57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156101fa57806000526020600020601f840160051c810160208510156101d75750805b601f840160051c820191505b818110156101f757600081556001016101e3565b50505b505050565b81516001600160401b0381111561021857610218610054565b61022c816102268454610176565b846101b0565b6020601f82116001811461026057600083156102485750848201515b600019600385901b1c1916600184901b1784556101f7565b600084815260208120601f198516915b828110156102905787850151825560209485019460019092019101610270565b50848210156102ae5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b6109d3806102cc6000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c806340c10f191161007657806395d89b411161005b57806395d89b4114610183578063a9059cbb1461018b578063dd62ed3e1461019e57600080fd5b806340c10f191461013857806370a082311461014d57600080fd5b806318160ddd116100a757806318160ddd1461010457806323b872dd14610116578063313ce5671461012957600080fd5b806306fdde03146100c3578063095ea7b3146100e1575b600080fd5b6100cb6101e4565b6040516100d891906107bf565b60405180910390f35b6100f46100ef366004610854565b610276565b60405190151581526020016100d8565b6002545b6040519081526020016100d8565b6100f461012436600461087e565b610290565b604051601281526020016100d8565b61014b610146366004610854565b6102b4565b005b61010861015b3660046108bb565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6100cb6102c2565b6100f4610199366004610854565b6102d1565b6101086101ac3660046108dd565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101f390610910565b80601f016020809104026020016040519081016040528092919081815260200182805461021f90610910565b801561026c5780601f106102415761010080835404028352916020019161026c565b820191906000526020600020905b81548152906001019060200180831161024f57829003601f168201915b5050505050905090565b6000336102848185856102df565b60019150505b92915050565b60003361029e8582856102f1565b6102a98585856103c5565b506001949350505050565b6102be8282610470565b5050565b6060600480546101f390610910565b6000336102848185856103c5565b6102ec83838360016104cc565b505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146103bf57818110156103b0576040517ffb8f41b200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101829052604481018390526064015b60405180910390fd5b6103bf848484840360006104cc565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610415576040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff8216610465576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b6102ec838383610614565b73ffffffffffffffffffffffffffffffffffffffff82166104c0576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b6102be60008383610614565b73ffffffffffffffffffffffffffffffffffffffff841661051c576040517fe602df05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff831661056c576040517f94280d62000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020908152604080832093871683529290522082905580156103bf578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161060691815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff831661064c5780600260008282546106419190610963565b909155506106fe9050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902054818110156106d2576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260248101829052604481018390526064016103a7565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090209082900390555b73ffffffffffffffffffffffffffffffffffffffff821661072757600280548290039055610753565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090208054820190555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107b291815260200190565b60405180910390a3505050565b602081526000825180602084015260005b818110156107ed57602081860181015160408684010152016107d0565b5060006040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461084f57600080fd5b919050565b6000806040838503121561086757600080fd5b6108708361082b565b946020939093013593505050565b60008060006060848603121561089357600080fd5b61089c8461082b565b92506108aa6020850161082b565b929592945050506040919091013590565b6000602082840312156108cd57600080fd5b6108d68261082b565b9392505050565b600080604083850312156108f057600080fd5b6108f98361082b565b91506109076020840161082b565b90509250929050565b600181811c9082168061092457607f821691505b60208210810361095d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b8082018082111561028a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea26469706673582212207e804ca539d49155d2b6bc19268ce22f9f857027c75247d69fb0d56a089c93d464736f6c634300081a00330000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12d54686520606c6963656e73655479706560206f7074696f6e2063616e6e6f7420"; + +type ERC20CustodyEchidnaTestConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: ERC20CustodyEchidnaTestConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class ERC20CustodyEchidnaTest__factory extends ContractFactory { + constructor(...args: ERC20CustodyEchidnaTestConstructorParams) { + 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< + ERC20CustodyEchidnaTest & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect( + runner: ContractRunner | null + ): ERC20CustodyEchidnaTest__factory { + return super.connect(runner) as ERC20CustodyEchidnaTest__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): ERC20CustodyEchidnaTestInterface { + return new Interface(_abi) as ERC20CustodyEchidnaTestInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): ERC20CustodyEchidnaTest { + return new Contract( + address, + _abi, + runner + ) as unknown as ERC20CustodyEchidnaTest; + } +} diff --git a/v2/typechain-types/factories/ERC20Custody__factory.ts b/v2/typechain-types/factories/ERC20Custody__factory.ts new file mode 100644 index 00000000..d2602a55 --- /dev/null +++ b/v2/typechain-types/factories/ERC20Custody__factory.ts @@ -0,0 +1,662 @@ +/* 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 { ERC20Custody, ERC20CustodyInterface } from "../ERC20Custody"; + +const _abi = [ + { + type: "constructor", + inputs: [ + { + name: "_gateway", + type: "address", + internalType: "address", + }, + { + name: "_tssAddress", + type: "address", + internalType: "address", + }, + { + name: "_admin", + type: "address", + internalType: "address", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "DEFAULT_ADMIN_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "PAUSER_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "WITHDRAWER_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "gateway", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "contract IGatewayEVM", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getRoleAdmin", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "grantRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "hasRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "pause", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "paused", + inputs: [], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "renounceRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "callerConfirmation", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "revokeRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + 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: "tssAddress", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "unpause", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + 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: "Paused", + inputs: [ + { + name: "account", + type: "address", + indexed: false, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RoleAdminChanged", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "previousAdminRole", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "newAdminRole", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RoleGranted", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "account", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RoleRevoked", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "account", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Unpaused", + inputs: [ + { + name: "account", + type: "address", + indexed: false, + internalType: "address", + }, + ], + 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: "error", + name: "AccessControlBadConfirmation", + inputs: [], + }, + { + type: "error", + name: "AccessControlUnauthorizedAccount", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "neededRole", + type: "bytes32", + internalType: "bytes32", + }, + ], + }, + { + 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: "EnforcedPause", + inputs: [], + }, + { + type: "error", + name: "ExpectedPause", + inputs: [], + }, + { + type: "error", + name: "FailedInnerCall", + 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 = + "0x608060405234801561001057600080fd5b506040516113e23803806113e283398101604081905261002f916101d3565b60016000556002805460ff191690556001600160a01b038316158061005b57506001600160a01b038216155b156100795760405163d92e233d60e01b815260040160405180910390fd5b60028054610100600160a81b0319166101006001600160a01b038681169190910291909117909155600380546001600160a01b0319169184169190911790556100c3600082610122565b506100ee7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a82610122565b506101197f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e483610122565b50505050610216565b60008281526001602090815260408083206001600160a01b038516845290915281205460ff166101ad5760008381526001602081815260408084206001600160a01b0387168086529252808420805460ff19169093179092559051339286917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45060016101b1565b5060005b92915050565b80516001600160a01b03811681146101ce57600080fd5b919050565b6000806000606084860312156101e857600080fd5b6101f1846101b7565b92506101ff602085016101b7565b915061020d604085016101b7565b90509250925092565b6111bd806102256000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c80635c975abb116100b2578063a217fddf11610081578063d547741f11610066578063d547741f146102c2578063d9caed12146102d5578063e63ab1e9146102e857600080fd5b8063a217fddf146102a7578063c8a02362146102af57600080fd5b80635c975abb146102275780638456cb591461023257806385f438c11461023a57806391d148541461026157600080fd5b80632f2ff15d116100ee5780632f2ff15d146101d957806336568abe146101ec5780633f4ba83a146101ff5780635b1125911461020757600080fd5b806301ffc9a714610120578063116191b61461014857806321fc65f214610192578063248a9ca3146101a7575b600080fd5b61013361012e366004610ee3565b61030f565b60405190151581526020015b60405180910390f35b60025461016d90610100900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161013f565b6101a56101a0366004610f4e565b6103a8565b005b6101cb6101b5366004610feb565b6000908152600160208190526040909120015490565b60405190815260200161013f565b6101a56101e7366004611004565b61051d565b6101a56101fa366004611004565b610549565b6101a56105a7565b60035461016d9073ffffffffffffffffffffffffffffffffffffffff1681565b60025460ff16610133565b6101a56105dc565b6101cb7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e481565b61013361026f366004611004565b600091825260016020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b6101cb600081565b6101a56102bd366004610f4e565b61060e565b6101a56102d0366004611004565b610769565b6101a56102e3366004611030565b61078f565b6101cb7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806103a257507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6103b061085c565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e46103da8161089f565b6103e26108a9565b60025461040e9073ffffffffffffffffffffffffffffffffffffffff88811691610100900416866108e8565b6002546040517f5131ab5900000000000000000000000000000000000000000000000000000000815261010090910473ffffffffffffffffffffffffffffffffffffffff1690635131ab599061047090899089908990899089906004016110b6565b600060405180830381600087803b15801561048a57600080fd5b505af115801561049e573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e86868660405161050393929190611113565b60405180910390a3506105166001600055565b5050505050565b600082815260016020819052604090912001546105398161089f565b6105438383610975565b50505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610598576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105a28282610a40565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6105d18161089f565b6105d9610aff565b50565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6106068161089f565b6105d9610b7c565b61061661085c565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e46106408161089f565b6106486108a9565b6002546106749073ffffffffffffffffffffffffffffffffffffffff88811691610100900416866108e8565b6002546040517fb8969bd400000000000000000000000000000000000000000000000000000000815261010090910473ffffffffffffffffffffffffffffffffffffffff169063b8969bd4906106d690899089908990899089906004016110b6565b600060405180830381600087803b1580156106f057600080fd5b505af1158015610704573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c886868660405161050393929190611113565b600082815260016020819052604090912001546107858161089f565b6105438383610a40565b61079761085c565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e46107c18161089f565b6107c96108a9565b6107ea73ffffffffffffffffffffffffffffffffffffffff851684846108e8565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb8460405161084991815260200190565b60405180910390a3506105a26001600055565b600260005403610898576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b6105d98133610bd7565b60025460ff16156108e6576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526105a2908490610c68565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff16610a3857600083815260016020818152604080842073ffffffffffffffffffffffffffffffffffffffff8716808652925280842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169093179092559051339286917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45060016103a2565b5060006103a2565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff1615610a3857600083815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016103a2565b610b07610cfe565b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b610b846108a9565b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610b523390565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610c64576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602481018390526044015b60405180910390fd5b5050565b6000610c8a73ffffffffffffffffffffffffffffffffffffffff841683610d3a565b90508051600014158015610caf575080806020019051810190610cad9190611136565b155b156105a2576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602401610c5b565b60025460ff166108e6576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060610d4883836000610d4f565b9392505050565b606081471015610d8d576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610c5b565b6000808573ffffffffffffffffffffffffffffffffffffffff168486604051610db69190611158565b60006040518083038185875af1925050503d8060008114610df3576040519150601f19603f3d011682016040523d82523d6000602084013e610df8565b606091505b5091509150610e08868383610e12565b9695505050505050565b606082610e2757610e2282610ea1565b610d48565b8151158015610e4b575073ffffffffffffffffffffffffffffffffffffffff84163b155b15610e9a576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610c5b565b5080610d48565b805115610eb15780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060208284031215610ef557600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610d4857600080fd5b803573ffffffffffffffffffffffffffffffffffffffff81168114610f4957600080fd5b919050565b600080600080600060808688031215610f6657600080fd5b610f6f86610f25565b9450610f7d60208701610f25565b935060408601359250606086013567ffffffffffffffff811115610fa057600080fd5b8601601f81018813610fb157600080fd5b803567ffffffffffffffff811115610fc857600080fd5b886020828401011115610fda57600080fd5b959894975092955050506020019190565b600060208284031215610ffd57600080fd5b5035919050565b6000806040838503121561101757600080fd5b8235915061102760208401610f25565b90509250929050565b60008060006060848603121561104557600080fd5b61104e84610f25565b925061105c60208501610f25565b929592945050506040919091013590565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff8516602082015283604082015260806060820152600061110860808301848661106d565b979650505050505050565b83815260406020820152600061112d60408301848661106d565b95945050505050565b60006020828403121561114857600080fd5b81518015158114610d4857600080fd5b6000825160005b81811015611179576020818601810151858301520161115f565b50600092019182525091905056fea2646970667358221220f228501fb7798406cf58c84b1f7af446926eecd69943c0a6760dfd0c5550e2ff64736f6c634300081a0033"; + +type ERC20CustodyConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: ERC20CustodyConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class ERC20Custody__factory extends ContractFactory { + constructor(...args: ERC20CustodyConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + _gateway: AddressLike, + _tssAddress: AddressLike, + _admin: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction( + _gateway, + _tssAddress, + _admin, + overrides || {} + ); + } + override deploy( + _gateway: AddressLike, + _tssAddress: AddressLike, + _admin: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ) { + return super.deploy( + _gateway, + _tssAddress, + _admin, + overrides || {} + ) as Promise< + ERC20Custody & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): ERC20Custody__factory { + return super.connect(runner) as ERC20Custody__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): ERC20CustodyInterface { + return new Interface(_abi) as ERC20CustodyInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): ERC20Custody { + return new Contract(address, _abi, runner) as unknown as ERC20Custody; + } +} 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..8825fb05 --- /dev/null +++ b/v2/typechain-types/factories/GatewayEVMEchidnaTest__factory.ts @@ -0,0 +1,1117 @@ +/* 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: "ASSET_HANDLER_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "DEFAULT_ADMIN_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "PAUSER_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "TSS_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + 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: "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: "getRoleAdmin", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "grantRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "hasRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "initialize", + inputs: [ + { + name: "_tssAddress", + type: "address", + internalType: "address", + }, + { + name: "_zetaToken", + type: "address", + internalType: "address", + }, + { + name: "_admin", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "pause", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "paused", + inputs: [], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "proxiableUUID", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "renounceRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "callerConfirmation", + type: "address", + internalType: "address", + }, + ], + 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: "revokeRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + 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: "supportsInterface", + inputs: [ + { + name: "interfaceId", + type: "bytes4", + internalType: "bytes4", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + 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: "tssAddress", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "unpause", + inputs: [], + 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: "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: "Paused", + inputs: [ + { + name: "account", + type: "address", + indexed: false, + 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: "RoleAdminChanged", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "previousAdminRole", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "newAdminRole", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RoleGranted", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "account", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RoleRevoked", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "account", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Unpaused", + inputs: [ + { + name: "account", + 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: "AccessControlBadConfirmation", + inputs: [], + }, + { + type: "error", + name: "AccessControlUnauthorizedAccount", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "neededRole", + type: "bytes32", + internalType: "bytes32", + }, + ], + }, + { + 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: "EnforcedPause", + inputs: [], + }, + { + type: "error", + name: "ExecutionFailed", + inputs: [], + }, + { + type: "error", + name: "ExpectedPause", + inputs: [], + }, + { + type: "error", + name: "FailedInnerCall", + inputs: [], + }, + { + type: "error", + name: "InsufficientERC20Amount", + inputs: [], + }, + { + type: "error", + name: "InsufficientETHAmount", + inputs: [], + }, + { + type: "error", + name: "InvalidInitialization", + inputs: [], + }, + { + type: "error", + name: "NotInitializing", + inputs: [], + }, + { + 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 = + "0x60a060405230608052600580546001600160a01b0319163317905534801561002657600080fd5b5061002f610154565b600554600180546001600160a01b039092166001600160a01b031992831617905560028054610123921691909117905560405161006b90610206565b60408082526004908201819052631d195cdd60e21b606083015260806020830181905282015263151154d560e21b60a082015260c001604051809103906000f0801580156100bd573d6000803e3d6000fd5b50600480546001600160a01b0319166001600160a01b039283161790556001546040513092919091169082906100f290610213565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103906000f08015801561012e573d6000803e3d6000fd5b50600080546001600160a01b0319166001600160a01b0392909216919091179055610220565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156101a45760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146102035780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b610c9f8061324883390190565b6113e280613ee783390190565b608051612fff61024960003960008181611d3301528181611d5c01526121a50152612fff6000f3fe6080604052600436106102345760003560e01c80635c975abb11610138578063ad3cb1cc116100b0578063d547741f1161007f578063e63ab1e911610064578063e63ab1e9146106ff578063f340fa0114610733578063f45346dc1461074657600080fd5b8063d547741f146106bf578063dda79b75146106df57600080fd5b8063ad3cb1cc14610616578063ae7a3a6f1461065f578063b8969bd41461067f578063c0c53b8b1461069f57600080fd5b80638456cb591161010757806391d14854116100ec57806391d1485414610568578063a217fddf146105cd578063a783c789146105e257600080fd5b80638456cb59146105335780638c6f037f1461054857600080fd5b80635c975abb146104885780635d62c860146104bf5780636ab90f9b146104f357806381100bf01461051357600080fd5b806335c018db116101cb5780634f1ef2861161019a57806352d1902d1161017f57806352d1902d1461043357806357bec62f146104485780635b1125911461046857600080fd5b80634f1ef286146104005780635131ab591461041357600080fd5b806335c018db1461039857806336568abe146103ab5780633c2f05a8146103cb5780633f4ba83a146103eb57600080fd5b806321e093b11161020757806321e093b1146102d0578063248a9ca31461030857806329c59b5d146103655780632f2ff15d1461037857600080fd5b806301ffc9a71461023957806310188aef1461026e5780631b8b921d146102905780631cff79cd146102b0575b600080fd5b34801561024557600080fd5b506102596102543660046129e9565b610766565b60405190151581526020015b60405180910390f35b34801561027a57600080fd5b5061028e610289366004612a47565b6107ff565b005b34801561029c57600080fd5b5061028e6102ab366004612aab565b6108f3565b6102c36102be366004612aab565b61094d565b6040516102659190612b6c565b3480156102dc57600080fd5b506003546102f0906001600160a01b031681565b6040516001600160a01b039091168152602001610265565b34801561031457600080fd5b50610357610323366004612b7f565b60009081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b604051908152602001610265565b61028e610373366004612aab565b6109de565b34801561038457600080fd5b5061028e610393366004612b98565b610b0b565b61028e6103a6366004612aab565b610b55565b3480156103b757600080fd5b5061028e6103c6366004612b98565b610cdc565b3480156103d757600080fd5b506004546102f0906001600160a01b031681565b3480156103f757600080fd5b5061028e610d2d565b61028e61040e366004612bf3565b610d62565b34801561041f57600080fd5b5061028e61042e366004612cfa565b610d81565b34801561043f57600080fd5b5061035761105e565b34801561045457600080fd5b506002546102f0906001600160a01b031681565b34801561047457600080fd5b506001546102f0906001600160a01b031681565b34801561049457600080fd5b507fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff16610259565b3480156104cb57600080fd5b506103577f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b981565b3480156104ff57600080fd5b5061028e61050e366004612d69565b61108d565b34801561051f57600080fd5b506005546102f0906001600160a01b031681565b34801561053f57600080fd5b5061028e6111b8565b34801561055457600080fd5b5061028e610563366004612dc3565b6111ea565b34801561057457600080fd5b50610259610583366004612b98565b60009182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156105d957600080fd5b50610357600081565b3480156105ee57600080fd5b506103577f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb81565b34801561062257600080fd5b506102c36040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b34801561066b57600080fd5b5061028e61067a366004612a47565b61128f565b34801561068b57600080fd5b5061028e61069a366004612cfa565b611383565b3480156106ab57600080fd5b5061028e6106ba366004612e15565b6114fd565b3480156106cb57600080fd5b5061028e6106da366004612b98565b6117b2565b3480156106eb57600080fd5b506000546102f0906001600160a01b031681565b34801561070b57600080fd5b506103577f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b61028e610741366004612a47565b6117f6565b34801561075257600080fd5b5061028e610761366004612e58565b611923565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806107f957507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b600061080a816119d6565b6002546001600160a01b03161561084d576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03821661088d576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108b77f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b9836119e0565b5050600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6108fb611acd565b826001600160a01b0316336001600160a01b03167f2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde38484604051610940929190612ed4565b60405180910390a3505050565b60607f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb610979816119d6565b610981611acd565b600061098e868686611b2b565b9050856001600160a01b03167fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f3487876040516109cd93929190612ef0565b60405180910390a295945050505050565b6109e6611acd565b34600003610a20576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040516000916001600160a01b03169034908381818185875af1925050503d8060008114610a6d576040519150601f19603f3d011682016040523d82523d6000602084013e610a72565b606091505b5090915050801515600003610ab3576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b836001600160a01b0316336001600160a01b03167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a43460008787604051610afd9493929190612f0a565b60405180910390a350505050565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610b45816119d6565b610b4f83836119e0565b50505050565b7f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb610b7f816119d6565b610b87611acd565b600080856001600160a01b03163460405160006040518083038185875af1925050503d8060008114610bd5576040519150601f19603f3d011682016040523d82523d6000602084013e610bda565b606091505b509150915081610c16576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f8fcaa0b50000000000000000000000000000000000000000000000000000000081526001600160a01b03871690638fcaa0b590610c5d9088908890600401612ed4565b600060405180830381600087803b158015610c7757600080fd5b505af1158015610c8b573d6000803e3d6000fd5b50505050856001600160a01b03167fd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c348787604051610ccc93929190612ef0565b60405180910390a2505050505050565b6001600160a01b0381163314610d1e576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d288282611bd4565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610d57816119d6565b610d5f611c98565b50565b610d6a611d28565b610d7382611df8565b610d7d8282611e03565b5050565b610d89611f27565b7f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b9610db3816119d6565b610dbb611acd565b83600003610df5576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610dff8686611fa8565b610e35576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301526024820186905287169063095ea7b3906044016020604051808303816000875af1158015610e9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec19190612f33565b610ef7576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610f04868585611b2b565b9050610f108787611fa8565b610f46576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038916906370a0823190602401602060405180830381865afa158015610fa6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fca9190612f55565b90508015610fdc57610fdc8882612038565b866001600160a01b0316886001600160a01b03167f29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b738288888860405161102393929190612ef0565b60405180910390a350505061105760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050505050565b600061106861219a565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b600480546040517f40c10f190000000000000000000000000000000000000000000000000000000081523092810192909252602482018590526001600160a01b0316906340c10f1990604401600060405180830381600087803b1580156110f357600080fd5b505af1158015611107573d6000803e3d6000fd5b505060045461112592506001600160a01b0316905085858585610d81565b600480546040517f70a0823100000000000000000000000000000000000000000000000000000000815230928101929092526001600160a01b0316906370a0823190602401602060405180830381865afa158015611187573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ab9190612f55565b15610b4f57610b4f612f6e565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6111e2816119d6565b610d5f6121fc565b6111f2611acd565b8360000361122c576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611237338486612275565b846001600160a01b0316336001600160a01b03167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4868686866040516112809493929190612f0a565b60405180910390a35050505050565b600061129a816119d6565b6000546001600160a01b0316156112dd576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03821661131d576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113477f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b9836119e0565b5050600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b61138b611f27565b7f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b96113b5816119d6565b6113bd611acd565b836000036113f7576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61140b6001600160a01b03871686866123c9565b6040517f8fcaa0b50000000000000000000000000000000000000000000000000000000081526001600160a01b03861690638fcaa0b5906114529086908690600401612ed4565b600060405180830381600087803b15801561146c57600080fd5b505af1158015611480573d6000803e3d6000fd5b50505050846001600160a01b0316866001600160a01b03167f723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda78686866040516114cb93929190612ef0565b60405180910390a35061105760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156115485750825b905060008267ffffffffffffffff1660011480156115655750303b155b905081158015611573575080155b156115aa576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001178555831561160b5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6001600160a01b038816158061162857506001600160a01b038716155b1561165f576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61166761243d565b61166f612445565b61167761243d565b61167f612455565b61168a6000876119e0565b506116b57f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a876119e0565b50600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038a161790556117137f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb896119e0565b50600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03891617905583156117a85784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680060205260409020600101546117ec816119d6565b610b4f8383611bd4565b6117fe611acd565b34600003611838576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040516000916001600160a01b03169034908381818185875af1925050503d8060008114611885576040519150601f19603f3d011682016040523d82523d6000602084013e61188a565b606091505b50909150508015156000036118cb576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408051348152600060208201819052606082840181905282015290516001600160a01b0384169133917f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a49181900360800190a35050565b61192b611acd565b81600003611965576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611970338284612275565b826001600160a01b0316336001600160a01b03167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a484846040516109409291909182526001600160a01b0316602082015260606040820181905260009082015260800190565b610d5f8133612465565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff16611ac3576000848152602082815260408083206001600160a01b0387168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055611a793390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506107f9565b60009150506107f9565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff1615611b29576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6060600080856001600160a01b0316348686604051611b4b929190612f9d565b60006040518083038185875af1925050503d8060008114611b88576040519150601f19603f3d011682016040523d82523d6000602084013e611b8d565b606091505b509150915081611bc9576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9150505b9392505050565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff1615611ac3576000848152602082815260408083206001600160a01b038716808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506107f9565b611ca06124f2565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480611dc157507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611db57f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b15611b29576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610d7d816119d6565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611e7b575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252611e7891810190612f55565b60015b611ec1576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114611f1d576040517faa1d49a400000000000000000000000000000000000000000000000000000000815260048101829052602401611eb8565b610d28838361254d565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0080547ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01611fa2576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60029055565b6040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b038281166004830152600060248301819052919084169063095ea7b3906044016020604051808303816000875af1158015612014573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bcd9190612f33565b6003546001600160a01b039081169083160361215a576002546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152602481018390529083169063095ea7b3906044016020604051808303816000875af11580156120ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120de9190612f33565b506002546040517f743e0c9b000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b039091169063743e0c9b90602401600060405180830381600087803b15801561213e57600080fd5b505af1158015612152573d6000803e3d6000fd5b505050505050565b600054610d7d906001600160a01b038481169116836123c9565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611b29576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612204611acd565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833611d0a565b6003546001600160a01b03908116908316036123ad576122a06001600160a01b0383168430846125a3565b6002546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152602481018390529083169063095ea7b3906044016020604051808303816000875af115801561230c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123309190612f33565b506002546040517f743e0c9b000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b039091169063743e0c9b90602401600060405180830381600087803b15801561239057600080fd5b505af11580156123a4573d6000803e3d6000fd5b50505050505050565b600054610d28906001600160a01b0384811691869116846125a3565b6040516001600160a01b03838116602483015260448201839052610d2891859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506125dc565b611b29612658565b61244d612658565b611b296126bf565b61245d612658565b611b296126c7565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038516845290915290205460ff16610d7d576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401611eb8565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff16611b29576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61255682612718565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561259b57610d2882826127c0565b610d7d612836565b6040516001600160a01b038481166024830152838116604483015260648201839052610b4f9186918216906323b872dd906084016123f6565b60006125f16001600160a01b0384168361286e565b905080516000141580156126165750808060200190518101906126149190612f33565b155b15610d28576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401611eb8565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff16611b29576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612174612658565b6126cf612658565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b806001600160a01b03163b600003612767576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b0382166004820152602401611eb8565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516127dd9190612fad565b600060405180830381855af49150503d8060008114612818576040519150601f19603f3d011682016040523d82523d6000602084013e61281d565b606091505b509150915061282d85838361287c565b95945050505050565b3415611b29576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060611bcd838360006128f1565b6060826128915761288c826129a7565b611bcd565b81511580156128a857506001600160a01b0384163b155b156128ea576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401611eb8565b5080611bcd565b60608147101561292f576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401611eb8565b600080856001600160a01b0316848660405161294b9190612fad565b60006040518083038185875af1925050503d8060008114612988576040519150601f19603f3d011682016040523d82523d6000602084013e61298d565b606091505b509150915061299d86838361287c565b9695505050505050565b8051156129b75780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000602082840312156129fb57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611bcd57600080fd5b80356001600160a01b0381168114612a4257600080fd5b919050565b600060208284031215612a5957600080fd5b611bcd82612a2b565b60008083601f840112612a7457600080fd5b50813567ffffffffffffffff811115612a8c57600080fd5b602083019150836020828501011115612aa457600080fd5b9250929050565b600080600060408486031215612ac057600080fd5b612ac984612a2b565b9250602084013567ffffffffffffffff811115612ae557600080fd5b612af186828701612a62565b9497909650939450505050565b60005b83811015612b19578181015183820152602001612b01565b50506000910152565b60008151808452612b3a816020860160208601612afe565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611bcd6020830184612b22565b600060208284031215612b9157600080fd5b5035919050565b60008060408385031215612bab57600080fd5b82359150612bbb60208401612a2b565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060408385031215612c0657600080fd5b612c0f83612a2b565b9150602083013567ffffffffffffffff811115612c2b57600080fd5b8301601f81018513612c3c57600080fd5b803567ffffffffffffffff811115612c5657612c56612bc4565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff82111715612cc257612cc2612bc4565b604052818152828201602001871015612cda57600080fd5b816020840160208301376000602083830101528093505050509250929050565b600080600080600060808688031215612d1257600080fd5b612d1b86612a2b565b9450612d2960208701612a2b565b935060408601359250606086013567ffffffffffffffff811115612d4c57600080fd5b612d5888828901612a62565b969995985093965092949392505050565b60008060008060608587031215612d7f57600080fd5b612d8885612a2b565b935060208501359250604085013567ffffffffffffffff811115612dab57600080fd5b612db787828801612a62565b95989497509550505050565b600080600080600060808688031215612ddb57600080fd5b612de486612a2b565b945060208601359350612df960408701612a2b565b9250606086013567ffffffffffffffff811115612d4c57600080fd5b600080600060608486031215612e2a57600080fd5b612e3384612a2b565b9250612e4160208501612a2b565b9150612e4f60408501612a2b565b90509250925092565b600080600060608486031215612e6d57600080fd5b612e7684612a2b565b925060208401359150612e4f60408501612a2b565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b602081526000612ee8602083018486612e8b565b949350505050565b83815260406020820152600061282d604083018486612e8b565b8481526001600160a01b038416602082015260606040820152600061299d606083018486612e8b565b600060208284031215612f4557600080fd5b81518015158114611bcd57600080fd5b600060208284031215612f6757600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b8183823760009101908152919050565b60008251612fbf818460208701612afe565b919091019291505056fea2646970667358221220e575ea5a18b9462f7a8e597ab970f6a09ecc09fd51c56fa3c6c1397f89f20af164736f6c634300081a0033608060405234801561001057600080fd5b50604051610c9f380380610c9f83398101604081905261002f9161010d565b8181600361003d83826101ff565b50600461004a82826101ff565b50505050506102bd565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261007b57600080fd5b81516001600160401b0381111561009457610094610054565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100c2576100c2610054565b6040528181528382016020018510156100da57600080fd5b60005b828110156100f9576020818601810151838301820152016100dd565b506000918101602001919091529392505050565b6000806040838503121561012057600080fd5b82516001600160401b0381111561013657600080fd5b6101428582860161006a565b602085015190935090506001600160401b0381111561016057600080fd5b61016c8582860161006a565b9150509250929050565b600181811c9082168061018a57607f821691505b6020821081036101aa57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156101fa57806000526020600020601f840160051c810160208510156101d75750805b601f840160051c820191505b818110156101f757600081556001016101e3565b50505b505050565b81516001600160401b0381111561021857610218610054565b61022c816102268454610176565b846101b0565b6020601f82116001811461026057600083156102485750848201515b600019600385901b1c1916600184901b1784556101f7565b600084815260208120601f198516915b828110156102905787850151825560209485019460019092019101610270565b50848210156102ae5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b6109d3806102cc6000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c806340c10f191161007657806395d89b411161005b57806395d89b4114610183578063a9059cbb1461018b578063dd62ed3e1461019e57600080fd5b806340c10f191461013857806370a082311461014d57600080fd5b806318160ddd116100a757806318160ddd1461010457806323b872dd14610116578063313ce5671461012957600080fd5b806306fdde03146100c3578063095ea7b3146100e1575b600080fd5b6100cb6101e4565b6040516100d891906107bf565b60405180910390f35b6100f46100ef366004610854565b610276565b60405190151581526020016100d8565b6002545b6040519081526020016100d8565b6100f461012436600461087e565b610290565b604051601281526020016100d8565b61014b610146366004610854565b6102b4565b005b61010861015b3660046108bb565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6100cb6102c2565b6100f4610199366004610854565b6102d1565b6101086101ac3660046108dd565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101f390610910565b80601f016020809104026020016040519081016040528092919081815260200182805461021f90610910565b801561026c5780601f106102415761010080835404028352916020019161026c565b820191906000526020600020905b81548152906001019060200180831161024f57829003601f168201915b5050505050905090565b6000336102848185856102df565b60019150505b92915050565b60003361029e8582856102f1565b6102a98585856103c5565b506001949350505050565b6102be8282610470565b5050565b6060600480546101f390610910565b6000336102848185856103c5565b6102ec83838360016104cc565b505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146103bf57818110156103b0576040517ffb8f41b200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101829052604481018390526064015b60405180910390fd5b6103bf848484840360006104cc565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610415576040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff8216610465576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b6102ec838383610614565b73ffffffffffffffffffffffffffffffffffffffff82166104c0576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b6102be60008383610614565b73ffffffffffffffffffffffffffffffffffffffff841661051c576040517fe602df05000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff831661056c576040517f94280d62000000000000000000000000000000000000000000000000000000008152600060048201526024016103a7565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020908152604080832093871683529290522082905580156103bf578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161060691815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff831661064c5780600260008282546106419190610963565b909155506106fe9050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040902054818110156106d2576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260248101829052604481018390526064016103a7565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090209082900390555b73ffffffffffffffffffffffffffffffffffffffff821661072757600280548290039055610753565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090208054820190555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107b291815260200190565b60405180910390a3505050565b602081526000825180602084015260005b818110156107ed57602081860181015160408684010152016107d0565b5060006040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461084f57600080fd5b919050565b6000806040838503121561086757600080fd5b6108708361082b565b946020939093013593505050565b60008060006060848603121561089357600080fd5b61089c8461082b565b92506108aa6020850161082b565b929592945050506040919091013590565b6000602082840312156108cd57600080fd5b6108d68261082b565b9392505050565b600080604083850312156108f057600080fd5b6108f98361082b565b91506109076020840161082b565b90509250929050565b600181811c9082168061092457607f821691505b60208210810361095d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b8082018082111561028a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea26469706673582212207e804ca539d49155d2b6bc19268ce22f9f857027c75247d69fb0d56a089c93d464736f6c634300081a0033608060405234801561001057600080fd5b506040516113e23803806113e283398101604081905261002f916101d3565b60016000556002805460ff191690556001600160a01b038316158061005b57506001600160a01b038216155b156100795760405163d92e233d60e01b815260040160405180910390fd5b60028054610100600160a81b0319166101006001600160a01b038681169190910291909117909155600380546001600160a01b0319169184169190911790556100c3600082610122565b506100ee7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a82610122565b506101197f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e483610122565b50505050610216565b60008281526001602090815260408083206001600160a01b038516845290915281205460ff166101ad5760008381526001602081815260408084206001600160a01b0387168086529252808420805460ff19169093179092559051339286917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45060016101b1565b5060005b92915050565b80516001600160a01b03811681146101ce57600080fd5b919050565b6000806000606084860312156101e857600080fd5b6101f1846101b7565b92506101ff602085016101b7565b915061020d604085016101b7565b90509250925092565b6111bd806102256000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c80635c975abb116100b2578063a217fddf11610081578063d547741f11610066578063d547741f146102c2578063d9caed12146102d5578063e63ab1e9146102e857600080fd5b8063a217fddf146102a7578063c8a02362146102af57600080fd5b80635c975abb146102275780638456cb591461023257806385f438c11461023a57806391d148541461026157600080fd5b80632f2ff15d116100ee5780632f2ff15d146101d957806336568abe146101ec5780633f4ba83a146101ff5780635b1125911461020757600080fd5b806301ffc9a714610120578063116191b61461014857806321fc65f214610192578063248a9ca3146101a7575b600080fd5b61013361012e366004610ee3565b61030f565b60405190151581526020015b60405180910390f35b60025461016d90610100900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161013f565b6101a56101a0366004610f4e565b6103a8565b005b6101cb6101b5366004610feb565b6000908152600160208190526040909120015490565b60405190815260200161013f565b6101a56101e7366004611004565b61051d565b6101a56101fa366004611004565b610549565b6101a56105a7565b60035461016d9073ffffffffffffffffffffffffffffffffffffffff1681565b60025460ff16610133565b6101a56105dc565b6101cb7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e481565b61013361026f366004611004565b600091825260016020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b6101cb600081565b6101a56102bd366004610f4e565b61060e565b6101a56102d0366004611004565b610769565b6101a56102e3366004611030565b61078f565b6101cb7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806103a257507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6103b061085c565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e46103da8161089f565b6103e26108a9565b60025461040e9073ffffffffffffffffffffffffffffffffffffffff88811691610100900416866108e8565b6002546040517f5131ab5900000000000000000000000000000000000000000000000000000000815261010090910473ffffffffffffffffffffffffffffffffffffffff1690635131ab599061047090899089908990899089906004016110b6565b600060405180830381600087803b15801561048a57600080fd5b505af115801561049e573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f85b5be9cf454e05e0bddf49315178102227c312078eefa3c00294fb4d912ae4e86868660405161050393929190611113565b60405180910390a3506105166001600055565b5050505050565b600082815260016020819052604090912001546105398161089f565b6105438383610975565b50505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610598576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105a28282610a40565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6105d18161089f565b6105d9610aff565b50565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6106068161089f565b6105d9610b7c565b61061661085c565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e46106408161089f565b6106486108a9565b6002546106749073ffffffffffffffffffffffffffffffffffffffff88811691610100900416866108e8565b6002546040517fb8969bd400000000000000000000000000000000000000000000000000000000815261010090910473ffffffffffffffffffffffffffffffffffffffff169063b8969bd4906106d690899089908990899089906004016110b6565b600060405180830381600087803b1580156106f057600080fd5b505af1158015610704573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fb9d4efa96044e5f5e03e696fa9ae2ff66911cc27e8a637c3627c75bc5b2241c886868660405161050393929190611113565b600082815260016020819052604090912001546107858161089f565b6105438383610a40565b61079761085c565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e46107c18161089f565b6107c96108a9565b6107ea73ffffffffffffffffffffffffffffffffffffffff851684846108e8565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb8460405161084991815260200190565b60405180910390a3506105a26001600055565b600260005403610898576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b6105d98133610bd7565b60025460ff16156108e6576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526105a2908490610c68565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff16610a3857600083815260016020818152604080842073ffffffffffffffffffffffffffffffffffffffff8716808652925280842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169093179092559051339286917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45060016103a2565b5060006103a2565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff1615610a3857600083815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016103a2565b610b07610cfe565b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b610b846108a9565b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610b523390565b600082815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610c64576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602481018390526044015b60405180910390fd5b5050565b6000610c8a73ffffffffffffffffffffffffffffffffffffffff841683610d3a565b90508051600014158015610caf575080806020019051810190610cad9190611136565b155b156105a2576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602401610c5b565b60025460ff166108e6576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060610d4883836000610d4f565b9392505050565b606081471015610d8d576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610c5b565b6000808573ffffffffffffffffffffffffffffffffffffffff168486604051610db69190611158565b60006040518083038185875af1925050503d8060008114610df3576040519150601f19603f3d011682016040523d82523d6000602084013e610df8565b606091505b5091509150610e08868383610e12565b9695505050505050565b606082610e2757610e2282610ea1565b610d48565b8151158015610e4b575073ffffffffffffffffffffffffffffffffffffffff84163b155b15610e9a576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610c5b565b5080610d48565b805115610eb15780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060208284031215610ef557600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610d4857600080fd5b803573ffffffffffffffffffffffffffffffffffffffff81168114610f4957600080fd5b919050565b600080600080600060808688031215610f6657600080fd5b610f6f86610f25565b9450610f7d60208701610f25565b935060408601359250606086013567ffffffffffffffff811115610fa057600080fd5b8601601f81018813610fb157600080fd5b803567ffffffffffffffff811115610fc857600080fd5b886020828401011115610fda57600080fd5b959894975092955050506020019190565b600060208284031215610ffd57600080fd5b5035919050565b6000806040838503121561101757600080fd5b8235915061102760208401610f25565b90509250929050565b60008060006060848603121561104557600080fd5b61104e84610f25565b925061105c60208501610f25565b929592945050506040919091013590565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff8516602082015283604082015260806060820152600061110860808301848661106d565b979650505050505050565b83815260406020820152600061112d60408301848661106d565b95945050505050565b60006020828403121561114857600080fd5b81518015158114610d4857600080fd5b6000825160005b81811015611179576020818601810151858301520161115f565b50600092019182525091905056fea2646970667358221220f228501fb7798406cf58c84b1f7af446926eecd69943c0a6760dfd0c5550e2ff64736f6c634300081a0033"; + +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..b6699ea5 --- /dev/null +++ b/v2/typechain-types/factories/GatewayEVMUpgradeTest__factory.ts @@ -0,0 +1,1093 @@ +/* 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: "ASSET_HANDLER_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "DEFAULT_ADMIN_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "PAUSER_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "TSS_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + 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: "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: "getRoleAdmin", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "grantRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "hasRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "initialize", + inputs: [ + { + name: "_tssAddress", + type: "address", + internalType: "address", + }, + { + name: "_zetaToken", + type: "address", + internalType: "address", + }, + { + name: "_admin", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "pause", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "paused", + inputs: [], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "proxiableUUID", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "renounceRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "callerConfirmation", + type: "address", + internalType: "address", + }, + ], + 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: "revokeRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + 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: "supportsInterface", + inputs: [ + { + name: "interfaceId", + type: "bytes4", + internalType: "bytes4", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "tssAddress", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "unpause", + inputs: [], + 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: "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: "Paused", + inputs: [ + { + name: "account", + type: "address", + indexed: false, + 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: "RoleAdminChanged", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "previousAdminRole", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "newAdminRole", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RoleGranted", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "account", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RoleRevoked", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "account", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Unpaused", + inputs: [ + { + name: "account", + 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: "AccessControlBadConfirmation", + inputs: [], + }, + { + type: "error", + name: "AccessControlUnauthorizedAccount", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "neededRole", + type: "bytes32", + internalType: "bytes32", + }, + ], + }, + { + 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: "EnforcedPause", + inputs: [], + }, + { + type: "error", + name: "ExecutionFailed", + inputs: [], + }, + { + type: "error", + name: "ExpectedPause", + inputs: [], + }, + { + type: "error", + name: "FailedInnerCall", + inputs: [], + }, + { + type: "error", + name: "InsufficientERC20Amount", + inputs: [], + }, + { + type: "error", + name: "InsufficientETHAmount", + inputs: [], + }, + { + type: "error", + name: "InvalidInitialization", + inputs: [], + }, + { + type: "error", + name: "NotInitializing", + inputs: [], + }, + { + 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 = + "0x60a06040523060805234801561001457600080fd5b5061001d610022565b6100d4565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100725760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100d15780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612d526100fd60003960008181611ab101528181611ada0152611f250152612d526000f3fe6080604052600436106101e35760003560e01c80635c975abb11610102578063ae7a3a6f11610095578063dda79b7511610064578063dda79b751461062e578063e63ab1e91461064e578063f340fa0114610682578063f45346dc1461069557600080fd5b8063ae7a3a6f146105ae578063b8969bd4146105ce578063c0c53b8b146105ee578063d547741f1461060e57600080fd5b806391d14854116100d157806391d14854146104b7578063a217fddf1461051c578063a783c78914610531578063ad3cb1cc1461056557600080fd5b80635c975abb146104175780635d62c8601461044e5780638456cb59146104825780638c6f037f1461049757600080fd5b806335c018db1161017a5780635131ab59116101495780635131ab59146103a257806352d1902d146103c257806357bec62f146103d75780635b112591146103f757600080fd5b806335c018db1461034757806336568abe1461035a5780633f4ba83a1461037a5780634f1ef2861461038f57600080fd5b806321e093b1116101b657806321e093b11461027f578063248a9ca3146102b757806329c59b5d146103145780632f2ff15d1461032757600080fd5b806301ffc9a7146101e857806310188aef1461021d5780631b8b921d1461023f5780631cff79cd1461025f575b600080fd5b3480156101f457600080fd5b506102086102033660046127c5565b6106b5565b60405190151581526020015b60405180910390f35b34801561022957600080fd5b5061023d610238366004612823565b61074e565b005b34801561024b57600080fd5b5061023d61025a366004612887565b610842565b61027261026d366004612887565b610894565b6040516102149190612948565b34801561028b57600080fd5b5060035461029f906001600160a01b031681565b6040516001600160a01b039091168152602001610214565b3480156102c357600080fd5b506103066102d236600461295b565b60009081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b604051908152602001610214565b61023d610322366004612887565b61091d565b34801561033357600080fd5b5061023d610342366004612974565b610a42565b61023d610355366004612887565b610a8c565b34801561036657600080fd5b5061023d610375366004612974565b610c0b565b34801561038657600080fd5b5061023d610c5c565b61023d61039d3660046129cf565b610c91565b3480156103ae57600080fd5b5061023d6103bd366004612ad6565b610cb0565b3480156103ce57600080fd5b50610306610f85565b3480156103e357600080fd5b5060025461029f906001600160a01b031681565b34801561040357600080fd5b5060015461029f906001600160a01b031681565b34801561042357600080fd5b507fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff16610208565b34801561045a57600080fd5b506103067f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b981565b34801561048e57600080fd5b5061023d610fb4565b3480156104a357600080fd5b5061023d6104b2366004612b45565b610fe6565b3480156104c357600080fd5b506102086104d2366004612974565b60009182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408084206001600160a01b0393909316845291905290205460ff1690565b34801561052857600080fd5b50610306600081565b34801561053d57600080fd5b506103067f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb81565b34801561057157600080fd5b506102726040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b3480156105ba57600080fd5b5061023d6105c9366004612823565b611083565b3480156105da57600080fd5b5061023d6105e9366004612ad6565b611177565b3480156105fa57600080fd5b5061023d610609366004612b97565b6112e9565b34801561061a57600080fd5b5061023d610629366004612974565b61159e565b34801561063a57600080fd5b5060005461029f906001600160a01b031681565b34801561065a57600080fd5b506103067f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b61023d610690366004612823565b6115e2565b3480156106a157600080fd5b5061023d6106b0366004612bda565b611707565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061074857507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6000610759816117b2565b6002546001600160a01b03161561079c576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166107dc576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108067f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b9836117bc565b5050600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b826001600160a01b0316336001600160a01b03167f2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde38484604051610887929190612c56565b60405180910390a3505050565b60607f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb6108c0816117b2565b60006108cd8686866118a9565b9050856001600160a01b03167f373df382b9c587826f3de13f16d67f8d99f28ee947fc0924c6ef2d6d2c7e854634878760405161090c93929190612c72565b60405180910390a295945050505050565b34600003610957576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040516000916001600160a01b03169034908381818185875af1925050503d80600081146109a4576040519150601f19603f3d011682016040523d82523d6000602084013e6109a9565b606091505b50909150508015156000036109ea576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b836001600160a01b0316336001600160a01b03167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a43460008787604051610a349493929190612c8c565b60405180910390a350505050565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610a7c816117b2565b610a8683836117bc565b50505050565b7f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb610ab6816117b2565b600080856001600160a01b03163460405160006040518083038185875af1925050503d8060008114610b04576040519150601f19603f3d011682016040523d82523d6000602084013e610b09565b606091505b509150915081610b45576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f8fcaa0b50000000000000000000000000000000000000000000000000000000081526001600160a01b03871690638fcaa0b590610b8c9088908890600401612c56565b600060405180830381600087803b158015610ba657600080fd5b505af1158015610bba573d6000803e3d6000fd5b50505050856001600160a01b03167fd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c348787604051610bfb93929190612c72565b60405180910390a2505050505050565b6001600160a01b0381163314610c4d576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c578282611952565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610c86816117b2565b610c8e611a16565b50565b610c99611aa6565b610ca282611b78565b610cac8282611b83565b5050565b610cb8611ca7565b7f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b9610ce2816117b2565b83600003610d1c576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d268686611d28565b610d5c576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301526024820186905287169063095ea7b3906044016020604051808303816000875af1158015610dc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de89190612cb5565b610e1e576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610e2b8685856118a9565b9050610e378787611d28565b610e6d576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038916906370a0823190602401602060405180830381865afa158015610ecd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef19190612cd7565b90508015610f0357610f038882611db8565b866001600160a01b0316886001600160a01b03167f29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382888888604051610f4a93929190612c72565b60405180910390a3505050610f7e60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050505050565b6000610f8f611f1a565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610fde816117b2565b610c8e611f7c565b83600003611020576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61102b338486611ff5565b846001600160a01b0316336001600160a01b03167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4868686866040516110749493929190612c8c565b60405180910390a35050505050565b600061108e816117b2565b6000546001600160a01b0316156110d1576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038216611111576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61113b7f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b9836117bc565b5050600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b61117f611ca7565b7f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b96111a9816117b2565b836000036111e3576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111f76001600160a01b0387168686612149565b6040517f8fcaa0b50000000000000000000000000000000000000000000000000000000081526001600160a01b03861690638fcaa0b59061123e9086908690600401612c56565b600060405180830381600087803b15801561125857600080fd5b505af115801561126c573d6000803e3d6000fd5b50505050846001600160a01b0316866001600160a01b03167f723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda78686866040516112b793929190612c72565b60405180910390a350610f7e60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156113345750825b905060008267ffffffffffffffff1660011480156113515750303b155b90508115801561135f575080155b15611396576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000016600117855583156113f75784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6001600160a01b038816158061141457506001600160a01b038716155b1561144b576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6114536121bd565b61145b6121c5565b6114636121bd565b61146b6121d5565b6114766000876117bc565b506114a17f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a876117bc565b50600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038a161790556114ff7f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb896117bc565b50600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03891617905583156115945784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b62680060205260409020600101546115d8816117b2565b610a868383611952565b3460000361161c576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040516000916001600160a01b03169034908381818185875af1925050503d8060008114611669576040519150601f19603f3d011682016040523d82523d6000602084013e61166e565b606091505b50909150508015156000036116af576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408051348152600060208201819052606082840181905282015290516001600160a01b0384169133917f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a49181900360800190a35050565b81600003611741576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61174c338284611ff5565b826001600160a01b0316336001600160a01b03167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a484846040516108879291909182526001600160a01b0316602082015260606040820181905260009082015260800190565b610c8e81336121e5565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff1661189f576000848152602082815260408083206001600160a01b0387168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556118553390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610748565b6000915050610748565b6060600080856001600160a01b03163486866040516118c9929190612cf0565b60006040518083038185875af1925050503d8060008114611906576040519150601f19603f3d011682016040523d82523d6000602084013e61190b565b606091505b509150915081611947576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9150505b9392505050565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff161561189f576000848152602082815260408083206001600160a01b038716808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610748565b611a1e612272565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480611b3f57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611b337f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b15611b76576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6000610cac816117b2565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611bfb575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252611bf891810190612cd7565b60015b611c41576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114611c9d576040517faa1d49a400000000000000000000000000000000000000000000000000000000815260048101829052602401611c38565b610c5783836122cd565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0080547ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01611d22576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60029055565b6040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b038281166004830152600060248301819052919084169063095ea7b3906044016020604051808303816000875af1158015611d94573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194b9190612cb5565b6003546001600160a01b0390811690831603611eda576002546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152602481018390529083169063095ea7b3906044016020604051808303816000875af1158015611e3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e5e9190612cb5565b506002546040517f743e0c9b000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b039091169063743e0c9b90602401600060405180830381600087803b158015611ebe57600080fd5b505af1158015611ed2573d6000803e3d6000fd5b505050505050565b600054610cac906001600160a01b03848116911683612149565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611b76576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611f84612323565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833611a88565b6003546001600160a01b039081169083160361212d576120206001600160a01b03831684308461237f565b6002546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152602481018390529083169063095ea7b3906044016020604051808303816000875af115801561208c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b09190612cb5565b506002546040517f743e0c9b000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b039091169063743e0c9b90602401600060405180830381600087803b15801561211057600080fd5b505af1158015612124573d6000803e3d6000fd5b50505050505050565b600054610c57906001600160a01b03848116918691168461237f565b6040516001600160a01b03838116602483015260448201839052610c5791859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506123b8565b611b76612434565b6121cd612434565b611b7661249b565b6121dd612434565b611b766124a3565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038516845290915290205460ff16610cac576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401611c38565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff16611b76576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6122d6826124f4565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561231b57610c57828261259c565b610cac612612565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff1615611b76576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040516001600160a01b038481166024830152838116604483015260648201839052610a869186918216906323b872dd90608401612176565b60006123cd6001600160a01b0384168361264a565b905080516000141580156123f25750808060200190518101906123f09190612cb5565b155b15610c57576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401611c38565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff16611b76576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611ef4612434565b6124ab612434565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b806001600160a01b03163b600003612543576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b0382166004820152602401611c38565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516125b99190612d00565b600060405180830381855af49150503d80600081146125f4576040519150601f19603f3d011682016040523d82523d6000602084013e6125f9565b606091505b5091509150612609858383612658565b95945050505050565b3415611b76576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606061194b838360006126cd565b60608261266d5761266882612783565b61194b565b815115801561268457506001600160a01b0384163b155b156126c6576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401611c38565b508061194b565b60608147101561270b576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401611c38565b600080856001600160a01b031684866040516127279190612d00565b60006040518083038185875af1925050503d8060008114612764576040519150601f19603f3d011682016040523d82523d6000602084013e612769565b606091505b5091509150612779868383612658565b9695505050505050565b8051156127935780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000602082840312156127d757600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461194b57600080fd5b80356001600160a01b038116811461281e57600080fd5b919050565b60006020828403121561283557600080fd5b61194b82612807565b60008083601f84011261285057600080fd5b50813567ffffffffffffffff81111561286857600080fd5b60208301915083602082850101111561288057600080fd5b9250929050565b60008060006040848603121561289c57600080fd5b6128a584612807565b9250602084013567ffffffffffffffff8111156128c157600080fd5b6128cd8682870161283e565b9497909650939450505050565b60005b838110156128f55781810151838201526020016128dd565b50506000910152565b600081518084526129168160208601602086016128da565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061194b60208301846128fe565b60006020828403121561296d57600080fd5b5035919050565b6000806040838503121561298757600080fd5b8235915061299760208401612807565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156129e257600080fd5b6129eb83612807565b9150602083013567ffffffffffffffff811115612a0757600080fd5b8301601f81018513612a1857600080fd5b803567ffffffffffffffff811115612a3257612a326129a0565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff82111715612a9e57612a9e6129a0565b604052818152828201602001871015612ab657600080fd5b816020840160208301376000602083830101528093505050509250929050565b600080600080600060808688031215612aee57600080fd5b612af786612807565b9450612b0560208701612807565b935060408601359250606086013567ffffffffffffffff811115612b2857600080fd5b612b348882890161283e565b969995985093965092949392505050565b600080600080600060808688031215612b5d57600080fd5b612b6686612807565b945060208601359350612b7b60408701612807565b9250606086013567ffffffffffffffff811115612b2857600080fd5b600080600060608486031215612bac57600080fd5b612bb584612807565b9250612bc360208501612807565b9150612bd160408501612807565b90509250925092565b600080600060608486031215612bef57600080fd5b612bf884612807565b925060208401359150612bd160408501612807565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b602081526000612c6a602083018486612c0d565b949350505050565b838152604060208201526000612609604083018486612c0d565b8481526001600160a01b0384166020820152606060408201526000612779606083018486612c0d565b600060208284031215612cc757600080fd5b8151801515811461194b57600080fd5b600060208284031215612ce957600080fd5b5051919050565b8183823760009101908152919050565b60008251612d128184602087016128da565b919091019291505056fea2646970667358221220e0d221e2700a741409740f6a05e6ac8e799e50b3e2a6e75b5173b33a31fa502464736f6c634300081a0033"; + +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..c47fde35 --- /dev/null +++ b/v2/typechain-types/factories/GatewayEVM__factory.ts @@ -0,0 +1,1056 @@ +/* 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: "ASSET_HANDLER_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "DEFAULT_ADMIN_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "PAUSER_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "TSS_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + 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: "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: "getRoleAdmin", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "grantRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "hasRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "initialize", + inputs: [ + { + name: "_tssAddress", + type: "address", + internalType: "address", + }, + { + name: "_zetaToken", + type: "address", + internalType: "address", + }, + { + name: "_admin", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "pause", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "paused", + inputs: [], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "proxiableUUID", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "renounceRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "callerConfirmation", + type: "address", + internalType: "address", + }, + ], + 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: "revokeRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + 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: "supportsInterface", + inputs: [ + { + name: "interfaceId", + type: "bytes4", + internalType: "bytes4", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "tssAddress", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "unpause", + inputs: [], + 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: "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: "Paused", + inputs: [ + { + name: "account", + type: "address", + indexed: false, + 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: "RoleAdminChanged", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "previousAdminRole", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "newAdminRole", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RoleGranted", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "account", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RoleRevoked", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "account", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Unpaused", + inputs: [ + { + name: "account", + 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: "AccessControlBadConfirmation", + inputs: [], + }, + { + type: "error", + name: "AccessControlUnauthorizedAccount", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "neededRole", + type: "bytes32", + internalType: "bytes32", + }, + ], + }, + { + 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: "EnforcedPause", + inputs: [], + }, + { + type: "error", + name: "ExecutionFailed", + inputs: [], + }, + { + type: "error", + name: "ExpectedPause", + inputs: [], + }, + { + type: "error", + name: "FailedInnerCall", + inputs: [], + }, + { + type: "error", + name: "InsufficientERC20Amount", + inputs: [], + }, + { + type: "error", + name: "InsufficientETHAmount", + inputs: [], + }, + { + type: "error", + name: "InvalidInitialization", + inputs: [], + }, + { + type: "error", + name: "NotInitializing", + inputs: [], + }, + { + 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 = + "0x60a06040523060805234801561001457600080fd5b5061001d610022565b6100d4565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100725760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100d15780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612d9a6100fd60003960008181611b5701528181611b800152611fc90152612d9a6000f3fe6080604052600436106101e35760003560e01c80635c975abb11610102578063ae7a3a6f11610095578063dda79b7511610064578063dda79b751461062e578063e63ab1e91461064e578063f340fa0114610682578063f45346dc1461069557600080fd5b8063ae7a3a6f146105ae578063b8969bd4146105ce578063c0c53b8b146105ee578063d547741f1461060e57600080fd5b806391d14854116100d157806391d14854146104b7578063a217fddf1461051c578063a783c78914610531578063ad3cb1cc1461056557600080fd5b80635c975abb146104175780635d62c8601461044e5780638456cb59146104825780638c6f037f1461049757600080fd5b806335c018db1161017a5780635131ab59116101495780635131ab59146103a257806352d1902d146103c257806357bec62f146103d75780635b112591146103f757600080fd5b806335c018db1461034757806336568abe1461035a5780633f4ba83a1461037a5780634f1ef2861461038f57600080fd5b806321e093b1116101b657806321e093b11461027f578063248a9ca3146102b757806329c59b5d146103145780632f2ff15d1461032757600080fd5b806301ffc9a7146101e857806310188aef1461021d5780631b8b921d1461023f5780631cff79cd1461025f575b600080fd5b3480156101f457600080fd5b5061020861020336600461280d565b6106b5565b60405190151581526020015b60405180910390f35b34801561022957600080fd5b5061023d61023836600461286b565b61074e565b005b34801561024b57600080fd5b5061023d61025a3660046128cf565b610842565b61027261026d3660046128cf565b61089c565b6040516102149190612990565b34801561028b57600080fd5b5060035461029f906001600160a01b031681565b6040516001600160a01b039091168152602001610214565b3480156102c357600080fd5b506103066102d23660046129a3565b60009081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b604051908152602001610214565b61023d6103223660046128cf565b61092d565b34801561033357600080fd5b5061023d6103423660046129bc565b610a5a565b61023d6103553660046128cf565b610aa4565b34801561036657600080fd5b5061023d6103753660046129bc565b610c2b565b34801561038657600080fd5b5061023d610c7c565b61023d61039d366004612a17565b610cb1565b3480156103ae57600080fd5b5061023d6103bd366004612b1e565b610cd0565b3480156103ce57600080fd5b50610306610fad565b3480156103e357600080fd5b5060025461029f906001600160a01b031681565b34801561040357600080fd5b5060015461029f906001600160a01b031681565b34801561042357600080fd5b507fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff16610208565b34801561045a57600080fd5b506103067f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b981565b34801561048e57600080fd5b5061023d610fdc565b3480156104a357600080fd5b5061023d6104b2366004612b8d565b61100e565b3480156104c357600080fd5b506102086104d23660046129bc565b60009182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408084206001600160a01b0393909316845291905290205460ff1690565b34801561052857600080fd5b50610306600081565b34801561053d57600080fd5b506103067f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb81565b34801561057157600080fd5b506102726040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b3480156105ba57600080fd5b5061023d6105c936600461286b565b6110b3565b3480156105da57600080fd5b5061023d6105e9366004612b1e565b6111a7565b3480156105fa57600080fd5b5061023d610609366004612bdf565b611321565b34801561061a57600080fd5b5061023d6106293660046129bc565b6115d6565b34801561063a57600080fd5b5060005461029f906001600160a01b031681565b34801561065a57600080fd5b506103067f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b61023d61069036600461286b565b61161a565b3480156106a157600080fd5b5061023d6106b0366004612c22565b611747565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061074857507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6000610759816117fa565b6002546001600160a01b03161561079c576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166107dc576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108067f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b983611804565b5050600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b61084a6118f1565b826001600160a01b0316336001600160a01b03167f2a21062ee9199c2e205622999eeb7c3da73153674f36a0acd3f74fa6af67bde3848460405161088f929190612c9e565b60405180910390a3505050565b60607f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb6108c8816117fa565b6108d06118f1565b60006108dd86868661194f565b9050856001600160a01b03167fcaf938de11c367272220bfd1d2baa99ca46665e7bc4d85f00adb51b90fe1fa9f34878760405161091c93929190612cba565b60405180910390a295945050505050565b6109356118f1565b3460000361096f576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040516000916001600160a01b03169034908381818185875af1925050503d80600081146109bc576040519150601f19603f3d011682016040523d82523d6000602084013e6109c1565b606091505b5090915050801515600003610a02576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b836001600160a01b0316336001600160a01b03167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a43460008787604051610a4c9493929190612cd4565b60405180910390a350505050565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610a94816117fa565b610a9e8383611804565b50505050565b7f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb610ace816117fa565b610ad66118f1565b600080856001600160a01b03163460405160006040518083038185875af1925050503d8060008114610b24576040519150601f19603f3d011682016040523d82523d6000602084013e610b29565b606091505b509150915081610b65576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f8fcaa0b50000000000000000000000000000000000000000000000000000000081526001600160a01b03871690638fcaa0b590610bac9088908890600401612c9e565b600060405180830381600087803b158015610bc657600080fd5b505af1158015610bda573d6000803e3d6000fd5b50505050856001600160a01b03167fd5d7616b1678354a0dea9d7e57e6a090bff5babe9f8d6381fdbad16e89ba311c348787604051610c1b93929190612cba565b60405180910390a2505050505050565b6001600160a01b0381163314610c6d576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c7782826119f8565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610ca6816117fa565b610cae611abc565b50565b610cb9611b4c565b610cc282611c1c565b610ccc8282611c27565b5050565b610cd8611d4b565b7f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b9610d02816117fa565b610d0a6118f1565b83600003610d44576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d4e8686611dcc565b610d84576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301526024820186905287169063095ea7b3906044016020604051808303816000875af1158015610dec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e109190612cfd565b610e46576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610e5386858561194f565b9050610e5f8787611dcc565b610e95576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000906001600160a01b038916906370a0823190602401602060405180830381865afa158015610ef5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f199190612d1f565b90508015610f2b57610f2b8882611e5c565b866001600160a01b0316886001600160a01b03167f29c40793bffd84cb810179f15d1ceec72bc7f0785514c668ba36645cf99b7382888888604051610f7293929190612cba565b60405180910390a3505050610fa660017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050505050565b6000610fb7611fbe565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a611006816117fa565b610cae612020565b6110166118f1565b83600003611050576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61105b338486612099565b846001600160a01b0316336001600160a01b03167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4868686866040516110a49493929190612cd4565b60405180910390a35050505050565b60006110be816117fa565b6000546001600160a01b031615611101576040517fb337f37800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038216611141576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61116b7f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b983611804565b5050600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6111af611d4b565b7f584a0b16e9f616d90ccec14a0b852c19aceccfd3d60699398a57dce2b0de01b96111d9816117fa565b6111e16118f1565b8360000361121b576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61122f6001600160a01b03871686866121ed565b6040517f8fcaa0b50000000000000000000000000000000000000000000000000000000081526001600160a01b03861690638fcaa0b5906112769086908690600401612c9e565b600060405180830381600087803b15801561129057600080fd5b505af11580156112a4573d6000803e3d6000fd5b50505050846001600160a01b0316866001600160a01b03167f723fc7be2448075379e4fdf1e6bf5fead954d2668d2da05dcb44ccfec4beeda78686866040516112ef93929190612cba565b60405180910390a350610fa660017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff1660008115801561136c5750825b905060008267ffffffffffffffff1660011480156113895750303b155b905081158015611397575080155b156113ce576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001178555831561142f5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6001600160a01b038816158061144c57506001600160a01b038716155b15611483576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61148b612261565b611493612269565b61149b612261565b6114a3612279565b6114ae600087611804565b506114d97f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a87611804565b50600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038a161790556115377f0da06bffcb63442de88b7f8385468eaf51e47079d4fa96875938e2c27c451deb89611804565b50600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03891617905583156115cc5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154611610816117fa565b610a9e83836119f8565b6116226118f1565b3460000361165c576040517f7671265e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040516000916001600160a01b03169034908381818185875af1925050503d80600081146116a9576040519150601f19603f3d011682016040523d82523d6000602084013e6116ae565b606091505b50909150508015156000036116ef576040517f79cacff100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408051348152600060208201819052606082840181905282015290516001600160a01b0384169133917f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a49181900360800190a35050565b61174f6118f1565b81600003611789576040517f951e19ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611794338284612099565b826001600160a01b0316336001600160a01b03167f2103daedac6c1eee9e5bfbd02064d751c9ec3c03fb9bc3e4f94ca41afa38c1a4848460405161088f9291909182526001600160a01b0316602082015260606040820181905260009082015260800190565b610cae8133612289565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff166118e7576000848152602082815260408083206001600160a01b0387168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905561189d3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610748565b6000915050610748565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff161561194d576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6060600080856001600160a01b031634868660405161196f929190612d38565b60006040518083038185875af1925050503d80600081146119ac576040519150601f19603f3d011682016040523d82523d6000602084013e6119b1565b606091505b5091509150816119ed576040517facfdb44400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9150505b9392505050565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff16156118e7576000848152602082815260408083206001600160a01b038716808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610748565b611ac4612316565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480611be557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611bd97f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b1561194d576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610ccc816117fa565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611c9f575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252611c9c91810190612d1f565b60015b611ce5576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114611d41576040517faa1d49a400000000000000000000000000000000000000000000000000000000815260048101829052602401611cdc565b610c778383612371565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0080547ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01611dc6576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60029055565b6040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b038281166004830152600060248301819052919084169063095ea7b3906044016020604051808303816000875af1158015611e38573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f19190612cfd565b6003546001600160a01b0390811690831603611f7e576002546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152602481018390529083169063095ea7b3906044016020604051808303816000875af1158015611ede573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f029190612cfd565b506002546040517f743e0c9b000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b039091169063743e0c9b90602401600060405180830381600087803b158015611f6257600080fd5b505af1158015611f76573d6000803e3d6000fd5b505050505050565b600054610ccc906001600160a01b038481169116836121ed565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461194d576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6120286118f1565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833611b2e565b6003546001600160a01b03908116908316036121d1576120c46001600160a01b0383168430846123c7565b6002546040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152602481018390529083169063095ea7b3906044016020604051808303816000875af1158015612130573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121549190612cfd565b506002546040517f743e0c9b000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b039091169063743e0c9b90602401600060405180830381600087803b1580156121b457600080fd5b505af11580156121c8573d6000803e3d6000fd5b50505050505050565b600054610c77906001600160a01b0384811691869116846123c7565b6040516001600160a01b03838116602483015260448201839052610c7791859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612400565b61194d61247c565b61227161247c565b61194d6124e3565b61228161247c565b61194d6124eb565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038516845290915290205460ff16610ccc576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401611cdc565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff1661194d576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61237a8261253c565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156123bf57610c7782826125e4565b610ccc61265a565b6040516001600160a01b038481166024830152838116604483015260648201839052610a9e9186918216906323b872dd9060840161221a565b60006124156001600160a01b03841683612692565b9050805160001415801561243a5750808060200190518101906124389190612cfd565b155b15610c77576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401611cdc565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff1661194d576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611f9861247c565b6124f361247c565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b806001600160a01b03163b60000361258b576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b0382166004820152602401611cdc565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516126019190612d48565b600060405180830381855af49150503d806000811461263c576040519150601f19603f3d011682016040523d82523d6000602084013e612641565b606091505b50915091506126518583836126a0565b95945050505050565b341561194d576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60606119f183836000612715565b6060826126b5576126b0826127cb565b6119f1565b81511580156126cc57506001600160a01b0384163b155b1561270e576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401611cdc565b50806119f1565b606081471015612753576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401611cdc565b600080856001600160a01b0316848660405161276f9190612d48565b60006040518083038185875af1925050503d80600081146127ac576040519150601f19603f3d011682016040523d82523d6000602084013e6127b1565b606091505b50915091506127c18683836126a0565b9695505050505050565b8051156127db5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006020828403121561281f57600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146119f157600080fd5b80356001600160a01b038116811461286657600080fd5b919050565b60006020828403121561287d57600080fd5b6119f18261284f565b60008083601f84011261289857600080fd5b50813567ffffffffffffffff8111156128b057600080fd5b6020830191508360208285010111156128c857600080fd5b9250929050565b6000806000604084860312156128e457600080fd5b6128ed8461284f565b9250602084013567ffffffffffffffff81111561290957600080fd5b61291586828701612886565b9497909650939450505050565b60005b8381101561293d578181015183820152602001612925565b50506000910152565b6000815180845261295e816020860160208601612922565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006119f16020830184612946565b6000602082840312156129b557600080fd5b5035919050565b600080604083850312156129cf57600080fd5b823591506129df6020840161284f565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060408385031215612a2a57600080fd5b612a338361284f565b9150602083013567ffffffffffffffff811115612a4f57600080fd5b8301601f81018513612a6057600080fd5b803567ffffffffffffffff811115612a7a57612a7a6129e8565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff82111715612ae657612ae66129e8565b604052818152828201602001871015612afe57600080fd5b816020840160208301376000602083830101528093505050509250929050565b600080600080600060808688031215612b3657600080fd5b612b3f8661284f565b9450612b4d6020870161284f565b935060408601359250606086013567ffffffffffffffff811115612b7057600080fd5b612b7c88828901612886565b969995985093965092949392505050565b600080600080600060808688031215612ba557600080fd5b612bae8661284f565b945060208601359350612bc36040870161284f565b9250606086013567ffffffffffffffff811115612b7057600080fd5b600080600060608486031215612bf457600080fd5b612bfd8461284f565b9250612c0b6020850161284f565b9150612c196040850161284f565b90509250925092565b600080600060608486031215612c3757600080fd5b612c408461284f565b925060208401359150612c196040850161284f565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b602081526000612cb2602083018486612c55565b949350505050565b838152604060208201526000612651604083018486612c55565b8481526001600160a01b03841660208201526060604082015260006127c1606083018486612c55565b600060208284031215612d0f57600080fd5b815180151581146119f157600080fd5b600060208284031215612d3157600080fd5b5051919050565b8183823760009101908152919050565b60008251612d5a818460208701612922565b919091019291505056fea26469706673582212201821442f44389baeb888640e13de33662eed4aff4f3c0ea195d55f55d8f2920864736f6c634300081a0033"; + +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..441efc47 --- /dev/null +++ b/v2/typechain-types/factories/GatewayZEVM__factory.ts @@ -0,0 +1,1067 @@ +/* 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: "DEFAULT_ADMIN_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "FUNGIBLE_MODULE_ADDRESS", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "PAUSER_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + 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: "chainId", + type: "uint256", + internalType: "uint256", + }, + { + 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: "getRoleAdmin", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "grantRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "hasRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "initialize", + inputs: [ + { + name: "_zetaToken", + type: "address", + internalType: "address", + }, + { + name: "_admin", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "pause", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "paused", + inputs: [], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "proxiableUUID", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "renounceRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "callerConfirmation", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "revokeRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + 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: "unpause", + inputs: [], + 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", + }, + { + name: "chainId", + type: "uint256", + internalType: "uint256", + }, + ], + 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: "withdrawAndCall", + inputs: [ + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "chainId", + type: "uint256", + internalType: "uint256", + }, + { + 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: "chainId", + type: "uint256", + indexed: true, + internalType: "uint256", + }, + { + 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: "Paused", + inputs: [ + { + name: "account", + type: "address", + indexed: false, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RoleAdminChanged", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "previousAdminRole", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "newAdminRole", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RoleGranted", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "account", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RoleRevoked", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "account", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Unpaused", + inputs: [ + { + name: "account", + type: "address", + indexed: false, + 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: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "chainId", + type: "uint256", + indexed: true, + internalType: "uint256", + }, + { + name: "receiver", + type: "bytes", + indexed: false, + internalType: "bytes", + }, + { + name: "zrc20", + type: "address", + indexed: false, + internalType: "address", + }, + { + 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: "AccessControlBadConfirmation", + inputs: [], + }, + { + type: "error", + name: "AccessControlUnauthorizedAccount", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "neededRole", + type: "bytes32", + internalType: "bytes32", + }, + ], + }, + { + 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: "EnforcedPause", + inputs: [], + }, + { + type: "error", + name: "ExpectedPause", + 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: "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 = + "0x60a06040523060805234801561001457600080fd5b5061001d610022565b6100d4565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100725760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100d15780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612d416100fd60003960008181611e7201528181611e9b01526120530152612d416000f3fe6080604052600436106101bb5760003560e01c80635af65967116100ec578063a217fddf1161008a578063c39aca3711610064578063c39aca3714610600578063d547741f14610620578063e63ab1e914610640578063f45346dc1461067457600080fd5b8063a217fddf14610575578063ad3cb1cc1461058a578063bcf7f32b146105e057600080fd5b80637993c1e0116100c65780637993c1e0146104bb57806380bd3d03146104db5780638456cb59146104fb57806391d148541461051057600080fd5b80635af65967146104445780635c975abb146104645780635d40e1781461049b57600080fd5b806336568abe11610159578063441a3e7011610133578063441a3e70146103dc578063485cc955146103fc5780634f1ef2861461041c57806352d1902d1461042f57600080fd5b806336568abe1461037f5780633ce4a5bc1461039f5780633f4ba83a146103c757600080fd5b806321e093b11161019557806321e093b1146102aa578063248a9ca3146102e25780632f2ff15d1461033f578063309f50041461035f57600080fd5b806301ffc9a714610235578063135390f91461026a57806321501a951461028a57600080fd5b36610230576101c8610694565b6000546001600160a01b031633148015906101f757503373735b14bb79463307aacbed86daf3322b1e6226ab14155b1561022e576040517f229930b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b005b600080fd5b34801561024157600080fd5b50610255610250366004612531565b6106f2565b60405190151581526020015b60405180910390f35b34801561027657600080fd5b5061022e610285366004612647565b61078b565b34801561029657600080fd5b5061022e6102a5366004612703565b610884565b3480156102b657600080fd5b506000546102ca906001600160a01b031681565b6040516001600160a01b039091168152602001610261565b3480156102ee57600080fd5b506103316102fd36600461278f565b60009081527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015490565b604051908152602001610261565b34801561034b57600080fd5b5061022e61035a3660046127a8565b6109d7565b34801561036b57600080fd5b5061022e61037a3660046127d8565b610a21565b34801561038b57600080fd5b5061022e61039a3660046127a8565b610afd565b3480156103ab57600080fd5b506102ca73735b14bb79463307aacbed86daf3322b1e6226ab81565b3480156103d357600080fd5b5061022e610b49565b3480156103e857600080fd5b5061022e6103f7366004612876565b610b7e565b34801561040857600080fd5b5061022e610417366004612898565b610c61565b61022e61042a3660046128c6565b610ea3565b34801561043b57600080fd5b50610331610ebe565b34801561045057600080fd5b5061022e61045f3660046127d8565b610eed565b34801561047057600080fd5b507fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff16610255565b3480156104a757600080fd5b5061022e6104b6366004612916565b611086565b3480156104c757600080fd5b5061022e6104d636600461298b565b611105565b3480156104e757600080fd5b5061022e6104f63660046129c6565b611204565b34801561050757600080fd5b5061022e6112b6565b34801561051c57600080fd5b5061025561052b3660046127a8565b60009182527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408084206001600160a01b0393909316845291905290205460ff1690565b34801561058157600080fd5b50610331600081565b34801561059657600080fd5b506105d36040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6040516102619190612a51565b3480156105ec57600080fd5b5061022e6105fb3660046127d8565b6112e8565b34801561060c57600080fd5b5061022e61061b3660046127d8565b61138a565b34801561062c57600080fd5b5061022e61063b3660046127a8565b611523565b34801561064c57600080fd5b506103317f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b34801561068057600080fd5b5061022e61068f366004612a64565b611567565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff16156106f0576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061078557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6107936116b2565b61079b610694565b60006107a78383611733565b90506000336001600160a01b03167fde19dbe881cc0aeeb6e73ce19ac7b5ca695e6be8a076e3eb42292005a7fec1b586858786886001600160a01b0316634d8943bb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610818573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083c9190612a9b565b60405161084d959493929190612ab4565b60405180910390a35061087f60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b505050565b3373735b14bb79463307aacbed86daf3322b1e6226ab146108d1576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108d9610694565b6001600160a01b03831673735b14bb79463307aacbed86daf3322b1e6226ab148061090c57506001600160a01b03831630145b15610943576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61094d8484611a26565b6000546040517fde43156e0000000000000000000000000000000000000000000000000000000081526001600160a01b038086169263de43156e9261099e928a921690899088908890600401612bd3565b600060405180830381600087803b1580156109b857600080fd5b505af11580156109cc573d6000803e3d6000fd5b505050505050505050565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b6268006020526040902060010154610a1181611bf4565b610a1b8383611bfe565b50505050565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610a6e576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a76610694565b6040517f69582bee0000000000000000000000000000000000000000000000000000000081526001600160a01b038416906369582bee90610ac39089908990899088908890600401612bd3565b600060405180830381600087803b158015610add57600080fd5b505af1158015610af1573d6000803e3d6000fd5b50505050505050505050565b6001600160a01b0381163314610b3f576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61087f8282611ceb565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610b7381611bf4565b610b7b611daf565b50565b610b866116b2565b610b8e610694565b610bac8273735b14bb79463307aacbed86daf3322b1e6226ab611a26565b6040517f735b14bb79463307aacbed86daf3322b1e6226ab0000000000000000000000006020820152819033907fde19dbe881cc0aeeb6e73ce19ac7b5ca695e6be8a076e3eb42292005a7fec1b59060340160408051601f198184030181529082905260008054610c2c936001600160a01b039091169189918190612ab4565b60405180910390a3610c5d60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff16600081158015610cac5750825b905060008267ffffffffffffffff166001148015610cc95750303b155b905081158015610cd7575080155b15610d0e576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001660011785558315610d6f5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6001600160a01b038716610daf576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610db7611e3f565b610dbf611e3f565b610dc7611e47565b610dcf611e57565b610dda600087611bfe565b50610e057f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a87611bfe565b50600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0389161790558315610e9a5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b610eab611e67565b610eb482611f37565b610c5d8282611f42565b6000610ec8612048565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610f3a576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f42610694565b6001600160a01b03831673735b14bb79463307aacbed86daf3322b1e6226ab1480610f7557506001600160a01b03831630145b15610fac576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f47e7ef240000000000000000000000000000000000000000000000000000000081526001600160a01b038481166004830152602482018690528616906347e7ef24906044016020604051808303816000875af1158015611014573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110389190612c1a565b506040517f69582bee0000000000000000000000000000000000000000000000000000000081526001600160a01b038416906369582bee90610ac39089908990899088908890600401612bd3565b61108e6116b2565b611096610694565b82336001600160a01b03167f5322ffbbf9261ff1f8138247942d2b03b28717141ef0a0dd080fc4be9c4e78d38685856040516110d493929190612c3c565b60405180910390a3610a1b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b61110d6116b2565b611115610694565b60006111218585611733565b90506000336001600160a01b03167fde19dbe881cc0aeeb6e73ce19ac7b5ca695e6be8a076e3eb42292005a7fec1b5888789868a6001600160a01b0316634d8943bb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611192573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b69190612a9b565b8a8a6040516111cb9796959493929190612c6c565b60405180910390a3506111fd60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050505050565b61120c6116b2565b611214610694565b6112328473735b14bb79463307aacbed86daf3322b1e6226ab611a26565b6040517f735b14bb79463307aacbed86daf3322b1e6226ab0000000000000000000000006020820152839033907fde19dbe881cc0aeeb6e73ce19ac7b5ca695e6be8a076e3eb42292005a7fec1b59060340160408051601f1981840301815290829052600080546110d4936001600160a01b03909116918b9181908b908b90612c6c565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6112e081611bf4565b610b7b6120aa565b3373735b14bb79463307aacbed86daf3322b1e6226ab14611335576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61133d610694565b6040517fde43156e0000000000000000000000000000000000000000000000000000000081526001600160a01b0384169063de43156e90610ac39089908990899088908890600401612bd3565b3373735b14bb79463307aacbed86daf3322b1e6226ab146113d7576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113df610694565b6001600160a01b03831673735b14bb79463307aacbed86daf3322b1e6226ab148061141257506001600160a01b03831630145b15611449576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f47e7ef240000000000000000000000000000000000000000000000000000000081526001600160a01b038481166004830152602482018690528616906347e7ef24906044016020604051808303816000875af11580156114b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d59190612c1a565b506040517fde43156e0000000000000000000000000000000000000000000000000000000081526001600160a01b0384169063de43156e90610ac39089908990899088908890600401612bd3565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052604090206001015461155d81611bf4565b610a1b8383611ceb565b3373735b14bb79463307aacbed86daf3322b1e6226ab146115b4576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6115bc610694565b6001600160a01b03811673735b14bb79463307aacbed86daf3322b1e6226ab14806115ef57506001600160a01b03811630145b15611626576040517f82d5d76a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f47e7ef240000000000000000000000000000000000000000000000000000000081526001600160a01b038281166004830152602482018490528416906347e7ef24906044016020604051808303816000875af115801561168e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1b9190612c1a565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0080547ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0161172d576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60029055565b6000806000836001600160a01b031663d9eeebed6040518163ffffffff1660e01b81526004016040805180830381865afa158015611775573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117999190612cc1565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273735b14bb79463307aacbed86daf3322b1e6226ab60248201526044810182905291935091506001600160a01b038316906323b872dd906064016020604051808303816000875af115801561181e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118429190612c1a565b611878576040517f0a7cd6d600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018690526001600160a01b038516906323b872dd906064016020604051808303816000875af11580156118e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119089190612c1a565b61193e576040517f4dd9ee8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f42966c68000000000000000000000000000000000000000000000000000000008152600481018690526001600160a01b038516906342966c68906024016020604051808303816000875af115801561199e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119c29190612c1a565b6119f8576040517f2c77e05c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b949350505050565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6000546040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018490526001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015611a96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aba9190612c1a565b611af0576040517fc7ffc47b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000546040517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018490526001600160a01b0390911690632e1a7d4d90602401600060405180830381600087803b158015611b4f57600080fd5b505af1158015611b63573d6000803e3d6000fd5b505050506000816001600160a01b03168360405160006040518083038185875af1925050503d8060008114611bb4576040519150601f19603f3d011682016040523d82523d6000602084013e611bb9565b606091505b505090508061087f576040517fc7ffc47b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b7b8133612123565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff16611ce1576000848152602082815260408083206001600160a01b0387168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055611c973390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610785565b6000915050610785565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602081815260408084206001600160a01b038616855290915282205460ff1615611ce1576000848152602082815260408083206001600160a01b038716808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610785565b611db76121b0565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b6106f061220b565b611e4f61220b565b6106f0612272565b611e5f61220b565b6106f06122c3565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480611f0057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611ef47f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b156106f0576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610c5d81611bf4565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611f9c575060408051601f3d908101601f19168201909252611f9991810190612a9b565b60015b611fe2576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc811461203e576040517faa1d49a400000000000000000000000000000000000000000000000000000000815260048101829052602401611fd9565b61087f83836122cb565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106f0576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6120b2610694565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833611e21565b60008281527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602090815260408083206001600160a01b038516845290915290205460ff16610c5d576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401611fd9565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff166106f0576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166106f0576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61227a61220b565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b611a0061220b565b6122d482612321565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156123195761087f82826123c9565b610c5d61243f565b806001600160a01b03163b600003612370576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b0382166004820152602401611fd9565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516123e69190612cef565b600060405180830381855af49150503d8060008114612421576040519150601f19603f3d011682016040523d82523d6000602084013e612426565b606091505b5091509150612436858383612477565b95945050505050565b34156106f0576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608261248c57612487826124ef565b6124e8565b81511580156124a357506001600160a01b0384163b155b156124e5576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401611fd9565b50805b9392505050565b8051156124ff5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006020828403121561254357600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146124e857600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f8301126125b357600080fd5b813567ffffffffffffffff8111156125cd576125cd612573565b604051601f19603f601f19601f8501160116810181811067ffffffffffffffff821117156125fd576125fd612573565b60405281815283820160200185101561261557600080fd5b816020850160208301376000918101602001919091529392505050565b6001600160a01b0381168114610b7b57600080fd5b60008060006060848603121561265c57600080fd5b833567ffffffffffffffff81111561267357600080fd5b61267f868287016125a2565b93505060208401359150604084013561269781612632565b809150509250925092565b6000606082840312156126b457600080fd5b50919050565b60008083601f8401126126cc57600080fd5b50813567ffffffffffffffff8111156126e457600080fd5b6020830191508360208285010111156126fc57600080fd5b9250929050565b60008060008060006080868803121561271b57600080fd5b853567ffffffffffffffff81111561273257600080fd5b61273e888289016126a2565b95505060208601359350604086013561275681612632565b9250606086013567ffffffffffffffff81111561277257600080fd5b61277e888289016126ba565b969995985093965092949392505050565b6000602082840312156127a157600080fd5b5035919050565b600080604083850312156127bb57600080fd5b8235915060208301356127cd81612632565b809150509250929050565b60008060008060008060a087890312156127f157600080fd5b863567ffffffffffffffff81111561280857600080fd5b61281489828a016126a2565b965050602087013561282581612632565b945060408701359350606087013561283c81612632565b9250608087013567ffffffffffffffff81111561285857600080fd5b61286489828a016126ba565b979a9699509497509295939492505050565b6000806040838503121561288957600080fd5b50508035926020909101359150565b600080604083850312156128ab57600080fd5b82356128b681612632565b915060208301356127cd81612632565b600080604083850312156128d957600080fd5b82356128e481612632565b9150602083013567ffffffffffffffff81111561290057600080fd5b61290c858286016125a2565b9150509250929050565b6000806000806060858703121561292c57600080fd5b843567ffffffffffffffff81111561294357600080fd5b61294f878288016125a2565b94505060208501359250604085013567ffffffffffffffff81111561297357600080fd5b61297f878288016126ba565b95989497509550505050565b6000806000806000608086880312156129a357600080fd5b853567ffffffffffffffff8111156129ba57600080fd5b61273e888289016125a2565b600080600080606085870312156129dc57600080fd5b8435935060208501359250604085013567ffffffffffffffff81111561297357600080fd5b60005b83811015612a1c578181015183820152602001612a04565b50506000910152565b60008151808452612a3d816020860160208601612a01565b601f01601f19169290920160200192915050565b6020815260006124e86020830184612a25565b600080600060608486031215612a7957600080fd5b8335612a8481612632565b925060208401359150604084013561269781612632565b600060208284031215612aad57600080fd5b5051919050565b60c081526000612ac760c0830188612a25565b6001600160a01b038716602084015285604084015284606084015283608084015282810360a084015260008152602081019150509695505050505050565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b600081357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1833603018112612b6457600080fd5b820160208101903567ffffffffffffffff811115612b8157600080fd5b803603821315612b9057600080fd5b60608552612ba2606086018284612b05565b9150506020830135612bb381612632565b6001600160a01b0316602085015260409283013592909301919091525090565b608081526000612be66080830188612b30565b6001600160a01b03871660208401528560408401528281036060840152612c0e818587612b05565b98975050505050505050565b600060208284031215612c2c57600080fd5b815180151581146124e857600080fd5b604081526000612c4f6040830186612a25565b8281036020840152612c62818587612b05565b9695505050505050565b60c081526000612c7f60c083018a612a25565b6001600160a01b038916602084015287604084015286606084015285608084015282810360a0840152612cb3818587612b05565b9a9950505050505050505050565b60008060408385031215612cd457600080fd5b8251612cdf81612632565b6020939093015192949293505050565b60008251612d01818460208701612a01565b919091019291505056fea2646970667358221220d3c04e4efcbf4c2321bdb921767d68b27240d29d07d2982f0f334bad40c04c5664736f6c634300081a0033"; + +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/IAccessControl__factory.ts b/v2/typechain-types/factories/IAccessControl__factory.ts new file mode 100644 index 00000000..89a5cdbb --- /dev/null +++ b/v2/typechain-types/factories/IAccessControl__factory.ts @@ -0,0 +1,218 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IAccessControl, + IAccessControlInterface, +} from "../IAccessControl"; + +const _abi = [ + { + type: "function", + name: "getRoleAdmin", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "grantRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "hasRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "renounceRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "callerConfirmation", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "revokeRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "event", + name: "RoleAdminChanged", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "previousAdminRole", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "newAdminRole", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RoleGranted", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "account", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RoleRevoked", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "account", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "AccessControlBadConfirmation", + inputs: [], + }, + { + type: "error", + name: "AccessControlUnauthorizedAccount", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "neededRole", + type: "bytes32", + internalType: "bytes32", + }, + ], + }, +] as const; + +export class IAccessControl__factory { + static readonly abi = _abi; + static createInterface(): IAccessControlInterface { + return new Interface(_abi) as IAccessControlInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IAccessControl { + return new Contract(address, _abi, runner) as unknown as IAccessControl; + } +} 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/typechain-types/factories/forge-std/interfaces/IERC165__factory.ts b/v2/typechain-types/factories/IERC165__factory.ts similarity index 57% rename from typechain-types/factories/forge-std/interfaces/IERC165__factory.ts rename to v2/typechain-types/factories/IERC165__factory.ts index f9cd3aa8..77202ee7 100644 --- a/typechain-types/factories/forge-std/interfaces/IERC165__factory.ts +++ b/v2/typechain-types/factories/IERC165__factory.ts @@ -2,44 +2,37 @@ /* tslint:disable */ /* eslint-disable */ -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; -import type { - IERC165, - IERC165Interface, -} from "../../../forge-std/interfaces/IERC165"; +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { IERC165, IERC165Interface } from "../IERC165"; const _abi = [ { + type: "function", + name: "supportsInterface", inputs: [ { - internalType: "bytes4", name: "interfaceID", type: "bytes4", + internalType: "bytes4", }, ], - name: "supportsInterface", outputs: [ { - internalType: "bool", name: "", type: "bool", + internalType: "bool", }, ], stateMutability: "view", - type: "function", }, ] as const; export class IERC165__factory { static readonly abi = _abi; static createInterface(): IERC165Interface { - return new utils.Interface(_abi) as IERC165Interface; + return new Interface(_abi) as IERC165Interface; } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): IERC165 { - return new Contract(address, _abi, signerOrProvider) as IERC165; + 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/IERC20Custody.sol/IERC20CustodyErrors__factory.ts b/v2/typechain-types/factories/IERC20Custody.sol/IERC20CustodyErrors__factory.ts new file mode 100644 index 00000000..f30ec9ca --- /dev/null +++ b/v2/typechain-types/factories/IERC20Custody.sol/IERC20CustodyErrors__factory.ts @@ -0,0 +1,34 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IERC20CustodyErrors, + IERC20CustodyErrorsInterface, +} from "../../IERC20Custody.sol/IERC20CustodyErrors"; + +const _abi = [ + { + type: "error", + name: "ZeroAddress", + inputs: [], + }, +] as const; + +export class IERC20CustodyErrors__factory { + static readonly abi = _abi; + static createInterface(): IERC20CustodyErrorsInterface { + return new Interface(_abi) as IERC20CustodyErrorsInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IERC20CustodyErrors { + return new Contract( + address, + _abi, + runner + ) as unknown as IERC20CustodyErrors; + } +} diff --git a/typechain-types/factories/contracts/prototypes/evm/IERC20CustodyNew.sol/IERC20CustodyNewEvents__factory.ts b/v2/typechain-types/factories/IERC20Custody.sol/IERC20CustodyEvents__factory.ts similarity index 76% rename from typechain-types/factories/contracts/prototypes/evm/IERC20CustodyNew.sol/IERC20CustodyNewEvents__factory.ts rename to v2/typechain-types/factories/IERC20Custody.sol/IERC20CustodyEvents__factory.ts index aff1dbc0..08163fdb 100644 --- a/typechain-types/factories/contracts/prototypes/evm/IERC20CustodyNew.sol/IERC20CustodyNewEvents__factory.ts +++ b/v2/typechain-types/factories/IERC20Custody.sol/IERC20CustodyEvents__factory.ts @@ -2,116 +2,115 @@ /* tslint:disable */ /* eslint-disable */ -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; +import { Contract, Interface, type ContractRunner } from "ethers"; import type { - IERC20CustodyNewEvents, - IERC20CustodyNewEventsInterface, -} from "../../../../../contracts/prototypes/evm/IERC20CustodyNew.sol/IERC20CustodyNewEvents"; + IERC20CustodyEvents, + IERC20CustodyEventsInterface, +} from "../../IERC20Custody.sol/IERC20CustodyEvents"; const _abi = [ { - anonymous: false, + type: "event", + name: "Withdraw", inputs: [ { - indexed: true, - internalType: "address", name: "token", type: "address", - }, - { indexed: true, internalType: "address", + }, + { name: "to", type: "address", + indexed: true, + internalType: "address", }, { - indexed: false, - internalType: "uint256", name: "amount", type: "uint256", + indexed: false, + internalType: "uint256", }, ], - name: "Withdraw", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "WithdrawAndCall", inputs: [ { - indexed: true, - internalType: "address", name: "token", type: "address", - }, - { indexed: true, internalType: "address", + }, + { name: "to", type: "address", + indexed: true, + internalType: "address", }, { - indexed: false, - internalType: "uint256", name: "amount", type: "uint256", + indexed: false, + internalType: "uint256", }, { - indexed: false, - internalType: "bytes", name: "data", type: "bytes", + indexed: false, + internalType: "bytes", }, ], - name: "WithdrawAndCall", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "WithdrawAndRevert", inputs: [ { - indexed: true, - internalType: "address", name: "token", type: "address", - }, - { indexed: true, internalType: "address", + }, + { name: "to", type: "address", + indexed: true, + internalType: "address", }, { - indexed: false, - internalType: "uint256", name: "amount", type: "uint256", + indexed: false, + internalType: "uint256", }, { - indexed: false, - internalType: "bytes", name: "data", type: "bytes", + indexed: false, + internalType: "bytes", }, ], - name: "WithdrawAndRevert", - type: "event", + anonymous: false, }, ] as const; -export class IERC20CustodyNewEvents__factory { +export class IERC20CustodyEvents__factory { static readonly abi = _abi; - static createInterface(): IERC20CustodyNewEventsInterface { - return new utils.Interface(_abi) as IERC20CustodyNewEventsInterface; + static createInterface(): IERC20CustodyEventsInterface { + return new Interface(_abi) as IERC20CustodyEventsInterface; } static connect( address: string, - signerOrProvider: Signer | Provider - ): IERC20CustodyNewEvents { + runner?: ContractRunner | null + ): IERC20CustodyEvents { return new Contract( address, _abi, - signerOrProvider - ) as IERC20CustodyNewEvents; + runner + ) as unknown as IERC20CustodyEvents; } } diff --git a/v2/typechain-types/factories/IERC20Custody.sol/index.ts b/v2/typechain-types/factories/IERC20Custody.sol/index.ts new file mode 100644 index 00000000..9ad68318 --- /dev/null +++ b/v2/typechain-types/factories/IERC20Custody.sol/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { IERC20CustodyErrors__factory } from "./IERC20CustodyErrors__factory"; +export { IERC20CustodyEvents__factory } from "./IERC20CustodyEvents__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/typechain-types/factories/forge-std/interfaces/IERC20__factory.ts b/v2/typechain-types/factories/IERC20__factory.ts similarity index 90% rename from typechain-types/factories/forge-std/interfaces/IERC20__factory.ts rename to v2/typechain-types/factories/IERC20__factory.ts index 41f9852d..b55e3c17 100644 --- a/typechain-types/factories/forge-std/interfaces/IERC20__factory.ts +++ b/v2/typechain-types/factories/IERC20__factory.ts @@ -2,244 +2,240 @@ /* tslint:disable */ /* eslint-disable */ -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; -import type { - IERC20, - IERC20Interface, -} from "../../../forge-std/interfaces/IERC20"; +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { IERC20, IERC20Interface } from "../IERC20"; const _abi = [ { - anonymous: false, + type: "function", + name: "allowance", inputs: [ { - indexed: true, - internalType: "address", name: "owner", type: "address", - }, - { - indexed: true, - internalType: "address", - name: "spender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - inputs: [ - { internalType: "address", - name: "owner", - type: "address", }, { - internalType: "address", name: "spender", type: "address", + internalType: "address", }, ], - name: "allowance", outputs: [ { - internalType: "uint256", name: "", type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "approve", inputs: [ { - internalType: "address", name: "spender", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "amount", type: "uint256", + internalType: "uint256", }, ], - name: "approve", outputs: [ { - internalType: "bool", name: "", type: "bool", + internalType: "bool", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "balanceOf", inputs: [ { - internalType: "address", name: "account", type: "address", + internalType: "address", }, ], - name: "balanceOf", outputs: [ { - internalType: "uint256", name: "", type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "decimals", + inputs: [], outputs: [ { - internalType: "uint8", name: "", type: "uint8", + internalType: "uint8", }, ], stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "name", + inputs: [], outputs: [ { - internalType: "string", name: "", type: "string", + internalType: "string", }, ], stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "symbol", + inputs: [], outputs: [ { - internalType: "string", name: "", type: "string", + internalType: "string", }, ], stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "totalSupply", + inputs: [], outputs: [ { - internalType: "uint256", name: "", type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "transfer", inputs: [ { - internalType: "address", name: "to", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "amount", type: "uint256", + internalType: "uint256", }, ], - name: "transfer", outputs: [ { - internalType: "bool", name: "", type: "bool", + internalType: "bool", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "transferFrom", inputs: [ { - internalType: "address", name: "from", type: "address", + internalType: "address", }, { - internalType: "address", name: "to", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "amount", type: "uint256", + internalType: "uint256", }, ], - name: "transferFrom", outputs: [ { - internalType: "bool", name: "", type: "bool", + internalType: "bool", }, ], stateMutability: "nonpayable", - type: "function", + }, + { + 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 utils.Interface(_abi) as IERC20Interface; + return new Interface(_abi) as IERC20Interface; } - static connect(address: string, signerOrProvider: Signer | Provider): IERC20 { - return new Contract(address, _abi, signerOrProvider) as IERC20; + static connect(address: string, runner?: ContractRunner | null): IERC20 { + return new Contract(address, _abi, runner) as unknown as IERC20; } } diff --git a/typechain-types/factories/forge-std/interfaces/IERC721.sol/IERC721Enumerable__factory.ts b/v2/typechain-types/factories/IERC721.sol/IERC721Enumerable__factory.ts similarity index 94% rename from typechain-types/factories/forge-std/interfaces/IERC721.sol/IERC721Enumerable__factory.ts rename to v2/typechain-types/factories/IERC721.sol/IERC721Enumerable__factory.ts index 2a446610..2d67ea00 100644 --- a/typechain-types/factories/forge-std/interfaces/IERC721.sol/IERC721Enumerable__factory.ts +++ b/v2/typechain-types/factories/IERC721.sol/IERC721Enumerable__factory.ts @@ -2,366 +2,365 @@ /* tslint:disable */ /* eslint-disable */ -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; +import { Contract, Interface, type ContractRunner } from "ethers"; import type { IERC721Enumerable, IERC721EnumerableInterface, -} from "../../../../forge-std/interfaces/IERC721.sol/IERC721Enumerable"; +} from "../../IERC721.sol/IERC721Enumerable"; const _abi = [ { - anonymous: false, + type: "function", + name: "approve", inputs: [ { - indexed: true, - internalType: "address", - name: "_owner", - type: "address", - }, - { - indexed: true, - internalType: "address", name: "_approved", type: "address", - }, - { - indexed: true, - internalType: "uint256", - name: "_tokenId", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, internalType: "address", - name: "_owner", - type: "address", }, { - indexed: true, - internalType: "address", - name: "_operator", - type: "address", - }, - { - indexed: false, - internalType: "bool", - name: "_approved", - type: "bool", - }, - ], - name: "ApprovalForAll", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "_from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "_to", - type: "address", - }, - { - indexed: true, - internalType: "uint256", name: "_tokenId", type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - inputs: [ - { - internalType: "address", - name: "_approved", - type: "address", - }, - { internalType: "uint256", - name: "_tokenId", - type: "uint256", }, ], - name: "approve", outputs: [], stateMutability: "payable", - type: "function", }, { + type: "function", + name: "balanceOf", inputs: [ { - internalType: "address", name: "_owner", type: "address", + internalType: "address", }, ], - name: "balanceOf", outputs: [ { - internalType: "uint256", name: "", type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "getApproved", inputs: [ { - internalType: "uint256", name: "_tokenId", type: "uint256", + internalType: "uint256", }, ], - name: "getApproved", outputs: [ { - internalType: "address", name: "", type: "address", + internalType: "address", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "isApprovedForAll", inputs: [ { - internalType: "address", name: "_owner", type: "address", + internalType: "address", }, { - internalType: "address", name: "_operator", type: "address", + internalType: "address", }, ], - name: "isApprovedForAll", outputs: [ { - internalType: "bool", name: "", type: "bool", + internalType: "bool", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "ownerOf", inputs: [ { - internalType: "uint256", name: "_tokenId", type: "uint256", + internalType: "uint256", }, ], - name: "ownerOf", outputs: [ { - internalType: "address", name: "", type: "address", + internalType: "address", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "safeTransferFrom", inputs: [ { - internalType: "address", name: "_from", type: "address", + internalType: "address", }, { - internalType: "address", name: "_to", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "_tokenId", type: "uint256", + internalType: "uint256", }, ], - name: "safeTransferFrom", outputs: [], stateMutability: "payable", - type: "function", }, { + type: "function", + name: "safeTransferFrom", inputs: [ { - internalType: "address", name: "_from", type: "address", + internalType: "address", }, { - internalType: "address", name: "_to", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "_tokenId", type: "uint256", + internalType: "uint256", }, { - internalType: "bytes", name: "data", type: "bytes", + internalType: "bytes", }, ], - name: "safeTransferFrom", outputs: [], stateMutability: "payable", - type: "function", }, { + type: "function", + name: "setApprovalForAll", inputs: [ { - internalType: "address", name: "_operator", type: "address", + internalType: "address", }, { - internalType: "bool", name: "_approved", type: "bool", + internalType: "bool", }, ], - name: "setApprovalForAll", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "supportsInterface", inputs: [ { - internalType: "bytes4", name: "interfaceID", type: "bytes4", + internalType: "bytes4", }, ], - name: "supportsInterface", outputs: [ { - internalType: "bool", name: "", type: "bool", + internalType: "bool", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "tokenByIndex", inputs: [ { - internalType: "uint256", name: "_index", type: "uint256", + internalType: "uint256", }, ], - name: "tokenByIndex", outputs: [ { - internalType: "uint256", name: "", type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "tokenOfOwnerByIndex", inputs: [ { - internalType: "address", name: "_owner", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "_index", type: "uint256", + internalType: "uint256", }, ], - name: "tokenOfOwnerByIndex", outputs: [ { - internalType: "uint256", name: "", type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "totalSupply", + inputs: [], outputs: [ { - internalType: "uint256", name: "", type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "transferFrom", inputs: [ { - internalType: "address", name: "_from", type: "address", + internalType: "address", }, { - internalType: "address", name: "_to", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "_tokenId", type: "uint256", + internalType: "uint256", }, ], - name: "transferFrom", outputs: [], stateMutability: "payable", - type: "function", + }, + { + 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 utils.Interface(_abi) as IERC721EnumerableInterface; + return new Interface(_abi) as IERC721EnumerableInterface; } static connect( address: string, - signerOrProvider: Signer | Provider + runner?: ContractRunner | null ): IERC721Enumerable { - return new Contract(address, _abi, signerOrProvider) as IERC721Enumerable; + return new Contract(address, _abi, runner) as unknown as IERC721Enumerable; } } diff --git a/typechain-types/factories/forge-std/interfaces/IERC721.sol/IERC721Metadata__factory.ts b/v2/typechain-types/factories/IERC721.sol/IERC721Metadata__factory.ts similarity index 94% rename from typechain-types/factories/forge-std/interfaces/IERC721.sol/IERC721Metadata__factory.ts rename to v2/typechain-types/factories/IERC721.sol/IERC721Metadata__factory.ts index 6a62b2da..49408fb9 100644 --- a/typechain-types/factories/forge-std/interfaces/IERC721.sol/IERC721Metadata__factory.ts +++ b/v2/typechain-types/factories/IERC721.sol/IERC721Metadata__factory.ts @@ -2,355 +2,354 @@ /* tslint:disable */ /* eslint-disable */ -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; +import { Contract, Interface, type ContractRunner } from "ethers"; import type { IERC721Metadata, IERC721MetadataInterface, -} from "../../../../forge-std/interfaces/IERC721.sol/IERC721Metadata"; +} from "../../IERC721.sol/IERC721Metadata"; const _abi = [ { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "_owner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "_approved", - type: "address", - }, - { - indexed: true, - internalType: "uint256", - name: "_tokenId", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, + type: "function", + name: "approve", inputs: [ { - indexed: true, - internalType: "address", - name: "_owner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "_operator", - type: "address", - }, - { - indexed: false, - internalType: "bool", name: "_approved", - type: "bool", - }, - ], - name: "ApprovalForAll", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "_from", type: "address", - }, - { - indexed: true, internalType: "address", - name: "_to", - type: "address", }, { - indexed: true, - internalType: "uint256", name: "_tokenId", type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - inputs: [ - { - internalType: "address", - name: "_approved", - type: "address", - }, - { internalType: "uint256", - name: "_tokenId", - type: "uint256", }, ], - name: "approve", outputs: [], stateMutability: "payable", - type: "function", }, { + type: "function", + name: "balanceOf", inputs: [ { - internalType: "address", name: "_owner", type: "address", + internalType: "address", }, ], - name: "balanceOf", outputs: [ { - internalType: "uint256", name: "", type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "getApproved", inputs: [ { - internalType: "uint256", name: "_tokenId", type: "uint256", + internalType: "uint256", }, ], - name: "getApproved", outputs: [ { - internalType: "address", name: "", type: "address", + internalType: "address", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "isApprovedForAll", inputs: [ { - internalType: "address", name: "_owner", type: "address", + internalType: "address", }, { - internalType: "address", name: "_operator", type: "address", + internalType: "address", }, ], - name: "isApprovedForAll", outputs: [ { - internalType: "bool", name: "", type: "bool", + internalType: "bool", }, ], stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "name", + inputs: [], outputs: [ { - internalType: "string", name: "_name", type: "string", + internalType: "string", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "ownerOf", inputs: [ { - internalType: "uint256", name: "_tokenId", type: "uint256", + internalType: "uint256", }, ], - name: "ownerOf", outputs: [ { - internalType: "address", name: "", type: "address", + internalType: "address", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "safeTransferFrom", inputs: [ { - internalType: "address", name: "_from", type: "address", + internalType: "address", }, { - internalType: "address", name: "_to", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "_tokenId", type: "uint256", + internalType: "uint256", }, ], - name: "safeTransferFrom", outputs: [], stateMutability: "payable", - type: "function", }, { + type: "function", + name: "safeTransferFrom", inputs: [ { - internalType: "address", name: "_from", type: "address", + internalType: "address", }, { - internalType: "address", name: "_to", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "_tokenId", type: "uint256", + internalType: "uint256", }, { - internalType: "bytes", name: "data", type: "bytes", + internalType: "bytes", }, ], - name: "safeTransferFrom", outputs: [], stateMutability: "payable", - type: "function", }, { + type: "function", + name: "setApprovalForAll", inputs: [ { - internalType: "address", name: "_operator", type: "address", + internalType: "address", }, { - internalType: "bool", name: "_approved", type: "bool", + internalType: "bool", }, ], - name: "setApprovalForAll", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "supportsInterface", inputs: [ { - internalType: "bytes4", name: "interfaceID", type: "bytes4", + internalType: "bytes4", }, ], - name: "supportsInterface", outputs: [ { - internalType: "bool", name: "", type: "bool", + internalType: "bool", }, ], stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "symbol", + inputs: [], outputs: [ { - internalType: "string", name: "_symbol", type: "string", + internalType: "string", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "tokenURI", inputs: [ { - internalType: "uint256", name: "_tokenId", type: "uint256", + internalType: "uint256", }, ], - name: "tokenURI", outputs: [ { - internalType: "string", name: "", type: "string", + internalType: "string", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "transferFrom", inputs: [ { - internalType: "address", name: "_from", type: "address", + internalType: "address", }, { - internalType: "address", name: "_to", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "_tokenId", type: "uint256", + internalType: "uint256", }, ], - name: "transferFrom", outputs: [], stateMutability: "payable", - type: "function", + }, + { + 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 utils.Interface(_abi) as IERC721MetadataInterface; + return new Interface(_abi) as IERC721MetadataInterface; } static connect( address: string, - signerOrProvider: Signer | Provider + runner?: ContractRunner | null ): IERC721Metadata { - return new Contract(address, _abi, signerOrProvider) as IERC721Metadata; + return new Contract(address, _abi, runner) as unknown as IERC721Metadata; } } diff --git a/typechain-types/factories/forge-std/interfaces/IERC721.sol/IERC721TokenReceiver__factory.ts b/v2/typechain-types/factories/IERC721.sol/IERC721TokenReceiver__factory.ts similarity index 75% rename from typechain-types/factories/forge-std/interfaces/IERC721.sol/IERC721TokenReceiver__factory.ts rename to v2/typechain-types/factories/IERC721.sol/IERC721TokenReceiver__factory.ts index 6f25120a..07fff32e 100644 --- a/typechain-types/factories/forge-std/interfaces/IERC721.sol/IERC721TokenReceiver__factory.ts +++ b/v2/typechain-types/factories/IERC721.sol/IERC721TokenReceiver__factory.ts @@ -2,63 +2,62 @@ /* tslint:disable */ /* eslint-disable */ -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; +import { Contract, Interface, type ContractRunner } from "ethers"; import type { IERC721TokenReceiver, IERC721TokenReceiverInterface, -} from "../../../../forge-std/interfaces/IERC721.sol/IERC721TokenReceiver"; +} from "../../IERC721.sol/IERC721TokenReceiver"; const _abi = [ { + type: "function", + name: "onERC721Received", inputs: [ { - internalType: "address", name: "_operator", type: "address", + internalType: "address", }, { - internalType: "address", name: "_from", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "_tokenId", type: "uint256", + internalType: "uint256", }, { - internalType: "bytes", name: "_data", type: "bytes", + internalType: "bytes", }, ], - name: "onERC721Received", outputs: [ { - internalType: "bytes4", name: "", type: "bytes4", + internalType: "bytes4", }, ], stateMutability: "nonpayable", - type: "function", }, ] as const; export class IERC721TokenReceiver__factory { static readonly abi = _abi; static createInterface(): IERC721TokenReceiverInterface { - return new utils.Interface(_abi) as IERC721TokenReceiverInterface; + return new Interface(_abi) as IERC721TokenReceiverInterface; } static connect( address: string, - signerOrProvider: Signer | Provider + runner?: ContractRunner | null ): IERC721TokenReceiver { return new Contract( address, _abi, - signerOrProvider - ) as IERC721TokenReceiver; + runner + ) as unknown as IERC721TokenReceiver; } } diff --git a/typechain-types/factories/forge-std/interfaces/IERC721.sol/IERC721__factory.ts b/v2/typechain-types/factories/IERC721.sol/IERC721__factory.ts similarity index 92% rename from typechain-types/factories/forge-std/interfaces/IERC721.sol/IERC721__factory.ts rename to v2/typechain-types/factories/IERC721.sol/IERC721__factory.ts index ea8578bc..f4b91ccd 100644 --- a/typechain-types/factories/forge-std/interfaces/IERC721.sol/IERC721__factory.ts +++ b/v2/typechain-types/factories/IERC721.sol/IERC721__factory.ts @@ -2,310 +2,303 @@ /* tslint:disable */ /* eslint-disable */ -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; -import type { - IERC721, - IERC721Interface, -} from "../../../../forge-std/interfaces/IERC721.sol/IERC721"; +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { IERC721, IERC721Interface } from "../../IERC721.sol/IERC721"; const _abi = [ { - anonymous: false, + type: "function", + name: "approve", inputs: [ { - indexed: true, - internalType: "address", - name: "_owner", - type: "address", - }, - { - indexed: true, - internalType: "address", name: "_approved", type: "address", - }, - { - indexed: true, - internalType: "uint256", - name: "_tokenId", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, internalType: "address", - name: "_owner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "_operator", - type: "address", - }, - { - indexed: false, - internalType: "bool", - name: "_approved", - type: "bool", - }, - ], - name: "ApprovalForAll", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "_from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "_to", - type: "address", }, { - indexed: true, - internalType: "uint256", name: "_tokenId", type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - inputs: [ - { - internalType: "address", - name: "_approved", - type: "address", - }, - { internalType: "uint256", - name: "_tokenId", - type: "uint256", }, ], - name: "approve", outputs: [], stateMutability: "payable", - type: "function", }, { + type: "function", + name: "balanceOf", inputs: [ { - internalType: "address", name: "_owner", type: "address", + internalType: "address", }, ], - name: "balanceOf", outputs: [ { - internalType: "uint256", name: "", type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "getApproved", inputs: [ { - internalType: "uint256", name: "_tokenId", type: "uint256", + internalType: "uint256", }, ], - name: "getApproved", outputs: [ { - internalType: "address", name: "", type: "address", + internalType: "address", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "isApprovedForAll", inputs: [ { - internalType: "address", name: "_owner", type: "address", + internalType: "address", }, { - internalType: "address", name: "_operator", type: "address", + internalType: "address", }, ], - name: "isApprovedForAll", outputs: [ { - internalType: "bool", name: "", type: "bool", + internalType: "bool", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "ownerOf", inputs: [ { - internalType: "uint256", name: "_tokenId", type: "uint256", + internalType: "uint256", }, ], - name: "ownerOf", outputs: [ { - internalType: "address", name: "", type: "address", + internalType: "address", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "safeTransferFrom", inputs: [ { - internalType: "address", name: "_from", type: "address", + internalType: "address", }, { - internalType: "address", name: "_to", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "_tokenId", type: "uint256", + internalType: "uint256", }, ], - name: "safeTransferFrom", outputs: [], stateMutability: "payable", - type: "function", }, { + type: "function", + name: "safeTransferFrom", inputs: [ { - internalType: "address", name: "_from", type: "address", + internalType: "address", }, { - internalType: "address", name: "_to", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "_tokenId", type: "uint256", + internalType: "uint256", }, { - internalType: "bytes", name: "data", type: "bytes", + internalType: "bytes", }, ], - name: "safeTransferFrom", outputs: [], stateMutability: "payable", - type: "function", }, { + type: "function", + name: "setApprovalForAll", inputs: [ { - internalType: "address", name: "_operator", type: "address", + internalType: "address", }, { - internalType: "bool", name: "_approved", type: "bool", + internalType: "bool", }, ], - name: "setApprovalForAll", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "supportsInterface", inputs: [ { - internalType: "bytes4", name: "interfaceID", type: "bytes4", + internalType: "bytes4", }, ], - name: "supportsInterface", outputs: [ { - internalType: "bool", name: "", type: "bool", + internalType: "bool", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "transferFrom", inputs: [ { - internalType: "address", name: "_from", type: "address", + internalType: "address", }, { - internalType: "address", name: "_to", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "_tokenId", type: "uint256", + internalType: "uint256", }, ], - name: "transferFrom", outputs: [], stateMutability: "payable", - type: "function", + }, + { + 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 utils.Interface(_abi) as IERC721Interface; + return new Interface(_abi) as IERC721Interface; } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): IERC721 { - return new Contract(address, _abi, signerOrProvider) as IERC721; + static connect(address: string, runner?: ContractRunner | null): IERC721 { + return new Contract(address, _abi, runner) as unknown as IERC721; } } diff --git a/typechain-types/factories/forge-std/interfaces/IERC721.sol/index.ts b/v2/typechain-types/factories/IERC721.sol/index.ts similarity index 100% rename from typechain-types/factories/forge-std/interfaces/IERC721.sol/index.ts rename to v2/typechain-types/factories/IERC721.sol/index.ts diff --git a/typechain-types/factories/contracts/prototypes/evm/interfaces.sol/IGatewayEVMErrors__factory.ts b/v2/typechain-types/factories/IGatewayEVM.sol/IGatewayEVMErrors__factory.ts similarity index 70% rename from typechain-types/factories/contracts/prototypes/evm/interfaces.sol/IGatewayEVMErrors__factory.ts rename to v2/typechain-types/factories/IGatewayEVM.sol/IGatewayEVMErrors__factory.ts index 72c92896..39b14449 100644 --- a/typechain-types/factories/contracts/prototypes/evm/interfaces.sol/IGatewayEVMErrors__factory.ts +++ b/v2/typechain-types/factories/IGatewayEVM.sol/IGatewayEVMErrors__factory.ts @@ -2,60 +2,59 @@ /* tslint:disable */ /* eslint-disable */ -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; +import { Contract, Interface, type ContractRunner } from "ethers"; import type { IGatewayEVMErrors, IGatewayEVMErrorsInterface, -} from "../../../../../contracts/prototypes/evm/interfaces.sol/IGatewayEVMErrors"; +} from "../../IGatewayEVM.sol/IGatewayEVMErrors"; const _abi = [ { - inputs: [], - name: "ApprovalFailed", type: "error", + name: "ApprovalFailed", + inputs: [], }, { - inputs: [], - name: "CustodyInitialized", type: "error", + name: "CustodyInitialized", + inputs: [], }, { - inputs: [], - name: "DepositFailed", type: "error", + name: "DepositFailed", + inputs: [], }, { - inputs: [], - name: "ExecutionFailed", type: "error", + name: "ExecutionFailed", + inputs: [], }, { - inputs: [], - name: "InsufficientERC20Amount", type: "error", + name: "InsufficientERC20Amount", + inputs: [], }, { - inputs: [], - name: "InsufficientETHAmount", type: "error", + name: "InsufficientETHAmount", + inputs: [], }, { - inputs: [], - name: "ZeroAddress", type: "error", + name: "ZeroAddress", + inputs: [], }, ] as const; export class IGatewayEVMErrors__factory { static readonly abi = _abi; static createInterface(): IGatewayEVMErrorsInterface { - return new utils.Interface(_abi) as IGatewayEVMErrorsInterface; + return new Interface(_abi) as IGatewayEVMErrorsInterface; } static connect( address: string, - signerOrProvider: Signer | Provider + runner?: ContractRunner | null ): IGatewayEVMErrors { - return new Contract(address, _abi, signerOrProvider) as IGatewayEVMErrors; + return new Contract(address, _abi, runner) as unknown as IGatewayEVMErrors; } } diff --git a/typechain-types/factories/contracts/prototypes/evm/interfaces.sol/IGatewayEVMEvents__factory.ts b/v2/typechain-types/factories/IGatewayEVM.sol/IGatewayEVMEvents__factory.ts similarity index 90% rename from typechain-types/factories/contracts/prototypes/evm/interfaces.sol/IGatewayEVMEvents__factory.ts rename to v2/typechain-types/factories/IGatewayEVM.sol/IGatewayEVMEvents__factory.ts index 7d100484..aff49e3a 100644 --- a/typechain-types/factories/contracts/prototypes/evm/interfaces.sol/IGatewayEVMEvents__factory.ts +++ b/v2/typechain-types/factories/IGatewayEVM.sol/IGatewayEVMEvents__factory.ts @@ -2,199 +2,198 @@ /* tslint:disable */ /* eslint-disable */ -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; +import { Contract, Interface, type ContractRunner } from "ethers"; import type { IGatewayEVMEvents, IGatewayEVMEventsInterface, -} from "../../../../../contracts/prototypes/evm/interfaces.sol/IGatewayEVMEvents"; +} from "../../IGatewayEVM.sol/IGatewayEVMEvents"; const _abi = [ { - anonymous: false, + type: "event", + name: "Call", inputs: [ { - indexed: true, - internalType: "address", name: "sender", type: "address", - }, - { indexed: true, internalType: "address", + }, + { name: "receiver", type: "address", + indexed: true, + internalType: "address", }, { - indexed: false, - internalType: "bytes", name: "payload", type: "bytes", + indexed: false, + internalType: "bytes", }, ], - name: "Call", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "Deposit", inputs: [ { - indexed: true, - internalType: "address", name: "sender", type: "address", - }, - { indexed: true, internalType: "address", + }, + { name: "receiver", type: "address", + indexed: true, + internalType: "address", }, { - indexed: false, - internalType: "uint256", name: "amount", type: "uint256", + indexed: false, + internalType: "uint256", }, { - indexed: false, - internalType: "address", name: "asset", type: "address", + indexed: false, + internalType: "address", }, { - indexed: false, - internalType: "bytes", name: "payload", type: "bytes", + indexed: false, + internalType: "bytes", }, ], - name: "Deposit", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "Executed", inputs: [ { - indexed: true, - internalType: "address", name: "destination", type: "address", + indexed: true, + internalType: "address", }, { - indexed: false, - internalType: "uint256", name: "value", type: "uint256", + indexed: false, + internalType: "uint256", }, { - indexed: false, - internalType: "bytes", name: "data", type: "bytes", + indexed: false, + internalType: "bytes", }, ], - name: "Executed", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "ExecutedWithERC20", inputs: [ { - indexed: true, - internalType: "address", name: "token", type: "address", - }, - { indexed: true, internalType: "address", + }, + { name: "to", type: "address", + indexed: true, + internalType: "address", }, { - indexed: false, - internalType: "uint256", name: "amount", type: "uint256", + indexed: false, + internalType: "uint256", }, { - indexed: false, - internalType: "bytes", name: "data", type: "bytes", + indexed: false, + internalType: "bytes", }, ], - name: "ExecutedWithERC20", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "Reverted", inputs: [ { - indexed: true, - internalType: "address", name: "destination", type: "address", + indexed: true, + internalType: "address", }, { - indexed: false, - internalType: "uint256", name: "value", type: "uint256", + indexed: false, + internalType: "uint256", }, { - indexed: false, - internalType: "bytes", name: "data", type: "bytes", + indexed: false, + internalType: "bytes", }, ], - name: "Reverted", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "RevertedWithERC20", inputs: [ { - indexed: true, - internalType: "address", name: "token", type: "address", - }, - { indexed: true, internalType: "address", + }, + { name: "to", type: "address", + indexed: true, + internalType: "address", }, { - indexed: false, - internalType: "uint256", name: "amount", type: "uint256", + indexed: false, + internalType: "uint256", }, { - indexed: false, - internalType: "bytes", name: "data", type: "bytes", + indexed: false, + internalType: "bytes", }, ], - name: "RevertedWithERC20", - type: "event", + anonymous: false, }, ] as const; export class IGatewayEVMEvents__factory { static readonly abi = _abi; static createInterface(): IGatewayEVMEventsInterface { - return new utils.Interface(_abi) as IGatewayEVMEventsInterface; + return new Interface(_abi) as IGatewayEVMEventsInterface; } static connect( address: string, - signerOrProvider: Signer | Provider + runner?: ContractRunner | null ): IGatewayEVMEvents { - return new Contract(address, _abi, signerOrProvider) as IGatewayEVMEvents; + return new Contract(address, _abi, runner) as unknown as IGatewayEVMEvents; } } diff --git a/typechain-types/factories/contracts/prototypes/evm/IGatewayEVM.sol/IGatewayEVM__factory.ts b/v2/typechain-types/factories/IGatewayEVM.sol/IGatewayEVM__factory.ts similarity index 80% rename from typechain-types/factories/contracts/prototypes/evm/IGatewayEVM.sol/IGatewayEVM__factory.ts rename to v2/typechain-types/factories/IGatewayEVM.sol/IGatewayEVM__factory.ts index 37378738..46d1bca3 100644 --- a/typechain-types/factories/contracts/prototypes/evm/IGatewayEVM.sol/IGatewayEVM__factory.ts +++ b/v2/typechain-types/factories/IGatewayEVM.sol/IGatewayEVM__factory.ts @@ -2,105 +2,101 @@ /* tslint:disable */ /* eslint-disable */ -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; +import { Contract, Interface, type ContractRunner } from "ethers"; import type { IGatewayEVM, IGatewayEVMInterface, -} from "../../../../../contracts/prototypes/evm/IGatewayEVM.sol/IGatewayEVM"; +} from "../../IGatewayEVM.sol/IGatewayEVM"; const _abi = [ { + type: "function", + name: "execute", inputs: [ { - internalType: "address", name: "destination", type: "address", + internalType: "address", }, { - internalType: "bytes", name: "data", type: "bytes", + internalType: "bytes", }, ], - name: "execute", outputs: [ { - internalType: "bytes", name: "", type: "bytes", + internalType: "bytes", }, ], stateMutability: "payable", - type: "function", }, { + type: "function", + name: "executeWithERC20", inputs: [ { - internalType: "address", name: "token", type: "address", + internalType: "address", }, { - internalType: "address", name: "to", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "amount", type: "uint256", + internalType: "uint256", }, { - internalType: "bytes", name: "data", type: "bytes", + internalType: "bytes", }, ], - name: "executeWithERC20", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "revertWithERC20", inputs: [ { - internalType: "address", name: "token", type: "address", + internalType: "address", }, { - internalType: "address", name: "to", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "amount", type: "uint256", + internalType: "uint256", }, { - internalType: "bytes", name: "data", type: "bytes", + internalType: "bytes", }, ], - name: "revertWithERC20", outputs: [], stateMutability: "nonpayable", - type: "function", }, ] as const; export class IGatewayEVM__factory { static readonly abi = _abi; static createInterface(): IGatewayEVMInterface { - return new utils.Interface(_abi) as IGatewayEVMInterface; + return new Interface(_abi) as IGatewayEVMInterface; } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): IGatewayEVM { - return new Contract(address, _abi, signerOrProvider) as IGatewayEVM; + static connect(address: string, runner?: ContractRunner | null): IGatewayEVM { + return new Contract(address, _abi, runner) as unknown as IGatewayEVM; } } diff --git a/typechain-types/factories/contracts/prototypes/evm/GatewayEVM.sol/Revertable__factory.ts b/v2/typechain-types/factories/IGatewayEVM.sol/Revertable__factory.ts similarity index 55% rename from typechain-types/factories/contracts/prototypes/evm/GatewayEVM.sol/Revertable__factory.ts rename to v2/typechain-types/factories/IGatewayEVM.sol/Revertable__factory.ts index 54f5f101..75f50695 100644 --- a/typechain-types/factories/contracts/prototypes/evm/GatewayEVM.sol/Revertable__factory.ts +++ b/v2/typechain-types/factories/IGatewayEVM.sol/Revertable__factory.ts @@ -2,38 +2,34 @@ /* tslint:disable */ /* eslint-disable */ -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; +import { Contract, Interface, type ContractRunner } from "ethers"; import type { Revertable, RevertableInterface, -} from "../../../../../contracts/prototypes/evm/GatewayEVM.sol/Revertable"; +} from "../../IGatewayEVM.sol/Revertable"; const _abi = [ { + type: "function", + name: "onRevert", inputs: [ { - internalType: "bytes", name: "data", type: "bytes", + internalType: "bytes", }, ], - name: "onRevert", outputs: [], stateMutability: "nonpayable", - type: "function", }, ] as const; export class Revertable__factory { static readonly abi = _abi; static createInterface(): RevertableInterface { - return new utils.Interface(_abi) as RevertableInterface; + return new Interface(_abi) as RevertableInterface; } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): Revertable { - return new Contract(address, _abi, signerOrProvider) as Revertable; + static connect(address: string, runner?: ContractRunner | null): Revertable { + return new Contract(address, _abi, runner) as unknown as Revertable; } } diff --git a/typechain-types/factories/contracts/prototypes/evm/IGatewayEVM.sol/index.ts b/v2/typechain-types/factories/IGatewayEVM.sol/index.ts similarity index 100% rename from typechain-types/factories/contracts/prototypes/evm/IGatewayEVM.sol/index.ts rename to v2/typechain-types/factories/IGatewayEVM.sol/index.ts diff --git a/typechain-types/factories/contracts/prototypes/zevm/IGatewayZEVM.sol/IGatewayZEVMErrors__factory.ts b/v2/typechain-types/factories/IGatewayZEVM.sol/IGatewayZEVMErrors__factory.ts similarity index 73% rename from typechain-types/factories/contracts/prototypes/zevm/IGatewayZEVM.sol/IGatewayZEVMErrors__factory.ts rename to v2/typechain-types/factories/IGatewayZEVM.sol/IGatewayZEVMErrors__factory.ts index 63b3a271..28a247d5 100644 --- a/typechain-types/factories/contracts/prototypes/zevm/IGatewayZEVM.sol/IGatewayZEVMErrors__factory.ts +++ b/v2/typechain-types/factories/IGatewayZEVM.sol/IGatewayZEVMErrors__factory.ts @@ -2,70 +2,69 @@ /* tslint:disable */ /* eslint-disable */ -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; +import { Contract, Interface, type ContractRunner } from "ethers"; import type { IGatewayZEVMErrors, IGatewayZEVMErrorsInterface, -} from "../../../../../contracts/prototypes/zevm/IGatewayZEVM.sol/IGatewayZEVMErrors"; +} from "../../IGatewayZEVM.sol/IGatewayZEVMErrors"; const _abi = [ { - inputs: [], - name: "CallerIsNotFungibleModule", type: "error", + name: "CallerIsNotFungibleModule", + inputs: [], }, { - inputs: [], - name: "FailedZetaSent", type: "error", + name: "FailedZetaSent", + inputs: [], }, { - inputs: [], - name: "GasFeeTransferFailed", type: "error", + name: "GasFeeTransferFailed", + inputs: [], }, { - inputs: [], - name: "InsufficientZRC20Amount", type: "error", + name: "InsufficientZRC20Amount", + inputs: [], }, { - inputs: [], - name: "InvalidTarget", type: "error", + name: "InvalidTarget", + inputs: [], }, { - inputs: [], - name: "OnlyWZETAOrFungible", type: "error", + name: "OnlyWZETAOrFungible", + inputs: [], }, { - inputs: [], - name: "WithdrawalFailed", type: "error", + name: "WithdrawalFailed", + inputs: [], }, { - inputs: [], - name: "ZRC20BurnFailed", type: "error", + name: "ZRC20BurnFailed", + inputs: [], }, { - inputs: [], - name: "ZRC20TransferFailed", type: "error", + name: "ZRC20TransferFailed", + inputs: [], }, ] as const; export class IGatewayZEVMErrors__factory { static readonly abi = _abi; static createInterface(): IGatewayZEVMErrorsInterface { - return new utils.Interface(_abi) as IGatewayZEVMErrorsInterface; + return new Interface(_abi) as IGatewayZEVMErrorsInterface; } static connect( address: string, - signerOrProvider: Signer | Provider + runner?: ContractRunner | null ): IGatewayZEVMErrors { - return new Contract(address, _abi, signerOrProvider) as IGatewayZEVMErrors; + return new Contract(address, _abi, runner) as unknown as IGatewayZEVMErrors; } } diff --git a/typechain-types/factories/contracts/prototypes/zevm/IGatewayZEVM.sol/IGatewayZEVMEvents__factory.ts b/v2/typechain-types/factories/IGatewayZEVM.sol/IGatewayZEVMEvents__factory.ts similarity index 74% rename from typechain-types/factories/contracts/prototypes/zevm/IGatewayZEVM.sol/IGatewayZEVMEvents__factory.ts rename to v2/typechain-types/factories/IGatewayZEVM.sol/IGatewayZEVMEvents__factory.ts index 64cc4932..10a0d89a 100644 --- a/typechain-types/factories/contracts/prototypes/zevm/IGatewayZEVM.sol/IGatewayZEVMEvents__factory.ts +++ b/v2/typechain-types/factories/IGatewayZEVM.sol/IGatewayZEVMEvents__factory.ts @@ -2,99 +2,110 @@ /* tslint:disable */ /* eslint-disable */ -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; +import { Contract, Interface, type ContractRunner } from "ethers"; import type { IGatewayZEVMEvents, IGatewayZEVMEventsInterface, -} from "../../../../../contracts/prototypes/zevm/IGatewayZEVM.sol/IGatewayZEVMEvents"; +} from "../../IGatewayZEVM.sol/IGatewayZEVMEvents"; const _abi = [ { - anonymous: false, + type: "event", + name: "Call", inputs: [ { - indexed: true, - internalType: "address", name: "sender", type: "address", + indexed: true, + internalType: "address", }, { - indexed: false, - internalType: "bytes", - name: "receiver", - type: "bytes", + name: "chainId", + type: "uint256", + indexed: true, + internalType: "uint256", }, { + name: "receiver", + type: "bytes", indexed: false, internalType: "bytes", + }, + { name: "message", type: "bytes", + indexed: false, + internalType: "bytes", }, ], - name: "Call", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "Withdrawal", inputs: [ { + name: "sender", + type: "address", indexed: true, internalType: "address", - name: "from", - type: "address", }, { - indexed: false, - internalType: "address", - name: "zrc20", - type: "address", + name: "chainId", + type: "uint256", + indexed: true, + internalType: "uint256", }, { + name: "receiver", + type: "bytes", indexed: false, internalType: "bytes", - name: "to", - type: "bytes", }, { + name: "zrc20", + type: "address", indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", + internalType: "address", }, { + name: "value", + type: "uint256", indexed: false, internalType: "uint256", - name: "gasfee", - type: "uint256", }, { + name: "gasfee", + type: "uint256", indexed: false, internalType: "uint256", + }, + { name: "protocolFlatFee", type: "uint256", + indexed: false, + internalType: "uint256", }, { - indexed: false, - internalType: "bytes", name: "message", type: "bytes", + indexed: false, + internalType: "bytes", }, ], - name: "Withdrawal", - type: "event", + anonymous: false, }, ] as const; export class IGatewayZEVMEvents__factory { static readonly abi = _abi; static createInterface(): IGatewayZEVMEventsInterface { - return new utils.Interface(_abi) as IGatewayZEVMEventsInterface; + return new Interface(_abi) as IGatewayZEVMEventsInterface; } static connect( address: string, - signerOrProvider: Signer | Provider + runner?: ContractRunner | null ): IGatewayZEVMEvents { - return new Contract(address, _abi, signerOrProvider) as IGatewayZEVMEvents; + return new Contract(address, _abi, runner) as unknown as IGatewayZEVMEvents; } } diff --git a/typechain-types/factories/contracts/prototypes/zevm/IGatewayZEVM.sol/IGatewayZEVM__factory.ts b/v2/typechain-types/factories/IGatewayZEVM.sol/IGatewayZEVM__factory.ts similarity index 78% rename from typechain-types/factories/contracts/prototypes/zevm/IGatewayZEVM.sol/IGatewayZEVM__factory.ts rename to v2/typechain-types/factories/IGatewayZEVM.sol/IGatewayZEVM__factory.ts index d9cd417d..a335659a 100644 --- a/typechain-types/factories/contracts/prototypes/zevm/IGatewayZEVM.sol/IGatewayZEVM__factory.ts +++ b/v2/typechain-types/factories/IGatewayZEVM.sol/IGatewayZEVM__factory.ts @@ -2,217 +2,262 @@ /* tslint:disable */ /* eslint-disable */ -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; +import { Contract, Interface, type ContractRunner } from "ethers"; import type { IGatewayZEVM, IGatewayZEVMInterface, -} from "../../../../../contracts/prototypes/zevm/IGatewayZEVM.sol/IGatewayZEVM"; +} from "../../IGatewayZEVM.sol/IGatewayZEVM"; const _abi = [ { + type: "function", + name: "call", inputs: [ { - internalType: "bytes", name: "receiver", type: "bytes", + internalType: "bytes", + }, + { + name: "chainId", + type: "uint256", + internalType: "uint256", }, { - internalType: "bytes", name: "message", type: "bytes", + internalType: "bytes", }, ], - name: "call", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "deposit", inputs: [ { - internalType: "address", name: "zrc20", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "amount", type: "uint256", + internalType: "uint256", }, { - internalType: "address", name: "target", type: "address", + internalType: "address", }, ], - name: "deposit", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "depositAndCall", inputs: [ { + name: "context", + type: "tuple", + internalType: "struct zContext", components: [ { - internalType: "bytes", name: "origin", type: "bytes", + internalType: "bytes", }, { - internalType: "address", name: "sender", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "chainID", type: "uint256", + internalType: "uint256", }, ], - internalType: "struct zContext", - name: "context", - type: "tuple", }, { - internalType: "address", name: "zrc20", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "amount", type: "uint256", + internalType: "uint256", }, { - internalType: "address", name: "target", type: "address", + internalType: "address", }, { - internalType: "bytes", name: "message", type: "bytes", + internalType: "bytes", }, ], - name: "depositAndCall", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "execute", inputs: [ { + name: "context", + type: "tuple", + internalType: "struct zContext", components: [ { - internalType: "bytes", name: "origin", type: "bytes", + internalType: "bytes", }, { - internalType: "address", name: "sender", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "chainID", type: "uint256", + internalType: "uint256", }, ], - internalType: "struct zContext", - name: "context", - type: "tuple", }, { - internalType: "address", name: "zrc20", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "amount", type: "uint256", + internalType: "uint256", }, { - internalType: "address", name: "target", type: "address", + internalType: "address", }, { - internalType: "bytes", name: "message", type: "bytes", + internalType: "bytes", }, ], - name: "execute", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "withdraw", inputs: [ { - internalType: "bytes", name: "receiver", type: "bytes", + internalType: "bytes", }, { - internalType: "uint256", name: "amount", type: "uint256", + internalType: "uint256", }, { - internalType: "address", name: "zrc20", type: "address", + internalType: "address", }, ], - name: "withdraw", outputs: [], stateMutability: "nonpayable", + }, + { type: "function", + name: "withdraw", + inputs: [ + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "chainId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", }, { + type: "function", + name: "withdrawAndCall", inputs: [ { - internalType: "bytes", name: "receiver", type: "bytes", + internalType: "bytes", }, { - internalType: "uint256", name: "amount", type: "uint256", + internalType: "uint256", }, { - internalType: "address", name: "zrc20", type: "address", + internalType: "address", }, { - internalType: "bytes", name: "message", type: "bytes", + internalType: "bytes", }, ], - name: "withdrawAndCall", outputs: [], stateMutability: "nonpayable", + }, + { type: "function", + name: "withdrawAndCall", + inputs: [ + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + { + name: "chainId", + type: "uint256", + internalType: "uint256", + }, + { + name: "message", + type: "bytes", + internalType: "bytes", + }, + ], + outputs: [], + stateMutability: "nonpayable", }, ] as const; export class IGatewayZEVM__factory { static readonly abi = _abi; static createInterface(): IGatewayZEVMInterface { - return new utils.Interface(_abi) as IGatewayZEVMInterface; + return new Interface(_abi) as IGatewayZEVMInterface; } static connect( address: string, - signerOrProvider: Signer | Provider + runner?: ContractRunner | null ): IGatewayZEVM { - return new Contract(address, _abi, signerOrProvider) as IGatewayZEVM; + return new Contract(address, _abi, runner) as unknown as IGatewayZEVM; } } diff --git a/typechain-types/factories/contracts/prototypes/zevm/IGatewayZEVM.sol/index.ts b/v2/typechain-types/factories/IGatewayZEVM.sol/index.ts similarity index 100% rename from typechain-types/factories/contracts/prototypes/zevm/IGatewayZEVM.sol/index.ts rename to v2/typechain-types/factories/IGatewayZEVM.sol/index.ts diff --git a/typechain-types/factories/forge-std/interfaces/IMulticall3__factory.ts b/v2/typechain-types/factories/IMulticall3__factory.ts similarity index 95% rename from typechain-types/factories/forge-std/interfaces/IMulticall3__factory.ts rename to v2/typechain-types/factories/IMulticall3__factory.ts index 66051d4f..199236db 100644 --- a/typechain-types/factories/forge-std/interfaces/IMulticall3__factory.ts +++ b/v2/typechain-types/factories/IMulticall3__factory.ts @@ -2,463 +2,456 @@ /* tslint:disable */ /* eslint-disable */ -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; -import type { - IMulticall3, - IMulticall3Interface, -} from "../../../forge-std/interfaces/IMulticall3"; +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: [ { - internalType: "address", name: "target", type: "address", + internalType: "address", }, { - internalType: "bytes", name: "callData", type: "bytes", + internalType: "bytes", }, ], - internalType: "struct IMulticall3.Call[]", - name: "calls", - type: "tuple[]", }, ], - name: "aggregate", outputs: [ { - internalType: "uint256", name: "blockNumber", type: "uint256", + internalType: "uint256", }, { - internalType: "bytes[]", name: "returnData", type: "bytes[]", + internalType: "bytes[]", }, ], stateMutability: "payable", - type: "function", }, { + type: "function", + name: "aggregate3", inputs: [ { + name: "calls", + type: "tuple[]", + internalType: "struct IMulticall3.Call3[]", components: [ { - internalType: "address", name: "target", type: "address", + internalType: "address", }, { - internalType: "bool", name: "allowFailure", type: "bool", + internalType: "bool", }, { - internalType: "bytes", name: "callData", type: "bytes", + internalType: "bytes", }, ], - internalType: "struct IMulticall3.Call3[]", - name: "calls", - type: "tuple[]", }, ], - name: "aggregate3", outputs: [ { + name: "returnData", + type: "tuple[]", + internalType: "struct IMulticall3.Result[]", components: [ { - internalType: "bool", name: "success", type: "bool", + internalType: "bool", }, { - internalType: "bytes", name: "returnData", type: "bytes", + internalType: "bytes", }, ], - internalType: "struct IMulticall3.Result[]", - name: "returnData", - type: "tuple[]", }, ], stateMutability: "payable", - type: "function", }, { + type: "function", + name: "aggregate3Value", inputs: [ { + name: "calls", + type: "tuple[]", + internalType: "struct IMulticall3.Call3Value[]", components: [ { - internalType: "address", name: "target", type: "address", + internalType: "address", }, { - internalType: "bool", name: "allowFailure", type: "bool", + internalType: "bool", }, { - internalType: "uint256", name: "value", type: "uint256", + internalType: "uint256", }, { - internalType: "bytes", name: "callData", type: "bytes", + internalType: "bytes", }, ], - internalType: "struct IMulticall3.Call3Value[]", - name: "calls", - type: "tuple[]", }, ], - name: "aggregate3Value", outputs: [ { + name: "returnData", + type: "tuple[]", + internalType: "struct IMulticall3.Result[]", components: [ { - internalType: "bool", name: "success", type: "bool", + internalType: "bool", }, { - internalType: "bytes", name: "returnData", type: "bytes", + internalType: "bytes", }, ], - internalType: "struct IMulticall3.Result[]", - name: "returnData", - type: "tuple[]", }, ], stateMutability: "payable", - type: "function", }, { + type: "function", + name: "blockAndAggregate", inputs: [ { + name: "calls", + type: "tuple[]", + internalType: "struct IMulticall3.Call[]", components: [ { - internalType: "address", name: "target", type: "address", + internalType: "address", }, { - internalType: "bytes", name: "callData", type: "bytes", + internalType: "bytes", }, ], - internalType: "struct IMulticall3.Call[]", - name: "calls", - type: "tuple[]", }, ], - name: "blockAndAggregate", outputs: [ { - internalType: "uint256", name: "blockNumber", type: "uint256", + internalType: "uint256", }, { - internalType: "bytes32", name: "blockHash", type: "bytes32", + internalType: "bytes32", }, { + name: "returnData", + type: "tuple[]", + internalType: "struct IMulticall3.Result[]", components: [ { - internalType: "bool", name: "success", type: "bool", + internalType: "bool", }, { - internalType: "bytes", name: "returnData", type: "bytes", + internalType: "bytes", }, ], - internalType: "struct IMulticall3.Result[]", - name: "returnData", - type: "tuple[]", }, ], stateMutability: "payable", - type: "function", }, { - inputs: [], + type: "function", name: "getBasefee", + inputs: [], outputs: [ { - internalType: "uint256", name: "basefee", type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "getBlockHash", inputs: [ { - internalType: "uint256", name: "blockNumber", type: "uint256", + internalType: "uint256", }, ], - name: "getBlockHash", outputs: [ { - internalType: "bytes32", name: "blockHash", type: "bytes32", + internalType: "bytes32", }, ], stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "getBlockNumber", + inputs: [], outputs: [ { - internalType: "uint256", name: "blockNumber", type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "getChainId", + inputs: [], outputs: [ { - internalType: "uint256", name: "chainid", type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "getCurrentBlockCoinbase", + inputs: [], outputs: [ { - internalType: "address", name: "coinbase", type: "address", + internalType: "address", }, ], stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "getCurrentBlockDifficulty", + inputs: [], outputs: [ { - internalType: "uint256", name: "difficulty", type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "getCurrentBlockGasLimit", + inputs: [], outputs: [ { - internalType: "uint256", name: "gaslimit", type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "getCurrentBlockTimestamp", + inputs: [], outputs: [ { - internalType: "uint256", name: "timestamp", type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "getEthBalance", inputs: [ { - internalType: "address", name: "addr", type: "address", + internalType: "address", }, ], - name: "getEthBalance", outputs: [ { - internalType: "uint256", name: "balance", type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "getLastBlockHash", + inputs: [], outputs: [ { - internalType: "bytes32", name: "blockHash", type: "bytes32", + internalType: "bytes32", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "tryAggregate", inputs: [ { - internalType: "bool", name: "requireSuccess", type: "bool", + internalType: "bool", }, { + name: "calls", + type: "tuple[]", + internalType: "struct IMulticall3.Call[]", components: [ { - internalType: "address", name: "target", type: "address", + internalType: "address", }, { - internalType: "bytes", name: "callData", type: "bytes", + internalType: "bytes", }, ], - internalType: "struct IMulticall3.Call[]", - name: "calls", - type: "tuple[]", }, ], - name: "tryAggregate", outputs: [ { + name: "returnData", + type: "tuple[]", + internalType: "struct IMulticall3.Result[]", components: [ { - internalType: "bool", name: "success", type: "bool", + internalType: "bool", }, { - internalType: "bytes", name: "returnData", type: "bytes", + internalType: "bytes", }, ], - internalType: "struct IMulticall3.Result[]", - name: "returnData", - type: "tuple[]", }, ], stateMutability: "payable", - type: "function", }, { + type: "function", + name: "tryBlockAndAggregate", inputs: [ { - internalType: "bool", name: "requireSuccess", type: "bool", + internalType: "bool", }, { + name: "calls", + type: "tuple[]", + internalType: "struct IMulticall3.Call[]", components: [ { - internalType: "address", name: "target", type: "address", + internalType: "address", }, { - internalType: "bytes", name: "callData", type: "bytes", + internalType: "bytes", }, ], - internalType: "struct IMulticall3.Call[]", - name: "calls", - type: "tuple[]", }, ], - name: "tryBlockAndAggregate", outputs: [ { - internalType: "uint256", name: "blockNumber", type: "uint256", + internalType: "uint256", }, { - internalType: "bytes32", name: "blockHash", type: "bytes32", + internalType: "bytes32", }, { + name: "returnData", + type: "tuple[]", + internalType: "struct IMulticall3.Result[]", components: [ { - internalType: "bool", name: "success", type: "bool", + internalType: "bool", }, { - internalType: "bytes", name: "returnData", type: "bytes", + internalType: "bytes", }, ], - internalType: "struct IMulticall3.Result[]", - name: "returnData", - type: "tuple[]", }, ], stateMutability: "payable", - type: "function", }, ] as const; export class IMulticall3__factory { static readonly abi = _abi; static createInterface(): IMulticall3Interface { - return new utils.Interface(_abi) as IMulticall3Interface; + return new Interface(_abi) as IMulticall3Interface; } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): IMulticall3 { - return new Contract(address, _abi, signerOrProvider) as IMulticall3; + 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/typechain-types/factories/contracts/prototypes/evm/IReceiverEVM.sol/IReceiverEVMEvents__factory.ts b/v2/typechain-types/factories/IReceiverEVM.sol/IReceiverEVMEvents__factory.ts similarity index 88% rename from typechain-types/factories/contracts/prototypes/evm/IReceiverEVM.sol/IReceiverEVMEvents__factory.ts rename to v2/typechain-types/factories/IReceiverEVM.sol/IReceiverEVMEvents__factory.ts index 58b48916..dab09064 100644 --- a/typechain-types/factories/contracts/prototypes/evm/IReceiverEVM.sol/IReceiverEVMEvents__factory.ts +++ b/v2/typechain-types/factories/IReceiverEVM.sol/IReceiverEVMEvents__factory.ts @@ -2,156 +2,155 @@ /* tslint:disable */ /* eslint-disable */ -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; +import { Contract, Interface, type ContractRunner } from "ethers"; import type { IReceiverEVMEvents, IReceiverEVMEventsInterface, -} from "../../../../../contracts/prototypes/evm/IReceiverEVM.sol/IReceiverEVMEvents"; +} from "../../IReceiverEVM.sol/IReceiverEVMEvents"; const _abi = [ { - anonymous: false, + type: "event", + name: "ReceivedERC20", inputs: [ { - indexed: false, - internalType: "address", name: "sender", type: "address", + indexed: false, + internalType: "address", }, { - indexed: false, - internalType: "uint256", name: "amount", type: "uint256", + indexed: false, + internalType: "uint256", }, { - indexed: false, - internalType: "address", name: "token", type: "address", - }, - { indexed: false, internalType: "address", + }, + { name: "destination", type: "address", + indexed: false, + internalType: "address", }, ], - name: "ReceivedERC20", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "ReceivedNoParams", inputs: [ { - indexed: false, - internalType: "address", name: "sender", type: "address", + indexed: false, + internalType: "address", }, ], - name: "ReceivedNoParams", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "ReceivedNonPayable", inputs: [ { - indexed: false, - internalType: "address", name: "sender", type: "address", + indexed: false, + internalType: "address", }, { - indexed: false, - internalType: "string[]", name: "strs", type: "string[]", + indexed: false, + internalType: "string[]", }, { - indexed: false, - internalType: "uint256[]", name: "nums", type: "uint256[]", + indexed: false, + internalType: "uint256[]", }, { - indexed: false, - internalType: "bool", name: "flag", type: "bool", + indexed: false, + internalType: "bool", }, ], - name: "ReceivedNonPayable", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "ReceivedPayable", inputs: [ { - indexed: false, - internalType: "address", name: "sender", type: "address", + indexed: false, + internalType: "address", }, { - indexed: false, - internalType: "uint256", name: "value", type: "uint256", + indexed: false, + internalType: "uint256", }, { - indexed: false, - internalType: "string", name: "str", type: "string", + indexed: false, + internalType: "string", }, { - indexed: false, - internalType: "uint256", name: "num", type: "uint256", + indexed: false, + internalType: "uint256", }, { - indexed: false, - internalType: "bool", name: "flag", type: "bool", + indexed: false, + internalType: "bool", }, ], - name: "ReceivedPayable", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "ReceivedRevert", inputs: [ { - indexed: false, - internalType: "address", name: "sender", type: "address", + indexed: false, + internalType: "address", }, { - indexed: false, - internalType: "bytes", name: "data", type: "bytes", + indexed: false, + internalType: "bytes", }, ], - name: "ReceivedRevert", - type: "event", + anonymous: false, }, ] as const; export class IReceiverEVMEvents__factory { static readonly abi = _abi; static createInterface(): IReceiverEVMEventsInterface { - return new utils.Interface(_abi) as IReceiverEVMEventsInterface; + return new Interface(_abi) as IReceiverEVMEventsInterface; } static connect( address: string, - signerOrProvider: Signer | Provider + runner?: ContractRunner | null ): IReceiverEVMEvents { - return new Contract(address, _abi, signerOrProvider) as IReceiverEVMEvents; + return new Contract(address, _abi, runner) as unknown as IReceiverEVMEvents; } } diff --git a/typechain-types/factories/contracts/prototypes/evm/IReceiverEVM.sol/index.ts b/v2/typechain-types/factories/IReceiverEVM.sol/index.ts similarity index 100% rename from typechain-types/factories/contracts/prototypes/evm/IReceiverEVM.sol/index.ts rename to v2/typechain-types/factories/IReceiverEVM.sol/index.ts 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/typechain-types/factories/contracts/prototypes/evm/IGatewayEVM.sol/IGatewayEVMEvents__factory.ts b/v2/typechain-types/factories/IZRC20.sol/ZRC20Events__factory.ts similarity index 54% rename from typechain-types/factories/contracts/prototypes/evm/IGatewayEVM.sol/IGatewayEVMEvents__factory.ts rename to v2/typechain-types/factories/IZRC20.sol/ZRC20Events__factory.ts index bee0368f..6cf7538f 100644 --- a/typechain-types/factories/contracts/prototypes/evm/IGatewayEVM.sol/IGatewayEVMEvents__factory.ts +++ b/v2/typechain-types/factories/IZRC20.sol/ZRC20Events__factory.ts @@ -2,199 +2,172 @@ /* tslint:disable */ /* eslint-disable */ -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; +import { Contract, Interface, type ContractRunner } from "ethers"; import type { - IGatewayEVMEvents, - IGatewayEVMEventsInterface, -} from "../../../../../contracts/prototypes/evm/IGatewayEVM.sol/IGatewayEVMEvents"; + ZRC20Events, + ZRC20EventsInterface, +} from "../../IZRC20.sol/ZRC20Events"; const _abi = [ { - anonymous: false, + type: "event", + name: "Approval", inputs: [ { + name: "owner", + type: "address", indexed: true, internalType: "address", - name: "sender", - type: "address", }, { + name: "spender", + type: "address", indexed: true, internalType: "address", - name: "receiver", - type: "address", }, { + name: "value", + type: "uint256", indexed: false, - internalType: "bytes", - name: "payload", - type: "bytes", + internalType: "uint256", }, ], - name: "Call", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "Deposit", inputs: [ { - indexed: true, - internalType: "address", - name: "sender", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "receiver", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - indexed: false, - internalType: "address", - name: "asset", - type: "address", - }, - { + name: "from", + type: "bytes", indexed: false, internalType: "bytes", - name: "payload", - type: "bytes", }, - ], - name: "Deposit", - type: "event", - }, - { - anonymous: false, - inputs: [ { + name: "to", + type: "address", indexed: true, internalType: "address", - name: "destination", - type: "address", }, { - indexed: false, - internalType: "uint256", name: "value", type: "uint256", - }, - { indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", + internalType: "uint256", }, ], - name: "Executed", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "Transfer", inputs: [ { + name: "from", + type: "address", indexed: true, internalType: "address", - name: "token", - type: "address", }, { - indexed: true, - internalType: "address", name: "to", type: "address", + indexed: true, + internalType: "address", }, { + name: "value", + type: "uint256", indexed: false, internalType: "uint256", - name: "amount", - type: "uint256", }, + ], + anonymous: false, + }, + { + type: "event", + name: "UpdatedGasLimit", + inputs: [ { + name: "gasLimit", + type: "uint256", indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", + internalType: "uint256", }, ], - name: "ExecutedWithERC20", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "UpdatedProtocolFlatFee", inputs: [ { - indexed: true, - internalType: "address", - name: "destination", - type: "address", - }, - { + name: "protocolFlatFee", + type: "uint256", indexed: false, internalType: "uint256", - name: "value", - type: "uint256", }, + ], + anonymous: false, + }, + { + type: "event", + name: "UpdatedSystemContract", + inputs: [ { + name: "systemContract", + type: "address", indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", + internalType: "address", }, ], - name: "Reverted", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "Withdrawal", inputs: [ { + name: "from", + type: "address", indexed: true, internalType: "address", - name: "token", - type: "address", }, { - indexed: true, - internalType: "address", name: "to", - type: "address", + type: "bytes", + indexed: false, + internalType: "bytes", }, { + name: "value", + type: "uint256", indexed: false, internalType: "uint256", - name: "amount", + }, + { + name: "gasFee", type: "uint256", + indexed: false, + internalType: "uint256", }, { + name: "protocolFlatFee", + type: "uint256", indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", + internalType: "uint256", }, ], - name: "RevertedWithERC20", - type: "event", + anonymous: false, }, ] as const; -export class IGatewayEVMEvents__factory { +export class ZRC20Events__factory { static readonly abi = _abi; - static createInterface(): IGatewayEVMEventsInterface { - return new utils.Interface(_abi) as IGatewayEVMEventsInterface; + static createInterface(): ZRC20EventsInterface { + return new Interface(_abi) as ZRC20EventsInterface; } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): IGatewayEVMEvents { - return new Contract(address, _abi, signerOrProvider) as IGatewayEVMEvents; + 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/typechain-types/factories/contracts/prototypes/evm/IZetaConnector.sol/IZetaConnectorEvents__factory.ts b/v2/typechain-types/factories/IZetaConnector.sol/IZetaConnectorEvents__factory.ts similarity index 82% rename from typechain-types/factories/contracts/prototypes/evm/IZetaConnector.sol/IZetaConnectorEvents__factory.ts rename to v2/typechain-types/factories/IZetaConnector.sol/IZetaConnectorEvents__factory.ts index c7408d4c..92dae62d 100644 --- a/typechain-types/factories/contracts/prototypes/evm/IZetaConnector.sol/IZetaConnectorEvents__factory.ts +++ b/v2/typechain-types/factories/IZetaConnector.sol/IZetaConnectorEvents__factory.ts @@ -2,98 +2,97 @@ /* tslint:disable */ /* eslint-disable */ -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; +import { Contract, Interface, type ContractRunner } from "ethers"; import type { IZetaConnectorEvents, IZetaConnectorEventsInterface, -} from "../../../../../contracts/prototypes/evm/IZetaConnector.sol/IZetaConnectorEvents"; +} from "../../IZetaConnector.sol/IZetaConnectorEvents"; const _abi = [ { - anonymous: false, + type: "event", + name: "Withdraw", inputs: [ { - indexed: true, - internalType: "address", name: "to", type: "address", + indexed: true, + internalType: "address", }, { - indexed: false, - internalType: "uint256", name: "amount", type: "uint256", + indexed: false, + internalType: "uint256", }, ], - name: "Withdraw", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "WithdrawAndCall", inputs: [ { - indexed: true, - internalType: "address", name: "to", type: "address", + indexed: true, + internalType: "address", }, { - indexed: false, - internalType: "uint256", name: "amount", type: "uint256", + indexed: false, + internalType: "uint256", }, { - indexed: false, - internalType: "bytes", name: "data", type: "bytes", + indexed: false, + internalType: "bytes", }, ], - name: "WithdrawAndCall", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "WithdrawAndRevert", inputs: [ { - indexed: true, - internalType: "address", name: "to", type: "address", + indexed: true, + internalType: "address", }, { - indexed: false, - internalType: "uint256", name: "amount", type: "uint256", + indexed: false, + internalType: "uint256", }, { - indexed: false, - internalType: "bytes", name: "data", type: "bytes", + indexed: false, + internalType: "bytes", }, ], - name: "WithdrawAndRevert", - type: "event", + anonymous: false, }, ] as const; export class IZetaConnectorEvents__factory { static readonly abi = _abi; static createInterface(): IZetaConnectorEventsInterface { - return new utils.Interface(_abi) as IZetaConnectorEventsInterface; + return new Interface(_abi) as IZetaConnectorEventsInterface; } static connect( address: string, - signerOrProvider: Signer | Provider + runner?: ContractRunner | null ): IZetaConnectorEvents { return new Contract( address, _abi, - signerOrProvider - ) as IZetaConnectorEvents; + runner + ) as unknown as IZetaConnectorEvents; } } diff --git a/typechain-types/factories/contracts/prototypes/evm/IZetaConnector.sol/index.ts b/v2/typechain-types/factories/IZetaConnector.sol/index.ts similarity index 100% rename from typechain-types/factories/contracts/prototypes/evm/IZetaConnector.sol/index.ts rename to v2/typechain-types/factories/IZetaConnector.sol/index.ts diff --git a/typechain-types/factories/contracts/prototypes/evm/IZetaNonEthNew__factory.ts b/v2/typechain-types/factories/IZetaNonEthNew__factory.ts similarity index 90% rename from typechain-types/factories/contracts/prototypes/evm/IZetaNonEthNew__factory.ts rename to v2/typechain-types/factories/IZetaNonEthNew__factory.ts index 78938556..362f9de6 100644 --- a/typechain-types/factories/contracts/prototypes/evm/IZetaNonEthNew__factory.ts +++ b/v2/typechain-types/factories/IZetaNonEthNew__factory.ts @@ -2,249 +2,248 @@ /* tslint:disable */ /* eslint-disable */ -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; +import { Contract, Interface, type ContractRunner } from "ethers"; import type { IZetaNonEthNew, IZetaNonEthNewInterface, -} from "../../../../contracts/prototypes/evm/IZetaNonEthNew"; +} from "../IZetaNonEthNew"; const _abi = [ { - anonymous: false, + type: "function", + name: "allowance", inputs: [ { - indexed: true, - internalType: "address", name: "owner", type: "address", - }, - { - indexed: true, internalType: "address", - name: "spender", - type: "address", }, { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", name: "spender", type: "address", + internalType: "address", }, ], - name: "allowance", outputs: [ { - internalType: "uint256", name: "", type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "approve", inputs: [ { - internalType: "address", name: "spender", type: "address", + internalType: "address", }, { - internalType: "uint256", - name: "amount", + name: "value", type: "uint256", + internalType: "uint256", }, ], - name: "approve", outputs: [ { - internalType: "bool", name: "", type: "bool", + internalType: "bool", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "balanceOf", inputs: [ { - internalType: "address", name: "account", type: "address", + internalType: "address", }, ], - name: "balanceOf", outputs: [ { - internalType: "uint256", name: "", type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "burnFrom", inputs: [ { - internalType: "address", name: "account", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "amount", type: "uint256", + internalType: "uint256", }, ], - name: "burnFrom", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "mint", inputs: [ { - internalType: "address", name: "mintee", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "value", type: "uint256", + internalType: "uint256", }, { - internalType: "bytes32", name: "internalSendHash", type: "bytes32", + internalType: "bytes32", }, ], - name: "mint", outputs: [], stateMutability: "nonpayable", - type: "function", }, { - inputs: [], + type: "function", name: "totalSupply", + inputs: [], outputs: [ { - internalType: "uint256", name: "", type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "transfer", inputs: [ { - internalType: "address", name: "to", type: "address", + internalType: "address", }, { - internalType: "uint256", - name: "amount", + name: "value", type: "uint256", + internalType: "uint256", }, ], - name: "transfer", outputs: [ { - internalType: "bool", name: "", type: "bool", + internalType: "bool", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "transferFrom", inputs: [ { - internalType: "address", name: "from", type: "address", + internalType: "address", }, { - internalType: "address", name: "to", type: "address", + internalType: "address", }, { - internalType: "uint256", - name: "amount", + name: "value", type: "uint256", + internalType: "uint256", }, ], - name: "transferFrom", outputs: [ { - internalType: "bool", name: "", type: "bool", + internalType: "bool", }, ], stateMutability: "nonpayable", - type: "function", + }, + { + 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 utils.Interface(_abi) as IZetaNonEthNewInterface; + return new Interface(_abi) as IZetaNonEthNewInterface; } static connect( address: string, - signerOrProvider: Signer | Provider + runner?: ContractRunner | null ): IZetaNonEthNew { - return new Contract(address, _abi, signerOrProvider) as 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/PausableUpgradeable__factory.ts b/v2/typechain-types/factories/PausableUpgradeable__factory.ts new file mode 100644 index 00000000..6c2b0b37 --- /dev/null +++ b/v2/typechain-types/factories/PausableUpgradeable__factory.ts @@ -0,0 +1,101 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + PausableUpgradeable, + PausableUpgradeableInterface, +} from "../PausableUpgradeable"; + +const _abi = [ + { + type: "function", + name: "paused", + inputs: [], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "event", + name: "Initialized", + inputs: [ + { + name: "version", + type: "uint64", + indexed: false, + internalType: "uint64", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Paused", + inputs: [ + { + name: "account", + type: "address", + indexed: false, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Unpaused", + inputs: [ + { + name: "account", + type: "address", + indexed: false, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "EnforcedPause", + inputs: [], + }, + { + type: "error", + name: "ExpectedPause", + inputs: [], + }, + { + type: "error", + name: "InvalidInitialization", + inputs: [], + }, + { + type: "error", + name: "NotInitializing", + inputs: [], + }, +] as const; + +export class PausableUpgradeable__factory { + static readonly abi = _abi; + static createInterface(): PausableUpgradeableInterface { + return new Interface(_abi) as PausableUpgradeableInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): PausableUpgradeable { + return new Contract( + address, + _abi, + runner + ) as unknown as PausableUpgradeable; + } +} diff --git a/v2/typechain-types/factories/Pausable__factory.ts b/v2/typechain-types/factories/Pausable__factory.ts new file mode 100644 index 00000000..2043adf9 --- /dev/null +++ b/v2/typechain-types/factories/Pausable__factory.ts @@ -0,0 +1,68 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { Pausable, PausableInterface } from "../Pausable"; + +const _abi = [ + { + type: "function", + name: "paused", + inputs: [], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "event", + name: "Paused", + inputs: [ + { + name: "account", + type: "address", + indexed: false, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Unpaused", + inputs: [ + { + name: "account", + type: "address", + indexed: false, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "EnforcedPause", + inputs: [], + }, + { + type: "error", + name: "ExpectedPause", + inputs: [], + }, +] as const; + +export class Pausable__factory { + static readonly abi = _abi; + static createInterface(): PausableInterface { + return new Interface(_abi) as PausableInterface; + } + static connect(address: string, runner?: ContractRunner | null): Pausable { + return new Contract(address, _abi, runner) as unknown as Pausable; + } +} 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..0a3629b6 --- /dev/null +++ b/v2/typechain-types/factories/SenderZEVM__factory.ts @@ -0,0 +1,170 @@ +/* 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: "chainId", + type: "uint256", + internalType: "uint256", + }, + { + 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 = + "0x6080604052348015600f57600080fd5b5060405161080c38038061080c833981016040819052602c916050565b600080546001600160a01b0319166001600160a01b0392909216919091179055607e565b600060208284031215606157600080fd5b81516001600160a01b0381168114607757600080fd5b9392505050565b61077f8061008d6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630abd890514610046578063116191b61461005b578063865b36f6146100a4575b600080fd5b6100596100543660046104c4565b6100b7565b005b60005461007b9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100596100b236600461057f565b6102af565b60008383836040516024016100ce93929190610674565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe04d4f970000000000000000000000000000000000000000000000000000000017905260005490517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201526024810189905291925086169063095ea7b3906044016020604051808303816000875af11580156101be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e2919061069e565b610218576040517f8164f84200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000546040517f7993c1e000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690637993c1e090610274908a908a908a9087906004016106c2565b600060405180830381600087803b15801561028e57600080fd5b505af11580156102a2573d6000803e3d6000fd5b5050505050505050505050565b60008383836040516024016102c693929190610674565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe04d4f970000000000000000000000000000000000000000000000000000000017905260005490517f5d40e17800000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff1690635d40e1789061039690899089908690600401610714565b600060405180830381600087803b1580156103b057600080fd5b505af11580156103c4573d6000803e3d6000fd5b50505050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261041057600080fd5b81356020830160008067ffffffffffffffff841115610431576104316103d0565b506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85018116603f0116810181811067ffffffffffffffff8211171561047e5761047e6103d0565b60405283815290508082840187101561049657600080fd5b838360208301376000602085830101528094505050505092915050565b80151581146104c157600080fd5b50565b60008060008060008060c087890312156104dd57600080fd5b863567ffffffffffffffff8111156104f457600080fd5b61050089828a016103ff565b96505060208701359450604087013573ffffffffffffffffffffffffffffffffffffffff8116811461053157600080fd5b9350606087013567ffffffffffffffff81111561054d57600080fd5b61055989828a016103ff565b9350506080870135915060a0870135610571816104b3565b809150509295509295509295565b600080600080600060a0868803121561059757600080fd5b853567ffffffffffffffff8111156105ae57600080fd5b6105ba888289016103ff565b95505060208601359350604086013567ffffffffffffffff8111156105de57600080fd5b6105ea888289016103ff565b935050606086013591506080860135610602816104b3565b809150509295509295909350565b6000815180845260005b818110156106365760208185018101518683018201520161061a565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6060815260006106876060830186610610565b602083019490945250901515604090910152919050565b6000602082840312156106b057600080fd5b81516106bb816104b3565b9392505050565b6080815260006106d56080830187610610565b85602084015273ffffffffffffffffffffffffffffffffffffffff8516604084015282810360608401526107098185610610565b979650505050505050565b6060815260006107276060830186610610565b846020840152828103604084015261073f8185610610565b969550505050505056fea2646970667358221220ddb6d6c4d104fc6d2f5c6ce9a1d66252fca95b7b25d839de654d81d453d176e464736f6c634300081a0033"; + +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/typechain-types/factories/forge-std/StdAssertions__factory.ts b/v2/typechain-types/factories/StdAssertions__factory.ts similarity index 94% rename from typechain-types/factories/forge-std/StdAssertions__factory.ts rename to v2/typechain-types/factories/StdAssertions__factory.ts index 5fc55ec1..7ba2478b 100644 --- a/typechain-types/factories/forge-std/StdAssertions__factory.ts +++ b/v2/typechain-types/factories/StdAssertions__factory.ts @@ -2,402 +2,398 @@ /* tslint:disable */ /* eslint-disable */ -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; -import type { - StdAssertions, - StdAssertionsInterface, -} from "../../forge-std/StdAssertions"; +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { StdAssertions, StdAssertionsInterface } from "../StdAssertions"; const _abi = [ { - anonymous: false, + type: "function", + name: "failed", + inputs: [], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "event", + name: "log", inputs: [ { - indexed: false, - internalType: "string", name: "", type: "string", + indexed: false, + internalType: "string", }, ], - name: "log", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "log_address", inputs: [ { - indexed: false, - internalType: "address", name: "", type: "address", + indexed: false, + internalType: "address", }, ], - name: "log_address", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "log_array", inputs: [ { - indexed: false, - internalType: "uint256[]", name: "val", type: "uint256[]", + indexed: false, + internalType: "uint256[]", }, ], - name: "log_array", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "log_array", inputs: [ { - indexed: false, - internalType: "int256[]", name: "val", type: "int256[]", + indexed: false, + internalType: "int256[]", }, ], - name: "log_array", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "log_array", inputs: [ { - indexed: false, - internalType: "address[]", name: "val", type: "address[]", + indexed: false, + internalType: "address[]", }, ], - name: "log_array", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "log_bytes", inputs: [ { - indexed: false, - internalType: "bytes", name: "", type: "bytes", + indexed: false, + internalType: "bytes", }, ], - name: "log_bytes", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "log_bytes32", inputs: [ { - indexed: false, - internalType: "bytes32", name: "", type: "bytes32", + indexed: false, + internalType: "bytes32", }, ], - name: "log_bytes32", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "log_int", inputs: [ { - indexed: false, - internalType: "int256", name: "", type: "int256", + indexed: false, + internalType: "int256", }, ], - name: "log_int", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "log_named_address", inputs: [ { - indexed: false, - internalType: "string", name: "key", type: "string", + indexed: false, + internalType: "string", }, { - indexed: false, - internalType: "address", name: "val", type: "address", + indexed: false, + internalType: "address", }, ], - name: "log_named_address", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "log_named_array", inputs: [ { - indexed: false, - internalType: "string", name: "key", type: "string", + indexed: false, + internalType: "string", }, { - indexed: false, - internalType: "uint256[]", name: "val", type: "uint256[]", + indexed: false, + internalType: "uint256[]", }, ], - name: "log_named_array", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "log_named_array", inputs: [ { - indexed: false, - internalType: "string", name: "key", type: "string", + indexed: false, + internalType: "string", }, { - indexed: false, - internalType: "int256[]", name: "val", type: "int256[]", + indexed: false, + internalType: "int256[]", }, ], - name: "log_named_array", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "log_named_array", inputs: [ { - indexed: false, - internalType: "string", name: "key", type: "string", + indexed: false, + internalType: "string", }, { - indexed: false, - internalType: "address[]", name: "val", type: "address[]", + indexed: false, + internalType: "address[]", }, ], - name: "log_named_array", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "log_named_bytes", inputs: [ { - indexed: false, - internalType: "string", name: "key", type: "string", + indexed: false, + internalType: "string", }, { - indexed: false, - internalType: "bytes", name: "val", type: "bytes", + indexed: false, + internalType: "bytes", }, ], - name: "log_named_bytes", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "log_named_bytes32", inputs: [ { - indexed: false, - internalType: "string", name: "key", type: "string", + indexed: false, + internalType: "string", }, { - indexed: false, - internalType: "bytes32", name: "val", type: "bytes32", + indexed: false, + internalType: "bytes32", }, ], - name: "log_named_bytes32", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "log_named_decimal_int", inputs: [ { - indexed: false, - internalType: "string", name: "key", type: "string", + indexed: false, + internalType: "string", }, { - indexed: false, - internalType: "int256", name: "val", type: "int256", + indexed: false, + internalType: "int256", }, { - indexed: false, - internalType: "uint256", name: "decimals", type: "uint256", + indexed: false, + internalType: "uint256", }, ], - name: "log_named_decimal_int", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "log_named_decimal_uint", inputs: [ { - indexed: false, - internalType: "string", name: "key", type: "string", + indexed: false, + internalType: "string", }, { - indexed: false, - internalType: "uint256", name: "val", type: "uint256", - }, - { indexed: false, internalType: "uint256", + }, + { name: "decimals", type: "uint256", + indexed: false, + internalType: "uint256", }, ], - name: "log_named_decimal_uint", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "log_named_int", inputs: [ { - indexed: false, - internalType: "string", name: "key", type: "string", + indexed: false, + internalType: "string", }, { - indexed: false, - internalType: "int256", name: "val", type: "int256", + indexed: false, + internalType: "int256", }, ], - name: "log_named_int", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "log_named_string", inputs: [ { - indexed: false, - internalType: "string", name: "key", type: "string", - }, - { indexed: false, internalType: "string", + }, + { name: "val", type: "string", + indexed: false, + internalType: "string", }, ], - name: "log_named_string", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "log_named_uint", inputs: [ { - indexed: false, - internalType: "string", name: "key", type: "string", + indexed: false, + internalType: "string", }, { - indexed: false, - internalType: "uint256", name: "val", type: "uint256", + indexed: false, + internalType: "uint256", }, ], - name: "log_named_uint", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "log_string", inputs: [ { - indexed: false, - internalType: "string", name: "", type: "string", + indexed: false, + internalType: "string", }, ], - name: "log_string", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "log_uint", inputs: [ { - indexed: false, - internalType: "uint256", name: "", type: "uint256", + indexed: false, + internalType: "uint256", }, ], - name: "log_uint", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "logs", inputs: [ { - indexed: false, - internalType: "bytes", name: "", type: "bytes", + indexed: false, + internalType: "bytes", }, ], - name: "logs", - type: "event", - }, - { - inputs: [], - name: "failed", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", + anonymous: false, }, ] as const; export class StdAssertions__factory { static readonly abi = _abi; static createInterface(): StdAssertionsInterface { - return new utils.Interface(_abi) as StdAssertionsInterface; + return new Interface(_abi) as StdAssertionsInterface; } static connect( address: string, - signerOrProvider: Signer | Provider + runner?: ContractRunner | null ): StdAssertions { - return new Contract(address, _abi, signerOrProvider) as 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/typechain-types/factories/forge-std/StdError.sol/index.ts b/v2/typechain-types/factories/StdError.sol/index.ts similarity index 100% rename from typechain-types/factories/forge-std/StdError.sol/index.ts rename to v2/typechain-types/factories/StdError.sol/index.ts diff --git a/typechain-types/factories/forge-std/StdInvariant__factory.ts b/v2/typechain-types/factories/StdInvariant__factory.ts similarity index 91% rename from typechain-types/factories/forge-std/StdInvariant__factory.ts rename to v2/typechain-types/factories/StdInvariant__factory.ts index 555a0609..e216a1e4 100644 --- a/typechain-types/factories/forge-std/StdInvariant__factory.ts +++ b/v2/typechain-types/factories/StdInvariant__factory.ts @@ -2,203 +2,199 @@ /* tslint:disable */ /* eslint-disable */ -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; -import type { - StdInvariant, - StdInvariantInterface, -} from "../../forge-std/StdInvariant"; +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { StdInvariant, StdInvariantInterface } from "../StdInvariant"; const _abi = [ { - inputs: [], + type: "function", name: "excludeArtifacts", + inputs: [], outputs: [ { - internalType: "string[]", name: "excludedArtifacts_", type: "string[]", + internalType: "string[]", }, ], stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "excludeContracts", + inputs: [], outputs: [ { - internalType: "address[]", name: "excludedContracts_", type: "address[]", + internalType: "address[]", }, ], stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "excludeSelectors", + inputs: [], outputs: [ { + name: "excludedSelectors_", + type: "tuple[]", + internalType: "struct StdInvariant.FuzzSelector[]", components: [ { - internalType: "address", name: "addr", type: "address", + internalType: "address", }, { - internalType: "bytes4[]", name: "selectors", type: "bytes4[]", + internalType: "bytes4[]", }, ], - internalType: "struct StdInvariant.FuzzSelector[]", - name: "excludedSelectors_", - type: "tuple[]", }, ], stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "excludeSenders", + inputs: [], outputs: [ { - internalType: "address[]", name: "excludedSenders_", type: "address[]", + internalType: "address[]", }, ], stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "targetArtifactSelectors", + inputs: [], outputs: [ { + name: "targetedArtifactSelectors_", + type: "tuple[]", + internalType: "struct StdInvariant.FuzzArtifactSelector[]", components: [ { - internalType: "string", name: "artifact", type: "string", + internalType: "string", }, { - internalType: "bytes4[]", name: "selectors", type: "bytes4[]", + internalType: "bytes4[]", }, ], - internalType: "struct StdInvariant.FuzzArtifactSelector[]", - name: "targetedArtifactSelectors_", - type: "tuple[]", }, ], stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "targetArtifacts", + inputs: [], outputs: [ { - internalType: "string[]", name: "targetedArtifacts_", type: "string[]", + internalType: "string[]", }, ], stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "targetContracts", + inputs: [], outputs: [ { - internalType: "address[]", name: "targetedContracts_", type: "address[]", + internalType: "address[]", }, ], stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "targetInterfaces", + inputs: [], outputs: [ { + name: "targetedInterfaces_", + type: "tuple[]", + internalType: "struct StdInvariant.FuzzInterface[]", components: [ { - internalType: "address", name: "addr", type: "address", + internalType: "address", }, { - internalType: "string[]", name: "artifacts", type: "string[]", + internalType: "string[]", }, ], - internalType: "struct StdInvariant.FuzzInterface[]", - name: "targetedInterfaces_", - type: "tuple[]", }, ], stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "targetSelectors", + inputs: [], outputs: [ { + name: "targetedSelectors_", + type: "tuple[]", + internalType: "struct StdInvariant.FuzzSelector[]", components: [ { - internalType: "address", name: "addr", type: "address", + internalType: "address", }, { - internalType: "bytes4[]", name: "selectors", type: "bytes4[]", + internalType: "bytes4[]", }, ], - internalType: "struct StdInvariant.FuzzSelector[]", - name: "targetedSelectors_", - type: "tuple[]", }, ], stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "targetSenders", + inputs: [], outputs: [ { - internalType: "address[]", name: "targetedSenders_", type: "address[]", + internalType: "address[]", }, ], stateMutability: "view", - type: "function", }, ] as const; export class StdInvariant__factory { static readonly abi = _abi; static createInterface(): StdInvariantInterface { - return new utils.Interface(_abi) as StdInvariantInterface; + return new Interface(_abi) as StdInvariantInterface; } static connect( address: string, - signerOrProvider: Signer | Provider + runner?: ContractRunner | null ): StdInvariant { - return new Contract(address, _abi, signerOrProvider) as StdInvariant; + return new Contract(address, _abi, runner) as unknown as StdInvariant; } } diff --git a/typechain-types/factories/forge-std/StdStorage.sol/StdStorageSafe__factory.ts b/v2/typechain-types/factories/StdStorage.sol/StdStorageSafe__factory.ts similarity index 59% rename from typechain-types/factories/forge-std/StdStorage.sol/StdStorageSafe__factory.ts rename to v2/typechain-types/factories/StdStorage.sol/StdStorageSafe__factory.ts index 8abad169..826a2270 100644 --- a/typechain-types/factories/forge-std/StdStorage.sol/StdStorageSafe__factory.ts +++ b/v2/typechain-types/factories/StdStorage.sol/StdStorageSafe__factory.ts @@ -1,69 +1,74 @@ /* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ -import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; -import type { Provider, TransactionRequest } from "@ethersproject/providers"; -import type { PromiseOrValue } from "../../../common"; +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../common"; import type { StdStorageSafe, StdStorageSafeInterface, -} from "../../../forge-std/StdStorage.sol/StdStorageSafe"; +} from "../../StdStorage.sol/StdStorageSafe"; const _abi = [ { - anonymous: false, + type: "event", + name: "SlotFound", inputs: [ { - indexed: false, - internalType: "address", name: "who", type: "address", + indexed: false, + internalType: "address", }, { - indexed: false, - internalType: "bytes4", name: "fsig", type: "bytes4", + indexed: false, + internalType: "bytes4", }, { - indexed: false, - internalType: "bytes32", name: "keysHash", type: "bytes32", + indexed: false, + internalType: "bytes32", }, { - indexed: false, - internalType: "uint256", name: "slot", type: "uint256", + indexed: false, + internalType: "uint256", }, ], - name: "SlotFound", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "WARNING_UninitedSlot", inputs: [ { - indexed: false, - internalType: "address", name: "who", type: "address", + indexed: false, + internalType: "address", }, { - indexed: false, - internalType: "uint256", name: "slot", type: "uint256", + indexed: false, + internalType: "uint256", }, ], - name: "WARNING_UninitedSlot", - type: "event", + anonymous: false, }, ] as const; const _bytecode = - "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d00bd3f77bc95c5f63c719093a6d31da7bdf9c8d48a9ab8306cc99545a0bf89664736f6c63430008070033"; + "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d6473a3e455f11b00943e19d62d02cf957dec4d27a7a7ddb023bf40264d580b064736f6c634300081a0033"; type StdStorageSafeConstructorParams = | [signer?: Signer] @@ -82,32 +87,31 @@ export class StdStorageSafe__factory extends ContractFactory { } } - override deploy( - overrides?: Overrides & { from?: PromiseOrValue } - ): Promise { - return super.deploy(overrides || {}) as Promise; - } override getDeployTransaction( - overrides?: Overrides & { from?: PromiseOrValue } - ): TransactionRequest { + overrides?: NonPayableOverrides & { from?: string } + ): Promise { return super.getDeployTransaction(overrides || {}); } - override attach(address: string): StdStorageSafe { - return super.attach(address) as StdStorageSafe; + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + StdStorageSafe & { + deploymentTransaction(): ContractTransactionResponse; + } + >; } - override connect(signer: Signer): StdStorageSafe__factory { - return super.connect(signer) as StdStorageSafe__factory; + 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 utils.Interface(_abi) as StdStorageSafeInterface; + return new Interface(_abi) as StdStorageSafeInterface; } static connect( address: string, - signerOrProvider: Signer | Provider + runner?: ContractRunner | null ): StdStorageSafe { - return new Contract(address, _abi, signerOrProvider) as StdStorageSafe; + return new Contract(address, _abi, runner) as unknown as StdStorageSafe; } } diff --git a/typechain-types/factories/forge-std/StdStorage.sol/index.ts b/v2/typechain-types/factories/StdStorage.sol/index.ts similarity index 100% rename from typechain-types/factories/forge-std/StdStorage.sol/index.ts rename to v2/typechain-types/factories/StdStorage.sol/index.ts 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/typechain-types/factories/forge-std/Test__factory.ts b/v2/typechain-types/factories/Test__factory.ts similarity index 96% rename from typechain-types/factories/forge-std/Test__factory.ts rename to v2/typechain-types/factories/Test__factory.ts index d9624aae..1ddaff9b 100644 --- a/typechain-types/factories/forge-std/Test__factory.ts +++ b/v2/typechain-types/factories/Test__factory.ts @@ -2,587 +2,586 @@ /* tslint:disable */ /* eslint-disable */ -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; -import type { Test, TestInterface } from "../../forge-std/Test"; +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { Test, TestInterface } from "../Test"; const _abi = [ { - anonymous: false, - inputs: [ + type: "function", + name: "IS_TEST", + inputs: [], + outputs: [ { - indexed: false, - internalType: "string", name: "", - type: "string", + type: "bool", + internalType: "bool", }, ], - name: "log", - type: "event", + stateMutability: "view", }, { - anonymous: false, - inputs: [ + type: "function", + name: "excludeArtifacts", + inputs: [], + outputs: [ { - indexed: false, - internalType: "address", - name: "", - type: "address", + name: "excludedArtifacts_", + type: "string[]", + internalType: "string[]", }, ], - name: "log_address", - type: "event", + stateMutability: "view", }, { - anonymous: false, - inputs: [ + type: "function", + name: "excludeContracts", + inputs: [], + outputs: [ { - indexed: false, - internalType: "uint256[]", - name: "val", - type: "uint256[]", + name: "excludedContracts_", + type: "address[]", + internalType: "address[]", }, ], - name: "log_array", - type: "event", + stateMutability: "view", }, { - anonymous: false, - inputs: [ + type: "function", + name: "excludeSelectors", + inputs: [], + outputs: [ { - indexed: false, - internalType: "int256[]", - name: "val", - type: "int256[]", + name: "excludedSelectors_", + type: "tuple[]", + internalType: "struct StdInvariant.FuzzSelector[]", + components: [ + { + name: "addr", + type: "address", + internalType: "address", + }, + { + name: "selectors", + type: "bytes4[]", + internalType: "bytes4[]", + }, + ], }, ], - name: "log_array", - type: "event", + stateMutability: "view", }, { - anonymous: false, - inputs: [ + type: "function", + name: "excludeSenders", + inputs: [], + outputs: [ { - indexed: false, - internalType: "address[]", - name: "val", + name: "excludedSenders_", type: "address[]", + internalType: "address[]", }, ], - name: "log_array", - type: "event", + stateMutability: "view", }, { - anonymous: false, - inputs: [ + type: "function", + name: "failed", + inputs: [], + outputs: [ { - indexed: false, - internalType: "bytes", name: "", - type: "bytes", + type: "bool", + internalType: "bool", }, ], - name: "log_bytes", - type: "event", + stateMutability: "view", }, { - anonymous: false, - inputs: [ + type: "function", + name: "targetArtifactSelectors", + inputs: [], + outputs: [ { - indexed: false, - internalType: "bytes32", - name: "", - type: "bytes32", + name: "targetedArtifactSelectors_", + type: "tuple[]", + internalType: "struct StdInvariant.FuzzArtifactSelector[]", + components: [ + { + name: "artifact", + type: "string", + internalType: "string", + }, + { + name: "selectors", + type: "bytes4[]", + internalType: "bytes4[]", + }, + ], }, ], - name: "log_bytes32", - type: "event", + stateMutability: "view", }, { - anonymous: false, - inputs: [ + type: "function", + name: "targetArtifacts", + inputs: [], + outputs: [ { - indexed: false, - internalType: "int256", - name: "", - type: "int256", + name: "targetedArtifacts_", + type: "string[]", + internalType: "string[]", }, ], - name: "log_int", - type: "event", + stateMutability: "view", }, { - anonymous: false, - inputs: [ + type: "function", + name: "targetContracts", + inputs: [], + outputs: [ { - indexed: false, - internalType: "string", - name: "key", - type: "string", + name: "targetedContracts_", + type: "address[]", + internalType: "address[]", }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "targetInterfaces", + inputs: [], + outputs: [ { - indexed: false, - internalType: "address", - name: "val", - type: "address", + name: "targetedInterfaces_", + type: "tuple[]", + internalType: "struct StdInvariant.FuzzInterface[]", + components: [ + { + name: "addr", + type: "address", + internalType: "address", + }, + { + name: "artifacts", + type: "string[]", + internalType: "string[]", + }, + ], }, ], - name: "log_named_address", - type: "event", + stateMutability: "view", }, { - anonymous: false, - inputs: [ + type: "function", + name: "targetSelectors", + inputs: [], + outputs: [ { - indexed: false, - internalType: "string", - name: "key", - type: "string", + 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: [ { - indexed: false, - internalType: "uint256[]", - name: "val", - type: "uint256[]", + name: "targetedSenders_", + type: "address[]", + internalType: "address[]", }, ], - name: "log_named_array", - type: "event", + stateMutability: "view", }, { - anonymous: false, + type: "event", + name: "log", inputs: [ { - indexed: false, - internalType: "string", - name: "key", + name: "", type: "string", - }, - { indexed: false, - internalType: "int256[]", - name: "val", - type: "int256[]", + internalType: "string", }, ], - name: "log_named_array", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "log_address", inputs: [ { + name: "", + type: "address", indexed: false, - internalType: "string", - name: "key", - type: "string", + internalType: "address", }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_array", + inputs: [ { - indexed: false, - internalType: "address[]", name: "val", - type: "address[]", + type: "uint256[]", + indexed: false, + internalType: "uint256[]", }, ], - name: "log_named_array", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "log_array", inputs: [ { + name: "val", + type: "int256[]", indexed: false, - internalType: "string", - name: "key", - type: "string", + internalType: "int256[]", }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_array", + inputs: [ { - indexed: false, - internalType: "bytes", name: "val", - type: "bytes", + type: "address[]", + indexed: false, + internalType: "address[]", }, ], - name: "log_named_bytes", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "log_bytes", inputs: [ { + name: "", + type: "bytes", indexed: false, - internalType: "string", - name: "key", - type: "string", + internalType: "bytes", }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_bytes32", + inputs: [ { + name: "", + type: "bytes32", indexed: false, internalType: "bytes32", - name: "val", - type: "bytes32", }, ], - name: "log_named_bytes32", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "log_int", inputs: [ { + name: "", + type: "int256", indexed: false, - internalType: "string", - name: "key", - type: "string", + internalType: "int256", }, + ], + anonymous: false, + }, + { + type: "event", + name: "log_named_address", + inputs: [ { + name: "key", + type: "string", indexed: false, - internalType: "int256", - name: "val", - type: "int256", + internalType: "string", }, { + name: "val", + type: "address", indexed: false, - internalType: "uint256", - name: "decimals", - type: "uint256", + internalType: "address", }, ], - name: "log_named_decimal_int", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "log_named_array", inputs: [ { - indexed: false, - internalType: "string", name: "key", type: "string", - }, - { indexed: false, - internalType: "uint256", - name: "val", - type: "uint256", + internalType: "string", }, { + name: "val", + type: "uint256[]", indexed: false, - internalType: "uint256", - name: "decimals", - type: "uint256", + internalType: "uint256[]", }, ], - name: "log_named_decimal_uint", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "log_named_array", inputs: [ { - indexed: false, - internalType: "string", name: "key", type: "string", + indexed: false, + internalType: "string", }, { - indexed: false, - internalType: "int256", name: "val", - type: "int256", + type: "int256[]", + indexed: false, + internalType: "int256[]", }, ], - name: "log_named_int", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "log_named_array", inputs: [ { - indexed: false, - internalType: "string", name: "key", type: "string", - }, - { indexed: false, internalType: "string", + }, + { name: "val", - type: "string", + type: "address[]", + indexed: false, + internalType: "address[]", }, ], - name: "log_named_string", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "log_named_bytes", inputs: [ { - indexed: false, - internalType: "string", name: "key", type: "string", + indexed: false, + internalType: "string", }, { - indexed: false, - internalType: "uint256", name: "val", - type: "uint256", + type: "bytes", + indexed: false, + internalType: "bytes", }, ], - name: "log_named_uint", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "log_named_bytes32", inputs: [ { + name: "key", + type: "string", indexed: false, internalType: "string", - name: "", - type: "string", }, - ], - name: "log_string", - type: "event", - }, - { - anonymous: false, - inputs: [ { + name: "val", + type: "bytes32", indexed: false, - internalType: "uint256", - name: "", - type: "uint256", + internalType: "bytes32", }, ], - name: "log_uint", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "event", + name: "log_named_decimal_int", inputs: [ { + name: "key", + type: "string", indexed: false, - internalType: "bytes", - name: "", - type: "bytes", + internalType: "string", }, - ], - name: "logs", - type: "event", - }, - { - inputs: [], - name: "IS_TEST", - outputs: [ { - internalType: "bool", - name: "", - type: "bool", + name: "val", + type: "int256", + indexed: false, + internalType: "int256", }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeArtifacts", - outputs: [ { - internalType: "string[]", - name: "excludedArtifacts_", - type: "string[]", + name: "decimals", + type: "uint256", + indexed: false, + internalType: "uint256", }, ], - stateMutability: "view", - type: "function", + anonymous: false, }, { - inputs: [], - name: "excludeContracts", - outputs: [ + type: "event", + name: "log_named_decimal_uint", + inputs: [ { - internalType: "address[]", - name: "excludedContracts_", - type: "address[]", + name: "key", + type: "string", + indexed: false, + internalType: "string", }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeSelectors", - outputs: [ { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzSelector[]", - name: "excludedSelectors_", - type: "tuple[]", + name: "val", + type: "uint256", + indexed: false, + internalType: "uint256", }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "excludeSenders", - outputs: [ { - internalType: "address[]", - name: "excludedSenders_", - type: "address[]", + name: "decimals", + type: "uint256", + indexed: false, + internalType: "uint256", }, ], - stateMutability: "view", - type: "function", + anonymous: false, }, { - inputs: [], - name: "failed", - outputs: [ + type: "event", + name: "log_named_int", + inputs: [ { - internalType: "bool", - name: "", - type: "bool", + name: "key", + type: "string", + indexed: false, + internalType: "string", }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "targetArtifactSelectors", - outputs: [ { - components: [ - { - internalType: "string", - name: "artifact", - type: "string", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzArtifactSelector[]", - name: "targetedArtifactSelectors_", - type: "tuple[]", + name: "val", + type: "int256", + indexed: false, + internalType: "int256", }, ], - stateMutability: "view", - type: "function", + anonymous: false, }, { - inputs: [], - name: "targetArtifacts", - outputs: [ + type: "event", + name: "log_named_string", + inputs: [ { - internalType: "string[]", - name: "targetedArtifacts_", - type: "string[]", + name: "key", + type: "string", + indexed: false, + internalType: "string", + }, + { + name: "val", + type: "string", + indexed: false, + internalType: "string", }, ], - stateMutability: "view", - type: "function", + anonymous: false, }, { - inputs: [], - name: "targetContracts", - outputs: [ + type: "event", + name: "log_named_uint", + inputs: [ { - internalType: "address[]", - name: "targetedContracts_", - type: "address[]", + name: "key", + type: "string", + indexed: false, + internalType: "string", + }, + { + name: "val", + type: "uint256", + indexed: false, + internalType: "uint256", }, ], - stateMutability: "view", - type: "function", + anonymous: false, }, { - inputs: [], - name: "targetInterfaces", - outputs: [ + type: "event", + name: "log_string", + inputs: [ { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "string[]", - name: "artifacts", - type: "string[]", - }, - ], - internalType: "struct StdInvariant.FuzzInterface[]", - name: "targetedInterfaces_", - type: "tuple[]", + name: "", + type: "string", + indexed: false, + internalType: "string", }, ], - stateMutability: "view", - type: "function", + anonymous: false, }, { - inputs: [], - name: "targetSelectors", - outputs: [ + type: "event", + name: "log_uint", + inputs: [ { - components: [ - { - internalType: "address", - name: "addr", - type: "address", - }, - { - internalType: "bytes4[]", - name: "selectors", - type: "bytes4[]", - }, - ], - internalType: "struct StdInvariant.FuzzSelector[]", - name: "targetedSelectors_", - type: "tuple[]", + name: "", + type: "uint256", + indexed: false, + internalType: "uint256", }, ], - stateMutability: "view", - type: "function", + anonymous: false, }, { - inputs: [], - name: "targetSenders", - outputs: [ + type: "event", + name: "logs", + inputs: [ { - internalType: "address[]", - name: "targetedSenders_", - type: "address[]", + name: "", + type: "bytes", + indexed: false, + internalType: "bytes", }, ], - stateMutability: "view", - type: "function", + anonymous: false, }, ] as const; export class Test__factory { static readonly abi = _abi; static createInterface(): TestInterface { - return new utils.Interface(_abi) as TestInterface; + return new Interface(_abi) as TestInterface; } - static connect(address: string, signerOrProvider: Signer | Provider): Test { - return new Contract(address, _abi, signerOrProvider) as Test; + 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/typechain-types/factories/forge-std/Vm.sol/VmSafe__factory.ts b/v2/typechain-types/factories/Vm.sol/VmSafe__factory.ts similarity index 96% rename from typechain-types/factories/forge-std/Vm.sol/VmSafe__factory.ts rename to v2/typechain-types/factories/Vm.sol/VmSafe__factory.ts index ec546568..c77af7eb 100644 --- a/typechain-types/factories/forge-std/Vm.sol/VmSafe__factory.ts +++ b/v2/typechain-types/factories/Vm.sol/VmSafe__factory.ts @@ -2,7314 +2,7525 @@ /* tslint:disable */ /* eslint-disable */ -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; -import type { VmSafe, VmSafeInterface } from "../../../forge-std/Vm.sol/VmSafe"; +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { VmSafe, VmSafeInterface } from "../../Vm.sol/VmSafe"; const _abi = [ { + type: "function", + name: "accesses", inputs: [ { - internalType: "address", name: "target", type: "address", + internalType: "address", }, ], - name: "accesses", outputs: [ { - internalType: "bytes32[]", name: "readSlots", type: "bytes32[]", + internalType: "bytes32[]", }, { - internalType: "bytes32[]", name: "writeSlots", type: "bytes32[]", + internalType: "bytes32[]", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "addr", inputs: [ { - internalType: "uint256", name: "privateKey", type: "uint256", + internalType: "uint256", }, ], - name: "addr", outputs: [ { - internalType: "address", name: "keyAddr", type: "address", + internalType: "address", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertApproxEqAbs", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "maxDelta", type: "uint256", + internalType: "uint256", }, ], - name: "assertApproxEqAbs", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertApproxEqAbs", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "uint256", name: "maxDelta", type: "uint256", + internalType: "uint256", }, ], - name: "assertApproxEqAbs", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertApproxEqAbs", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "uint256", name: "maxDelta", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertApproxEqAbs", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertApproxEqAbs", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "maxDelta", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertApproxEqAbs", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertApproxEqAbsDecimal", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "maxDelta", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, ], - name: "assertApproxEqAbsDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertApproxEqAbsDecimal", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "uint256", name: "maxDelta", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, ], - name: "assertApproxEqAbsDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertApproxEqAbsDecimal", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "maxDelta", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertApproxEqAbsDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertApproxEqAbsDecimal", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "uint256", name: "maxDelta", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertApproxEqAbsDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertApproxEqRel", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "maxPercentDelta", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertApproxEqRel", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertApproxEqRel", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "maxPercentDelta", type: "uint256", + internalType: "uint256", }, ], - name: "assertApproxEqRel", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertApproxEqRel", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "uint256", name: "maxPercentDelta", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertApproxEqRel", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertApproxEqRel", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "uint256", name: "maxPercentDelta", type: "uint256", + internalType: "uint256", }, ], - name: "assertApproxEqRel", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertApproxEqRelDecimal", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "maxPercentDelta", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, ], - name: "assertApproxEqRelDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertApproxEqRelDecimal", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "maxPercentDelta", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertApproxEqRelDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertApproxEqRelDecimal", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "uint256", name: "maxPercentDelta", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, ], - name: "assertApproxEqRelDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertApproxEqRelDecimal", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "uint256", name: "maxPercentDelta", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertApproxEqRelDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "bytes32[]", name: "left", type: "bytes32[]", + internalType: "bytes32[]", }, { - internalType: "bytes32[]", name: "right", type: "bytes32[]", + internalType: "bytes32[]", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "int256[]", name: "left", type: "int256[]", + internalType: "int256[]", }, { - internalType: "int256[]", name: "right", type: "int256[]", + internalType: "int256[]", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "address", name: "left", type: "address", + internalType: "address", }, { - internalType: "address", name: "right", type: "address", + internalType: "address", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "string", name: "left", type: "string", + internalType: "string", }, { - internalType: "string", name: "right", type: "string", + internalType: "string", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "address[]", name: "left", type: "address[]", + internalType: "address[]", }, { - internalType: "address[]", name: "right", type: "address[]", + internalType: "address[]", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "address[]", name: "left", type: "address[]", + internalType: "address[]", }, { - internalType: "address[]", name: "right", type: "address[]", + internalType: "address[]", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "bool", name: "left", type: "bool", + internalType: "bool", }, { - internalType: "bool", name: "right", type: "bool", + internalType: "bool", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "address", name: "left", type: "address", + internalType: "address", }, { - internalType: "address", name: "right", type: "address", + internalType: "address", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "uint256[]", name: "left", type: "uint256[]", + internalType: "uint256[]", }, { - internalType: "uint256[]", name: "right", type: "uint256[]", + internalType: "uint256[]", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "bool[]", name: "left", type: "bool[]", + internalType: "bool[]", }, { - internalType: "bool[]", name: "right", type: "bool[]", + internalType: "bool[]", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "int256[]", name: "left", type: "int256[]", + internalType: "int256[]", }, { - internalType: "int256[]", name: "right", type: "int256[]", + internalType: "int256[]", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "bytes32", name: "left", type: "bytes32", + internalType: "bytes32", }, { - internalType: "bytes32", name: "right", type: "bytes32", + internalType: "bytes32", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "uint256[]", name: "left", type: "uint256[]", + internalType: "uint256[]", }, { - internalType: "uint256[]", name: "right", type: "uint256[]", + internalType: "uint256[]", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "bytes", name: "left", type: "bytes", + internalType: "bytes", }, { - internalType: "bytes", name: "right", type: "bytes", + internalType: "bytes", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "bytes32", name: "left", type: "bytes32", + internalType: "bytes32", }, { - internalType: "bytes32", name: "right", type: "bytes32", + internalType: "bytes32", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "string[]", name: "left", type: "string[]", + internalType: "string[]", }, { - internalType: "string[]", name: "right", type: "string[]", + internalType: "string[]", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "bytes32[]", name: "left", type: "bytes32[]", + internalType: "bytes32[]", }, { - internalType: "bytes32[]", name: "right", type: "bytes32[]", + internalType: "bytes32[]", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "bytes", name: "left", type: "bytes", + internalType: "bytes", }, { - internalType: "bytes", name: "right", type: "bytes", + internalType: "bytes", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "bool[]", name: "left", type: "bool[]", + internalType: "bool[]", }, { - internalType: "bool[]", name: "right", type: "bool[]", + internalType: "bool[]", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "bytes[]", name: "left", type: "bytes[]", + internalType: "bytes[]", }, { - internalType: "bytes[]", name: "right", type: "bytes[]", + internalType: "bytes[]", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "string[]", name: "left", type: "string[]", + internalType: "string[]", }, { - internalType: "string[]", name: "right", type: "string[]", + internalType: "string[]", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "string", name: "left", type: "string", + internalType: "string", }, { - internalType: "string", name: "right", type: "string", + internalType: "string", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "bytes[]", name: "left", type: "bytes[]", + internalType: "bytes[]", }, { - internalType: "bytes[]", name: "right", type: "bytes[]", + internalType: "bytes[]", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "bool", name: "left", type: "bool", + internalType: "bool", }, { - internalType: "bool", name: "right", type: "bool", + internalType: "bool", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEqDecimal", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, ], - name: "assertEqDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEqDecimal", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, ], - name: "assertEqDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEqDecimal", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertEqDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEqDecimal", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertEqDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertFalse", inputs: [ { - internalType: "bool", name: "condition", type: "bool", + internalType: "bool", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertFalse", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertFalse", inputs: [ { - internalType: "bool", name: "condition", type: "bool", + internalType: "bool", }, ], - name: "assertFalse", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertGe", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, ], - name: "assertGe", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertGe", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertGe", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertGe", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, ], - name: "assertGe", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertGe", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertGe", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertGeDecimal", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, ], - name: "assertGeDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertGeDecimal", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertGeDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertGeDecimal", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertGeDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertGeDecimal", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, ], - name: "assertGeDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertGt", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, ], - name: "assertGt", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertGt", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertGt", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertGt", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, ], - name: "assertGt", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertGt", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertGt", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertGtDecimal", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertGtDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertGtDecimal", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertGtDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertGtDecimal", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, ], - name: "assertGtDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertGtDecimal", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, ], - name: "assertGtDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertLe", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertLe", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertLe", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, ], - name: "assertLe", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertLe", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, ], - name: "assertLe", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertLe", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertLe", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertLeDecimal", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, ], - name: "assertLeDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertLeDecimal", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertLeDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertLeDecimal", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertLeDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertLeDecimal", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, ], - name: "assertLeDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertLt", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, ], - name: "assertLt", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertLt", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertLt", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertLt", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertLt", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertLt", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, ], - name: "assertLt", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertLtDecimal", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, ], - name: "assertLtDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertLtDecimal", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertLtDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertLtDecimal", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertLtDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertLtDecimal", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, ], - name: "assertLtDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "bytes32[]", name: "left", type: "bytes32[]", + internalType: "bytes32[]", }, { - internalType: "bytes32[]", name: "right", type: "bytes32[]", + internalType: "bytes32[]", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "int256[]", name: "left", type: "int256[]", + internalType: "int256[]", }, { - internalType: "int256[]", name: "right", type: "int256[]", + internalType: "int256[]", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "bool", name: "left", type: "bool", + internalType: "bool", }, { - internalType: "bool", name: "right", type: "bool", + internalType: "bool", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "bytes[]", name: "left", type: "bytes[]", + internalType: "bytes[]", }, { - internalType: "bytes[]", name: "right", type: "bytes[]", + internalType: "bytes[]", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "bool", name: "left", type: "bool", + internalType: "bool", }, { - internalType: "bool", name: "right", type: "bool", + internalType: "bool", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "bool[]", name: "left", type: "bool[]", + internalType: "bool[]", }, { - internalType: "bool[]", name: "right", type: "bool[]", + internalType: "bool[]", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "bytes", name: "left", type: "bytes", + internalType: "bytes", }, { - internalType: "bytes", name: "right", type: "bytes", + internalType: "bytes", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "address[]", name: "left", type: "address[]", + internalType: "address[]", }, { - internalType: "address[]", name: "right", type: "address[]", + internalType: "address[]", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "uint256[]", name: "left", type: "uint256[]", + internalType: "uint256[]", }, { - internalType: "uint256[]", name: "right", type: "uint256[]", + internalType: "uint256[]", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "bool[]", name: "left", type: "bool[]", + internalType: "bool[]", }, { - internalType: "bool[]", name: "right", type: "bool[]", + internalType: "bool[]", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "string", name: "left", type: "string", + internalType: "string", }, { - internalType: "string", name: "right", type: "string", + internalType: "string", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "address[]", name: "left", type: "address[]", + internalType: "address[]", }, { - internalType: "address[]", name: "right", type: "address[]", + internalType: "address[]", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "string", name: "left", type: "string", + internalType: "string", }, { - internalType: "string", name: "right", type: "string", + internalType: "string", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "address", name: "left", type: "address", + internalType: "address", }, { - internalType: "address", name: "right", type: "address", + internalType: "address", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "bytes32", name: "left", type: "bytes32", + internalType: "bytes32", }, { - internalType: "bytes32", name: "right", type: "bytes32", + internalType: "bytes32", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "bytes", name: "left", type: "bytes", + internalType: "bytes", }, { - internalType: "bytes", name: "right", type: "bytes", + internalType: "bytes", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "uint256[]", name: "left", type: "uint256[]", + internalType: "uint256[]", }, { - internalType: "uint256[]", name: "right", type: "uint256[]", + internalType: "uint256[]", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "address", name: "left", type: "address", + internalType: "address", }, { - internalType: "address", name: "right", type: "address", + internalType: "address", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "bytes32", name: "left", type: "bytes32", + internalType: "bytes32", }, { - internalType: "bytes32", name: "right", type: "bytes32", + internalType: "bytes32", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "string[]", name: "left", type: "string[]", + internalType: "string[]", }, { - internalType: "string[]", name: "right", type: "string[]", + internalType: "string[]", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "bytes32[]", name: "left", type: "bytes32[]", + internalType: "bytes32[]", }, { - internalType: "bytes32[]", name: "right", type: "bytes32[]", + internalType: "bytes32[]", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "string[]", name: "left", type: "string[]", + internalType: "string[]", }, { - internalType: "string[]", name: "right", type: "string[]", + internalType: "string[]", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "int256[]", name: "left", type: "int256[]", + internalType: "int256[]", }, { - internalType: "int256[]", name: "right", type: "int256[]", + internalType: "int256[]", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "bytes[]", name: "left", type: "bytes[]", + internalType: "bytes[]", }, { - internalType: "bytes[]", name: "right", type: "bytes[]", + internalType: "bytes[]", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEqDecimal", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, ], - name: "assertNotEqDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEqDecimal", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertNotEqDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEqDecimal", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, ], - name: "assertNotEqDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEqDecimal", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertNotEqDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertTrue", inputs: [ { - internalType: "bool", name: "condition", type: "bool", + internalType: "bool", }, ], - name: "assertTrue", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertTrue", inputs: [ { - internalType: "bool", name: "condition", type: "bool", + internalType: "bool", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertTrue", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assume", inputs: [ { - internalType: "bool", name: "condition", type: "bool", + internalType: "bool", }, ], - name: "assume", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "breakpoint", inputs: [ { - internalType: "string", name: "char", type: "string", + internalType: "string", }, ], - name: "breakpoint", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "breakpoint", inputs: [ { - internalType: "string", name: "char", type: "string", + internalType: "string", }, { - internalType: "bool", name: "value", type: "bool", + internalType: "bool", }, ], - name: "breakpoint", outputs: [], stateMutability: "nonpayable", - type: "function", }, { - inputs: [], + type: "function", name: "broadcast", + inputs: [], outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "broadcast", inputs: [ { - internalType: "address", name: "signer", type: "address", + internalType: "address", }, ], - name: "broadcast", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "broadcast", inputs: [ { - internalType: "uint256", name: "privateKey", type: "uint256", + internalType: "uint256", }, ], - name: "broadcast", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "closeFile", inputs: [ { - internalType: "string", name: "path", type: "string", + internalType: "string", }, ], - name: "closeFile", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "computeCreate2Address", inputs: [ { - internalType: "bytes32", name: "salt", type: "bytes32", + internalType: "bytes32", }, { - internalType: "bytes32", name: "initCodeHash", type: "bytes32", + internalType: "bytes32", }, ], - name: "computeCreate2Address", outputs: [ { - internalType: "address", name: "", type: "address", + internalType: "address", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "computeCreate2Address", inputs: [ { - internalType: "bytes32", name: "salt", type: "bytes32", + internalType: "bytes32", }, { - internalType: "bytes32", name: "initCodeHash", type: "bytes32", + internalType: "bytes32", }, { - internalType: "address", name: "deployer", type: "address", + internalType: "address", }, ], - name: "computeCreate2Address", outputs: [ { - internalType: "address", name: "", type: "address", + internalType: "address", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "computeCreateAddress", inputs: [ { - internalType: "address", name: "deployer", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "nonce", type: "uint256", + internalType: "uint256", }, ], - name: "computeCreateAddress", outputs: [ { - internalType: "address", name: "", type: "address", + internalType: "address", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "copyFile", inputs: [ { - internalType: "string", name: "from", type: "string", + internalType: "string", }, { - internalType: "string", name: "to", type: "string", + internalType: "string", }, ], - name: "copyFile", outputs: [ { - internalType: "uint64", name: "copied", type: "uint64", + internalType: "uint64", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "createDir", inputs: [ { - internalType: "string", name: "path", type: "string", + internalType: "string", }, { - internalType: "bool", name: "recursive", type: "bool", + internalType: "bool", }, ], - name: "createDir", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "createWallet", inputs: [ { - internalType: "string", name: "walletLabel", type: "string", + internalType: "string", }, ], - name: "createWallet", outputs: [ { + name: "wallet", + type: "tuple", + internalType: "struct VmSafe.Wallet", components: [ { - internalType: "address", name: "addr", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "publicKeyX", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "publicKeyY", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "privateKey", type: "uint256", + internalType: "uint256", }, ], - internalType: "struct VmSafe.Wallet", - name: "wallet", - type: "tuple", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "createWallet", inputs: [ { - internalType: "uint256", name: "privateKey", type: "uint256", + internalType: "uint256", }, ], - name: "createWallet", outputs: [ { + name: "wallet", + type: "tuple", + internalType: "struct VmSafe.Wallet", components: [ { - internalType: "address", name: "addr", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "publicKeyX", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "publicKeyY", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "privateKey", type: "uint256", + internalType: "uint256", }, ], - internalType: "struct VmSafe.Wallet", - name: "wallet", - type: "tuple", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "createWallet", inputs: [ { - internalType: "uint256", name: "privateKey", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "walletLabel", type: "string", + internalType: "string", }, ], - name: "createWallet", outputs: [ { + name: "wallet", + type: "tuple", + internalType: "struct VmSafe.Wallet", components: [ { - internalType: "address", name: "addr", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "publicKeyX", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "publicKeyY", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "privateKey", type: "uint256", + internalType: "uint256", }, ], - internalType: "struct VmSafe.Wallet", - name: "wallet", - type: "tuple", }, ], 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", }, { - internalType: "string", name: "derivationPath", type: "string", + internalType: "string", }, { - internalType: "uint32", name: "index", type: "uint32", + internalType: "uint32", }, { - internalType: "string", name: "language", type: "string", + internalType: "string", }, ], - name: "deriveKey", outputs: [ { - internalType: "uint256", name: "privateKey", type: "uint256", + internalType: "uint256", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "deriveKey", inputs: [ { - internalType: "string", name: "mnemonic", type: "string", + internalType: "string", }, { - internalType: "uint32", name: "index", type: "uint32", + internalType: "uint32", }, { - internalType: "string", name: "language", type: "string", + internalType: "string", }, ], - name: "deriveKey", outputs: [ { - internalType: "uint256", name: "privateKey", type: "uint256", + internalType: "uint256", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "deriveKey", inputs: [ { - internalType: "string", name: "mnemonic", type: "string", + internalType: "string", }, { - internalType: "uint32", name: "index", type: "uint32", + internalType: "uint32", }, ], - name: "deriveKey", outputs: [ { - internalType: "uint256", name: "privateKey", type: "uint256", + internalType: "uint256", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "deriveKey", inputs: [ { - internalType: "string", name: "mnemonic", type: "string", + internalType: "string", }, { - internalType: "string", name: "derivationPath", type: "string", + internalType: "string", }, { - internalType: "uint32", name: "index", type: "uint32", + internalType: "uint32", }, ], - name: "deriveKey", outputs: [ { - internalType: "uint256", name: "privateKey", type: "uint256", + internalType: "uint256", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "ensNamehash", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, ], - name: "ensNamehash", outputs: [ { - internalType: "bytes32", name: "", type: "bytes32", + internalType: "bytes32", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "envAddress", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, ], - name: "envAddress", outputs: [ { - internalType: "address", name: "value", type: "address", + internalType: "address", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envAddress", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "string", name: "delim", type: "string", + internalType: "string", }, ], - name: "envAddress", outputs: [ { - internalType: "address[]", name: "value", type: "address[]", + internalType: "address[]", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envBool", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, ], - name: "envBool", outputs: [ { - internalType: "bool", name: "value", type: "bool", + internalType: "bool", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envBool", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "string", name: "delim", type: "string", + internalType: "string", }, ], - name: "envBool", outputs: [ { - internalType: "bool[]", name: "value", type: "bool[]", + internalType: "bool[]", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envBytes", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, ], - name: "envBytes", outputs: [ { - internalType: "bytes", name: "value", type: "bytes", + internalType: "bytes", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envBytes", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "string", name: "delim", type: "string", + internalType: "string", }, ], - name: "envBytes", outputs: [ { - internalType: "bytes[]", name: "value", type: "bytes[]", + internalType: "bytes[]", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envBytes32", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "string", name: "delim", type: "string", + internalType: "string", }, ], - name: "envBytes32", outputs: [ { - internalType: "bytes32[]", name: "value", type: "bytes32[]", + internalType: "bytes32[]", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envBytes32", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, ], - name: "envBytes32", outputs: [ { - internalType: "bytes32", name: "value", type: "bytes32", + internalType: "bytes32", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envExists", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, ], - name: "envExists", outputs: [ { - internalType: "bool", name: "result", type: "bool", + internalType: "bool", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envInt", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "string", name: "delim", type: "string", + internalType: "string", }, ], - name: "envInt", outputs: [ { - internalType: "int256[]", name: "value", type: "int256[]", + internalType: "int256[]", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envInt", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, ], - name: "envInt", outputs: [ { - internalType: "int256", name: "value", type: "int256", + internalType: "int256", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envOr", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "string", name: "delim", type: "string", + internalType: "string", }, { - internalType: "bytes32[]", name: "defaultValue", type: "bytes32[]", + internalType: "bytes32[]", }, ], - name: "envOr", outputs: [ { - internalType: "bytes32[]", name: "value", type: "bytes32[]", + internalType: "bytes32[]", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envOr", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "string", name: "delim", type: "string", + internalType: "string", }, { - internalType: "int256[]", name: "defaultValue", type: "int256[]", + internalType: "int256[]", }, ], - name: "envOr", outputs: [ { - internalType: "int256[]", name: "value", type: "int256[]", + internalType: "int256[]", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envOr", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "bool", name: "defaultValue", type: "bool", + internalType: "bool", }, ], - name: "envOr", outputs: [ { - internalType: "bool", name: "value", type: "bool", + internalType: "bool", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envOr", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "address", name: "defaultValue", type: "address", + internalType: "address", }, ], - name: "envOr", outputs: [ { - internalType: "address", name: "value", type: "address", + internalType: "address", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envOr", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "uint256", name: "defaultValue", type: "uint256", + internalType: "uint256", }, ], - name: "envOr", outputs: [ { - internalType: "uint256", name: "value", type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envOr", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "string", name: "delim", type: "string", + internalType: "string", }, { - internalType: "bytes[]", name: "defaultValue", type: "bytes[]", + internalType: "bytes[]", }, ], - name: "envOr", outputs: [ { - internalType: "bytes[]", name: "value", type: "bytes[]", + internalType: "bytes[]", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envOr", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "string", name: "delim", type: "string", + internalType: "string", }, { - internalType: "uint256[]", name: "defaultValue", type: "uint256[]", + internalType: "uint256[]", }, ], - name: "envOr", outputs: [ { - internalType: "uint256[]", name: "value", type: "uint256[]", + internalType: "uint256[]", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envOr", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "string", name: "delim", type: "string", + internalType: "string", }, { - internalType: "string[]", name: "defaultValue", type: "string[]", + internalType: "string[]", }, ], - name: "envOr", outputs: [ { - internalType: "string[]", name: "value", type: "string[]", + internalType: "string[]", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envOr", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "bytes", name: "defaultValue", type: "bytes", + internalType: "bytes", }, ], - name: "envOr", outputs: [ { - internalType: "bytes", name: "value", type: "bytes", + internalType: "bytes", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envOr", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "bytes32", name: "defaultValue", type: "bytes32", + internalType: "bytes32", }, ], - name: "envOr", outputs: [ { - internalType: "bytes32", name: "value", type: "bytes32", + internalType: "bytes32", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envOr", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "int256", name: "defaultValue", type: "int256", + internalType: "int256", }, ], - name: "envOr", outputs: [ { - internalType: "int256", name: "value", type: "int256", + internalType: "int256", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envOr", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "string", name: "delim", type: "string", + internalType: "string", }, { - internalType: "address[]", name: "defaultValue", type: "address[]", + internalType: "address[]", }, ], - name: "envOr", outputs: [ { - internalType: "address[]", name: "value", type: "address[]", + internalType: "address[]", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envOr", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "string", name: "defaultValue", type: "string", + internalType: "string", }, ], - name: "envOr", outputs: [ { - internalType: "string", name: "value", type: "string", + internalType: "string", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envOr", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "string", name: "delim", type: "string", + internalType: "string", }, { - internalType: "bool[]", name: "defaultValue", type: "bool[]", + internalType: "bool[]", }, ], - name: "envOr", outputs: [ { - internalType: "bool[]", name: "value", type: "bool[]", + internalType: "bool[]", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envString", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "string", name: "delim", type: "string", + internalType: "string", }, ], - name: "envString", outputs: [ { - internalType: "string[]", name: "value", type: "string[]", + internalType: "string[]", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envString", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, ], - name: "envString", outputs: [ { - internalType: "string", name: "value", type: "string", + internalType: "string", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envUint", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, ], - name: "envUint", outputs: [ { - internalType: "uint256", name: "value", type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envUint", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "string", name: "delim", type: "string", + internalType: "string", }, ], - name: "envUint", outputs: [ { - internalType: "uint256[]", name: "value", type: "uint256[]", + internalType: "uint256[]", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "eth_getLogs", inputs: [ { - internalType: "uint256", name: "fromBlock", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "toBlock", type: "uint256", + internalType: "uint256", }, { - internalType: "address", name: "target", type: "address", + internalType: "address", }, { - internalType: "bytes32[]", name: "topics", type: "bytes32[]", + internalType: "bytes32[]", }, ], - name: "eth_getLogs", outputs: [ { + name: "logs", + type: "tuple[]", + internalType: "struct VmSafe.EthGetLogs[]", components: [ { - internalType: "address", name: "emitter", type: "address", + internalType: "address", }, { - internalType: "bytes32[]", name: "topics", type: "bytes32[]", + internalType: "bytes32[]", }, { - internalType: "bytes", name: "data", type: "bytes", + internalType: "bytes", }, { - internalType: "bytes32", name: "blockHash", type: "bytes32", + internalType: "bytes32", }, { - internalType: "uint64", name: "blockNumber", type: "uint64", + internalType: "uint64", }, { - internalType: "bytes32", name: "transactionHash", type: "bytes32", + internalType: "bytes32", }, { - internalType: "uint64", name: "transactionIndex", type: "uint64", + internalType: "uint64", }, { - internalType: "uint256", name: "logIndex", type: "uint256", + internalType: "uint256", }, { - internalType: "bool", name: "removed", type: "bool", + internalType: "bool", }, ], - internalType: "struct VmSafe.EthGetLogs[]", - name: "logs", - type: "tuple[]", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "exists", inputs: [ { - internalType: "string", name: "path", type: "string", + internalType: "string", }, ], - name: "exists", outputs: [ { - internalType: "bool", name: "result", type: "bool", + internalType: "bool", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "ffi", inputs: [ { - internalType: "string[]", name: "commandInput", type: "string[]", + internalType: "string[]", }, ], - name: "ffi", outputs: [ { - internalType: "bytes", name: "result", type: "bytes", + internalType: "bytes", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "fsMetadata", inputs: [ { - internalType: "string", name: "path", type: "string", + internalType: "string", }, ], - name: "fsMetadata", outputs: [ { + name: "metadata", + type: "tuple", + internalType: "struct VmSafe.FsMetadata", components: [ { - internalType: "bool", name: "isDir", type: "bool", + internalType: "bool", }, { - internalType: "bool", name: "isSymlink", type: "bool", + internalType: "bool", }, { - internalType: "uint256", name: "length", type: "uint256", + internalType: "uint256", }, { - internalType: "bool", name: "readOnly", type: "bool", + internalType: "bool", }, { - internalType: "uint256", name: "modified", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "accessed", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "created", type: "uint256", + internalType: "uint256", }, ], - internalType: "struct VmSafe.FsMetadata", - name: "metadata", - type: "tuple", }, ], stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "getBlobBaseFee", + inputs: [], outputs: [ { - internalType: "uint256", name: "blobBaseFee", type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "getBlockNumber", + inputs: [], outputs: [ { - internalType: "uint256", name: "height", type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "getBlockTimestamp", + inputs: [], outputs: [ { - internalType: "uint256", name: "timestamp", type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "getCode", inputs: [ { - internalType: "string", name: "artifactPath", type: "string", + internalType: "string", }, ], - name: "getCode", outputs: [ { - internalType: "bytes", name: "creationBytecode", type: "bytes", + internalType: "bytes", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "getDeployedCode", inputs: [ { - internalType: "string", name: "artifactPath", type: "string", + internalType: "string", }, ], - name: "getDeployedCode", outputs: [ { - internalType: "bytes", name: "runtimeBytecode", type: "bytes", + internalType: "bytes", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "getLabel", inputs: [ { - internalType: "address", name: "account", type: "address", + internalType: "address", }, ], - name: "getLabel", outputs: [ { - internalType: "string", name: "currentLabel", type: "string", + internalType: "string", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "getMappingKeyAndParentOf", inputs: [ { - internalType: "address", name: "target", type: "address", + internalType: "address", }, { - internalType: "bytes32", name: "elementSlot", type: "bytes32", + internalType: "bytes32", }, ], - name: "getMappingKeyAndParentOf", outputs: [ { - internalType: "bool", name: "found", type: "bool", + internalType: "bool", }, { - internalType: "bytes32", name: "key", type: "bytes32", + internalType: "bytes32", }, { - internalType: "bytes32", name: "parent", type: "bytes32", + internalType: "bytes32", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "getMappingLength", inputs: [ { - internalType: "address", name: "target", type: "address", + internalType: "address", }, { - internalType: "bytes32", name: "mappingSlot", type: "bytes32", + internalType: "bytes32", }, ], - name: "getMappingLength", outputs: [ { - internalType: "uint256", name: "length", type: "uint256", + internalType: "uint256", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "getMappingSlotAt", inputs: [ { - internalType: "address", name: "target", type: "address", + internalType: "address", }, { - internalType: "bytes32", name: "mappingSlot", type: "bytes32", + internalType: "bytes32", }, { - internalType: "uint256", name: "idx", type: "uint256", + internalType: "uint256", }, ], - name: "getMappingSlotAt", outputs: [ { - internalType: "bytes32", name: "value", type: "bytes32", + internalType: "bytes32", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "getNonce", inputs: [ { - internalType: "address", name: "account", type: "address", + internalType: "address", }, ], - name: "getNonce", outputs: [ { - internalType: "uint64", name: "nonce", type: "uint64", + internalType: "uint64", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "getNonce", inputs: [ { + name: "wallet", + type: "tuple", + internalType: "struct VmSafe.Wallet", components: [ { - internalType: "address", name: "addr", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "publicKeyX", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "publicKeyY", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "privateKey", type: "uint256", + internalType: "uint256", }, ], - internalType: "struct VmSafe.Wallet", - name: "wallet", - type: "tuple", }, ], - name: "getNonce", outputs: [ { - internalType: "uint64", name: "nonce", type: "uint64", + internalType: "uint64", }, ], stateMutability: "nonpayable", - type: "function", }, { - inputs: [], + type: "function", name: "getRecordedLogs", + inputs: [], outputs: [ { + name: "logs", + type: "tuple[]", + internalType: "struct VmSafe.Log[]", components: [ { - internalType: "bytes32[]", name: "topics", type: "bytes32[]", + internalType: "bytes32[]", }, { - internalType: "bytes", name: "data", type: "bytes", + internalType: "bytes", }, { - internalType: "address", name: "emitter", type: "address", + internalType: "address", }, ], - internalType: "struct VmSafe.Log[]", - name: "logs", - type: "tuple[]", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "indexOf", inputs: [ { - internalType: "string", name: "input", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "indexOf", outputs: [ { - internalType: "uint256", name: "", type: "uint256", + internalType: "uint256", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "isContext", inputs: [ { - internalType: "enum VmSafe.ForgeContext", name: "context", type: "uint8", + internalType: "enum VmSafe.ForgeContext", }, ], - name: "isContext", outputs: [ { - internalType: "bool", name: "result", type: "bool", + internalType: "bool", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "isDir", inputs: [ { - internalType: "string", name: "path", type: "string", + internalType: "string", }, ], - name: "isDir", outputs: [ { - internalType: "bool", name: "result", type: "bool", + internalType: "bool", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "isFile", inputs: [ { - internalType: "string", name: "path", type: "string", + internalType: "string", }, ], - name: "isFile", outputs: [ { - internalType: "bool", name: "result", type: "bool", + internalType: "bool", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "keyExists", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "keyExists", outputs: [ { - internalType: "bool", name: "", type: "bool", + internalType: "bool", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "keyExistsJson", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "keyExistsJson", outputs: [ { - internalType: "bool", name: "", type: "bool", + internalType: "bool", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "keyExistsToml", inputs: [ { - internalType: "string", name: "toml", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "keyExistsToml", outputs: [ { - internalType: "bool", name: "", type: "bool", + internalType: "bool", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "label", inputs: [ { - internalType: "address", name: "account", type: "address", + internalType: "address", }, { - internalType: "string", name: "newLabel", type: "string", + internalType: "string", }, ], - name: "label", outputs: [], stateMutability: "nonpayable", - type: "function", }, { - inputs: [], + type: "function", name: "lastCallGas", + inputs: [], outputs: [ { + name: "gas", + type: "tuple", + internalType: "struct VmSafe.Gas", components: [ { - internalType: "uint64", name: "gasLimit", type: "uint64", + internalType: "uint64", }, { - internalType: "uint64", name: "gasTotalUsed", type: "uint64", + internalType: "uint64", }, { - internalType: "uint64", name: "gasMemoryUsed", type: "uint64", + internalType: "uint64", }, { - internalType: "int64", name: "gasRefunded", type: "int64", + internalType: "int64", }, { - internalType: "uint64", name: "gasRemaining", type: "uint64", + internalType: "uint64", }, ], - internalType: "struct VmSafe.Gas", - name: "gas", - type: "tuple", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "load", inputs: [ { - internalType: "address", name: "target", type: "address", + internalType: "address", }, { - internalType: "bytes32", name: "slot", type: "bytes32", + internalType: "bytes32", }, ], - name: "load", outputs: [ { - internalType: "bytes32", name: "data", type: "bytes32", + internalType: "bytes32", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "parseAddress", inputs: [ { - internalType: "string", name: "stringifiedValue", type: "string", + internalType: "string", }, ], - name: "parseAddress", outputs: [ { - internalType: "address", name: "parsedValue", type: "address", + internalType: "address", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseBool", inputs: [ { - internalType: "string", name: "stringifiedValue", type: "string", + internalType: "string", }, ], - name: "parseBool", outputs: [ { - internalType: "bool", name: "parsedValue", type: "bool", + internalType: "bool", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseBytes", inputs: [ { - internalType: "string", name: "stringifiedValue", type: "string", + internalType: "string", }, ], - name: "parseBytes", outputs: [ { - internalType: "bytes", name: "parsedValue", type: "bytes", + internalType: "bytes", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseBytes32", inputs: [ { - internalType: "string", name: "stringifiedValue", type: "string", + internalType: "string", }, ], - name: "parseBytes32", outputs: [ { - internalType: "bytes32", name: "parsedValue", type: "bytes32", + internalType: "bytes32", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseInt", inputs: [ { - internalType: "string", name: "stringifiedValue", type: "string", + internalType: "string", }, ], - name: "parseInt", outputs: [ { - internalType: "int256", name: "parsedValue", type: "int256", + internalType: "int256", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseJson", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, ], - name: "parseJson", outputs: [ { - internalType: "bytes", name: "abiEncodedData", type: "bytes", + internalType: "bytes", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseJson", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseJson", outputs: [ { - internalType: "bytes", name: "abiEncodedData", type: "bytes", + internalType: "bytes", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseJsonAddress", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseJsonAddress", outputs: [ { - internalType: "address", name: "", type: "address", + internalType: "address", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseJsonAddressArray", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseJsonAddressArray", outputs: [ { - internalType: "address[]", name: "", type: "address[]", + internalType: "address[]", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseJsonBool", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseJsonBool", outputs: [ { - internalType: "bool", name: "", type: "bool", + internalType: "bool", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseJsonBoolArray", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseJsonBoolArray", outputs: [ { - internalType: "bool[]", name: "", type: "bool[]", + internalType: "bool[]", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseJsonBytes", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseJsonBytes", outputs: [ { - internalType: "bytes", name: "", type: "bytes", + internalType: "bytes", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseJsonBytes32", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseJsonBytes32", outputs: [ { - internalType: "bytes32", name: "", type: "bytes32", + internalType: "bytes32", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseJsonBytes32Array", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseJsonBytes32Array", outputs: [ { - internalType: "bytes32[]", name: "", type: "bytes32[]", + internalType: "bytes32[]", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseJsonBytesArray", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseJsonBytesArray", outputs: [ { - internalType: "bytes[]", name: "", type: "bytes[]", + internalType: "bytes[]", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseJsonInt", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseJsonInt", outputs: [ { - internalType: "int256", name: "", type: "int256", + internalType: "int256", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseJsonIntArray", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseJsonIntArray", outputs: [ { - internalType: "int256[]", name: "", type: "int256[]", + internalType: "int256[]", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseJsonKeys", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseJsonKeys", outputs: [ { - internalType: "string[]", name: "keys", type: "string[]", + internalType: "string[]", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseJsonString", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseJsonString", outputs: [ { - internalType: "string", name: "", type: "string", + internalType: "string", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseJsonStringArray", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseJsonStringArray", outputs: [ { - internalType: "string[]", name: "", type: "string[]", + internalType: "string[]", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseJsonType", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", - name: "key", + name: "typeDescription", type: "string", + internalType: "string", }, ], - name: "parseJsonUint", outputs: [ { - internalType: "uint256", name: "", - type: "uint256", + type: "bytes", + internalType: "bytes", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseJsonType", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", + }, + { + name: "typeDescription", + type: "string", + internalType: "string", }, ], - name: "parseJsonUintArray", outputs: [ { - internalType: "uint256[]", name: "", - type: "uint256[]", + type: "bytes", + internalType: "bytes", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseJsonTypeArray", inputs: [ { - internalType: "string", - name: "toml", + name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", + }, + { + name: "typeDescription", + type: "string", + internalType: "string", }, ], - name: "parseToml", outputs: [ { - internalType: "bytes", - name: "abiEncodedData", + name: "", type: "bytes", + internalType: "bytes", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseJsonUint", inputs: [ { + name: "json", + type: "string", internalType: "string", - name: "toml", + }, + { + name: "key", type: "string", + internalType: "string", }, ], - name: "parseToml", outputs: [ { - internalType: "bytes", - name: "abiEncodedData", - type: "bytes", + name: "", + type: "uint256", + internalType: "uint256", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseJsonUintArray", inputs: [ { - internalType: "string", - name: "toml", + name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseTomlAddress", outputs: [ { - internalType: "address", name: "", - type: "address", + type: "uint256[]", + internalType: "uint256[]", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseToml", inputs: [ { - internalType: "string", name: "toml", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseTomlAddressArray", outputs: [ { - internalType: "address[]", - name: "", - type: "address[]", + name: "abiEncodedData", + type: "bytes", + internalType: "bytes", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseToml", inputs: [ { - internalType: "string", name: "toml", type: "string", - }, - { internalType: "string", - name: "key", - type: "string", }, ], - name: "parseTomlBool", outputs: [ { - internalType: "bool", - name: "", - type: "bool", + name: "abiEncodedData", + type: "bytes", + internalType: "bytes", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseTomlAddress", inputs: [ { - internalType: "string", name: "toml", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseTomlBoolArray", outputs: [ { - internalType: "bool[]", name: "", - type: "bool[]", + type: "address", + internalType: "address", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseTomlAddressArray", inputs: [ { - internalType: "string", name: "toml", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseTomlBytes", outputs: [ { - internalType: "bytes", name: "", - type: "bytes", + type: "address[]", + internalType: "address[]", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseTomlBool", inputs: [ { - internalType: "string", name: "toml", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseTomlBytes32", outputs: [ { - internalType: "bytes32", name: "", - type: "bytes32", + type: "bool", + internalType: "bool", }, ], stateMutability: "pure", - type: "function", }, { + 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: [ { - internalType: "bytes32[]", name: "", type: "bytes32[]", + internalType: "bytes32[]", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseTomlBytesArray", inputs: [ { - internalType: "string", name: "toml", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseTomlBytesArray", outputs: [ { - internalType: "bytes[]", name: "", type: "bytes[]", + internalType: "bytes[]", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseTomlInt", inputs: [ { - internalType: "string", name: "toml", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseTomlInt", outputs: [ { - internalType: "int256", name: "", type: "int256", + internalType: "int256", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseTomlIntArray", inputs: [ { - internalType: "string", name: "toml", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseTomlIntArray", outputs: [ { - internalType: "int256[]", name: "", type: "int256[]", + internalType: "int256[]", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseTomlKeys", inputs: [ { - internalType: "string", name: "toml", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseTomlKeys", outputs: [ { - internalType: "string[]", name: "keys", type: "string[]", + internalType: "string[]", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseTomlString", inputs: [ { - internalType: "string", name: "toml", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseTomlString", outputs: [ { - internalType: "string", name: "", type: "string", + internalType: "string", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseTomlStringArray", inputs: [ { - internalType: "string", name: "toml", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseTomlStringArray", outputs: [ { - internalType: "string[]", name: "", type: "string[]", + internalType: "string[]", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseTomlUint", inputs: [ { - internalType: "string", name: "toml", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseTomlUint", outputs: [ { - internalType: "uint256", name: "", type: "uint256", + internalType: "uint256", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseTomlUintArray", inputs: [ { - internalType: "string", name: "toml", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseTomlUintArray", outputs: [ { - internalType: "uint256[]", name: "", type: "uint256[]", + internalType: "uint256[]", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseUint", inputs: [ { - internalType: "string", name: "stringifiedValue", type: "string", + internalType: "string", }, ], - name: "parseUint", outputs: [ { - internalType: "uint256", name: "parsedValue", type: "uint256", + internalType: "uint256", }, ], stateMutability: "pure", - type: "function", }, { - inputs: [], + type: "function", name: "pauseGasMetering", + inputs: [], outputs: [], stateMutability: "nonpayable", - type: "function", }, { - inputs: [], + type: "function", name: "projectRoot", + inputs: [], outputs: [ { - internalType: "string", name: "path", type: "string", + internalType: "string", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "prompt", inputs: [ { - internalType: "string", name: "promptText", type: "string", + internalType: "string", }, ], - name: "prompt", outputs: [ { - internalType: "string", name: "input", type: "string", + internalType: "string", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "promptAddress", inputs: [ { - internalType: "string", name: "promptText", type: "string", + internalType: "string", }, ], - name: "promptAddress", outputs: [ { - internalType: "address", name: "", type: "address", + internalType: "address", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "promptSecret", inputs: [ { - internalType: "string", name: "promptText", type: "string", + internalType: "string", }, ], - name: "promptSecret", outputs: [ { - internalType: "string", name: "input", type: "string", + internalType: "string", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "promptSecretUint", inputs: [ { - internalType: "string", name: "promptText", type: "string", + internalType: "string", }, ], - name: "promptSecretUint", outputs: [ { - internalType: "uint256", name: "", type: "uint256", + internalType: "uint256", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "promptUint", inputs: [ { - internalType: "string", name: "promptText", type: "string", + internalType: "string", }, ], - name: "promptUint", outputs: [ { - internalType: "uint256", name: "", type: "uint256", + internalType: "uint256", }, ], stateMutability: "nonpayable", - type: "function", }, { - inputs: [], + type: "function", name: "randomAddress", + inputs: [], outputs: [ { - internalType: "address", name: "", type: "address", + internalType: "address", }, ], stateMutability: "nonpayable", - type: "function", }, { - inputs: [], + type: "function", name: "randomUint", + inputs: [], outputs: [ { - internalType: "uint256", name: "", type: "uint256", + internalType: "uint256", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "randomUint", inputs: [ { - internalType: "uint256", name: "min", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "max", type: "uint256", + internalType: "uint256", }, ], - name: "randomUint", outputs: [ { - internalType: "uint256", name: "", type: "uint256", + internalType: "uint256", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "readDir", inputs: [ { - internalType: "string", name: "path", type: "string", + internalType: "string", }, { - internalType: "uint64", name: "maxDepth", type: "uint64", + internalType: "uint64", }, ], - name: "readDir", outputs: [ { + name: "entries", + type: "tuple[]", + internalType: "struct VmSafe.DirEntry[]", components: [ { - internalType: "string", name: "errorMessage", type: "string", + internalType: "string", }, { - internalType: "string", name: "path", type: "string", + internalType: "string", }, { - internalType: "uint64", name: "depth", type: "uint64", + internalType: "uint64", }, { - internalType: "bool", name: "isDir", type: "bool", + internalType: "bool", }, { - internalType: "bool", name: "isSymlink", type: "bool", + internalType: "bool", }, ], - internalType: "struct VmSafe.DirEntry[]", - name: "entries", - type: "tuple[]", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "readDir", inputs: [ { - internalType: "string", name: "path", type: "string", + internalType: "string", }, { - internalType: "uint64", name: "maxDepth", type: "uint64", + internalType: "uint64", }, { - internalType: "bool", name: "followLinks", type: "bool", + internalType: "bool", }, ], - name: "readDir", outputs: [ { + name: "entries", + type: "tuple[]", + internalType: "struct VmSafe.DirEntry[]", components: [ { - internalType: "string", name: "errorMessage", type: "string", + internalType: "string", }, { - internalType: "string", name: "path", type: "string", + internalType: "string", }, { - internalType: "uint64", name: "depth", type: "uint64", + internalType: "uint64", }, { - internalType: "bool", name: "isDir", type: "bool", + internalType: "bool", }, { - internalType: "bool", name: "isSymlink", type: "bool", + internalType: "bool", }, ], - internalType: "struct VmSafe.DirEntry[]", - name: "entries", - type: "tuple[]", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "readDir", inputs: [ { - internalType: "string", name: "path", type: "string", + internalType: "string", }, ], - name: "readDir", outputs: [ { + name: "entries", + type: "tuple[]", + internalType: "struct VmSafe.DirEntry[]", components: [ { - internalType: "string", name: "errorMessage", type: "string", + internalType: "string", }, { - internalType: "string", name: "path", type: "string", + internalType: "string", }, { - internalType: "uint64", name: "depth", type: "uint64", + internalType: "uint64", }, { - internalType: "bool", name: "isDir", type: "bool", + internalType: "bool", }, { - internalType: "bool", name: "isSymlink", type: "bool", + internalType: "bool", }, ], - internalType: "struct VmSafe.DirEntry[]", - name: "entries", - type: "tuple[]", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "readFile", inputs: [ { - internalType: "string", name: "path", type: "string", + internalType: "string", }, ], - name: "readFile", outputs: [ { - internalType: "string", name: "data", type: "string", + internalType: "string", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "readFileBinary", inputs: [ { - internalType: "string", name: "path", type: "string", + internalType: "string", }, ], - name: "readFileBinary", outputs: [ { - internalType: "bytes", name: "data", type: "bytes", + internalType: "bytes", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "readLine", inputs: [ { - internalType: "string", name: "path", type: "string", + internalType: "string", }, ], - name: "readLine", outputs: [ { - internalType: "string", name: "line", type: "string", + internalType: "string", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "readLink", inputs: [ { - internalType: "string", name: "linkPath", type: "string", + internalType: "string", }, ], - name: "readLink", outputs: [ { - internalType: "string", name: "targetPath", type: "string", + internalType: "string", }, ], stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "record", + inputs: [], outputs: [], stateMutability: "nonpayable", - type: "function", }, { - inputs: [], + type: "function", name: "recordLogs", + inputs: [], outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "rememberKey", inputs: [ { - internalType: "uint256", name: "privateKey", type: "uint256", + internalType: "uint256", }, ], - name: "rememberKey", outputs: [ { - internalType: "address", name: "keyAddr", type: "address", + internalType: "address", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "removeDir", inputs: [ { - internalType: "string", name: "path", type: "string", + internalType: "string", }, { - internalType: "bool", name: "recursive", type: "bool", + internalType: "bool", }, ], - name: "removeDir", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "removeFile", inputs: [ { - internalType: "string", name: "path", type: "string", + internalType: "string", }, ], - name: "removeFile", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "replace", inputs: [ { - internalType: "string", name: "input", type: "string", + internalType: "string", }, { - internalType: "string", name: "from", type: "string", + internalType: "string", }, { - internalType: "string", name: "to", type: "string", + internalType: "string", }, ], - name: "replace", outputs: [ { - internalType: "string", name: "output", type: "string", + internalType: "string", }, ], stateMutability: "pure", - type: "function", }, { - inputs: [], + type: "function", name: "resumeGasMetering", + inputs: [], outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "rpc", inputs: [ { + name: "urlOrAlias", + type: "string", internalType: "string", + }, + { name: "method", type: "string", + internalType: "string", }, { - internalType: "string", name: "params", type: "string", + internalType: "string", }, ], - name: "rpc", outputs: [ { - internalType: "bytes", name: "data", type: "bytes", + internalType: "bytes", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "rpc", inputs: [ { + name: "method", + type: "string", internalType: "string", - name: "rpcAlias", + }, + { + name: "params", type: "string", + internalType: "string", }, ], - name: "rpcUrl", 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", }, { - inputs: [], + type: "function", name: "rpcUrlStructs", + inputs: [], outputs: [ { + name: "urls", + type: "tuple[]", + internalType: "struct VmSafe.Rpc[]", components: [ { - internalType: "string", name: "key", type: "string", + internalType: "string", }, { - internalType: "string", name: "url", type: "string", + internalType: "string", }, ], - internalType: "struct VmSafe.Rpc[]", - name: "urls", - type: "tuple[]", }, ], stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "rpcUrls", + inputs: [], outputs: [ { - internalType: "string[2][]", name: "urls", type: "string[2][]", + internalType: "string[2][]", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "serializeAddress", inputs: [ { - internalType: "string", name: "objectKey", type: "string", + internalType: "string", }, { - internalType: "string", name: "valueKey", type: "string", + internalType: "string", }, { - internalType: "address[]", name: "values", type: "address[]", + internalType: "address[]", }, ], - name: "serializeAddress", outputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "serializeAddress", inputs: [ { - internalType: "string", name: "objectKey", type: "string", + internalType: "string", }, { - internalType: "string", name: "valueKey", type: "string", + internalType: "string", }, { - internalType: "address", name: "value", type: "address", + internalType: "address", }, ], - name: "serializeAddress", outputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "serializeBool", inputs: [ { - internalType: "string", name: "objectKey", type: "string", + internalType: "string", }, { - internalType: "string", name: "valueKey", type: "string", + internalType: "string", }, { - internalType: "bool[]", name: "values", type: "bool[]", + internalType: "bool[]", }, ], - name: "serializeBool", outputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "serializeBool", inputs: [ { - internalType: "string", name: "objectKey", type: "string", + internalType: "string", }, { - internalType: "string", name: "valueKey", type: "string", + internalType: "string", }, { - internalType: "bool", name: "value", type: "bool", + internalType: "bool", }, ], - name: "serializeBool", outputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "serializeBytes", inputs: [ { - internalType: "string", name: "objectKey", type: "string", + internalType: "string", }, { - internalType: "string", name: "valueKey", type: "string", + internalType: "string", }, { - internalType: "bytes[]", name: "values", type: "bytes[]", + internalType: "bytes[]", }, ], - name: "serializeBytes", outputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "serializeBytes", inputs: [ { - internalType: "string", name: "objectKey", type: "string", + internalType: "string", }, { - internalType: "string", name: "valueKey", type: "string", + internalType: "string", }, { - internalType: "bytes", name: "value", type: "bytes", + internalType: "bytes", }, ], - name: "serializeBytes", outputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "serializeBytes32", inputs: [ { - internalType: "string", name: "objectKey", type: "string", + internalType: "string", }, { - internalType: "string", name: "valueKey", type: "string", + internalType: "string", }, { - internalType: "bytes32[]", 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", }, { + type: "function", + name: "serializeInt", inputs: [ { - internalType: "string", name: "objectKey", type: "string", + internalType: "string", }, { - internalType: "string", name: "valueKey", type: "string", + internalType: "string", }, { - internalType: "bytes32", - name: "value", - type: "bytes32", + name: "values", + type: "int256[]", + internalType: "int256[]", }, ], - name: "serializeBytes32", outputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "serializeJson", inputs: [ { - internalType: "string", name: "objectKey", type: "string", - }, - { internalType: "string", - name: "valueKey", - type: "string", }, { - internalType: "int256", name: "value", - type: "int256", + type: "string", + internalType: "string", }, ], - name: "serializeInt", outputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "serializeJsonType", inputs: [ { - internalType: "string", - name: "objectKey", + name: "typeDescription", type: "string", - }, - { internalType: "string", - name: "valueKey", - type: "string", }, { - internalType: "int256[]", - name: "values", - type: "int256[]", + name: "value", + type: "bytes", + internalType: "bytes", }, ], - name: "serializeInt", outputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, ], - stateMutability: "nonpayable", - type: "function", + stateMutability: "pure", }, { + type: "function", + name: "serializeJsonType", inputs: [ { - internalType: "string", name: "objectKey", type: "string", + internalType: "string", + }, + { + name: "valueKey", + type: "string", + internalType: "string", }, { + name: "typeDescription", + type: "string", internalType: "string", + }, + { name: "value", - type: "string", + type: "bytes", + internalType: "bytes", }, ], - name: "serializeJson", outputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "serializeString", inputs: [ { - internalType: "string", name: "objectKey", type: "string", + internalType: "string", }, { - internalType: "string", name: "valueKey", type: "string", + internalType: "string", }, { - internalType: "string[]", name: "values", type: "string[]", + internalType: "string[]", }, ], - name: "serializeString", outputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "serializeString", inputs: [ { - internalType: "string", name: "objectKey", type: "string", + internalType: "string", }, { - internalType: "string", name: "valueKey", type: "string", + internalType: "string", }, { - internalType: "string", name: "value", type: "string", + internalType: "string", }, ], - name: "serializeString", outputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "serializeUint", inputs: [ { - internalType: "string", name: "objectKey", type: "string", + internalType: "string", }, { - internalType: "string", name: "valueKey", type: "string", + internalType: "string", }, { - internalType: "uint256", name: "value", type: "uint256", + internalType: "uint256", }, ], - name: "serializeUint", outputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "serializeUint", inputs: [ { - internalType: "string", name: "objectKey", type: "string", + internalType: "string", }, { - internalType: "string", name: "valueKey", type: "string", + internalType: "string", }, { - internalType: "uint256[]", name: "values", type: "uint256[]", + internalType: "uint256[]", }, ], - name: "serializeUint", outputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "serializeUintToHex", inputs: [ { - internalType: "string", name: "objectKey", type: "string", + internalType: "string", }, { - internalType: "string", name: "valueKey", type: "string", + internalType: "string", }, { - internalType: "uint256", name: "value", type: "uint256", + internalType: "uint256", }, ], - name: "serializeUintToHex", outputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "setEnv", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "string", name: "value", type: "string", + internalType: "string", }, ], - name: "setEnv", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "sign", inputs: [ { - internalType: "bytes32", name: "digest", type: "bytes32", + internalType: "bytes32", }, ], - name: "sign", outputs: [ { - internalType: "uint8", name: "v", type: "uint8", + internalType: "uint8", }, { - internalType: "bytes32", name: "r", type: "bytes32", + internalType: "bytes32", }, { - internalType: "bytes32", name: "s", type: "bytes32", + internalType: "bytes32", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "sign", inputs: [ { - internalType: "address", name: "signer", type: "address", + internalType: "address", }, { - internalType: "bytes32", name: "digest", type: "bytes32", + internalType: "bytes32", }, ], - name: "sign", outputs: [ { - internalType: "uint8", name: "v", type: "uint8", + internalType: "uint8", }, { - internalType: "bytes32", name: "r", type: "bytes32", + internalType: "bytes32", }, { - internalType: "bytes32", name: "s", type: "bytes32", + internalType: "bytes32", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "sign", inputs: [ { + name: "wallet", + type: "tuple", + internalType: "struct VmSafe.Wallet", components: [ { - internalType: "address", name: "addr", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "publicKeyX", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "publicKeyY", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "privateKey", type: "uint256", + internalType: "uint256", }, ], - internalType: "struct VmSafe.Wallet", - name: "wallet", - type: "tuple", }, { - internalType: "bytes32", name: "digest", type: "bytes32", + internalType: "bytes32", }, ], - name: "sign", outputs: [ { - internalType: "uint8", name: "v", type: "uint8", + internalType: "uint8", }, { - internalType: "bytes32", name: "r", type: "bytes32", + internalType: "bytes32", }, { - internalType: "bytes32", name: "s", type: "bytes32", + internalType: "bytes32", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "sign", inputs: [ { - internalType: "uint256", name: "privateKey", type: "uint256", + internalType: "uint256", }, { - internalType: "bytes32", name: "digest", type: "bytes32", + internalType: "bytes32", }, ], - name: "sign", outputs: [ { - internalType: "uint8", name: "v", type: "uint8", + internalType: "uint8", }, { - internalType: "bytes32", name: "r", type: "bytes32", + internalType: "bytes32", }, { - internalType: "bytes32", name: "s", type: "bytes32", + internalType: "bytes32", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "signP256", inputs: [ { - internalType: "uint256", name: "privateKey", type: "uint256", + internalType: "uint256", }, { - internalType: "bytes32", name: "digest", type: "bytes32", + internalType: "bytes32", }, ], - name: "signP256", outputs: [ { - internalType: "bytes32", name: "r", type: "bytes32", + internalType: "bytes32", }, { - internalType: "bytes32", name: "s", type: "bytes32", + internalType: "bytes32", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "sleep", inputs: [ { - internalType: "uint256", name: "duration", type: "uint256", + internalType: "uint256", }, ], - name: "sleep", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "split", inputs: [ { - internalType: "string", name: "input", type: "string", + internalType: "string", }, { - internalType: "string", name: "delimiter", type: "string", + internalType: "string", }, ], - name: "split", outputs: [ { - internalType: "string[]", name: "outputs", type: "string[]", + internalType: "string[]", }, ], stateMutability: "pure", - type: "function", }, { - inputs: [], + type: "function", name: "startBroadcast", + inputs: [], outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "startBroadcast", inputs: [ { - internalType: "address", name: "signer", type: "address", + internalType: "address", }, ], - name: "startBroadcast", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "startBroadcast", inputs: [ { - internalType: "uint256", name: "privateKey", type: "uint256", + internalType: "uint256", }, ], - name: "startBroadcast", outputs: [], stateMutability: "nonpayable", - type: "function", }, { - inputs: [], + type: "function", name: "startMappingRecording", + inputs: [], outputs: [], stateMutability: "nonpayable", - type: "function", }, { - inputs: [], + type: "function", name: "startStateDiffRecording", + inputs: [], outputs: [], stateMutability: "nonpayable", - type: "function", }, { - inputs: [], + type: "function", name: "stopAndReturnStateDiff", + inputs: [], outputs: [ { + name: "accountAccesses", + type: "tuple[]", + internalType: "struct VmSafe.AccountAccess[]", components: [ { + name: "chainInfo", + type: "tuple", + internalType: "struct VmSafe.ChainInfo", components: [ { - internalType: "uint256", name: "forkId", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "chainId", type: "uint256", + internalType: "uint256", }, ], - internalType: "struct VmSafe.ChainInfo", - name: "chainInfo", - type: "tuple", }, { - internalType: "enum VmSafe.AccountAccessKind", name: "kind", type: "uint8", + internalType: "enum VmSafe.AccountAccessKind", }, { - internalType: "address", name: "account", type: "address", + internalType: "address", }, { - internalType: "address", name: "accessor", type: "address", + internalType: "address", }, { - internalType: "bool", name: "initialized", type: "bool", + internalType: "bool", }, { - internalType: "uint256", name: "oldBalance", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "newBalance", type: "uint256", + internalType: "uint256", }, { - internalType: "bytes", name: "deployedCode", type: "bytes", + internalType: "bytes", }, { - internalType: "uint256", name: "value", type: "uint256", + internalType: "uint256", }, { - internalType: "bytes", name: "data", type: "bytes", + internalType: "bytes", }, { - internalType: "bool", name: "reverted", type: "bool", + internalType: "bool", }, { + name: "storageAccesses", + type: "tuple[]", + internalType: "struct VmSafe.StorageAccess[]", components: [ { - internalType: "address", name: "account", type: "address", + internalType: "address", }, { - internalType: "bytes32", name: "slot", type: "bytes32", + internalType: "bytes32", }, { - internalType: "bool", name: "isWrite", type: "bool", + internalType: "bool", }, { - internalType: "bytes32", name: "previousValue", type: "bytes32", + internalType: "bytes32", }, { - internalType: "bytes32", name: "newValue", type: "bytes32", + internalType: "bytes32", }, { - internalType: "bool", name: "reverted", type: "bool", + internalType: "bool", }, ], - internalType: "struct VmSafe.StorageAccess[]", - name: "storageAccesses", - type: "tuple[]", }, { - internalType: "uint64", name: "depth", type: "uint64", + internalType: "uint64", }, ], - internalType: "struct VmSafe.AccountAccess[]", - name: "accountAccesses", - type: "tuple[]", }, ], stateMutability: "nonpayable", - type: "function", }, { - inputs: [], + type: "function", name: "stopBroadcast", + inputs: [], outputs: [], stateMutability: "nonpayable", - type: "function", }, { - inputs: [], + type: "function", name: "stopMappingRecording", + inputs: [], outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "toBase64", inputs: [ { - internalType: "string", name: "data", type: "string", + internalType: "string", }, ], - name: "toBase64", outputs: [ { - internalType: "string", name: "", type: "string", + internalType: "string", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "toBase64", inputs: [ { - internalType: "bytes", name: "data", type: "bytes", + internalType: "bytes", }, ], - name: "toBase64", outputs: [ { - internalType: "string", name: "", type: "string", + internalType: "string", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "toBase64URL", inputs: [ { - internalType: "string", name: "data", type: "string", + internalType: "string", }, ], - name: "toBase64URL", outputs: [ { - internalType: "string", name: "", type: "string", + internalType: "string", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "toBase64URL", inputs: [ { - internalType: "bytes", name: "data", type: "bytes", + internalType: "bytes", }, ], - name: "toBase64URL", outputs: [ { - internalType: "string", name: "", type: "string", + internalType: "string", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "toLowercase", inputs: [ { - internalType: "string", name: "input", type: "string", + internalType: "string", }, ], - name: "toLowercase", outputs: [ { - internalType: "string", name: "output", type: "string", + internalType: "string", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "toString", inputs: [ { - internalType: "address", name: "value", type: "address", + internalType: "address", }, ], - name: "toString", outputs: [ { - internalType: "string", name: "stringifiedValue", type: "string", + internalType: "string", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "toString", inputs: [ { - internalType: "uint256", name: "value", type: "uint256", + internalType: "uint256", }, ], - name: "toString", outputs: [ { - internalType: "string", name: "stringifiedValue", type: "string", + internalType: "string", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "toString", inputs: [ { - internalType: "bytes", name: "value", type: "bytes", + internalType: "bytes", }, ], - name: "toString", outputs: [ { - internalType: "string", name: "stringifiedValue", type: "string", + internalType: "string", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "toString", inputs: [ { - internalType: "bool", name: "value", type: "bool", + internalType: "bool", }, ], - name: "toString", outputs: [ { - internalType: "string", name: "stringifiedValue", type: "string", + internalType: "string", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "toString", inputs: [ { - internalType: "int256", name: "value", type: "int256", + internalType: "int256", }, ], - name: "toString", outputs: [ { - internalType: "string", name: "stringifiedValue", type: "string", + internalType: "string", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "toString", inputs: [ { - internalType: "bytes32", name: "value", type: "bytes32", + internalType: "bytes32", }, ], - name: "toString", outputs: [ { - internalType: "string", name: "stringifiedValue", type: "string", + internalType: "string", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "toUppercase", inputs: [ { - internalType: "string", name: "input", type: "string", + internalType: "string", }, ], - name: "toUppercase", outputs: [ { - internalType: "string", name: "output", type: "string", + internalType: "string", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "trim", inputs: [ { - internalType: "string", name: "input", type: "string", + internalType: "string", }, ], - name: "trim", outputs: [ { - internalType: "string", name: "output", type: "string", + internalType: "string", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "tryFfi", inputs: [ { - internalType: "string[]", name: "commandInput", type: "string[]", + internalType: "string[]", }, ], - name: "tryFfi", outputs: [ { + name: "result", + type: "tuple", + internalType: "struct VmSafe.FfiResult", components: [ { - internalType: "int32", name: "exitCode", type: "int32", + internalType: "int32", }, { - internalType: "bytes", name: "stdout", type: "bytes", + internalType: "bytes", }, { - internalType: "bytes", name: "stderr", type: "bytes", + internalType: "bytes", }, ], - internalType: "struct VmSafe.FfiResult", - name: "result", - type: "tuple", }, ], stateMutability: "nonpayable", - type: "function", }, { - inputs: [], + type: "function", name: "unixTime", + inputs: [], outputs: [ { - internalType: "uint256", name: "milliseconds", type: "uint256", + internalType: "uint256", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "writeFile", inputs: [ { - internalType: "string", name: "path", type: "string", + internalType: "string", }, { - internalType: "string", name: "data", type: "string", + internalType: "string", }, ], - name: "writeFile", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "writeFileBinary", inputs: [ { - internalType: "string", name: "path", type: "string", + internalType: "string", }, { - internalType: "bytes", name: "data", type: "bytes", + internalType: "bytes", }, ], - name: "writeFileBinary", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "writeJson", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "path", type: "string", + internalType: "string", }, { - internalType: "string", name: "valueKey", type: "string", + internalType: "string", }, ], - name: "writeJson", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "writeJson", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "path", type: "string", + internalType: "string", }, ], - name: "writeJson", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "writeLine", inputs: [ { - internalType: "string", name: "path", type: "string", + internalType: "string", }, { - internalType: "string", name: "data", type: "string", + internalType: "string", }, ], - name: "writeLine", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "writeToml", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "path", type: "string", + internalType: "string", }, { - internalType: "string", name: "valueKey", type: "string", + internalType: "string", }, ], - name: "writeToml", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "writeToml", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "path", type: "string", + internalType: "string", }, ], - name: "writeToml", outputs: [], stateMutability: "nonpayable", - type: "function", }, ] as const; export class VmSafe__factory { static readonly abi = _abi; static createInterface(): VmSafeInterface { - return new utils.Interface(_abi) as VmSafeInterface; + return new Interface(_abi) as VmSafeInterface; } - static connect(address: string, signerOrProvider: Signer | Provider): VmSafe { - return new Contract(address, _abi, signerOrProvider) as VmSafe; + static connect(address: string, runner?: ContractRunner | null): VmSafe { + return new Contract(address, _abi, runner) as unknown as VmSafe; } } diff --git a/typechain-types/factories/forge-std/Vm.sol/Vm__factory.ts b/v2/typechain-types/factories/Vm.sol/Vm__factory.ts similarity index 96% rename from typechain-types/factories/forge-std/Vm.sol/Vm__factory.ts rename to v2/typechain-types/factories/Vm.sol/Vm__factory.ts index 5942aaef..722aee90 100644 --- a/typechain-types/factories/forge-std/Vm.sol/Vm__factory.ts +++ b/v2/typechain-types/factories/Vm.sol/Vm__factory.ts @@ -2,8644 +2,8964 @@ /* tslint:disable */ /* eslint-disable */ -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; -import type { Vm, VmInterface } from "../../../forge-std/Vm.sol/Vm"; +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { Vm, VmInterface } from "../../Vm.sol/Vm"; const _abi = [ { + type: "function", + name: "accesses", inputs: [ { - internalType: "address", name: "target", type: "address", + internalType: "address", }, ], - name: "accesses", outputs: [ { - internalType: "bytes32[]", name: "readSlots", type: "bytes32[]", + internalType: "bytes32[]", }, { - internalType: "bytes32[]", name: "writeSlots", type: "bytes32[]", + internalType: "bytes32[]", }, ], stateMutability: "nonpayable", - type: "function", }, { - inputs: [], + type: "function", name: "activeFork", + inputs: [], outputs: [ { - internalType: "uint256", name: "forkId", type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "addr", inputs: [ { - internalType: "uint256", name: "privateKey", type: "uint256", + internalType: "uint256", }, ], - name: "addr", outputs: [ { - internalType: "address", name: "keyAddr", type: "address", + internalType: "address", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "allowCheatcodes", inputs: [ { - internalType: "address", name: "account", type: "address", + internalType: "address", }, ], - name: "allowCheatcodes", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "assertApproxEqAbs", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "maxDelta", type: "uint256", + internalType: "uint256", }, ], - name: "assertApproxEqAbs", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertApproxEqAbs", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "uint256", name: "maxDelta", type: "uint256", + internalType: "uint256", }, ], - name: "assertApproxEqAbs", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertApproxEqAbs", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "uint256", name: "maxDelta", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertApproxEqAbs", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertApproxEqAbs", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "maxDelta", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertApproxEqAbs", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertApproxEqAbsDecimal", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "maxDelta", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, ], - name: "assertApproxEqAbsDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertApproxEqAbsDecimal", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "uint256", name: "maxDelta", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, ], - name: "assertApproxEqAbsDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertApproxEqAbsDecimal", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "maxDelta", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertApproxEqAbsDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertApproxEqAbsDecimal", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "uint256", name: "maxDelta", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertApproxEqAbsDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertApproxEqRel", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "maxPercentDelta", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertApproxEqRel", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertApproxEqRel", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "maxPercentDelta", type: "uint256", + internalType: "uint256", }, ], - name: "assertApproxEqRel", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertApproxEqRel", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "uint256", name: "maxPercentDelta", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertApproxEqRel", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertApproxEqRel", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "uint256", name: "maxPercentDelta", type: "uint256", + internalType: "uint256", }, ], - name: "assertApproxEqRel", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertApproxEqRelDecimal", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "maxPercentDelta", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, ], - name: "assertApproxEqRelDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertApproxEqRelDecimal", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "maxPercentDelta", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertApproxEqRelDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertApproxEqRelDecimal", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "uint256", name: "maxPercentDelta", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, ], - name: "assertApproxEqRelDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertApproxEqRelDecimal", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "uint256", name: "maxPercentDelta", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertApproxEqRelDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "bytes32[]", name: "left", type: "bytes32[]", + internalType: "bytes32[]", }, { - internalType: "bytes32[]", name: "right", type: "bytes32[]", + internalType: "bytes32[]", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "int256[]", name: "left", type: "int256[]", + internalType: "int256[]", }, { - internalType: "int256[]", name: "right", type: "int256[]", + internalType: "int256[]", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "address", name: "left", type: "address", + internalType: "address", }, { - internalType: "address", name: "right", type: "address", + internalType: "address", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "string", name: "left", type: "string", + internalType: "string", }, { - internalType: "string", name: "right", type: "string", + internalType: "string", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "address[]", name: "left", type: "address[]", + internalType: "address[]", }, { - internalType: "address[]", name: "right", type: "address[]", + internalType: "address[]", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "address[]", name: "left", type: "address[]", + internalType: "address[]", }, { - internalType: "address[]", name: "right", type: "address[]", + internalType: "address[]", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "bool", name: "left", type: "bool", + internalType: "bool", }, { - internalType: "bool", name: "right", type: "bool", + internalType: "bool", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "address", name: "left", type: "address", + internalType: "address", }, { - internalType: "address", name: "right", type: "address", + internalType: "address", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "uint256[]", name: "left", type: "uint256[]", + internalType: "uint256[]", }, { - internalType: "uint256[]", name: "right", type: "uint256[]", + internalType: "uint256[]", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "bool[]", name: "left", type: "bool[]", + internalType: "bool[]", }, { - internalType: "bool[]", name: "right", type: "bool[]", + internalType: "bool[]", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "int256[]", name: "left", type: "int256[]", + internalType: "int256[]", }, { - internalType: "int256[]", name: "right", type: "int256[]", + internalType: "int256[]", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "bytes32", name: "left", type: "bytes32", + internalType: "bytes32", }, { - internalType: "bytes32", name: "right", type: "bytes32", + internalType: "bytes32", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "uint256[]", name: "left", type: "uint256[]", + internalType: "uint256[]", }, { - internalType: "uint256[]", name: "right", type: "uint256[]", + internalType: "uint256[]", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "bytes", name: "left", type: "bytes", + internalType: "bytes", }, { - internalType: "bytes", name: "right", type: "bytes", + internalType: "bytes", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "bytes32", name: "left", type: "bytes32", + internalType: "bytes32", }, { - internalType: "bytes32", name: "right", type: "bytes32", + internalType: "bytes32", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "string[]", name: "left", type: "string[]", + internalType: "string[]", }, { - internalType: "string[]", name: "right", type: "string[]", + internalType: "string[]", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "bytes32[]", name: "left", type: "bytes32[]", + internalType: "bytes32[]", }, { - internalType: "bytes32[]", name: "right", type: "bytes32[]", + internalType: "bytes32[]", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "bytes", name: "left", type: "bytes", + internalType: "bytes", }, { - internalType: "bytes", name: "right", type: "bytes", + internalType: "bytes", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "bool[]", name: "left", type: "bool[]", + internalType: "bool[]", }, { - internalType: "bool[]", name: "right", type: "bool[]", + internalType: "bool[]", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "bytes[]", name: "left", type: "bytes[]", + internalType: "bytes[]", }, { - internalType: "bytes[]", name: "right", type: "bytes[]", + internalType: "bytes[]", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "string[]", name: "left", type: "string[]", + internalType: "string[]", }, { - internalType: "string[]", name: "right", type: "string[]", + internalType: "string[]", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "string", name: "left", type: "string", + internalType: "string", }, { - internalType: "string", name: "right", type: "string", + internalType: "string", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "bytes[]", name: "left", type: "bytes[]", + internalType: "bytes[]", }, { - internalType: "bytes[]", name: "right", type: "bytes[]", + internalType: "bytes[]", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "bool", name: "left", type: "bool", + internalType: "bool", }, { - internalType: "bool", name: "right", type: "bool", + internalType: "bool", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEq", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, ], - name: "assertEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEqDecimal", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, ], - name: "assertEqDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEqDecimal", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, ], - name: "assertEqDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEqDecimal", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertEqDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertEqDecimal", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertEqDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertFalse", inputs: [ { - internalType: "bool", name: "condition", type: "bool", + internalType: "bool", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertFalse", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertFalse", inputs: [ { - internalType: "bool", name: "condition", type: "bool", + internalType: "bool", }, ], - name: "assertFalse", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertGe", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, ], - name: "assertGe", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertGe", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertGe", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertGe", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, ], - name: "assertGe", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertGe", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertGe", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertGeDecimal", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, ], - name: "assertGeDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertGeDecimal", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertGeDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertGeDecimal", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertGeDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertGeDecimal", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, ], - name: "assertGeDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertGt", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, ], - name: "assertGt", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertGt", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertGt", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertGt", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, ], - name: "assertGt", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertGt", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertGt", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertGtDecimal", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertGtDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertGtDecimal", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertGtDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertGtDecimal", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, ], - name: "assertGtDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertGtDecimal", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, ], - name: "assertGtDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertLe", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertLe", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertLe", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, ], - name: "assertLe", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertLe", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, ], - name: "assertLe", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertLe", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertLe", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertLeDecimal", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, ], - name: "assertLeDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertLeDecimal", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertLeDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertLeDecimal", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertLeDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertLeDecimal", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, ], - name: "assertLeDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertLt", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, ], - name: "assertLt", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertLt", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertLt", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertLt", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertLt", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertLt", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, ], - name: "assertLt", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertLtDecimal", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, ], - name: "assertLtDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertLtDecimal", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertLtDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertLtDecimal", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertLtDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertLtDecimal", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, ], - name: "assertLtDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "bytes32[]", name: "left", type: "bytes32[]", + internalType: "bytes32[]", }, { - internalType: "bytes32[]", name: "right", type: "bytes32[]", + internalType: "bytes32[]", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "int256[]", name: "left", type: "int256[]", + internalType: "int256[]", }, { - internalType: "int256[]", name: "right", type: "int256[]", + internalType: "int256[]", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "bool", name: "left", type: "bool", + internalType: "bool", }, { - internalType: "bool", name: "right", type: "bool", + internalType: "bool", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "bytes[]", name: "left", type: "bytes[]", + internalType: "bytes[]", }, { - internalType: "bytes[]", name: "right", type: "bytes[]", + internalType: "bytes[]", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "bool", name: "left", type: "bool", + internalType: "bool", }, { - internalType: "bool", name: "right", type: "bool", + internalType: "bool", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "bool[]", name: "left", type: "bool[]", + internalType: "bool[]", }, { - internalType: "bool[]", name: "right", type: "bool[]", + internalType: "bool[]", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "bytes", name: "left", type: "bytes", + internalType: "bytes", }, { - internalType: "bytes", name: "right", type: "bytes", + internalType: "bytes", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "address[]", name: "left", type: "address[]", + internalType: "address[]", }, { - internalType: "address[]", name: "right", type: "address[]", + internalType: "address[]", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "uint256[]", name: "left", type: "uint256[]", + internalType: "uint256[]", }, { - internalType: "uint256[]", name: "right", type: "uint256[]", + internalType: "uint256[]", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "bool[]", name: "left", type: "bool[]", + internalType: "bool[]", }, { - internalType: "bool[]", name: "right", type: "bool[]", + internalType: "bool[]", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "string", name: "left", type: "string", + internalType: "string", }, { - internalType: "string", name: "right", type: "string", + internalType: "string", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "address[]", name: "left", type: "address[]", + internalType: "address[]", }, { - internalType: "address[]", name: "right", type: "address[]", + internalType: "address[]", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "string", name: "left", type: "string", + internalType: "string", }, { - internalType: "string", name: "right", type: "string", + internalType: "string", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "address", name: "left", type: "address", + internalType: "address", }, { - internalType: "address", name: "right", type: "address", + internalType: "address", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "bytes32", name: "left", type: "bytes32", + internalType: "bytes32", }, { - internalType: "bytes32", name: "right", type: "bytes32", + internalType: "bytes32", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "bytes", name: "left", type: "bytes", + internalType: "bytes", }, { - internalType: "bytes", name: "right", type: "bytes", + internalType: "bytes", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "uint256[]", name: "left", type: "uint256[]", + internalType: "uint256[]", }, { - internalType: "uint256[]", name: "right", type: "uint256[]", + internalType: "uint256[]", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "address", name: "left", type: "address", + internalType: "address", }, { - internalType: "address", name: "right", type: "address", + internalType: "address", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "bytes32", name: "left", type: "bytes32", + internalType: "bytes32", }, { - internalType: "bytes32", name: "right", type: "bytes32", + internalType: "bytes32", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "string[]", name: "left", type: "string[]", + internalType: "string[]", }, { - internalType: "string[]", name: "right", type: "string[]", + internalType: "string[]", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "bytes32[]", name: "left", type: "bytes32[]", + internalType: "bytes32[]", }, { - internalType: "bytes32[]", name: "right", type: "bytes32[]", + internalType: "bytes32[]", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "string[]", name: "left", type: "string[]", + internalType: "string[]", }, { - internalType: "string[]", name: "right", type: "string[]", + internalType: "string[]", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "int256[]", name: "left", type: "int256[]", + internalType: "int256[]", }, { - internalType: "int256[]", name: "right", type: "int256[]", + internalType: "int256[]", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "bytes[]", name: "left", type: "bytes[]", + internalType: "bytes[]", }, { - internalType: "bytes[]", name: "right", type: "bytes[]", + internalType: "bytes[]", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEq", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, ], - name: "assertNotEq", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEqDecimal", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, ], - name: "assertNotEqDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEqDecimal", inputs: [ { - internalType: "int256", name: "left", type: "int256", + internalType: "int256", }, { - internalType: "int256", name: "right", type: "int256", + internalType: "int256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertNotEqDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEqDecimal", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, ], - name: "assertNotEqDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertNotEqDecimal", inputs: [ { - internalType: "uint256", name: "left", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "right", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "decimals", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertNotEqDecimal", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertTrue", inputs: [ { - internalType: "bool", name: "condition", type: "bool", + internalType: "bool", }, ], - name: "assertTrue", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assertTrue", inputs: [ { - internalType: "bool", name: "condition", type: "bool", + internalType: "bool", }, { - internalType: "string", name: "error", type: "string", + internalType: "string", }, ], - name: "assertTrue", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "assume", inputs: [ { - internalType: "bool", name: "condition", type: "bool", + internalType: "bool", }, ], - name: "assume", outputs: [], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "blobBaseFee", inputs: [ { - internalType: "uint256", name: "newBlobBaseFee", type: "uint256", + internalType: "uint256", }, ], - name: "blobBaseFee", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "blobhashes", inputs: [ { - internalType: "bytes32[]", name: "hashes", type: "bytes32[]", + internalType: "bytes32[]", }, ], - name: "blobhashes", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "breakpoint", inputs: [ { - internalType: "string", name: "char", type: "string", + internalType: "string", }, ], - name: "breakpoint", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "breakpoint", inputs: [ { - internalType: "string", name: "char", type: "string", + internalType: "string", }, { - internalType: "bool", name: "value", type: "bool", + internalType: "bool", }, ], - name: "breakpoint", outputs: [], stateMutability: "nonpayable", - type: "function", }, { - inputs: [], + type: "function", name: "broadcast", + inputs: [], outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "broadcast", inputs: [ { - internalType: "address", name: "signer", type: "address", + internalType: "address", }, ], - name: "broadcast", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "broadcast", inputs: [ { - internalType: "uint256", name: "privateKey", type: "uint256", + internalType: "uint256", }, ], - name: "broadcast", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "chainId", inputs: [ { - internalType: "uint256", name: "newChainId", type: "uint256", + internalType: "uint256", }, ], - name: "chainId", outputs: [], stateMutability: "nonpayable", - type: "function", }, { - inputs: [], + type: "function", name: "clearMockedCalls", + inputs: [], outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "closeFile", inputs: [ { - internalType: "string", name: "path", type: "string", + internalType: "string", }, ], - name: "closeFile", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "coinbase", inputs: [ { - internalType: "address", name: "newCoinbase", type: "address", + internalType: "address", }, ], - name: "coinbase", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "computeCreate2Address", inputs: [ { - internalType: "bytes32", name: "salt", type: "bytes32", + internalType: "bytes32", }, { - internalType: "bytes32", name: "initCodeHash", type: "bytes32", + internalType: "bytes32", }, ], - name: "computeCreate2Address", outputs: [ { - internalType: "address", name: "", type: "address", + internalType: "address", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "computeCreate2Address", inputs: [ { - internalType: "bytes32", name: "salt", type: "bytes32", + internalType: "bytes32", }, { - internalType: "bytes32", name: "initCodeHash", type: "bytes32", + internalType: "bytes32", }, { - internalType: "address", name: "deployer", type: "address", + internalType: "address", }, ], - name: "computeCreate2Address", outputs: [ { - internalType: "address", name: "", type: "address", + internalType: "address", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "computeCreateAddress", inputs: [ { - internalType: "address", name: "deployer", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "nonce", type: "uint256", + internalType: "uint256", }, ], - name: "computeCreateAddress", outputs: [ { - internalType: "address", name: "", type: "address", + internalType: "address", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "copyFile", inputs: [ { - internalType: "string", name: "from", type: "string", + internalType: "string", }, { - internalType: "string", name: "to", type: "string", + internalType: "string", }, ], - name: "copyFile", outputs: [ { - internalType: "uint64", name: "copied", type: "uint64", + internalType: "uint64", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "createDir", inputs: [ { - internalType: "string", name: "path", type: "string", + internalType: "string", }, { - internalType: "bool", name: "recursive", type: "bool", + internalType: "bool", }, ], - name: "createDir", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "createFork", inputs: [ { - internalType: "string", name: "urlOrAlias", type: "string", + internalType: "string", }, ], - name: "createFork", outputs: [ { - internalType: "uint256", name: "forkId", type: "uint256", + internalType: "uint256", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "createFork", inputs: [ { - internalType: "string", name: "urlOrAlias", type: "string", + internalType: "string", }, { - internalType: "uint256", name: "blockNumber", type: "uint256", + internalType: "uint256", }, ], - name: "createFork", outputs: [ { - internalType: "uint256", name: "forkId", type: "uint256", + internalType: "uint256", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "createFork", inputs: [ { - internalType: "string", name: "urlOrAlias", type: "string", + internalType: "string", }, { - internalType: "bytes32", name: "txHash", type: "bytes32", + internalType: "bytes32", }, ], - name: "createFork", outputs: [ { - internalType: "uint256", name: "forkId", type: "uint256", + internalType: "uint256", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "createSelectFork", inputs: [ { - internalType: "string", name: "urlOrAlias", type: "string", + internalType: "string", }, { - internalType: "uint256", name: "blockNumber", type: "uint256", + internalType: "uint256", }, ], - name: "createSelectFork", outputs: [ { - internalType: "uint256", name: "forkId", type: "uint256", + internalType: "uint256", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "createSelectFork", inputs: [ { - internalType: "string", name: "urlOrAlias", type: "string", + internalType: "string", }, { - internalType: "bytes32", name: "txHash", type: "bytes32", + internalType: "bytes32", }, ], - name: "createSelectFork", outputs: [ { - internalType: "uint256", name: "forkId", type: "uint256", + internalType: "uint256", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "createSelectFork", inputs: [ { - internalType: "string", name: "urlOrAlias", type: "string", + internalType: "string", }, ], - name: "createSelectFork", outputs: [ { - internalType: "uint256", name: "forkId", type: "uint256", + internalType: "uint256", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "createWallet", inputs: [ { - internalType: "string", name: "walletLabel", type: "string", + internalType: "string", }, ], - name: "createWallet", outputs: [ { + name: "wallet", + type: "tuple", + internalType: "struct VmSafe.Wallet", components: [ { - internalType: "address", name: "addr", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "publicKeyX", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "publicKeyY", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "privateKey", type: "uint256", + internalType: "uint256", }, ], - internalType: "struct VmSafe.Wallet", - name: "wallet", - type: "tuple", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "createWallet", inputs: [ { - internalType: "uint256", name: "privateKey", type: "uint256", + internalType: "uint256", }, ], - name: "createWallet", outputs: [ { + name: "wallet", + type: "tuple", + internalType: "struct VmSafe.Wallet", components: [ { - internalType: "address", name: "addr", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "publicKeyX", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "publicKeyY", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "privateKey", type: "uint256", + internalType: "uint256", }, ], - internalType: "struct VmSafe.Wallet", - name: "wallet", - type: "tuple", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "createWallet", inputs: [ { - internalType: "uint256", name: "privateKey", type: "uint256", + internalType: "uint256", }, { - internalType: "string", name: "walletLabel", type: "string", + internalType: "string", }, ], - name: "createWallet", outputs: [ { + name: "wallet", + type: "tuple", + internalType: "struct VmSafe.Wallet", components: [ { - internalType: "address", name: "addr", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "publicKeyX", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "publicKeyY", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "privateKey", type: "uint256", + internalType: "uint256", }, ], - internalType: "struct VmSafe.Wallet", - name: "wallet", - type: "tuple", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "deal", inputs: [ { - internalType: "address", name: "account", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "newBalance", type: "uint256", + internalType: "uint256", }, ], - name: "deal", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "deleteSnapshot", inputs: [ { - internalType: "uint256", name: "snapshotId", type: "uint256", + internalType: "uint256", }, ], - name: "deleteSnapshot", outputs: [ { - internalType: "bool", name: "success", type: "bool", + internalType: "bool", }, ], stateMutability: "nonpayable", - type: "function", }, { - inputs: [], + 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", }, { - internalType: "string", name: "derivationPath", type: "string", + internalType: "string", }, { - internalType: "uint32", name: "index", type: "uint32", + internalType: "uint32", }, { - internalType: "string", name: "language", type: "string", + internalType: "string", }, ], - name: "deriveKey", outputs: [ { - internalType: "uint256", name: "privateKey", type: "uint256", + internalType: "uint256", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "deriveKey", inputs: [ { - internalType: "string", name: "mnemonic", type: "string", + internalType: "string", }, { - internalType: "uint32", name: "index", type: "uint32", + internalType: "uint32", }, { - internalType: "string", name: "language", type: "string", + internalType: "string", }, ], - name: "deriveKey", outputs: [ { - internalType: "uint256", name: "privateKey", type: "uint256", + internalType: "uint256", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "deriveKey", inputs: [ { - internalType: "string", name: "mnemonic", type: "string", + internalType: "string", }, { - internalType: "uint32", name: "index", type: "uint32", + internalType: "uint32", }, ], - name: "deriveKey", outputs: [ { - internalType: "uint256", name: "privateKey", type: "uint256", + internalType: "uint256", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "deriveKey", inputs: [ { - internalType: "string", name: "mnemonic", type: "string", + internalType: "string", }, { - internalType: "string", name: "derivationPath", type: "string", + internalType: "string", }, { - internalType: "uint32", name: "index", type: "uint32", + internalType: "uint32", }, ], - name: "deriveKey", outputs: [ { - internalType: "uint256", name: "privateKey", type: "uint256", + internalType: "uint256", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "difficulty", inputs: [ { - internalType: "uint256", name: "newDifficulty", type: "uint256", + internalType: "uint256", }, ], - name: "difficulty", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "dumpState", inputs: [ { - internalType: "string", name: "pathToStateJson", type: "string", + internalType: "string", }, ], - name: "dumpState", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "ensNamehash", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, ], - name: "ensNamehash", outputs: [ { - internalType: "bytes32", name: "", type: "bytes32", + internalType: "bytes32", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "envAddress", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, ], - name: "envAddress", outputs: [ { - internalType: "address", name: "value", type: "address", + internalType: "address", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envAddress", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "string", name: "delim", type: "string", + internalType: "string", }, ], - name: "envAddress", outputs: [ { - internalType: "address[]", name: "value", type: "address[]", + internalType: "address[]", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envBool", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, ], - name: "envBool", outputs: [ { - internalType: "bool", name: "value", type: "bool", + internalType: "bool", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envBool", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "string", name: "delim", type: "string", + internalType: "string", }, ], - name: "envBool", outputs: [ { - internalType: "bool[]", name: "value", type: "bool[]", + internalType: "bool[]", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envBytes", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, ], - name: "envBytes", outputs: [ { - internalType: "bytes", name: "value", type: "bytes", + internalType: "bytes", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envBytes", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "string", name: "delim", type: "string", + internalType: "string", }, ], - name: "envBytes", outputs: [ { - internalType: "bytes[]", name: "value", type: "bytes[]", + internalType: "bytes[]", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envBytes32", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "string", name: "delim", type: "string", + internalType: "string", }, ], - name: "envBytes32", outputs: [ { - internalType: "bytes32[]", name: "value", type: "bytes32[]", + internalType: "bytes32[]", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envBytes32", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, ], - name: "envBytes32", outputs: [ { - internalType: "bytes32", name: "value", type: "bytes32", + internalType: "bytes32", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envExists", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, ], - name: "envExists", outputs: [ { - internalType: "bool", name: "result", type: "bool", + internalType: "bool", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envInt", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "string", name: "delim", type: "string", + internalType: "string", }, ], - name: "envInt", outputs: [ { - internalType: "int256[]", name: "value", type: "int256[]", + internalType: "int256[]", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envInt", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, ], - name: "envInt", outputs: [ { - internalType: "int256", name: "value", type: "int256", + internalType: "int256", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envOr", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "string", name: "delim", type: "string", + internalType: "string", }, { - internalType: "bytes32[]", name: "defaultValue", type: "bytes32[]", + internalType: "bytes32[]", }, ], - name: "envOr", outputs: [ { - internalType: "bytes32[]", name: "value", type: "bytes32[]", + internalType: "bytes32[]", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envOr", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "string", name: "delim", type: "string", + internalType: "string", }, { - internalType: "int256[]", name: "defaultValue", type: "int256[]", + internalType: "int256[]", }, ], - name: "envOr", outputs: [ { - internalType: "int256[]", name: "value", type: "int256[]", + internalType: "int256[]", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envOr", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "bool", name: "defaultValue", type: "bool", + internalType: "bool", }, ], - name: "envOr", outputs: [ { - internalType: "bool", name: "value", type: "bool", + internalType: "bool", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envOr", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "address", name: "defaultValue", type: "address", + internalType: "address", }, ], - name: "envOr", outputs: [ { - internalType: "address", name: "value", type: "address", + internalType: "address", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envOr", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "uint256", name: "defaultValue", type: "uint256", + internalType: "uint256", }, ], - name: "envOr", outputs: [ { - internalType: "uint256", name: "value", type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envOr", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "string", name: "delim", type: "string", + internalType: "string", }, { - internalType: "bytes[]", name: "defaultValue", type: "bytes[]", + internalType: "bytes[]", }, ], - name: "envOr", outputs: [ { - internalType: "bytes[]", name: "value", type: "bytes[]", + internalType: "bytes[]", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envOr", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "string", name: "delim", type: "string", + internalType: "string", }, { - internalType: "uint256[]", name: "defaultValue", type: "uint256[]", + internalType: "uint256[]", }, ], - name: "envOr", outputs: [ { - internalType: "uint256[]", name: "value", type: "uint256[]", + internalType: "uint256[]", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envOr", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "string", name: "delim", type: "string", + internalType: "string", }, { - internalType: "string[]", name: "defaultValue", type: "string[]", + internalType: "string[]", }, ], - name: "envOr", outputs: [ { - internalType: "string[]", name: "value", type: "string[]", + internalType: "string[]", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envOr", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "bytes", name: "defaultValue", type: "bytes", + internalType: "bytes", }, ], - name: "envOr", outputs: [ { - internalType: "bytes", name: "value", type: "bytes", + internalType: "bytes", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envOr", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "bytes32", name: "defaultValue", type: "bytes32", + internalType: "bytes32", }, ], - name: "envOr", outputs: [ { - internalType: "bytes32", name: "value", type: "bytes32", + internalType: "bytes32", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envOr", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "int256", name: "defaultValue", type: "int256", + internalType: "int256", }, ], - name: "envOr", outputs: [ { - internalType: "int256", name: "value", type: "int256", + internalType: "int256", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envOr", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "string", name: "delim", type: "string", + internalType: "string", }, { - internalType: "address[]", name: "defaultValue", type: "address[]", + internalType: "address[]", }, ], - name: "envOr", outputs: [ { - internalType: "address[]", name: "value", type: "address[]", + internalType: "address[]", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envOr", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "string", name: "defaultValue", type: "string", + internalType: "string", }, ], - name: "envOr", outputs: [ { - internalType: "string", name: "value", type: "string", + internalType: "string", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envOr", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "string", name: "delim", type: "string", + internalType: "string", }, { - internalType: "bool[]", name: "defaultValue", type: "bool[]", + internalType: "bool[]", }, ], - name: "envOr", outputs: [ { - internalType: "bool[]", name: "value", type: "bool[]", + internalType: "bool[]", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envString", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "string", name: "delim", type: "string", + internalType: "string", }, ], - name: "envString", outputs: [ { - internalType: "string[]", name: "value", type: "string[]", + internalType: "string[]", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envString", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, ], - name: "envString", outputs: [ { - internalType: "string", name: "value", type: "string", + internalType: "string", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envUint", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, ], - name: "envUint", outputs: [ { - internalType: "uint256", name: "value", type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "envUint", inputs: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "string", name: "delim", type: "string", + internalType: "string", }, ], - name: "envUint", outputs: [ { - internalType: "uint256[]", name: "value", type: "uint256[]", + internalType: "uint256[]", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "etch", inputs: [ { - internalType: "address", name: "target", type: "address", + internalType: "address", }, { - internalType: "bytes", name: "newRuntimeBytecode", type: "bytes", + internalType: "bytes", }, ], - name: "etch", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "eth_getLogs", inputs: [ { - internalType: "uint256", name: "fromBlock", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "toBlock", type: "uint256", + internalType: "uint256", }, { - internalType: "address", name: "target", type: "address", + internalType: "address", }, { - internalType: "bytes32[]", name: "topics", type: "bytes32[]", + internalType: "bytes32[]", }, ], - name: "eth_getLogs", outputs: [ { + name: "logs", + type: "tuple[]", + internalType: "struct VmSafe.EthGetLogs[]", components: [ { - internalType: "address", name: "emitter", type: "address", + internalType: "address", }, { - internalType: "bytes32[]", name: "topics", type: "bytes32[]", + internalType: "bytes32[]", }, { - internalType: "bytes", name: "data", type: "bytes", + internalType: "bytes", }, { - internalType: "bytes32", name: "blockHash", type: "bytes32", + internalType: "bytes32", }, { - internalType: "uint64", name: "blockNumber", type: "uint64", + internalType: "uint64", }, { - internalType: "bytes32", name: "transactionHash", type: "bytes32", + internalType: "bytes32", }, { - internalType: "uint64", name: "transactionIndex", type: "uint64", + internalType: "uint64", }, { - internalType: "uint256", name: "logIndex", type: "uint256", + internalType: "uint256", }, { - internalType: "bool", name: "removed", type: "bool", + internalType: "bool", }, ], - internalType: "struct VmSafe.EthGetLogs[]", - name: "logs", - type: "tuple[]", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "exists", inputs: [ { - internalType: "string", name: "path", type: "string", + internalType: "string", }, ], - name: "exists", outputs: [ { - internalType: "bool", name: "result", type: "bool", + internalType: "bool", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "expectCall", inputs: [ { - internalType: "address", name: "callee", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "msgValue", type: "uint256", + internalType: "uint256", }, { - internalType: "uint64", name: "gas", type: "uint64", + internalType: "uint64", }, { - internalType: "bytes", name: "data", type: "bytes", + internalType: "bytes", }, ], - name: "expectCall", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "expectCall", inputs: [ { - internalType: "address", name: "callee", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "msgValue", type: "uint256", + internalType: "uint256", }, { - internalType: "uint64", name: "gas", type: "uint64", + internalType: "uint64", }, { - internalType: "bytes", name: "data", type: "bytes", + internalType: "bytes", }, { - internalType: "uint64", name: "count", type: "uint64", + internalType: "uint64", }, ], - name: "expectCall", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "expectCall", inputs: [ { - internalType: "address", name: "callee", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "msgValue", type: "uint256", + internalType: "uint256", }, { - internalType: "bytes", name: "data", type: "bytes", + internalType: "bytes", }, { - internalType: "uint64", name: "count", type: "uint64", + internalType: "uint64", }, ], - name: "expectCall", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "expectCall", inputs: [ { - internalType: "address", name: "callee", type: "address", + internalType: "address", }, { - internalType: "bytes", name: "data", type: "bytes", + internalType: "bytes", }, ], - name: "expectCall", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "expectCall", inputs: [ { - internalType: "address", name: "callee", type: "address", + internalType: "address", }, { - internalType: "bytes", name: "data", type: "bytes", + internalType: "bytes", }, { - internalType: "uint64", name: "count", type: "uint64", + internalType: "uint64", }, ], - name: "expectCall", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "expectCall", inputs: [ { - internalType: "address", name: "callee", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "msgValue", type: "uint256", + internalType: "uint256", }, { - internalType: "bytes", name: "data", type: "bytes", + internalType: "bytes", }, ], - name: "expectCall", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "expectCallMinGas", inputs: [ { - internalType: "address", name: "callee", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "msgValue", type: "uint256", + internalType: "uint256", }, { - internalType: "uint64", name: "minGas", type: "uint64", + internalType: "uint64", }, { - internalType: "bytes", name: "data", type: "bytes", + internalType: "bytes", }, ], - name: "expectCallMinGas", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "expectCallMinGas", inputs: [ { - internalType: "address", name: "callee", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "msgValue", type: "uint256", + internalType: "uint256", }, { - internalType: "uint64", name: "minGas", type: "uint64", + internalType: "uint64", }, { - internalType: "bytes", name: "data", type: "bytes", + internalType: "bytes", }, { - internalType: "uint64", name: "count", type: "uint64", + internalType: "uint64", }, ], - name: "expectCallMinGas", outputs: [], stateMutability: "nonpayable", - type: "function", }, { - inputs: [], + type: "function", name: "expectEmit", + inputs: [], outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "expectEmit", inputs: [ { - internalType: "bool", name: "checkTopic1", type: "bool", + internalType: "bool", }, { - internalType: "bool", name: "checkTopic2", type: "bool", + internalType: "bool", }, { - internalType: "bool", name: "checkTopic3", type: "bool", + internalType: "bool", }, { - internalType: "bool", name: "checkData", type: "bool", + internalType: "bool", }, ], - name: "expectEmit", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "expectEmit", inputs: [ { - internalType: "bool", name: "checkTopic1", type: "bool", + internalType: "bool", }, { - internalType: "bool", name: "checkTopic2", type: "bool", + internalType: "bool", }, { - internalType: "bool", name: "checkTopic3", type: "bool", + internalType: "bool", }, { - internalType: "bool", name: "checkData", type: "bool", + internalType: "bool", }, { - internalType: "address", name: "emitter", type: "address", + internalType: "address", }, ], - name: "expectEmit", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "expectEmit", inputs: [ { - internalType: "address", name: "emitter", type: "address", + internalType: "address", }, ], - name: "expectEmit", outputs: [], stateMutability: "nonpayable", - type: "function", }, { - inputs: [ - { - internalType: "bytes4", - name: "revertData", - type: "bytes4", - }, - ], - name: "expectRevert", + type: "function", + name: "expectEmitAnonymous", + inputs: [], outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "expectEmitAnonymous", inputs: [ { - internalType: "bytes", - name: "revertData", - type: "bytes", + name: "emitter", + type: "address", + internalType: "address", }, ], - name: "expectRevert", outputs: [], stateMutability: "nonpayable", - type: "function", }, { - inputs: [], - name: "expectRevert", - outputs: [], - stateMutability: "nonpayable", type: "function", - }, - { + name: "expectEmitAnonymous", inputs: [ { - internalType: "uint64", - name: "min", - type: "uint64", + name: "checkTopic0", + type: "bool", + internalType: "bool", }, { - internalType: "uint64", - name: "max", - type: "uint64", + name: "checkTopic1", + type: "bool", + internalType: "bool", }, - ], - name: "expectSafeMemory", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ { - internalType: "uint64", - name: "min", - type: "uint64", + name: "checkTopic2", + type: "bool", + internalType: "bool", }, { - internalType: "uint64", - name: "max", - type: "uint64", + name: "checkTopic3", + type: "bool", + internalType: "bool", }, - ], - name: "expectSafeMemoryCall", + { + 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: [ { - internalType: "uint256", name: "newBasefee", type: "uint256", + internalType: "uint256", }, ], - name: "fee", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "ffi", inputs: [ { - internalType: "string[]", name: "commandInput", type: "string[]", + internalType: "string[]", }, ], - name: "ffi", outputs: [ { - internalType: "bytes", name: "result", type: "bytes", + internalType: "bytes", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "fsMetadata", inputs: [ { - internalType: "string", name: "path", type: "string", + internalType: "string", }, ], - name: "fsMetadata", outputs: [ { + name: "metadata", + type: "tuple", + internalType: "struct VmSafe.FsMetadata", components: [ { - internalType: "bool", name: "isDir", type: "bool", + internalType: "bool", }, { - internalType: "bool", name: "isSymlink", type: "bool", + internalType: "bool", }, { - internalType: "uint256", name: "length", type: "uint256", + internalType: "uint256", }, { - internalType: "bool", name: "readOnly", type: "bool", + internalType: "bool", }, { - internalType: "uint256", name: "modified", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "accessed", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "created", type: "uint256", + internalType: "uint256", }, ], - internalType: "struct VmSafe.FsMetadata", - name: "metadata", - type: "tuple", }, ], stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "getBlobBaseFee", + inputs: [], outputs: [ { - internalType: "uint256", name: "blobBaseFee", type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "getBlobhashes", + inputs: [], outputs: [ { - internalType: "bytes32[]", name: "hashes", type: "bytes32[]", + internalType: "bytes32[]", }, ], stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "getBlockNumber", + inputs: [], outputs: [ { - internalType: "uint256", name: "height", type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "getBlockTimestamp", + inputs: [], outputs: [ { - internalType: "uint256", name: "timestamp", type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "getCode", inputs: [ { - internalType: "string", name: "artifactPath", type: "string", + internalType: "string", }, ], - name: "getCode", outputs: [ { - internalType: "bytes", name: "creationBytecode", type: "bytes", + internalType: "bytes", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "getDeployedCode", inputs: [ { - internalType: "string", name: "artifactPath", type: "string", + internalType: "string", }, ], - name: "getDeployedCode", outputs: [ { - internalType: "bytes", name: "runtimeBytecode", type: "bytes", + internalType: "bytes", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "getLabel", inputs: [ { - internalType: "address", name: "account", type: "address", + internalType: "address", }, ], - name: "getLabel", outputs: [ { - internalType: "string", name: "currentLabel", type: "string", + internalType: "string", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "getMappingKeyAndParentOf", inputs: [ { - internalType: "address", name: "target", type: "address", + internalType: "address", }, { - internalType: "bytes32", name: "elementSlot", type: "bytes32", + internalType: "bytes32", }, ], - name: "getMappingKeyAndParentOf", outputs: [ { - internalType: "bool", name: "found", type: "bool", + internalType: "bool", }, { - internalType: "bytes32", name: "key", type: "bytes32", + internalType: "bytes32", }, { - internalType: "bytes32", name: "parent", type: "bytes32", + internalType: "bytes32", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "getMappingLength", inputs: [ { - internalType: "address", name: "target", type: "address", + internalType: "address", }, { - internalType: "bytes32", name: "mappingSlot", type: "bytes32", + internalType: "bytes32", }, ], - name: "getMappingLength", outputs: [ { - internalType: "uint256", name: "length", type: "uint256", + internalType: "uint256", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "getMappingSlotAt", inputs: [ { - internalType: "address", name: "target", type: "address", + internalType: "address", }, { - internalType: "bytes32", name: "mappingSlot", type: "bytes32", + internalType: "bytes32", }, { - internalType: "uint256", name: "idx", type: "uint256", + internalType: "uint256", }, ], - name: "getMappingSlotAt", outputs: [ { - internalType: "bytes32", name: "value", type: "bytes32", + internalType: "bytes32", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "getNonce", inputs: [ { - internalType: "address", name: "account", type: "address", + internalType: "address", }, ], - name: "getNonce", outputs: [ { - internalType: "uint64", name: "nonce", type: "uint64", + internalType: "uint64", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "getNonce", inputs: [ { + name: "wallet", + type: "tuple", + internalType: "struct VmSafe.Wallet", components: [ { - internalType: "address", name: "addr", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "publicKeyX", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "publicKeyY", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "privateKey", type: "uint256", + internalType: "uint256", }, ], - internalType: "struct VmSafe.Wallet", - name: "wallet", - type: "tuple", }, ], - name: "getNonce", outputs: [ { - internalType: "uint64", name: "nonce", type: "uint64", + internalType: "uint64", }, ], stateMutability: "nonpayable", - type: "function", }, { - inputs: [], + type: "function", name: "getRecordedLogs", + inputs: [], outputs: [ { + name: "logs", + type: "tuple[]", + internalType: "struct VmSafe.Log[]", components: [ { - internalType: "bytes32[]", name: "topics", type: "bytes32[]", + internalType: "bytes32[]", }, { - internalType: "bytes", name: "data", type: "bytes", + internalType: "bytes", }, { - internalType: "address", name: "emitter", type: "address", + internalType: "address", }, ], - internalType: "struct VmSafe.Log[]", - name: "logs", - type: "tuple[]", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "indexOf", inputs: [ { - internalType: "string", name: "input", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "indexOf", outputs: [ { - internalType: "uint256", name: "", type: "uint256", + internalType: "uint256", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "isContext", inputs: [ { - internalType: "enum VmSafe.ForgeContext", name: "context", type: "uint8", + internalType: "enum VmSafe.ForgeContext", }, ], - name: "isContext", outputs: [ { - internalType: "bool", name: "result", type: "bool", + internalType: "bool", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "isDir", inputs: [ { - internalType: "string", name: "path", type: "string", + internalType: "string", }, ], - name: "isDir", outputs: [ { - internalType: "bool", name: "result", type: "bool", + internalType: "bool", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "isFile", inputs: [ { - internalType: "string", name: "path", type: "string", + internalType: "string", }, ], - name: "isFile", outputs: [ { - internalType: "bool", name: "result", type: "bool", + internalType: "bool", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "isPersistent", inputs: [ { - internalType: "address", name: "account", type: "address", + internalType: "address", }, ], - name: "isPersistent", outputs: [ { - internalType: "bool", name: "persistent", type: "bool", + internalType: "bool", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "keyExists", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "keyExists", outputs: [ { - internalType: "bool", name: "", type: "bool", + internalType: "bool", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "keyExistsJson", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "keyExistsJson", outputs: [ { - internalType: "bool", name: "", type: "bool", + internalType: "bool", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "keyExistsToml", inputs: [ { - internalType: "string", name: "toml", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "keyExistsToml", outputs: [ { - internalType: "bool", name: "", type: "bool", + internalType: "bool", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "label", inputs: [ { - internalType: "address", name: "account", type: "address", + internalType: "address", }, { - internalType: "string", name: "newLabel", type: "string", + internalType: "string", }, ], - name: "label", outputs: [], stateMutability: "nonpayable", - type: "function", }, { - inputs: [], + type: "function", name: "lastCallGas", + inputs: [], outputs: [ { + name: "gas", + type: "tuple", + internalType: "struct VmSafe.Gas", components: [ { - internalType: "uint64", name: "gasLimit", type: "uint64", + internalType: "uint64", }, { - internalType: "uint64", name: "gasTotalUsed", type: "uint64", + internalType: "uint64", }, { - internalType: "uint64", name: "gasMemoryUsed", type: "uint64", + internalType: "uint64", }, { - internalType: "int64", name: "gasRefunded", type: "int64", + internalType: "int64", }, { - internalType: "uint64", name: "gasRemaining", type: "uint64", + internalType: "uint64", }, ], - internalType: "struct VmSafe.Gas", - name: "gas", - type: "tuple", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "load", inputs: [ { - internalType: "address", name: "target", type: "address", + internalType: "address", }, { - internalType: "bytes32", name: "slot", type: "bytes32", + internalType: "bytes32", }, ], - name: "load", outputs: [ { - internalType: "bytes32", name: "data", type: "bytes32", + internalType: "bytes32", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "loadAllocs", inputs: [ { - internalType: "string", name: "pathToAllocsJson", type: "string", + internalType: "string", }, ], - name: "loadAllocs", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "makePersistent", inputs: [ { - internalType: "address[]", name: "accounts", type: "address[]", + internalType: "address[]", }, ], - name: "makePersistent", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "makePersistent", inputs: [ { - internalType: "address", name: "account0", type: "address", + internalType: "address", }, { - internalType: "address", name: "account1", type: "address", + internalType: "address", }, ], - name: "makePersistent", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "makePersistent", inputs: [ { - internalType: "address", name: "account", type: "address", + internalType: "address", }, ], - name: "makePersistent", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "makePersistent", inputs: [ { - internalType: "address", name: "account0", type: "address", + internalType: "address", }, { - internalType: "address", name: "account1", type: "address", + internalType: "address", }, { - internalType: "address", name: "account2", type: "address", + internalType: "address", }, ], - name: "makePersistent", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "mockCall", inputs: [ { - internalType: "address", name: "callee", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "msgValue", type: "uint256", + internalType: "uint256", }, { - internalType: "bytes", name: "data", type: "bytes", + internalType: "bytes", }, { - internalType: "bytes", name: "returnData", type: "bytes", + internalType: "bytes", }, ], - name: "mockCall", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "mockCall", inputs: [ { - internalType: "address", name: "callee", type: "address", + internalType: "address", }, { - internalType: "bytes", name: "data", type: "bytes", + internalType: "bytes", }, { - internalType: "bytes", name: "returnData", type: "bytes", + internalType: "bytes", }, ], - name: "mockCall", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "mockCallRevert", inputs: [ { - internalType: "address", name: "callee", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "msgValue", type: "uint256", + internalType: "uint256", }, { - internalType: "bytes", name: "data", type: "bytes", + internalType: "bytes", }, { - internalType: "bytes", name: "revertData", type: "bytes", + internalType: "bytes", }, ], - name: "mockCallRevert", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "mockCallRevert", inputs: [ { - internalType: "address", name: "callee", type: "address", + internalType: "address", }, { - internalType: "bytes", name: "data", type: "bytes", + internalType: "bytes", }, { - internalType: "bytes", name: "revertData", type: "bytes", + internalType: "bytes", }, ], - name: "mockCallRevert", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "parseAddress", inputs: [ { - internalType: "string", name: "stringifiedValue", type: "string", + internalType: "string", }, ], - name: "parseAddress", outputs: [ { - internalType: "address", name: "parsedValue", type: "address", + internalType: "address", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseBool", inputs: [ { - internalType: "string", name: "stringifiedValue", type: "string", + internalType: "string", }, ], - name: "parseBool", outputs: [ { - internalType: "bool", name: "parsedValue", type: "bool", + internalType: "bool", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseBytes", inputs: [ { - internalType: "string", name: "stringifiedValue", type: "string", + internalType: "string", }, ], - name: "parseBytes", outputs: [ { - internalType: "bytes", name: "parsedValue", type: "bytes", + internalType: "bytes", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseBytes32", inputs: [ { - internalType: "string", name: "stringifiedValue", type: "string", + internalType: "string", }, ], - name: "parseBytes32", outputs: [ { - internalType: "bytes32", name: "parsedValue", type: "bytes32", + internalType: "bytes32", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseInt", inputs: [ { - internalType: "string", name: "stringifiedValue", type: "string", + internalType: "string", }, ], - name: "parseInt", outputs: [ { - internalType: "int256", name: "parsedValue", type: "int256", + internalType: "int256", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseJson", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, ], - name: "parseJson", outputs: [ { - internalType: "bytes", name: "abiEncodedData", type: "bytes", + internalType: "bytes", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseJson", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseJson", outputs: [ { - internalType: "bytes", name: "abiEncodedData", type: "bytes", + internalType: "bytes", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseJsonAddress", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseJsonAddress", outputs: [ { - internalType: "address", name: "", type: "address", + internalType: "address", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseJsonAddressArray", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseJsonAddressArray", outputs: [ { - internalType: "address[]", name: "", type: "address[]", + internalType: "address[]", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseJsonBool", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseJsonBool", outputs: [ { - internalType: "bool", name: "", type: "bool", + internalType: "bool", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseJsonBoolArray", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseJsonBoolArray", outputs: [ { - internalType: "bool[]", name: "", type: "bool[]", + internalType: "bool[]", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseJsonBytes", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseJsonBytes", outputs: [ { - internalType: "bytes", name: "", type: "bytes", + internalType: "bytes", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseJsonBytes32", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseJsonBytes32", outputs: [ { - internalType: "bytes32", name: "", type: "bytes32", + internalType: "bytes32", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseJsonBytes32Array", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseJsonBytes32Array", outputs: [ { - internalType: "bytes32[]", name: "", type: "bytes32[]", + internalType: "bytes32[]", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseJsonBytesArray", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseJsonBytesArray", outputs: [ { - internalType: "bytes[]", name: "", type: "bytes[]", + internalType: "bytes[]", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseJsonInt", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseJsonInt", outputs: [ { - internalType: "int256", name: "", type: "int256", + internalType: "int256", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseJsonIntArray", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseJsonIntArray", outputs: [ { - internalType: "int256[]", name: "", type: "int256[]", + internalType: "int256[]", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseJsonKeys", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseJsonKeys", outputs: [ { - internalType: "string[]", name: "keys", type: "string[]", + internalType: "string[]", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseJsonString", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseJsonString", outputs: [ { - internalType: "string", name: "", type: "string", + internalType: "string", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseJsonStringArray", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseJsonStringArray", outputs: [ { - internalType: "string[]", name: "", type: "string[]", + internalType: "string[]", }, ], stateMutability: "pure", - type: "function", }, { + 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: [ { - internalType: "uint256", name: "", type: "uint256", + internalType: "uint256", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseJsonUintArray", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseJsonUintArray", outputs: [ { - internalType: "uint256[]", name: "", type: "uint256[]", + internalType: "uint256[]", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseToml", inputs: [ { - internalType: "string", name: "toml", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseToml", outputs: [ { - internalType: "bytes", name: "abiEncodedData", type: "bytes", + internalType: "bytes", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseToml", inputs: [ { - internalType: "string", name: "toml", type: "string", + internalType: "string", }, ], - name: "parseToml", outputs: [ { - internalType: "bytes", name: "abiEncodedData", type: "bytes", + internalType: "bytes", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseTomlAddress", inputs: [ { - internalType: "string", name: "toml", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseTomlAddress", outputs: [ { - internalType: "address", name: "", type: "address", + internalType: "address", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseTomlAddressArray", inputs: [ { - internalType: "string", name: "toml", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseTomlAddressArray", outputs: [ { - internalType: "address[]", name: "", type: "address[]", + internalType: "address[]", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseTomlBool", inputs: [ { - internalType: "string", name: "toml", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseTomlBool", outputs: [ { - internalType: "bool", name: "", type: "bool", + internalType: "bool", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseTomlBoolArray", inputs: [ { - internalType: "string", name: "toml", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseTomlBoolArray", outputs: [ { - internalType: "bool[]", name: "", type: "bool[]", + internalType: "bool[]", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseTomlBytes", inputs: [ { - internalType: "string", name: "toml", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseTomlBytes", outputs: [ { - internalType: "bytes", name: "", type: "bytes", + internalType: "bytes", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseTomlBytes32", inputs: [ { - internalType: "string", name: "toml", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseTomlBytes32", outputs: [ { - internalType: "bytes32", name: "", type: "bytes32", + internalType: "bytes32", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseTomlBytes32Array", inputs: [ { - internalType: "string", name: "toml", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseTomlBytes32Array", outputs: [ { - internalType: "bytes32[]", name: "", type: "bytes32[]", + internalType: "bytes32[]", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseTomlBytesArray", inputs: [ { - internalType: "string", name: "toml", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseTomlBytesArray", outputs: [ { - internalType: "bytes[]", name: "", type: "bytes[]", + internalType: "bytes[]", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseTomlInt", inputs: [ { - internalType: "string", name: "toml", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseTomlInt", outputs: [ { - internalType: "int256", name: "", type: "int256", + internalType: "int256", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseTomlIntArray", inputs: [ { - internalType: "string", name: "toml", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseTomlIntArray", outputs: [ { - internalType: "int256[]", name: "", type: "int256[]", + internalType: "int256[]", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseTomlKeys", inputs: [ { - internalType: "string", name: "toml", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseTomlKeys", outputs: [ { - internalType: "string[]", name: "keys", type: "string[]", + internalType: "string[]", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseTomlString", inputs: [ { - internalType: "string", name: "toml", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseTomlString", outputs: [ { - internalType: "string", name: "", type: "string", + internalType: "string", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseTomlStringArray", inputs: [ { - internalType: "string", name: "toml", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseTomlStringArray", outputs: [ { - internalType: "string[]", name: "", type: "string[]", + internalType: "string[]", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseTomlUint", inputs: [ { - internalType: "string", name: "toml", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseTomlUint", outputs: [ { - internalType: "uint256", name: "", type: "uint256", + internalType: "uint256", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseTomlUintArray", inputs: [ { - internalType: "string", name: "toml", type: "string", + internalType: "string", }, { - internalType: "string", name: "key", type: "string", + internalType: "string", }, ], - name: "parseTomlUintArray", outputs: [ { - internalType: "uint256[]", name: "", type: "uint256[]", + internalType: "uint256[]", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "parseUint", inputs: [ { - internalType: "string", name: "stringifiedValue", type: "string", + internalType: "string", }, ], - name: "parseUint", outputs: [ { - internalType: "uint256", name: "parsedValue", type: "uint256", + internalType: "uint256", }, ], stateMutability: "pure", - type: "function", }, { - inputs: [], + type: "function", name: "pauseGasMetering", + inputs: [], outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "prank", inputs: [ { - internalType: "address", name: "msgSender", type: "address", + internalType: "address", }, { - internalType: "address", name: "txOrigin", type: "address", + internalType: "address", }, ], - name: "prank", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "prank", inputs: [ { - internalType: "address", name: "msgSender", type: "address", + internalType: "address", }, ], - name: "prank", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "prevrandao", inputs: [ { - internalType: "bytes32", name: "newPrevrandao", type: "bytes32", + internalType: "bytes32", }, ], - name: "prevrandao", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "prevrandao", inputs: [ { - internalType: "uint256", name: "newPrevrandao", type: "uint256", + internalType: "uint256", }, ], - name: "prevrandao", outputs: [], stateMutability: "nonpayable", - type: "function", }, { - inputs: [], + type: "function", name: "projectRoot", + inputs: [], outputs: [ { - internalType: "string", name: "path", type: "string", + internalType: "string", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "prompt", inputs: [ { - internalType: "string", name: "promptText", type: "string", + internalType: "string", }, ], - name: "prompt", outputs: [ { - internalType: "string", name: "input", type: "string", + internalType: "string", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "promptAddress", inputs: [ { - internalType: "string", name: "promptText", type: "string", + internalType: "string", }, ], - name: "promptAddress", outputs: [ { - internalType: "address", name: "", type: "address", + internalType: "address", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "promptSecret", inputs: [ { - internalType: "string", name: "promptText", type: "string", + internalType: "string", }, ], - name: "promptSecret", outputs: [ { - internalType: "string", name: "input", type: "string", + internalType: "string", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "promptSecretUint", inputs: [ { - internalType: "string", name: "promptText", type: "string", + internalType: "string", }, ], - name: "promptSecretUint", outputs: [ { - internalType: "uint256", name: "", type: "uint256", + internalType: "uint256", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "promptUint", inputs: [ { - internalType: "string", name: "promptText", type: "string", + internalType: "string", }, ], - name: "promptUint", outputs: [ { - internalType: "uint256", name: "", type: "uint256", + internalType: "uint256", }, ], stateMutability: "nonpayable", - type: "function", }, { - inputs: [], + type: "function", name: "randomAddress", + inputs: [], outputs: [ { - internalType: "address", name: "", type: "address", + internalType: "address", }, ], stateMutability: "nonpayable", - type: "function", }, { - inputs: [], + type: "function", name: "randomUint", + inputs: [], outputs: [ { - internalType: "uint256", name: "", type: "uint256", + internalType: "uint256", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "randomUint", inputs: [ { - internalType: "uint256", name: "min", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "max", type: "uint256", + internalType: "uint256", }, ], - name: "randomUint", outputs: [ { - internalType: "uint256", name: "", type: "uint256", + internalType: "uint256", }, ], stateMutability: "nonpayable", - type: "function", }, { - inputs: [], + type: "function", name: "readCallers", + inputs: [], outputs: [ { - internalType: "enum VmSafe.CallerMode", name: "callerMode", type: "uint8", + internalType: "enum VmSafe.CallerMode", }, { - internalType: "address", name: "msgSender", type: "address", + internalType: "address", }, { - internalType: "address", name: "txOrigin", type: "address", + internalType: "address", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "readDir", inputs: [ { - internalType: "string", name: "path", type: "string", + internalType: "string", }, { - internalType: "uint64", name: "maxDepth", type: "uint64", + internalType: "uint64", }, ], - name: "readDir", outputs: [ { + name: "entries", + type: "tuple[]", + internalType: "struct VmSafe.DirEntry[]", components: [ { - internalType: "string", name: "errorMessage", type: "string", + internalType: "string", }, { - internalType: "string", name: "path", type: "string", + internalType: "string", }, { - internalType: "uint64", name: "depth", type: "uint64", + internalType: "uint64", }, { - internalType: "bool", name: "isDir", type: "bool", + internalType: "bool", }, { - internalType: "bool", name: "isSymlink", type: "bool", + internalType: "bool", }, ], - internalType: "struct VmSafe.DirEntry[]", - name: "entries", - type: "tuple[]", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "readDir", inputs: [ { - internalType: "string", name: "path", type: "string", + internalType: "string", }, { - internalType: "uint64", name: "maxDepth", type: "uint64", + internalType: "uint64", }, { - internalType: "bool", name: "followLinks", type: "bool", + internalType: "bool", }, ], - name: "readDir", outputs: [ { + name: "entries", + type: "tuple[]", + internalType: "struct VmSafe.DirEntry[]", components: [ { - internalType: "string", name: "errorMessage", type: "string", + internalType: "string", }, { - internalType: "string", name: "path", type: "string", + internalType: "string", }, { - internalType: "uint64", name: "depth", type: "uint64", + internalType: "uint64", }, { - internalType: "bool", name: "isDir", type: "bool", + internalType: "bool", }, { - internalType: "bool", name: "isSymlink", type: "bool", + internalType: "bool", }, ], - internalType: "struct VmSafe.DirEntry[]", - name: "entries", - type: "tuple[]", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "readDir", inputs: [ { - internalType: "string", name: "path", type: "string", + internalType: "string", }, ], - name: "readDir", outputs: [ { + name: "entries", + type: "tuple[]", + internalType: "struct VmSafe.DirEntry[]", components: [ { - internalType: "string", name: "errorMessage", type: "string", + internalType: "string", }, { - internalType: "string", name: "path", type: "string", + internalType: "string", }, { - internalType: "uint64", name: "depth", type: "uint64", + internalType: "uint64", }, { - internalType: "bool", name: "isDir", type: "bool", + internalType: "bool", }, { - internalType: "bool", name: "isSymlink", type: "bool", + internalType: "bool", }, ], - internalType: "struct VmSafe.DirEntry[]", - name: "entries", - type: "tuple[]", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "readFile", inputs: [ { - internalType: "string", name: "path", type: "string", + internalType: "string", }, ], - name: "readFile", outputs: [ { - internalType: "string", name: "data", type: "string", + internalType: "string", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "readFileBinary", inputs: [ { - internalType: "string", name: "path", type: "string", + internalType: "string", }, ], - name: "readFileBinary", outputs: [ { - internalType: "bytes", name: "data", type: "bytes", + internalType: "bytes", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "readLine", inputs: [ { - internalType: "string", name: "path", type: "string", + internalType: "string", }, ], - name: "readLine", outputs: [ { - internalType: "string", name: "line", type: "string", + internalType: "string", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "readLink", inputs: [ { - internalType: "string", name: "linkPath", type: "string", + internalType: "string", }, ], - name: "readLink", outputs: [ { - internalType: "string", name: "targetPath", type: "string", + internalType: "string", }, ], stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "record", + inputs: [], outputs: [], stateMutability: "nonpayable", - type: "function", }, { - inputs: [], + type: "function", name: "recordLogs", + inputs: [], outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "rememberKey", inputs: [ { - internalType: "uint256", name: "privateKey", type: "uint256", + internalType: "uint256", }, ], - name: "rememberKey", outputs: [ { - internalType: "address", name: "keyAddr", type: "address", + internalType: "address", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "removeDir", inputs: [ { - internalType: "string", name: "path", type: "string", + internalType: "string", }, { - internalType: "bool", name: "recursive", type: "bool", + internalType: "bool", }, ], - name: "removeDir", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "removeFile", inputs: [ { - internalType: "string", name: "path", type: "string", + internalType: "string", }, ], - name: "removeFile", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "replace", inputs: [ { - internalType: "string", name: "input", type: "string", + internalType: "string", }, { - internalType: "string", name: "from", type: "string", + internalType: "string", }, { - internalType: "string", name: "to", type: "string", + internalType: "string", }, ], - name: "replace", outputs: [ { - internalType: "string", name: "output", type: "string", + internalType: "string", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "resetNonce", inputs: [ { - internalType: "address", name: "account", type: "address", + internalType: "address", }, ], - name: "resetNonce", outputs: [], stateMutability: "nonpayable", - type: "function", }, { - inputs: [], + type: "function", name: "resumeGasMetering", + inputs: [], outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "revertTo", inputs: [ { - internalType: "uint256", name: "snapshotId", type: "uint256", + internalType: "uint256", }, ], - name: "revertTo", outputs: [ { - internalType: "bool", name: "success", type: "bool", + internalType: "bool", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "revertToAndDelete", inputs: [ { - internalType: "uint256", name: "snapshotId", type: "uint256", + internalType: "uint256", }, ], - name: "revertToAndDelete", outputs: [ { - internalType: "bool", name: "success", type: "bool", + internalType: "bool", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "revokePersistent", inputs: [ { - internalType: "address[]", name: "accounts", type: "address[]", + internalType: "address[]", }, ], - name: "revokePersistent", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "revokePersistent", inputs: [ { - internalType: "address", name: "account", type: "address", + internalType: "address", }, ], - name: "revokePersistent", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "roll", inputs: [ { - internalType: "uint256", name: "newHeight", type: "uint256", + internalType: "uint256", }, ], - name: "roll", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "rollFork", inputs: [ { - internalType: "bytes32", name: "txHash", type: "bytes32", + internalType: "bytes32", }, ], - name: "rollFork", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "rollFork", inputs: [ { - internalType: "uint256", name: "forkId", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "blockNumber", type: "uint256", + internalType: "uint256", }, ], - name: "rollFork", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "rollFork", inputs: [ { - internalType: "uint256", name: "blockNumber", type: "uint256", + internalType: "uint256", }, ], - name: "rollFork", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "rollFork", inputs: [ { - internalType: "uint256", name: "forkId", type: "uint256", + internalType: "uint256", }, { - internalType: "bytes32", name: "txHash", type: "bytes32", + internalType: "bytes32", }, ], - name: "rollFork", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + 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: [ { - internalType: "string", name: "method", type: "string", + internalType: "string", }, { - internalType: "string", name: "params", type: "string", + internalType: "string", }, ], - name: "rpc", outputs: [ { - internalType: "bytes", name: "data", type: "bytes", + internalType: "bytes", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "rpcUrl", inputs: [ { - internalType: "string", name: "rpcAlias", type: "string", + internalType: "string", }, ], - name: "rpcUrl", outputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, ], stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "rpcUrlStructs", + inputs: [], outputs: [ { + name: "urls", + type: "tuple[]", + internalType: "struct VmSafe.Rpc[]", components: [ { - internalType: "string", name: "key", type: "string", + internalType: "string", }, { - internalType: "string", name: "url", type: "string", + internalType: "string", }, ], - internalType: "struct VmSafe.Rpc[]", - name: "urls", - type: "tuple[]", }, ], stateMutability: "view", - type: "function", }, { - inputs: [], + type: "function", name: "rpcUrls", + inputs: [], outputs: [ { - internalType: "string[2][]", name: "urls", type: "string[2][]", + internalType: "string[2][]", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "selectFork", inputs: [ { - internalType: "uint256", name: "forkId", type: "uint256", + internalType: "uint256", }, ], - name: "selectFork", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "serializeAddress", inputs: [ { - internalType: "string", name: "objectKey", type: "string", + internalType: "string", }, { - internalType: "string", name: "valueKey", type: "string", + internalType: "string", }, { - internalType: "address[]", name: "values", type: "address[]", + internalType: "address[]", }, ], - name: "serializeAddress", outputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "serializeAddress", inputs: [ { - internalType: "string", name: "objectKey", type: "string", + internalType: "string", }, { - internalType: "string", name: "valueKey", type: "string", + internalType: "string", }, { - internalType: "address", name: "value", type: "address", + internalType: "address", }, ], - name: "serializeAddress", outputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "serializeBool", inputs: [ { - internalType: "string", name: "objectKey", type: "string", + internalType: "string", }, { - internalType: "string", name: "valueKey", type: "string", + internalType: "string", }, { - internalType: "bool[]", name: "values", type: "bool[]", + internalType: "bool[]", }, ], - name: "serializeBool", outputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "serializeBool", inputs: [ { - internalType: "string", name: "objectKey", type: "string", + internalType: "string", }, { - internalType: "string", name: "valueKey", type: "string", + internalType: "string", }, { - internalType: "bool", name: "value", type: "bool", + internalType: "bool", }, ], - name: "serializeBool", outputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "serializeBytes", inputs: [ { - internalType: "string", name: "objectKey", type: "string", + internalType: "string", }, { - internalType: "string", name: "valueKey", type: "string", + internalType: "string", }, { - internalType: "bytes[]", name: "values", type: "bytes[]", + internalType: "bytes[]", }, ], - name: "serializeBytes", outputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "serializeBytes", inputs: [ { - internalType: "string", name: "objectKey", type: "string", + internalType: "string", }, { - internalType: "string", name: "valueKey", type: "string", + internalType: "string", }, { - internalType: "bytes", name: "value", type: "bytes", + internalType: "bytes", }, ], - name: "serializeBytes", outputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "serializeBytes32", inputs: [ { - internalType: "string", name: "objectKey", type: "string", + internalType: "string", }, { - internalType: "string", name: "valueKey", type: "string", + internalType: "string", }, { - internalType: "bytes32[]", name: "values", type: "bytes32[]", + internalType: "bytes32[]", }, ], - name: "serializeBytes32", outputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "serializeBytes32", inputs: [ { - internalType: "string", name: "objectKey", type: "string", + internalType: "string", }, { - internalType: "string", name: "valueKey", type: "string", + internalType: "string", }, { - internalType: "bytes32", name: "value", type: "bytes32", + internalType: "bytes32", }, ], - name: "serializeBytes32", outputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "serializeInt", inputs: [ { - internalType: "string", name: "objectKey", type: "string", + internalType: "string", }, { - internalType: "string", name: "valueKey", type: "string", + internalType: "string", }, { - internalType: "int256", name: "value", type: "int256", + internalType: "int256", }, ], - name: "serializeInt", outputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "serializeInt", inputs: [ { - internalType: "string", name: "objectKey", type: "string", + internalType: "string", }, { - internalType: "string", name: "valueKey", type: "string", + internalType: "string", }, { - internalType: "int256[]", name: "values", type: "int256[]", + internalType: "int256[]", }, ], - name: "serializeInt", outputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "serializeJson", inputs: [ { - internalType: "string", name: "objectKey", type: "string", + internalType: "string", }, { - internalType: "string", name: "value", type: "string", + internalType: "string", }, ], - name: "serializeJson", outputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, ], stateMutability: "nonpayable", - type: "function", }, { + 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", }, { - internalType: "string[]", name: "values", type: "string[]", + internalType: "string[]", }, ], - name: "serializeString", outputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "serializeString", inputs: [ { - internalType: "string", name: "objectKey", type: "string", + internalType: "string", }, { - internalType: "string", name: "valueKey", type: "string", + internalType: "string", }, { - internalType: "string", name: "value", type: "string", + internalType: "string", }, ], - name: "serializeString", outputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "serializeUint", inputs: [ { - internalType: "string", name: "objectKey", type: "string", + internalType: "string", }, { - internalType: "string", name: "valueKey", type: "string", + internalType: "string", }, { - internalType: "uint256", name: "value", type: "uint256", + internalType: "uint256", }, ], - name: "serializeUint", outputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "serializeUint", inputs: [ { - internalType: "string", name: "objectKey", type: "string", + internalType: "string", }, { - internalType: "string", name: "valueKey", type: "string", + internalType: "string", }, { - internalType: "uint256[]", name: "values", type: "uint256[]", + internalType: "uint256[]", }, ], - name: "serializeUint", outputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "serializeUintToHex", inputs: [ { - internalType: "string", name: "objectKey", type: "string", + internalType: "string", }, { - internalType: "string", name: "valueKey", type: "string", + internalType: "string", }, { - internalType: "uint256", name: "value", type: "uint256", + internalType: "uint256", }, ], - name: "serializeUintToHex", outputs: [ { - internalType: "string", 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: [ { - internalType: "string", name: "name", type: "string", + internalType: "string", }, { - internalType: "string", name: "value", type: "string", + internalType: "string", }, ], - name: "setEnv", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "setNonce", inputs: [ { - internalType: "address", name: "account", type: "address", + internalType: "address", }, { - internalType: "uint64", name: "newNonce", type: "uint64", + internalType: "uint64", }, ], - name: "setNonce", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "setNonceUnsafe", inputs: [ { - internalType: "address", name: "account", type: "address", + internalType: "address", }, { - internalType: "uint64", name: "newNonce", type: "uint64", + internalType: "uint64", }, ], - name: "setNonceUnsafe", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "sign", inputs: [ { - internalType: "bytes32", name: "digest", type: "bytes32", + internalType: "bytes32", }, ], - name: "sign", outputs: [ { - internalType: "uint8", name: "v", type: "uint8", + internalType: "uint8", }, { - internalType: "bytes32", name: "r", type: "bytes32", + internalType: "bytes32", }, { - internalType: "bytes32", name: "s", type: "bytes32", + internalType: "bytes32", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "sign", inputs: [ { - internalType: "address", name: "signer", type: "address", + internalType: "address", }, { - internalType: "bytes32", name: "digest", type: "bytes32", + internalType: "bytes32", }, ], - name: "sign", outputs: [ { - internalType: "uint8", name: "v", type: "uint8", + internalType: "uint8", }, { - internalType: "bytes32", name: "r", type: "bytes32", + internalType: "bytes32", }, { - internalType: "bytes32", name: "s", type: "bytes32", + internalType: "bytes32", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "sign", inputs: [ { + name: "wallet", + type: "tuple", + internalType: "struct VmSafe.Wallet", components: [ { - internalType: "address", name: "addr", type: "address", + internalType: "address", }, { - internalType: "uint256", name: "publicKeyX", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "publicKeyY", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "privateKey", type: "uint256", + internalType: "uint256", }, ], - internalType: "struct VmSafe.Wallet", - name: "wallet", - type: "tuple", }, { - internalType: "bytes32", name: "digest", type: "bytes32", + internalType: "bytes32", }, ], - name: "sign", outputs: [ { - internalType: "uint8", name: "v", type: "uint8", + internalType: "uint8", }, { - internalType: "bytes32", name: "r", type: "bytes32", + internalType: "bytes32", }, { - internalType: "bytes32", name: "s", type: "bytes32", + internalType: "bytes32", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "sign", inputs: [ { - internalType: "uint256", name: "privateKey", type: "uint256", + internalType: "uint256", }, { - internalType: "bytes32", name: "digest", type: "bytes32", + internalType: "bytes32", }, ], - name: "sign", outputs: [ { - internalType: "uint8", name: "v", type: "uint8", + internalType: "uint8", }, { - internalType: "bytes32", name: "r", type: "bytes32", + internalType: "bytes32", }, { - internalType: "bytes32", name: "s", type: "bytes32", + internalType: "bytes32", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "signP256", inputs: [ { - internalType: "uint256", name: "privateKey", type: "uint256", + internalType: "uint256", }, { - internalType: "bytes32", name: "digest", type: "bytes32", + internalType: "bytes32", }, ], - name: "signP256", outputs: [ { - internalType: "bytes32", name: "r", type: "bytes32", + internalType: "bytes32", }, { - internalType: "bytes32", name: "s", type: "bytes32", + internalType: "bytes32", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "skip", inputs: [ { - internalType: "bool", name: "skipTest", type: "bool", + internalType: "bool", }, ], - name: "skip", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "sleep", inputs: [ { - internalType: "uint256", name: "duration", type: "uint256", + internalType: "uint256", }, ], - name: "sleep", outputs: [], stateMutability: "nonpayable", - type: "function", }, { - inputs: [], + type: "function", name: "snapshot", + inputs: [], outputs: [ { - internalType: "uint256", name: "snapshotId", type: "uint256", + internalType: "uint256", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "split", inputs: [ { - internalType: "string", name: "input", type: "string", + internalType: "string", }, { - internalType: "string", name: "delimiter", type: "string", + internalType: "string", }, ], - name: "split", outputs: [ { - internalType: "string[]", name: "outputs", type: "string[]", + internalType: "string[]", }, ], stateMutability: "pure", - type: "function", }, { - inputs: [], + type: "function", name: "startBroadcast", + inputs: [], outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "startBroadcast", inputs: [ { - internalType: "address", name: "signer", type: "address", + internalType: "address", }, ], - name: "startBroadcast", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "startBroadcast", inputs: [ { - internalType: "uint256", name: "privateKey", type: "uint256", + internalType: "uint256", }, ], - name: "startBroadcast", outputs: [], stateMutability: "nonpayable", - type: "function", }, { - inputs: [], + type: "function", name: "startMappingRecording", + inputs: [], outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "startPrank", inputs: [ { - internalType: "address", name: "msgSender", type: "address", + internalType: "address", }, ], - name: "startPrank", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "startPrank", inputs: [ { - internalType: "address", name: "msgSender", type: "address", + internalType: "address", }, { - internalType: "address", name: "txOrigin", type: "address", + internalType: "address", }, ], - name: "startPrank", outputs: [], stateMutability: "nonpayable", - type: "function", }, { - inputs: [], + type: "function", name: "startStateDiffRecording", + inputs: [], outputs: [], stateMutability: "nonpayable", - type: "function", }, { - inputs: [], + type: "function", name: "stopAndReturnStateDiff", + inputs: [], outputs: [ { + name: "accountAccesses", + type: "tuple[]", + internalType: "struct VmSafe.AccountAccess[]", components: [ { + name: "chainInfo", + type: "tuple", + internalType: "struct VmSafe.ChainInfo", components: [ { - internalType: "uint256", name: "forkId", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "chainId", type: "uint256", + internalType: "uint256", }, ], - internalType: "struct VmSafe.ChainInfo", - name: "chainInfo", - type: "tuple", }, { - internalType: "enum VmSafe.AccountAccessKind", name: "kind", type: "uint8", + internalType: "enum VmSafe.AccountAccessKind", }, { - internalType: "address", name: "account", type: "address", + internalType: "address", }, { - internalType: "address", name: "accessor", type: "address", + internalType: "address", }, { - internalType: "bool", name: "initialized", type: "bool", + internalType: "bool", }, { - internalType: "uint256", name: "oldBalance", type: "uint256", + internalType: "uint256", }, { - internalType: "uint256", name: "newBalance", type: "uint256", + internalType: "uint256", }, { - internalType: "bytes", name: "deployedCode", type: "bytes", + internalType: "bytes", }, { - internalType: "uint256", name: "value", type: "uint256", + internalType: "uint256", }, { - internalType: "bytes", name: "data", type: "bytes", + internalType: "bytes", }, { - internalType: "bool", name: "reverted", type: "bool", + internalType: "bool", }, { + name: "storageAccesses", + type: "tuple[]", + internalType: "struct VmSafe.StorageAccess[]", components: [ { - internalType: "address", name: "account", type: "address", + internalType: "address", }, { - internalType: "bytes32", name: "slot", type: "bytes32", + internalType: "bytes32", }, { - internalType: "bool", name: "isWrite", type: "bool", + internalType: "bool", }, { - internalType: "bytes32", name: "previousValue", type: "bytes32", + internalType: "bytes32", }, { - internalType: "bytes32", name: "newValue", type: "bytes32", + internalType: "bytes32", }, { - internalType: "bool", name: "reverted", type: "bool", + internalType: "bool", }, ], - internalType: "struct VmSafe.StorageAccess[]", - name: "storageAccesses", - type: "tuple[]", }, { - internalType: "uint64", name: "depth", type: "uint64", + internalType: "uint64", }, ], - internalType: "struct VmSafe.AccountAccess[]", - name: "accountAccesses", - type: "tuple[]", }, ], stateMutability: "nonpayable", - type: "function", }, { - inputs: [], + type: "function", name: "stopBroadcast", + inputs: [], outputs: [], stateMutability: "nonpayable", - type: "function", }, { - inputs: [], + type: "function", name: "stopExpectSafeMemory", + inputs: [], outputs: [], stateMutability: "nonpayable", - type: "function", }, { - inputs: [], + type: "function", name: "stopMappingRecording", + inputs: [], outputs: [], stateMutability: "nonpayable", - type: "function", }, { - inputs: [], + type: "function", name: "stopPrank", + inputs: [], outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "store", inputs: [ { - internalType: "address", name: "target", type: "address", + internalType: "address", }, { - internalType: "bytes32", name: "slot", type: "bytes32", + internalType: "bytes32", }, { - internalType: "bytes32", name: "value", type: "bytes32", + internalType: "bytes32", }, ], - name: "store", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "toBase64", inputs: [ { - internalType: "string", name: "data", type: "string", + internalType: "string", }, ], - name: "toBase64", outputs: [ { - internalType: "string", name: "", type: "string", + internalType: "string", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "toBase64", inputs: [ { - internalType: "bytes", name: "data", type: "bytes", + internalType: "bytes", }, ], - name: "toBase64", outputs: [ { - internalType: "string", name: "", type: "string", + internalType: "string", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "toBase64URL", inputs: [ { - internalType: "string", name: "data", type: "string", + internalType: "string", }, ], - name: "toBase64URL", outputs: [ { - internalType: "string", name: "", type: "string", + internalType: "string", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "toBase64URL", inputs: [ { - internalType: "bytes", name: "data", type: "bytes", + internalType: "bytes", }, ], - name: "toBase64URL", outputs: [ { - internalType: "string", name: "", type: "string", + internalType: "string", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "toLowercase", inputs: [ { - internalType: "string", name: "input", type: "string", + internalType: "string", }, ], - name: "toLowercase", outputs: [ { - internalType: "string", name: "output", type: "string", + internalType: "string", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "toString", inputs: [ { - internalType: "address", name: "value", type: "address", + internalType: "address", }, ], - name: "toString", outputs: [ { - internalType: "string", name: "stringifiedValue", type: "string", + internalType: "string", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "toString", inputs: [ { - internalType: "uint256", name: "value", type: "uint256", + internalType: "uint256", }, ], - name: "toString", outputs: [ { - internalType: "string", name: "stringifiedValue", type: "string", + internalType: "string", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "toString", inputs: [ { - internalType: "bytes", name: "value", type: "bytes", + internalType: "bytes", }, ], - name: "toString", outputs: [ { - internalType: "string", name: "stringifiedValue", type: "string", + internalType: "string", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "toString", inputs: [ { - internalType: "bool", name: "value", type: "bool", + internalType: "bool", }, ], - name: "toString", outputs: [ { - internalType: "string", name: "stringifiedValue", type: "string", + internalType: "string", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "toString", inputs: [ { - internalType: "int256", name: "value", type: "int256", + internalType: "int256", }, ], - name: "toString", outputs: [ { - internalType: "string", name: "stringifiedValue", type: "string", + internalType: "string", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "toString", inputs: [ { - internalType: "bytes32", name: "value", type: "bytes32", + internalType: "bytes32", }, ], - name: "toString", outputs: [ { - internalType: "string", name: "stringifiedValue", type: "string", + internalType: "string", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "toUppercase", inputs: [ { - internalType: "string", name: "input", type: "string", + internalType: "string", }, ], - name: "toUppercase", outputs: [ { - internalType: "string", name: "output", type: "string", + internalType: "string", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "transact", inputs: [ { - internalType: "uint256", name: "forkId", type: "uint256", + internalType: "uint256", }, { - internalType: "bytes32", name: "txHash", type: "bytes32", + internalType: "bytes32", }, ], - name: "transact", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "transact", inputs: [ { - internalType: "bytes32", name: "txHash", type: "bytes32", + internalType: "bytes32", }, ], - name: "transact", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "trim", inputs: [ { - internalType: "string", name: "input", type: "string", + internalType: "string", }, ], - name: "trim", outputs: [ { - internalType: "string", name: "output", type: "string", + internalType: "string", }, ], stateMutability: "pure", - type: "function", }, { + type: "function", + name: "tryFfi", inputs: [ { - internalType: "string[]", name: "commandInput", type: "string[]", + internalType: "string[]", }, ], - name: "tryFfi", outputs: [ { + name: "result", + type: "tuple", + internalType: "struct VmSafe.FfiResult", components: [ { - internalType: "int32", name: "exitCode", type: "int32", + internalType: "int32", }, { - internalType: "bytes", name: "stdout", type: "bytes", + internalType: "bytes", }, { - internalType: "bytes", name: "stderr", type: "bytes", + internalType: "bytes", }, ], - internalType: "struct VmSafe.FfiResult", - name: "result", - type: "tuple", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "txGasPrice", inputs: [ { - internalType: "uint256", name: "newGasPrice", type: "uint256", + internalType: "uint256", }, ], - name: "txGasPrice", outputs: [], stateMutability: "nonpayable", - type: "function", }, { - inputs: [], + type: "function", name: "unixTime", + inputs: [], outputs: [ { - internalType: "uint256", name: "milliseconds", type: "uint256", + internalType: "uint256", }, ], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "warp", inputs: [ { - internalType: "uint256", name: "newTimestamp", type: "uint256", + internalType: "uint256", }, ], - name: "warp", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "writeFile", inputs: [ { - internalType: "string", name: "path", type: "string", + internalType: "string", }, { - internalType: "string", name: "data", type: "string", + internalType: "string", }, ], - name: "writeFile", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "writeFileBinary", inputs: [ { - internalType: "string", name: "path", type: "string", + internalType: "string", }, { - internalType: "bytes", name: "data", type: "bytes", + internalType: "bytes", }, ], - name: "writeFileBinary", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "writeJson", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "path", type: "string", + internalType: "string", }, { - internalType: "string", name: "valueKey", type: "string", + internalType: "string", }, ], - name: "writeJson", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "writeJson", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "path", type: "string", + internalType: "string", }, ], - name: "writeJson", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "writeLine", inputs: [ { - internalType: "string", name: "path", type: "string", + internalType: "string", }, { - internalType: "string", name: "data", type: "string", + internalType: "string", }, ], - name: "writeLine", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "writeToml", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "path", type: "string", + internalType: "string", }, { - internalType: "string", name: "valueKey", type: "string", + internalType: "string", }, ], - name: "writeToml", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "writeToml", inputs: [ { - internalType: "string", name: "json", type: "string", + internalType: "string", }, { - internalType: "string", name: "path", type: "string", + internalType: "string", }, ], - name: "writeToml", outputs: [], stateMutability: "nonpayable", - type: "function", }, ] as const; export class Vm__factory { static readonly abi = _abi; static createInterface(): VmInterface { - return new utils.Interface(_abi) as VmInterface; + return new Interface(_abi) as VmInterface; } - static connect(address: string, signerOrProvider: Signer | Provider): Vm { - return new Contract(address, _abi, signerOrProvider) as Vm; + static connect(address: string, runner?: ContractRunner | null): Vm { + return new Contract(address, _abi, runner) as unknown as Vm; } } diff --git a/typechain-types/factories/forge-std/Vm.sol/index.ts b/v2/typechain-types/factories/Vm.sol/index.ts similarity index 100% rename from typechain-types/factories/forge-std/Vm.sol/index.ts rename to v2/typechain-types/factories/Vm.sol/index.ts 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/typechain-types/factories/contracts/prototypes/zevm/ZRC20New.sol/ZRC20Errors__factory.ts b/v2/typechain-types/factories/ZRC20.sol/ZRC20Errors__factory.ts similarity index 67% rename from typechain-types/factories/contracts/prototypes/zevm/ZRC20New.sol/ZRC20Errors__factory.ts rename to v2/typechain-types/factories/ZRC20.sol/ZRC20Errors__factory.ts index 299c388e..22f60b1c 100644 --- a/typechain-types/factories/contracts/prototypes/zevm/ZRC20New.sol/ZRC20Errors__factory.ts +++ b/v2/typechain-types/factories/ZRC20.sol/ZRC20Errors__factory.ts @@ -2,65 +2,61 @@ /* tslint:disable */ /* eslint-disable */ -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; +import { Contract, Interface, type ContractRunner } from "ethers"; import type { ZRC20Errors, ZRC20ErrorsInterface, -} from "../../../../../contracts/prototypes/zevm/ZRC20New.sol/ZRC20Errors"; +} from "../../ZRC20.sol/ZRC20Errors"; const _abi = [ { - inputs: [], - name: "CallerIsNotFungibleModule", type: "error", + name: "CallerIsNotFungibleModule", + inputs: [], }, { - inputs: [], - name: "GasFeeTransferFailed", type: "error", + name: "GasFeeTransferFailed", + inputs: [], }, { - inputs: [], - name: "InvalidSender", type: "error", + name: "InvalidSender", + inputs: [], }, { - inputs: [], - name: "LowAllowance", type: "error", + name: "LowAllowance", + inputs: [], }, { - inputs: [], - name: "LowBalance", type: "error", + name: "LowBalance", + inputs: [], }, { - inputs: [], - name: "ZeroAddress", type: "error", + name: "ZeroAddress", + inputs: [], }, { - inputs: [], - name: "ZeroGasCoin", type: "error", + name: "ZeroGasCoin", + inputs: [], }, { - inputs: [], - name: "ZeroGasPrice", type: "error", + name: "ZeroGasPrice", + inputs: [], }, ] as const; export class ZRC20Errors__factory { static readonly abi = _abi; static createInterface(): ZRC20ErrorsInterface { - return new utils.Interface(_abi) as ZRC20ErrorsInterface; + return new Interface(_abi) as ZRC20ErrorsInterface; } - static connect( - address: string, - signerOrProvider: Signer | Provider - ): ZRC20Errors { - return new Contract(address, _abi, signerOrProvider) as ZRC20Errors; + 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/ZRC20.sol/ZRC20__factory.ts b/v2/typechain-types/factories/ZRC20.sol/ZRC20__factory.ts new file mode 100644 index 00000000..918daaa0 --- /dev/null +++ b/v2/typechain-types/factories/ZRC20.sol/ZRC20__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 { ZRC20, ZRC20Interface } from "../../ZRC20.sol/ZRC20"; + +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 = + "0x60c060405234801561001057600080fd5b506040516119e83803806119e883398101604081905261002f916101db565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461006357604051632b2add3d60e01b815260040160405180910390fd5b600761006f898261032d565b50600861007c888261032d565b506009805460ff191660ff881617905560808590528360028111156100a3576100a36103eb565b60a08160028111156100b7576100b76103eb565b905250600292909255600080546001600160a01b039283166001600160a01b03199182161790915560018054929093169116179055506104019350505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261011e57600080fd5b81516001600160401b03811115610137576101376100f7565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610165576101656100f7565b60405281815283820160200185101561017d57600080fd5b60005b8281101561019c57602081860181015183830182015201610180565b506000918101602001919091529392505050565b8051600381106101bf57600080fd5b919050565b80516001600160a01b03811681146101bf57600080fd5b600080600080600080600080610100898b0312156101f857600080fd5b88516001600160401b0381111561020e57600080fd5b61021a8b828c0161010d565b60208b015190995090506001600160401b0381111561023857600080fd5b6102448b828c0161010d565b975050604089015160ff8116811461025b57600080fd5b60608a0151909650945061027160808a016101b0565b60a08a0151909450925061028760c08a016101c4565b915061029560e08a016101c4565b90509295985092959890939650565b600181811c908216806102b857607f821691505b6020821081036102d857634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561032857806000526020600020601f840160051c810160208510156103055750805b601f840160051c820191505b818110156103255760008155600101610311565b50505b505050565b81516001600160401b03811115610346576103466100f7565b61035a8161035484546102a4565b846102de565b6020601f82116001811461038e57600083156103765750848201515b600019600385901b1c1916600184901b178455610325565b600084815260208120601f198516915b828110156103be578785015182556020948501946001909201910161039e565b50848210156103dc5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b600052602160045260246000fd5b60805160a0516115b461043460003960006102f30152600081816102c4015281816109430152610a4901526115b46000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c806385e1f4d0116100e3578063d9eeebed1161008c578063eddeb12311610066578063eddeb123146103f7578063f2441b321461040a578063f687d12a1461042a57600080fd5b8063d9eeebed1461035d578063dd62ed3e14610391578063e2f535b8146103d757600080fd5b8063a9059cbb116100bd578063a9059cbb14610322578063c701262614610335578063c835d7cc1461034857600080fd5b806385e1f4d0146102bf57806395d89b41146102e6578063a3413d03146102ee57600080fd5b8063313ce5671161014557806347e7ef241161011f57806347e7ef241461026d5780634d8943bb1461028057806370a082311461028957600080fd5b8063313ce567146102055780633ce4a5bc1461021a57806342966c681461025a57600080fd5b8063095ea7b311610176578063095ea7b3146101c757806318160ddd146101ea57806323b872dd146101f257600080fd5b806306fdde0314610192578063091d2788146101b0575b600080fd5b61019a61043d565b6040516101a79190611193565b60405180910390f35b6101b960025481565b6040519081526020016101a7565b6101da6101d53660046111d2565b6104cf565b60405190151581526020016101a7565b6006546101b9565b6101da6102003660046111fe565b6104e6565b60095460405160ff90911681526020016101a7565b61023573735b14bb79463307aacbed86daf3322b1e6226ab81565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a7565b6101da61026836600461123f565b61057d565b6101da61027b3660046111d2565b610591565b6101b960035481565b6101b9610297366004611258565b73ffffffffffffffffffffffffffffffffffffffff1660009081526004602052604090205490565b6101b97f000000000000000000000000000000000000000000000000000000000000000081565b61019a6106e5565b6103157f000000000000000000000000000000000000000000000000000000000000000081565b6040516101a79190611275565b6101da6103303660046111d2565b6106f4565b6101da6103433660046112e5565b610701565b61035b610356366004611258565b610850565b005b610365610917565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526020830191909152016101a7565b6101b961039f3660046113dd565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020908152604080832093909416825291909152205490565b6001546102359073ffffffffffffffffffffffffffffffffffffffff1681565b61035b61040536600461123f565b610b35565b6000546102359073ffffffffffffffffffffffffffffffffffffffff1681565b61035b61043836600461123f565b610bb7565b60606007805461044c90611416565b80601f016020809104026020016040519081016040528092919081815260200182805461047890611416565b80156104c55780601f1061049a576101008083540402835291602001916104c5565b820191906000526020600020905b8154815290600101906020018083116104a857829003601f168201915b5050505050905090565b60006104dc338484610c39565b5060015b92915050565b60006104f3848484610d42565b73ffffffffffffffffffffffffffffffffffffffff841660009081526005602090815260408083203384529091529020548281101561055e576040517f10bad14700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610572853361056d8685611498565b610c39565b506001949350505050565b60006105893383610efd565b506001919050565b60003373735b14bb79463307aacbed86daf3322b1e6226ab148015906105cf575060005473ffffffffffffffffffffffffffffffffffffffff163314155b80156105f3575060015473ffffffffffffffffffffffffffffffffffffffff163314155b1561062a576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610634838361103f565b6040517f735b14bb79463307aacbed86daf3322b1e6226ab000000000000000000000000602082015273ffffffffffffffffffffffffffffffffffffffff8416907f67fc7bdaed5b0ec550d8706b87d60568ab70c6b781263c70101d54cd1564aab390603401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526106d49186906114ab565b60405180910390a250600192915050565b60606008805461044c90611416565b60006104dc338484610d42565b600080600061070e610917565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273735b14bb79463307aacbed86daf3322b1e6226ab602482015260448101829052919350915073ffffffffffffffffffffffffffffffffffffffff8316906323b872dd906064016020604051808303816000875af11580156107a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c491906114cd565b6107fa576040517f0a7cd6d600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108043385610efd565b60035460405133917f9ffbffc04a397460ee1dbe8c9503e098090567d6b7f4b3c02a8617d800b6d9559161083d918991899187916114ef565b60405180910390a2506001949350505050565b3373735b14bb79463307aacbed86daf3322b1e6226ab1461089d576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fd55614e962c5fd6ece71614f6348d702468a997a394dd5e5c1677950226d97ae906020015b60405180910390a150565b600080546040517f0be155470000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000060048201528291829173ffffffffffffffffffffffffffffffffffffffff90911690630be1554790602401602060405180830381865afa1580156109aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ce919061151e565b905073ffffffffffffffffffffffffffffffffffffffff8116610a1d576040517f78fff39600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080546040517fd7fd7afb0000000000000000000000000000000000000000000000000000000081527f0000000000000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff9091169063d7fd7afb90602401602060405180830381865afa158015610aac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad0919061153b565b905080600003610b0c576040517fe661aed000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060035460025483610b1f9190611554565b610b29919061156b565b92959294509192505050565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610b82576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60038190556040518181527fef13af88e424b5d15f49c77758542c1938b08b8b95b91ed0751f98ba99000d8f9060200161090c565b3373735b14bb79463307aacbed86daf3322b1e6226ab14610c04576040517f2b2add3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028190556040518181527fff5788270f43bfc1ca41c503606d2594aa3023a1a7547de403a3e2f146a4a80a9060200161090c565b73ffffffffffffffffffffffffffffffffffffffff8316610c86576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610cd3576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316610d8f576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610ddc576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff831660009081526004602052604090205481811015610e3c576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e468282611498565b73ffffffffffffffffffffffffffffffffffffffff8086166000908152600460205260408082209390935590851681529081208054849290610e8990849061156b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610eef91815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff8216610f4a576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081526004602052604090205481811015610faa576040517ffe382aa700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fb48282611498565b73ffffffffffffffffffffffffffffffffffffffff841660009081526004602052604081209190915560068054849290610fef908490611498565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610d35565b73ffffffffffffffffffffffffffffffffffffffff821661108c576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806006600082825461109e919061156b565b909155505073ffffffffffffffffffffffffffffffffffffffff8216600090815260046020526040812080548392906110d890849061156b565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6000815180845260005b8181101561115557602081850181015186830182015201611139565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006111a6602083018461112f565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff811681146111cf57600080fd5b50565b600080604083850312156111e557600080fd5b82356111f0816111ad565b946020939093013593505050565b60008060006060848603121561121357600080fd5b833561121e816111ad565b9250602084013561122e816111ad565b929592945050506040919091013590565b60006020828403121561125157600080fd5b5035919050565b60006020828403121561126a57600080fd5b81356111a6816111ad565b60208101600383106112b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156112f857600080fd5b823567ffffffffffffffff81111561130f57600080fd5b8301601f8101851361132057600080fd5b803567ffffffffffffffff81111561133a5761133a6112b6565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff821117156113a6576113a66112b6565b6040528181528282016020018710156113be57600080fd5b8160208401602083013760006020928201830152969401359450505050565b600080604083850312156113f057600080fd5b82356113fb816111ad565b9150602083013561140b816111ad565b809150509250929050565b600181811c9082168061142a57607f821691505b602082108103611463577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156104e0576104e0611469565b6040815260006114be604083018561112f565b90508260208301529392505050565b6000602082840312156114df57600080fd5b815180151581146111a657600080fd5b608081526000611502608083018761112f565b6020830195909552506040810192909252606090910152919050565b60006020828403121561153057600080fd5b81516111a6816111ad565b60006020828403121561154d57600080fd5b5051919050565b80820281158282048414176104e0576104e0611469565b808201808211156104e0576104e061146956fea264697066735822122062e8c81bc642fb8e9a1eaabde5abdece7e58510051b4aa2bee706dc57435041764736f6c634300081a0033"; + +type ZRC20ConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: ZRC20ConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class ZRC20__factory extends ContractFactory { + constructor(...args: ZRC20ConstructorParams) { + 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< + ZRC20 & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): ZRC20__factory { + return super.connect(runner) as ZRC20__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): ZRC20Interface { + return new Interface(_abi) as ZRC20Interface; + } + static connect(address: string, runner?: ContractRunner | null): ZRC20 { + return new Contract(address, _abi, runner) as unknown as ZRC20; + } +} diff --git a/typechain-types/factories/contracts/zevm/ZRC20New.sol/index.ts b/v2/typechain-types/factories/ZRC20.sol/index.ts similarity index 72% rename from typechain-types/factories/contracts/zevm/ZRC20New.sol/index.ts rename to v2/typechain-types/factories/ZRC20.sol/index.ts index 7e4b987c..7022ef80 100644 --- a/typechain-types/factories/contracts/zevm/ZRC20New.sol/index.ts +++ b/v2/typechain-types/factories/ZRC20.sol/index.ts @@ -1,5 +1,5 @@ /* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ +export { ZRC20__factory } from "./ZRC20__factory"; 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/typechain-types/factories/contracts/prototypes/evm/ZetaConnectorNewBase__factory.ts b/v2/typechain-types/factories/Zeta.non-eth.sol/ZetaNonEthInterface__factory.ts similarity index 58% rename from typechain-types/factories/contracts/prototypes/evm/ZetaConnectorNewBase__factory.ts rename to v2/typechain-types/factories/Zeta.non-eth.sol/ZetaNonEthInterface__factory.ts index 1a3db640..d16d94a6 100644 --- a/typechain-types/factories/contracts/prototypes/evm/ZetaConnectorNewBase__factory.ts +++ b/v2/typechain-types/factories/Zeta.non-eth.sol/ZetaNonEthInterface__factory.ts @@ -2,239 +2,252 @@ /* tslint:disable */ /* eslint-disable */ -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; +import { Contract, Interface, type ContractRunner } from "ethers"; import type { - ZetaConnectorNewBase, - ZetaConnectorNewBaseInterface, -} from "../../../../contracts/prototypes/evm/ZetaConnectorNewBase"; + ZetaNonEthInterface, + ZetaNonEthInterfaceInterface, +} from "../../Zeta.non-eth.sol/ZetaNonEthInterface"; const _abi = [ { - inputs: [], - name: "InvalidSender", - type: "error", - }, - { - inputs: [], - name: "ZeroAddress", - type: "error", - }, - { - anonymous: false, + type: "function", + name: "allowance", inputs: [ { - indexed: true, + name: "owner", + type: "address", internalType: "address", - name: "to", + }, + { + name: "spender", type: "address", + internalType: "address", }, + ], + outputs: [ { - indexed: false, - internalType: "uint256", - name: "amount", + name: "", type: "uint256", + internalType: "uint256", }, ], - name: "Withdraw", - type: "event", + stateMutability: "view", }, { - anonymous: false, + type: "function", + name: "approve", inputs: [ { - indexed: true, - internalType: "address", - name: "to", + name: "spender", type: "address", + internalType: "address", }, { - indexed: false, - internalType: "uint256", - name: "amount", + name: "value", type: "uint256", + internalType: "uint256", }, + ], + outputs: [ { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", + name: "", + type: "bool", + internalType: "bool", }, ], - name: "WithdrawAndCall", - type: "event", + stateMutability: "nonpayable", }, { - anonymous: false, + type: "function", + name: "balanceOf", inputs: [ { - indexed: true, - internalType: "address", - name: "to", + name: "account", type: "address", + internalType: "address", }, + ], + outputs: [ { - indexed: false, - internalType: "uint256", - name: "amount", + name: "", type: "uint256", - }, - { - indexed: false, - internalType: "bytes", - name: "data", - type: "bytes", + internalType: "uint256", }, ], - name: "WithdrawAndRevert", - type: "event", + stateMutability: "view", }, { - inputs: [], - name: "gateway", - outputs: [ + type: "function", + name: "burnFrom", + inputs: [ { - internalType: "contract IGatewayEVM", - name: "", + name: "account", type: "address", + internalType: "address", + }, + { + name: "amount", + type: "uint256", + internalType: "uint256", }, ], - stateMutability: "view", - type: "function", + outputs: [], + stateMutability: "nonpayable", }, { + type: "function", + name: "mint", inputs: [ { - internalType: "uint256", - name: "amount", + name: "mintee", + type: "address", + internalType: "address", + }, + { + name: "value", type: "uint256", + internalType: "uint256", + }, + { + name: "internalSendHash", + type: "bytes32", + internalType: "bytes32", }, ], - name: "receiveTokens", outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "totalSupply", inputs: [], - name: "tssAddress", outputs: [ { - internalType: "address", name: "", - type: "address", + type: "uint256", + internalType: "uint256", }, ], stateMutability: "view", - type: "function", }, { + type: "function", + name: "transfer", inputs: [ { - internalType: "address", name: "to", type: "address", + internalType: "address", }, { - internalType: "uint256", - name: "amount", + name: "value", type: "uint256", + internalType: "uint256", }, + ], + outputs: [ { - internalType: "bytes32", - name: "internalSendHash", - type: "bytes32", + name: "", + type: "bool", + internalType: "bool", }, ], - name: "withdraw", - outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "function", + name: "transferFrom", inputs: [ { + name: "from", + type: "address", internalType: "address", + }, + { name: "to", type: "address", + internalType: "address", }, { - internalType: "uint256", - name: "amount", + name: "value", type: "uint256", + internalType: "uint256", }, + ], + outputs: [ { - internalType: "bytes", - name: "data", - type: "bytes", - }, - { - internalType: "bytes32", - name: "internalSendHash", - type: "bytes32", + name: "", + type: "bool", + internalType: "bool", }, ], - name: "withdrawAndCall", - outputs: [], stateMutability: "nonpayable", - type: "function", }, { + type: "event", + name: "Approval", inputs: [ { - internalType: "address", - name: "to", + name: "owner", type: "address", + indexed: true, + internalType: "address", }, { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - { - internalType: "bytes", - name: "data", - type: "bytes", + name: "spender", + type: "address", + indexed: true, + internalType: "address", }, { - internalType: "bytes32", - name: "internalSendHash", - type: "bytes32", + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", }, ], - name: "withdrawAndRevert", - outputs: [], - stateMutability: "nonpayable", - type: "function", + anonymous: false, }, { - inputs: [], - name: "zetaToken", - outputs: [ + type: "event", + name: "Transfer", + inputs: [ { + name: "from", + type: "address", + indexed: true, internalType: "address", - name: "", + }, + { + name: "to", type: "address", + indexed: true, + internalType: "address", + }, + { + name: "value", + type: "uint256", + indexed: false, + internalType: "uint256", }, ], - stateMutability: "view", - type: "function", + anonymous: false, }, ] as const; -export class ZetaConnectorNewBase__factory { +export class ZetaNonEthInterface__factory { static readonly abi = _abi; - static createInterface(): ZetaConnectorNewBaseInterface { - return new utils.Interface(_abi) as ZetaConnectorNewBaseInterface; + static createInterface(): ZetaNonEthInterfaceInterface { + return new Interface(_abi) as ZetaNonEthInterfaceInterface; } static connect( address: string, - signerOrProvider: Signer | Provider - ): ZetaConnectorNewBase { + runner?: ContractRunner | null + ): ZetaNonEthInterface { return new Contract( address, _abi, - signerOrProvider - ) as ZetaConnectorNewBase; + 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/ZetaConnectorBase__factory.ts b/v2/typechain-types/factories/ZetaConnectorBase__factory.ts new file mode 100644 index 00000000..addcb7b2 --- /dev/null +++ b/v2/typechain-types/factories/ZetaConnectorBase__factory.ts @@ -0,0 +1,549 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + ZetaConnectorBase, + ZetaConnectorBaseInterface, +} from "../ZetaConnectorBase"; + +const _abi = [ + { + type: "function", + name: "DEFAULT_ADMIN_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "PAUSER_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "WITHDRAWER_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "gateway", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "contract IGatewayEVM", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getRoleAdmin", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "grantRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "hasRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "pause", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "paused", + inputs: [], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "receiveTokens", + inputs: [ + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "renounceRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "callerConfirmation", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "revokeRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + 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: "tssAddress", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "unpause", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + 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: "Paused", + inputs: [ + { + name: "account", + type: "address", + indexed: false, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RoleAdminChanged", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "previousAdminRole", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "newAdminRole", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RoleGranted", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "account", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RoleRevoked", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "account", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Unpaused", + inputs: [ + { + name: "account", + type: "address", + indexed: false, + internalType: "address", + }, + ], + 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: "AccessControlBadConfirmation", + inputs: [], + }, + { + type: "error", + name: "AccessControlUnauthorizedAccount", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "neededRole", + type: "bytes32", + internalType: "bytes32", + }, + ], + }, + { + type: "error", + name: "EnforcedPause", + inputs: [], + }, + { + type: "error", + name: "ExpectedPause", + inputs: [], + }, + { + type: "error", + name: "ReentrancyGuardReentrantCall", + inputs: [], + }, + { + type: "error", + name: "ZeroAddress", + inputs: [], + }, +] as const; + +export class ZetaConnectorBase__factory { + static readonly abi = _abi; + static createInterface(): ZetaConnectorBaseInterface { + return new Interface(_abi) as ZetaConnectorBaseInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): ZetaConnectorBase { + return new Contract(address, _abi, runner) as unknown as ZetaConnectorBase; + } +} diff --git a/v2/typechain-types/factories/ZetaConnectorNative__factory.ts b/v2/typechain-types/factories/ZetaConnectorNative__factory.ts new file mode 100644 index 00000000..ce7b5485 --- /dev/null +++ b/v2/typechain-types/factories/ZetaConnectorNative__factory.ts @@ -0,0 +1,688 @@ +/* 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", + }, + { + name: "_admin", + type: "address", + internalType: "address", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "DEFAULT_ADMIN_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "PAUSER_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "WITHDRAWER_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "gateway", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "contract IGatewayEVM", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getRoleAdmin", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "grantRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "hasRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "pause", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "paused", + inputs: [], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "receiveTokens", + inputs: [ + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "renounceRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "callerConfirmation", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "revokeRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + 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: "tssAddress", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "unpause", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + 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: "Paused", + inputs: [ + { + name: "account", + type: "address", + indexed: false, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RoleAdminChanged", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "previousAdminRole", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "newAdminRole", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RoleGranted", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "account", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RoleRevoked", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "account", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Unpaused", + inputs: [ + { + name: "account", + type: "address", + indexed: false, + internalType: "address", + }, + ], + 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: "AccessControlBadConfirmation", + inputs: [], + }, + { + type: "error", + name: "AccessControlUnauthorizedAccount", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "neededRole", + type: "bytes32", + internalType: "bytes32", + }, + ], + }, + { + 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: "EnforcedPause", + inputs: [], + }, + { + type: "error", + name: "ExpectedPause", + inputs: [], + }, + { + type: "error", + name: "FailedInnerCall", + 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 = + "0x60c060405234801561001057600080fd5b5060405161163738038061163783398101604081905261002f916101f5565b60016000819055805460ff19169055838383836001600160a01b038416158061005f57506001600160a01b038316155b8061007157506001600160a01b038216155b1561008f5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0384811660805283811660a052600380546001600160a01b0319169184169190911790556100c5600082610129565b506100f07f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e483610129565b5061011b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a82610129565b505050505050505050610249565b60008281526002602090815260408083206001600160a01b038516845290915281205460ff166101cf5760008381526002602090815260408083206001600160a01b03861684529091529020805460ff191660011790556101873390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016101d3565b5060005b92915050565b80516001600160a01b03811681146101f057600080fd5b919050565b6000806000806080858703121561020b57600080fd5b610214856101d9565b9350610222602086016101d9565b9250610230604086016101d9565b915061023e606086016101d9565b905092959194509250565b60805160a0516113836102b4600039600081816101f70152818161046d0152818161051e01528181610638015281816107cc0152818161087d015261094b0152600081816101ab0152818161048f015281816104f1015281816107ee015261085001526113836000f3fe608060405234801561001057600080fd5b50600436106101515760003560e01c80635b112591116100cd57806385f438c111610081578063a217fddf11610066578063a217fddf1461033e578063d547741f14610346578063e63ab1e91461035957600080fd5b806385f438c1146102d157806391d14854146102f857600080fd5b80635e3e9fef116100b25780635e3e9fef146102a3578063743e0c9b146102b65780638456cb59146102c957600080fd5b80635b112591146102785780635c975abb1461029857600080fd5b806321e093b1116101245780632f2ff15d116101095780632f2ff15d1461024a57806336568abe1461025d5780633f4ba83a1461027057600080fd5b806321e093b1146101f2578063248a9ca31461021957600080fd5b806301ffc9a71461015657806302d5c8991461017e578063106e629014610193578063116191b6146101a6575b600080fd5b6101696101643660046110be565b610380565b60405190151581526020015b60405180910390f35b61019161018c366004611129565b610419565b005b6101916101a13660046111bb565b6105e4565b6101cd7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610175565b6101cd7f000000000000000000000000000000000000000000000000000000000000000081565b61023c6102273660046111ee565b60009081526002602052604090206001015490565b604051908152602001610175565b610191610258366004611207565b6106bf565b61019161026b366004611207565b6106ea565b610191610743565b6003546101cd9073ffffffffffffffffffffffffffffffffffffffff1681565b60015460ff16610169565b6101916102b1366004611129565b610778565b6101916102c43660046111ee565b610929565b610191610973565b61023c7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e481565b610169610306366004611207565b600091825260026020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b61023c600081565b610191610354366004611207565b6109a5565b61023c7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061041357507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6104216109ca565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e461044b81610a0d565b610453610a17565b6104b473ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000087610a56565b6040517fb8969bd400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063b8969bd49061054e907f0000000000000000000000000000000000000000000000000000000000000000908a908a908a908a9060040161127c565b600060405180830381600087803b15801561056857600080fd5b505af115801561057c573d6000803e3d6000fd5b505050508573ffffffffffffffffffffffffffffffffffffffff167fba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe8686866040516105ca939291906112d9565b60405180910390a2506105dd6001600055565b5050505050565b6105ec6109ca565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e461061681610a0d565b61061e610a17565b61065f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168585610a56565b8373ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364846040516106a791815260200190565b60405180910390a2506106ba6001600055565b505050565b6000828152600260205260409020600101546106da81610a0d565b6106e48383610ad7565b50505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610739576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106ba8282610bd7565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61076d81610a0d565b610775610c96565b50565b6107806109ca565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e46107aa81610a0d565b6107b2610a17565b61081373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000087610a56565b6040517f5131ab5900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690635131ab59906108ad907f0000000000000000000000000000000000000000000000000000000000000000908a908a908a908a9060040161127c565b600060405180830381600087803b1580156108c757600080fd5b505af11580156108db573d6000803e3d6000fd5b505050508573ffffffffffffffffffffffffffffffffffffffff167f7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced8686866040516105ca939291906112d9565b610931610a17565b61077573ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016333084610d13565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61099d81610a0d565b610775610d59565b6000828152600260205260409020600101546109c081610a0d565b6106e48383610bd7565b600260005403610a06576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b6107758133610db2565b60015460ff1615610a54576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60405173ffffffffffffffffffffffffffffffffffffffff8381166024830152604482018390526106ba91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610e43565b600082815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff16610bcf57600083815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610b6d3390565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610413565b506000610413565b600082815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff1615610bcf57600083815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610413565b610c9e610ed9565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b60405173ffffffffffffffffffffffffffffffffffffffff84811660248301528381166044830152606482018390526106e49186918216906323b872dd90608401610a90565b610d61610a17565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833610ce9565b600082815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610e3f576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602481018390526044015b60405180910390fd5b5050565b6000610e6573ffffffffffffffffffffffffffffffffffffffff841683610f15565b90508051600014158015610e8a575080806020019051810190610e8891906112fc565b155b156106ba576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602401610e36565b60015460ff16610a54576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060610f2383836000610f2a565b9392505050565b606081471015610f68576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610e36565b6000808573ffffffffffffffffffffffffffffffffffffffff168486604051610f91919061131e565b60006040518083038185875af1925050503d8060008114610fce576040519150601f19603f3d011682016040523d82523d6000602084013e610fd3565b606091505b5091509150610fe3868383610fed565b9695505050505050565b60608261100257610ffd8261107c565b610f23565b8151158015611026575073ffffffffffffffffffffffffffffffffffffffff84163b155b15611075576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610e36565b5080610f23565b80511561108c5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000602082840312156110d057600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610f2357600080fd5b803573ffffffffffffffffffffffffffffffffffffffff8116811461112457600080fd5b919050565b60008060008060006080868803121561114157600080fd5b61114a86611100565b945060208601359350604086013567ffffffffffffffff81111561116d57600080fd5b8601601f8101881361117e57600080fd5b803567ffffffffffffffff81111561119557600080fd5b8860208284010111156111a757600080fd5b959894975060200195606001359392505050565b6000806000606084860312156111d057600080fd5b6111d984611100565b95602085013595506040909401359392505050565b60006020828403121561120057600080fd5b5035919050565b6000806040838503121561121a57600080fd5b8235915061122a60208401611100565b90509250929050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff851660208201528360408201526080606082015260006112ce608083018486611233565b979650505050505050565b8381526040602082015260006112f3604083018486611233565b95945050505050565b60006020828403121561130e57600080fd5b81518015158114610f2357600080fd5b6000825160005b8181101561133f5760208186018101518583015201611325565b50600092019182525091905056fea264697066735822122076f21f1ac8f2c01b56f41facd345cbe7bb75624ae7a01f61b68ad17dc9af27a464736f6c634300081a0033"; + +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, + _admin: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction( + _gateway, + _zetaToken, + _tssAddress, + _admin, + overrides || {} + ); + } + override deploy( + _gateway: AddressLike, + _zetaToken: AddressLike, + _tssAddress: AddressLike, + _admin: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ) { + return super.deploy( + _gateway, + _zetaToken, + _tssAddress, + _admin, + 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/ZetaConnectorNonNative__factory.ts b/v2/typechain-types/factories/ZetaConnectorNonNative__factory.ts new file mode 100644 index 00000000..b37e3908 --- /dev/null +++ b/v2/typechain-types/factories/ZetaConnectorNonNative__factory.ts @@ -0,0 +1,694 @@ +/* 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", + }, + { + name: "_admin", + type: "address", + internalType: "address", + }, + ], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "DEFAULT_ADMIN_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "PAUSER_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "WITHDRAWER_ROLE", + inputs: [], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "gateway", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "contract IGatewayEVM", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "getRoleAdmin", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + ], + outputs: [ + { + name: "", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "grantRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "hasRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "maxSupply", + inputs: [], + outputs: [ + { + name: "", + type: "uint256", + internalType: "uint256", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "pause", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "paused", + inputs: [], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "receiveTokens", + inputs: [ + { + name: "amount", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "renounceRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "callerConfirmation", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "revokeRole", + inputs: [ + { + name: "role", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "account", + type: "address", + internalType: "address", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "setMaxSupply", + inputs: [ + { + name: "_maxSupply", + type: "uint256", + internalType: "uint256", + }, + ], + 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: "tssAddress", + inputs: [], + outputs: [ + { + name: "", + type: "address", + internalType: "address", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "unpause", + inputs: [], + outputs: [], + stateMutability: "nonpayable", + }, + { + 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: "Paused", + inputs: [ + { + name: "account", + type: "address", + indexed: false, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RoleAdminChanged", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "previousAdminRole", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "newAdminRole", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RoleGranted", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "account", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "RoleRevoked", + inputs: [ + { + name: "role", + type: "bytes32", + indexed: true, + internalType: "bytes32", + }, + { + name: "account", + type: "address", + indexed: true, + internalType: "address", + }, + { + name: "sender", + type: "address", + indexed: true, + internalType: "address", + }, + ], + anonymous: false, + }, + { + type: "event", + name: "Unpaused", + inputs: [ + { + name: "account", + type: "address", + indexed: false, + internalType: "address", + }, + ], + 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: "AccessControlBadConfirmation", + inputs: [], + }, + { + type: "error", + name: "AccessControlUnauthorizedAccount", + inputs: [ + { + name: "account", + type: "address", + internalType: "address", + }, + { + name: "neededRole", + type: "bytes32", + internalType: "bytes32", + }, + ], + }, + { + type: "error", + name: "EnforcedPause", + inputs: [], + }, + { + type: "error", + name: "ExceedsMaxSupply", + inputs: [], + }, + { + type: "error", + name: "ExpectedPause", + inputs: [], + }, + { + type: "error", + name: "ReentrancyGuardReentrantCall", + inputs: [], + }, + { + type: "error", + name: "ZeroAddress", + inputs: [], + }, +] as const; + +const _bytecode = + "0x60c060405260001960045534801561001657600080fd5b5060405161182a38038061182a833981016040819052610035916101fb565b60016000819055805460ff19169055838383836001600160a01b038416158061006557506001600160a01b038316155b8061007757506001600160a01b038216155b156100955760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0384811660805283811660a052600380546001600160a01b0319169184169190911790556100cb60008261012f565b506100f67f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e48361012f565b506101217f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8261012f565b50505050505050505061024f565b60008281526002602090815260408083206001600160a01b038516845290915281205460ff166101d55760008381526002602090815260408083206001600160a01b03861684529091529020805460ff1916600117905561018d3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016101d9565b5060005b92915050565b80516001600160a01b03811681146101f657600080fd5b919050565b6000806000806080858703121561021157600080fd5b61021a856101df565b9350610228602086016101df565b9250610236604086016101df565b9150610244606086016101df565b905092959194509250565b60805160a05161155b6102cf6000396000818161021d0152818161049a015281816105dc015281816106a2015281816107a7015281816108c901528181610a7d01528181610bbf01528181610c850152610ddc0152600081816101d1015281816105a60152818161067301528181610b890152610c56015261155b6000f3fe608060405234801561001057600080fd5b50600436106101775760003560e01c80635c975abb116100d857806385f438c11161008c578063d547741f11610066578063d547741f1461037f578063d5abeb0114610392578063e63ab1e91461039b57600080fd5b806385f438c11461030a57806391d1485414610331578063a217fddf1461037757600080fd5b80636f8b44b0116100bd5780636f8b44b0146102dc578063743e0c9b146102ef5780638456cb591461030257600080fd5b80635c975abb146102be5780635e3e9fef146102c957600080fd5b8063248a9ca31161012f57806336568abe1161011457806336568abe146102835780633f4ba83a146102965780635b1125911461029e57600080fd5b8063248a9ca31461023f5780632f2ff15d1461027057600080fd5b8063106e629011610160578063106e6290146101b9578063116191b6146101cc57806321e093b11461021857600080fd5b806301ffc9a71461017c57806302d5c899146101a4575b600080fd5b61018f61018a36600461128d565b6103c2565b60405190151581526020015b60405180910390f35b6101b76101b23660046112ff565b61045b565b005b6101b76101c7366004611391565b610768565b6101f37f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161019b565b6101f37f000000000000000000000000000000000000000000000000000000000000000081565b61026261024d3660046113c4565b60009081526002602052604090206001015490565b60405190815260200161019b565b6101b761027e3660046113dd565b610985565b6101b76102913660046113dd565b6109b0565b6101b7610a09565b6003546101f39073ffffffffffffffffffffffffffffffffffffffff1681565b60015460ff1661018f565b6101b76102d73660046112ff565b610a3e565b6101b76102ea3660046113c4565b610d31565b6101b76102fd3660046113c4565b610d9f565b6101b7610e49565b6102627f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e481565b61018f61033f3660046113dd565b600091825260026020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b610262600081565b6101b761038d3660046113dd565b610e7b565b61026260045481565b6102627f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061045557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b610463610ea0565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e461048d81610ee3565b610495610eed565b6004547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610503573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105279190611409565b6105319087611422565b1115610569576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1e458bee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201879052604482018490527f00000000000000000000000000000000000000000000000000000000000000001690631e458bee90606401600060405180830381600087803b15801561062057600080fd5b505af1158015610634573d6000803e3d6000fd5b50506040517fb8969bd400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016925063b8969bd491506106d2907f0000000000000000000000000000000000000000000000000000000000000000908a908a908a908a906004016114a5565b600060405180830381600087803b1580156106ec57600080fd5b505af1158015610700573d6000803e3d6000fd5b505050508573ffffffffffffffffffffffffffffffffffffffff167fba96f26bdda53eb8c8ba39045dfb4ff39753fbc7a6edcf250a88e75e78d102fe86868660405161074e93929190611502565b60405180910390a2506107616001600055565b5050505050565b610770610ea0565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e461079a81610ee3565b6107a2610eed565b6004547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610810573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108349190611409565b61083e9085611422565b1115610876576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1e458bee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015260248201859052604482018490527f00000000000000000000000000000000000000000000000000000000000000001690631e458bee90606401600060405180830381600087803b15801561090d57600080fd5b505af1158015610921573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243648460405161096d91815260200190565b60405180910390a2506109806001600055565b505050565b6000828152600260205260409020600101546109a081610ee3565b6109aa8383610f2c565b50505050565b73ffffffffffffffffffffffffffffffffffffffff811633146109ff576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610980828261102c565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610a3381610ee3565b610a3b6110eb565b50565b610a46610ea0565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e4610a7081610ee3565b610a78610eed565b6004547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0a9190611409565b610b149087611422565b1115610b4c576040517fc30436e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f1e458bee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201879052604482018490527f00000000000000000000000000000000000000000000000000000000000000001690631e458bee90606401600060405180830381600087803b158015610c0357600080fd5b505af1158015610c17573d6000803e3d6000fd5b50506040517f5131ab5900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169250635131ab599150610cb5907f0000000000000000000000000000000000000000000000000000000000000000908a908a908a908a906004016114a5565b600060405180830381600087803b158015610ccf57600080fd5b505af1158015610ce3573d6000803e3d6000fd5b505050508573ffffffffffffffffffffffffffffffffffffffff167f7772f56296d3a5202974a45c61c9188d844ab4d6eeb18c851e4b8d5384ca6ced86868660405161074e93929190611502565b7f10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e4610d5b81610ee3565b610d63610eed565b60048290556040518281527f7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c9060200160405180910390a15050565b610da7610eed565b6040517f79cc6790000000000000000000000000000000000000000000000000000000008152336004820152602481018290527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906379cc679090604401600060405180830381600087803b158015610e3557600080fd5b505af1158015610761573d6000803e3d6000fd5b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610e7381610ee3565b610a3b611168565b600082815260026020526040902060010154610e9681610ee3565b6109aa838361102c565b600260005403610edc576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b610a3b81336111c1565b60015460ff1615610f2a576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600082815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff1661102457600083815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610fc23390565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610455565b506000610455565b600082815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff161561102457600083815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8616808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610455565b6110f3611251565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b611170610eed565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2583361113e565b600082815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1661124d576040517fe2517d3f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526024810183905260440160405180910390fd5b5050565b60015460ff16610f2a576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006020828403121561129f57600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146112cf57600080fd5b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146112fa57600080fd5b919050565b60008060008060006080868803121561131757600080fd5b611320866112d6565b945060208601359350604086013567ffffffffffffffff81111561134357600080fd5b8601601f8101881361135457600080fd5b803567ffffffffffffffff81111561136b57600080fd5b88602082840101111561137d57600080fd5b959894975060200195606001359392505050565b6000806000606084860312156113a657600080fd5b6113af846112d6565b95602085013595506040909401359392505050565b6000602082840312156113d657600080fd5b5035919050565b600080604083850312156113f057600080fd5b82359150611400602084016112d6565b90509250929050565b60006020828403121561141b57600080fd5b5051919050565b80820180821115610455577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff8616815273ffffffffffffffffffffffffffffffffffffffff851660208201528360408201526080606082015260006114f760808301848661145c565b979650505050505050565b83815260406020820152600061151c60408301848661145c565b9594505050505056fea2646970667358221220c864e28878a70f2d629a9a8bcc8540adbc24308f0bdca4bb9f799c9b08a4b8fc64736f6c634300081a0033"; + +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, + _admin: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction( + _gateway, + _zetaToken, + _tssAddress, + _admin, + overrides || {} + ); + } + override deploy( + _gateway: AddressLike, + _zetaToken: AddressLike, + _tssAddress: AddressLike, + _admin: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ) { + return super.deploy( + _gateway, + _zetaToken, + _tssAddress, + _admin, + 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/typechain-types/contracts/prototypes/test/GatewayIntegration.t.sol/index.ts b/v2/typechain-types/factories/draft-IERC1822.sol/index.ts similarity index 54% rename from typechain-types/contracts/prototypes/test/GatewayIntegration.t.sol/index.ts rename to v2/typechain-types/factories/draft-IERC1822.sol/index.ts index de1fe6cd..ecca1339 100644 --- a/typechain-types/contracts/prototypes/test/GatewayIntegration.t.sol/index.ts +++ b/v2/typechain-types/factories/draft-IERC1822.sol/index.ts @@ -1,4 +1,4 @@ /* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ -export type { GatewayIntegrationTest } from "./GatewayIntegrationTest"; +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..51ee61f2 --- /dev/null +++ b/v2/typechain-types/factories/index.ts @@ -0,0 +1,80 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as erc20 from "./ERC20"; +export * as ierc20CustodySol from "./IERC20Custody.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 zrc20Sol from "./ZRC20.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 introspection from "./introspection"; +export * as utils from "./utils"; +export * as zContractSol from "./zContract.sol"; +export { AccessControl__factory } from "./AccessControl__factory"; +export { AccessControlUpgradeable__factory } from "./AccessControlUpgradeable__factory"; +export { Address__factory } from "./Address__factory"; +export { BeaconProxy__factory } from "./BeaconProxy__factory"; +export { ContextUpgradeable__factory } from "./ContextUpgradeable__factory"; +export { ERC165__factory } from "./ERC165__factory"; +export { ERC165Upgradeable__factory } from "./ERC165Upgradeable__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 { ERC20Custody__factory } from "./ERC20Custody__factory"; +export { ERC20CustodyEchidnaTest__factory } from "./ERC20CustodyEchidnaTest__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 { IAccessControl__factory } from "./IAccessControl__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 { Pausable__factory } from "./Pausable__factory"; +export { PausableUpgradeable__factory } from "./PausableUpgradeable__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 { ZetaConnectorBase__factory } from "./ZetaConnectorBase__factory"; +export { ZetaConnectorNative__factory } from "./ZetaConnectorNative__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/introspection/IERC165__factory.ts b/v2/typechain-types/factories/introspection/IERC165__factory.ts new file mode 100644 index 00000000..d36d72a9 --- /dev/null +++ b/v2/typechain-types/factories/introspection/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 "../../introspection/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/introspection/index.ts b/v2/typechain-types/factories/introspection/index.ts new file mode 100644 index 00000000..85d37333 --- /dev/null +++ b/v2/typechain-types/factories/introspection/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { IERC165__factory } from "./IERC165__factory"; 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..c3d0734e --- /dev/null +++ b/v2/typechain-types/index.ts @@ -0,0 +1,241 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as erc20 from "./ERC20"; +export type { erc20 }; +import type * as ierc20CustodySol from "./IERC20Custody.sol"; +export type { ierc20CustodySol }; +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 zrc20Sol from "./ZRC20.sol"; +export type { zrc20Sol }; +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 introspection from "./introspection"; +export type { introspection }; +import type * as utils from "./utils"; +export type { utils }; +import type * as zContractSol from "./zContract.sol"; +export type { zContractSol }; +export type { AccessControl } from "./AccessControl"; +export type { AccessControlUpgradeable } from "./AccessControlUpgradeable"; +export type { Address } from "./Address"; +export type { BeaconProxy } from "./BeaconProxy"; +export type { ContextUpgradeable } from "./ContextUpgradeable"; +export type { ERC165 } from "./ERC165"; +export type { ERC165Upgradeable } from "./ERC165Upgradeable"; +export type { ERC1967Proxy } from "./ERC1967Proxy"; +export type { ERC1967Utils } from "./ERC1967Utils"; +export type { ERC20 } from "./ERC20"; +export type { ERC20Burnable } from "./ERC20Burnable"; +export type { ERC20Custody } from "./ERC20Custody"; +export type { ERC20CustodyEchidnaTest } from "./ERC20CustodyEchidnaTest"; +export type { GatewayEVM } from "./GatewayEVM"; +export type { GatewayEVMEchidnaTest } from "./GatewayEVMEchidnaTest"; +export type { GatewayEVMUpgradeTest } from "./GatewayEVMUpgradeTest"; +export type { GatewayZEVM } from "./GatewayZEVM"; +export type { IAccessControl } from "./IAccessControl"; +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 { Pausable } from "./Pausable"; +export type { PausableUpgradeable } from "./PausableUpgradeable"; +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 { ZetaConnectorBase } from "./ZetaConnectorBase"; +export type { ZetaConnectorNative } from "./ZetaConnectorNative"; +export type { ZetaConnectorNonNative } from "./ZetaConnectorNonNative"; +export * as factories from "./factories"; +export { AccessControl__factory } from "./factories/AccessControl__factory"; +export { AccessControlUpgradeable__factory } from "./factories/AccessControlUpgradeable__factory"; +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 { ERC165__factory } from "./factories/ERC165__factory"; +export { ERC165Upgradeable__factory } from "./factories/ERC165Upgradeable__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 { ERC20Custody__factory } from "./factories/ERC20Custody__factory"; +export { ERC20CustodyEchidnaTest__factory } from "./factories/ERC20CustodyEchidnaTest__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 { IAccessControl__factory } from "./factories/IAccessControl__factory"; +export { IBeacon__factory } from "./factories/IBeacon__factory"; +export { IERC165__factory } from "./factories/IERC165__factory"; +export { IERC1967__factory } from "./factories/IERC1967__factory"; +export type { IERC20CustodyErrors } from "./IERC20Custody.sol/IERC20CustodyErrors"; +export { IERC20CustodyErrors__factory } from "./factories/IERC20Custody.sol/IERC20CustodyErrors__factory"; +export type { IERC20CustodyEvents } from "./IERC20Custody.sol/IERC20CustodyEvents"; +export { IERC20CustodyEvents__factory } from "./factories/IERC20Custody.sol/IERC20CustodyEvents__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 { Pausable__factory } from "./factories/Pausable__factory"; +export { PausableUpgradeable__factory } from "./factories/PausableUpgradeable__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 { ZetaConnectorBase__factory } from "./factories/ZetaConnectorBase__factory"; +export { ZetaConnectorNative__factory } from "./factories/ZetaConnectorNative__factory"; +export { ZetaConnectorNonNative__factory } from "./factories/ZetaConnectorNonNative__factory"; +export type { ZRC20 } from "./ZRC20.sol/ZRC20"; +export { ZRC20__factory } from "./factories/ZRC20.sol/ZRC20__factory"; +export type { ZRC20Errors } from "./ZRC20.sol/ZRC20Errors"; +export { ZRC20Errors__factory } from "./factories/ZRC20.sol/ZRC20Errors__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/introspection/IERC165.ts b/v2/typechain-types/introspection/IERC165.ts new file mode 100644 index 00000000..66b9d29e --- /dev/null +++ b/v2/typechain-types/introspection/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/introspection/index.ts b/v2/typechain-types/introspection/index.ts new file mode 100644 index 00000000..3fcca5c2 --- /dev/null +++ b/v2/typechain-types/introspection/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { IERC165 } from "./IERC165"; 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 new file mode 100644 index 00000000..4c3bd332 --- /dev/null +++ b/v2/yarn.lock @@ -0,0 +1,1549 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@adraffy/ens-normalize@1.10.1": + version "1.10.1" + resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz#63430d04bd8c5e74f8d7d049338f1cd9d4f02069" + integrity sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw== + +"@babel/runtime@^7.21.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.0.tgz#3af9a91c1b739c569d5d80cc917280919c544ecb" + integrity sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw== + dependencies: + regenerator-runtime "^0.14.0" + +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + +"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.6.1": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.11.0.tgz#b0ffd0312b4a3fd2d6f77237e7248a5ad3a680ae" + integrity sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A== + +"@eslint/eslintrc@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.6.0" + globals "^13.19.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + +"@eslint/js@8.57.0": + version "8.57.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f" + integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g== + +"@eslint/js@^9.7.0": + version "9.8.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.8.0.tgz#ae9bc14bb839713c5056f5018bcefa955556d3a4" + integrity sha512-MfluB7EUfxXtv3i/++oh89uzAr4PDI4nn201hsp+qaXqsjAWzinlZEHEfPgAX4doIlKvPG/i0A9dpKxOLII8yA== + +"@hapi/hoek@^9.0.0", "@hapi/hoek@^9.3.0": + version "9.3.0" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" + integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ== + +"@hapi/topo@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012" + integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@humanwhocodes/config-array@^0.11.14": + version "0.11.14" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" + integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== + dependencies: + "@humanwhocodes/object-schema" "^2.0.2" + debug "^4.3.1" + minimatch "^3.0.5" + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/object-schema@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" + integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== + +"@jridgewell/resolve-uri@^3.0.3": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== + +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@noble/curves@1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.2.0.tgz#92d7e12e4e49b23105a2555c6984d41733d65c35" + integrity sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw== + dependencies: + "@noble/hashes" "1.3.2" + +"@noble/hashes@1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39" + integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@sideway/address@^4.1.5": + version "4.1.5" + resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.5.tgz#4bc149a0076623ced99ca8208ba780d65a99b9d5" + integrity sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@sideway/formula@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.1.tgz#80fcbcbaf7ce031e0ef2dd29b1bfc7c3f583611f" + integrity sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg== + +"@sideway/pinpoint@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df" + integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== + +"@tsconfig/node10@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.11.tgz#6ee46400685f130e278128c7b38b7e031ff5b2f2" + integrity sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.4" + 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" + integrity sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/eslint__js@^8.42.3": + version "8.42.3" + resolved "https://registry.yarnpkg.com/@types/eslint__js/-/eslint__js-8.42.3.tgz#d1fa13e5c1be63a10b4e3afe992779f81c1179a0" + integrity sha512-alfG737uhmPdnvkrLdZLcEKJ/B8s9Y4hrZ+YAdzUeoArBlSUERA2E87ROfOaS4jd/C45fzOoZzidLc1IPwLqOw== + dependencies: + "@types/eslint" "*" + +"@types/estree@*": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== + +"@types/json-schema@*": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + +"@types/node@18.15.13": + version "18.15.13" + 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.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz#b16d3cf3ee76bf572fdf511e79c248bdec619ea3" + integrity sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw== + dependencies: + "@eslint-community/regexpp" "^4.10.0" + "@typescript-eslint/scope-manager" "7.18.0" + "@typescript-eslint/type-utils" "7.18.0" + "@typescript-eslint/utils" "7.18.0" + "@typescript-eslint/visitor-keys" "7.18.0" + graphemer "^1.4.0" + ignore "^5.3.1" + natural-compare "^1.4.0" + ts-api-utils "^1.3.0" + +"@typescript-eslint/parser@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.18.0.tgz#83928d0f1b7f4afa974098c64b5ce6f9051f96a0" + integrity sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg== + dependencies: + "@typescript-eslint/scope-manager" "7.18.0" + "@typescript-eslint/types" "7.18.0" + "@typescript-eslint/typescript-estree" "7.18.0" + "@typescript-eslint/visitor-keys" "7.18.0" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz#c928e7a9fc2c0b3ed92ab3112c614d6bd9951c83" + integrity sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA== + dependencies: + "@typescript-eslint/types" "7.18.0" + "@typescript-eslint/visitor-keys" "7.18.0" + +"@typescript-eslint/type-utils@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz#2165ffaee00b1fbbdd2d40aa85232dab6998f53b" + integrity sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA== + dependencies: + "@typescript-eslint/typescript-estree" "7.18.0" + "@typescript-eslint/utils" "7.18.0" + debug "^4.3.4" + ts-api-utils "^1.3.0" + +"@typescript-eslint/types@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.18.0.tgz#b90a57ccdea71797ffffa0321e744f379ec838c9" + integrity sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ== + +"@typescript-eslint/typescript-estree@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz#b5868d486c51ce8f312309ba79bdb9f331b37931" + integrity sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA== + dependencies: + "@typescript-eslint/types" "7.18.0" + "@typescript-eslint/visitor-keys" "7.18.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + minimatch "^9.0.4" + semver "^7.6.0" + ts-api-utils "^1.3.0" + +"@typescript-eslint/utils@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.18.0.tgz#bca01cde77f95fc6a8d5b0dbcbfb3d6ca4be451f" + integrity sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + "@typescript-eslint/scope-manager" "7.18.0" + "@typescript-eslint/types" "7.18.0" + "@typescript-eslint/typescript-estree" "7.18.0" + +"@typescript-eslint/visitor-keys@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz#0564629b6124d67607378d0f0332a0495b25e7d7" + integrity sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg== + dependencies: + "@typescript-eslint/types" "7.18.0" + eslint-visitor-keys "^3.4.3" + +"@ungap/structured-clone@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + +acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn-walk@^8.1.1: + version "8.3.3" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.3.tgz#9caeac29eefaa0c41e3d4c65137de4d6f34df43e" + integrity sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw== + dependencies: + acorn "^8.11.0" + +acorn@^8.11.0, acorn@^8.4.1, acorn@^8.9.0: + version "8.12.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248" + integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== + +aes-js@4.0.0-beta.5: + version "4.0.0-beta.5" + resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-4.0.0-beta.5.tgz#8d2452c52adedebc3a3e28465d858c11ca315873" + integrity sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q== + +ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-regex@^5.0.1: + version "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" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +argparse@^2.0.1: + version "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" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +axios@^1.6.1: + version "1.7.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.2.tgz#b625db8a7051fbea61c35a3cbb3a1daa7b9c7621" + integrity sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw== + dependencies: + follow-redirects "^1.15.6" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== + dependencies: + fill-range "^7.1.1" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +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== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + 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" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + 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" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + 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" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +concurrently@^8.2.2: + version "8.2.2" + resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-8.2.2.tgz#353141985c198cfa5e4a3ef90082c336b5851784" + integrity sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg== + dependencies: + chalk "^4.1.2" + date-fns "^2.30.0" + lodash "^4.17.21" + rxjs "^7.8.1" + shell-quote "^1.8.1" + spawn-command "0.0.2" + supports-color "^8.1.1" + tree-kill "^1.2.2" + yargs "^17.7.2" + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +date-fns@^2.30.0: + version "2.30.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0" + integrity sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw== + dependencies: + "@babel/runtime" "^7.21.0" + +debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: + version "4.3.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.6.tgz#2ab2c38fbaffebf8aa95fdfe6d88438c7a13c52b" + integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg== + 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" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +escalade@^3.1.1: + version "3.1.2" + 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" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +eslint@^8.57.0: + version "8.57.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668" + integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.4" + "@eslint/js" "8.57.0" + "@humanwhocodes/config-array" "^0.11.14" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + "@ungap/structured-clone" "^1.2.0" + ajv "^6.12.4" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.3" + espree "^9.6.1" + esquery "^1.4.2" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + graphemer "^1.4.0" + ignore "^5.2.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.3" + strip-ansi "^6.0.1" + text-table "^0.2.0" + +espree@^9.6.0, espree@^9.6.1: + version "9.6.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== + dependencies: + acorn "^8.9.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" + +esquery@^1.4.2: + version "1.6.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.6.0.tgz#91419234f804d852a82dceec3e16cdc22cf9dae7" + integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +ethers@^6.13.1: + version "6.13.2" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.13.2.tgz#4b67d4b49e69b59893931a032560999e5e4419fe" + integrity sha512-9VkriTTed+/27BGuY1s0hf441kqwHJ1wtN2edksEtiRvXx+soxRX3iSXTfFqq2+YwrOqbDoTHjIhQnjJRlzKmg== + dependencies: + "@adraffy/ens-normalize" "1.10.1" + "@noble/curves" "1.2.0" + "@noble/hashes" "1.3.2" + "@types/node" "18.15.13" + aes-js "4.0.0-beta.5" + tslib "2.4.0" + ws "8.17.1" + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^3.2.9: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fastq@^1.6.0: + version "1.17.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== + dependencies: + reusify "^1.0.4" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== + 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" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +flat-cache@^3.0.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" + integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== + dependencies: + flatted "^3.2.9" + keyv "^4.5.3" + rimraf "^3.0.2" + +flatted@^3.2.9: + version "3.3.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a" + integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== + +follow-redirects@^1.15.6: + version "1.15.6" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" + integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.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" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +glob-parent@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + 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" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^13.19.0: + version "13.24.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" + integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== + dependencies: + type-fest "^0.20.2" + +globby@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.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" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +ignore@^5.2.0, ignore@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" + integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== + +import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +joi@^17.11.0: + version "17.13.3" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.13.3.tgz#0f5cc1169c999b30d344366d384b12d92558bcec" + integrity sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA== + dependencies: + "@hapi/hoek" "^9.3.0" + "@hapi/topo" "^5.1.0" + "@sideway/address" "^4.1.5" + "@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" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-stable-stringify-without-jsonify@^1.0.1: + version "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" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + 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.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== + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.4: + version "4.0.7" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.7.tgz#33e8190d9fe474a9895525f5618eee136d46c2e5" + integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q== + dependencies: + braces "^3.0.3" + picomatch "^2.3.1" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +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== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^9.0.4: + version "9.0.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== + dependencies: + brace-expansion "^2.0.1" + +minimist@^1.2.8: + version "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" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +optionator@^0.9.3: + version "0.9.4" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" + integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.5" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +prelude-ls@^1.2.1: + version "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" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + +punycode@^2.1.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + +queue-microtask@^1.2.2: + version "1.2.3" + 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" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +rxjs@^7.8.1: + version "7.8.1" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" + integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== + dependencies: + tslib "^2.1.0" + +semver@^7.6.0: + version "7.6.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" + integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-quote@^1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" + integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +spawn-command@0.0.2: + version "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" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-json-comments@^3.1.1: + version "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" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + 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" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +tree-kill@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" + integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== + +ts-api-utils@^1.3.0: + version "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" + integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + +tslib@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== + +tslib@^2.1.0: + version "2.6.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0" + integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-fest@^0.20.2: + version "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.18.0" + resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-7.18.0.tgz#e90d57649b2ad37a7475875fa3e834a6d9f61eb2" + integrity sha512-PonBkP603E3tt05lDkbOMyaxJjvKqQrXsnow72sVeOFINDE/qNmnnd+f9b4N+U7W6MXnnYyrhtmF2t08QWwUbA== + dependencies: + "@typescript-eslint/eslint-plugin" "7.18.0" + "@typescript-eslint/parser" "7.18.0" + "@typescript-eslint/utils" "7.18.0" + +typescript@^5.5.4: + version "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" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + +wait-on@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-7.2.0.tgz#d76b20ed3fc1e2bebc051fae5c1ff93be7892928" + integrity sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ== + dependencies: + axios "^1.6.1" + joi "^17.11.0" + lodash "^4.17.21" + minimist "^1.2.8" + rxjs "^7.8.1" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +word-wrap@^1.2.5: + version "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" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +ws@8.17.1: + version "8.17.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.1.tgz#9293da530bb548febc95371d90f9c878727d919b" + integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs@^17.7.2: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==